r15847 - gnucash/branches/gda-dev - Merge 15090:15803 from trunk into branch

Phil Longstaff plongstaff at cvs.gnucash.org
Sat Apr 7 12:06:56 EDT 2007


Author: plongstaff
Date: 2007-04-07 12:05:40 -0400 (Sat, 07 Apr 2007)
New Revision: 15847
Trac: http://svn.gnucash.org/trac/changeset/15847

Added:
   gnucash/branches/gda-dev/ChangeLog.2006
   gnucash/branches/gda-dev/accounts/fr_CA/
   gnucash/branches/gda-dev/accounts/fr_CA/Makefile
   gnucash/branches/gda-dev/accounts/fr_CA/Makefile.am
   gnucash/branches/gda-dev/accounts/fr_CA/Makefile.in
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_actifsfixes.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_automobile.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_basecommune.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_cdmarchemon.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_chequier.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointretraite.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointrev.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_courtage.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_etudeemprunt.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_garderie.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_locataire.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_proprietaire.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_retraite.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_revenus.gnucash-xea
   gnucash/branches/gda-dev/checks/
   gnucash/branches/gda-dev/checks/Makefile.am
   gnucash/branches/gda-dev/checks/deluxe.chk
   gnucash/branches/gda-dev/checks/gnomeprint/
   gnucash/branches/gda-dev/checks/gnomeprint/deluxe.chk
   gnucash/branches/gda-dev/checks/gnomeprint/quicken.chk
   gnucash/branches/gda-dev/checks/gnomeprint/quicken_wallet.chk
   gnucash/branches/gda-dev/checks/quicken.chk
   gnucash/branches/gda-dev/checks/quicken_wallet.chk
   gnucash/branches/gda-dev/lib/glib28/
   gnucash/branches/gda-dev/lib/glib28/Makefile.am
   gnucash/branches/gda-dev/lib/glib28/dummy.c
   gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.c
   gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.h
   gnucash/branches/gda-dev/lib/glib28/gstdio-2.8.h
   gnucash/branches/gda-dev/lib/libc/pow.h
   gnucash/branches/gda-dev/lib/libqof/qof/gnc-date-p.h
   gnucash/branches/gda-dev/lib/libqof/qof/qof-win32.c
   gnucash/branches/gda-dev/packaging/win32/dist.sh
   gnucash/branches/gda-dev/packaging/win32/exetype.pl
   gnucash/branches/gda-dev/packaging/win32/functions
   gnucash/branches/gda-dev/packaging/win32/goffice-0.3.7-patch.diff
   gnucash/branches/gda-dev/packaging/win32/libofx-0.8.3-patch.diff
   gnucash/branches/gda-dev/packaging/win32/opensp-1.5.2-patch.diff
   gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.c
   gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.h
   gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.c
   gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.h
   gnucash/branches/gda-dev/src/app-utils/test/test-sx.c
   gnucash/branches/gda-dev/src/bin/gnucash-strip-svn-datafile.sh
   gnucash/branches/gda-dev/src/business/business-core/gncmod-business-core.c
   gnucash/branches/gda-dev/src/business/business-gnome/gncmod-business-gnome.c
   gnucash/branches/gda-dev/src/doc/sx.rst
   gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.h
   gnucash/branches/gda-dev/src/gnome/dialog-sx-editor.c
   gnucash/branches/gda-dev/src/gnome/dialog-sx-editor.h
   gnucash/branches/gda-dev/src/gnome/dialog-sx-since-last-run.c
   gnucash/branches/gda-dev/src/gnome/dialog-sx-since-last-run.h
   gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.c
   gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.h
   gnucash/branches/gda-dev/src/gnome/ui/gnc-plugin-page-sx-list-ui.xml
   gnucash/branches/gda-dev/src/pixmaps/gnucash-icon.ico
Removed:
   gnucash/branches/gda-dev/lib/glib26/
   gnucash/branches/gda-dev/lib/goffice-0.0.4/
   gnucash/branches/gda-dev/lib/libgsf-1.12.3/
   gnucash/branches/gda-dev/src/backend/file/io-gncbin-r.c
   gnucash/branches/gda-dev/src/backend/file/io-gncbin.h
   gnucash/branches/gda-dev/src/business/business-core/businessmod-core.c
   gnucash/branches/gda-dev/src/business/business-gnome/businessmod-gnome.c
   gnucash/branches/gda-dev/src/engine/Group.c
   gnucash/branches/gda-dev/src/engine/Group.h
   gnucash/branches/gda-dev/src/engine/GroupP.h
   gnucash/branches/gda-dev/src/engine/SchedXactionP.h
   gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.c
   gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.h
   gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.c
   gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.h
   gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.c
   gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.h
   gnucash/branches/gda-dev/src/gtk-compat.h
   gnucash/branches/gda-dev/src/scm/printing/
Modified:
   gnucash/branches/gda-dev/AUTHORS
   gnucash/branches/gda-dev/ChangeLog
   gnucash/branches/gda-dev/GDA_STATUS
   gnucash/branches/gda-dev/HACKING
   gnucash/branches/gda-dev/Makefile.am
   gnucash/branches/gda-dev/README
   gnucash/branches/gda-dev/README.dependencies
   gnucash/branches/gda-dev/accounts/C/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_business.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_checkbook.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_full.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/C/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/Makefile.am
   gnucash/branches/gda-dev/accounts/da/acctchrt_car.gnucash-xea
   gnucash/branches/gda-dev/accounts/da/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/da/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/da/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_auto.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_autoloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_business.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_houseown.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_investment.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_AT/acctchrt_kids.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_CH/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_CH/acctchrt_chkmu.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_CH/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_CH/acctchrt_kids.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherasset.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_auto.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_autoloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_full.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_houseown.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_investment.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_kids.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherasset.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr03.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr04.gnucash-xea
   gnucash/branches/gda-dev/accounts/de_DE/acctchrt_studium.gnucash-xea
   gnucash/branches/gda-dev/accounts/el_GR/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/el_GR/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/el_GR/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_currency.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_business.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_currency.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_business.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_currency.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_business.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_checkbook.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_checkbook.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/it/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/ja_JP.EUC/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_business.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_checkbook.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_full.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_currency.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_childcare.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_currency.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_eduloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_homeown.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_otherloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_renter.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_retiremt.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseinc.gnucash-xea
   gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseretire.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_brokerage.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_carloan.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_cdmoneymkt.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_checkbook.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_common.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_fixedassets.gnucash-xea
   gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_homeloan.gnucash-xea
   gnucash/branches/gda-dev/autogen.sh
   gnucash/branches/gda-dev/configure.in
   gnucash/branches/gda-dev/doc/README.dependencies
   gnucash/branches/gda-dev/doc/README.francais
   gnucash/branches/gda-dev/doc/gnucash.1.in
   gnucash/branches/gda-dev/doc/gtkrc-2.0.gnucash
   gnucash/branches/gda-dev/lib/Makefile.am
   gnucash/branches/gda-dev/lib/libc/Makefile.am
   gnucash/branches/gda-dev/lib/libqof/backend/file/Makefile.am
   gnucash/branches/gda-dev/lib/libqof/backend/file/qof-backend-qsf.h
   gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-backend.c
   gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-xml-map.c
   gnucash/branches/gda-dev/lib/libqof/qof/Makefile.am
   gnucash/branches/gda-dev/lib/libqof/qof/deprecated.c
   gnucash/branches/gda-dev/lib/libqof/qof/deprecated.h
   gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.c
   gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.h
   gnucash/branches/gda-dev/lib/libqof/qof/gnc-numeric.c
   gnucash/branches/gda-dev/lib/libqof/qof/guid.c
   gnucash/branches/gda-dev/lib/libqof/qof/kvp_frame.h
   gnucash/branches/gda-dev/lib/libqof/qof/qof.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofchoice.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofclass.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofid.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofinstance-p.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofinstance.h
   gnucash/branches/gda-dev/lib/libqof/qof/qoflog.c
   gnucash/branches/gda-dev/lib/libqof/qof/qoflog.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofmath128.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofobject.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofquery.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofquery.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofquerycore.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofsession-p.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofsession.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofsession.h
   gnucash/branches/gda-dev/lib/libqof/qof/qofsql.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofutil.c
   gnucash/branches/gda-dev/lib/libqof/qof/qofutil.h
   gnucash/branches/gda-dev/macros/ac_pkg_swig.m4
   gnucash/branches/gda-dev/macros/binreloc.m4
   gnucash/branches/gda-dev/macros/pkg.m4
   gnucash/branches/gda-dev/packaging/
   gnucash/branches/gda-dev/packaging/gnucash.spec.in
   gnucash/branches/gda-dev/packaging/win32/README
   gnucash/branches/gda-dev/packaging/win32/custom.sh
   gnucash/branches/gda-dev/packaging/win32/gnucash.iss.in
   gnucash/branches/gda-dev/packaging/win32/install.sh
   gnucash/branches/gda-dev/packaging/win32/reset.sh
   gnucash/branches/gda-dev/po/de.po
   gnucash/branches/gda-dev/src/Makefile.am
   gnucash/branches/gda-dev/src/app-utils/Makefile.am
   gnucash/branches/gda-dev/src/app-utils/app-utils.i
   gnucash/branches/gda-dev/src/app-utils/file-utils.c
   gnucash/branches/gda-dev/src/app-utils/file-utils.h
   gnucash/branches/gda-dev/src/app-utils/gfec.c
   gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.c
   gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.h
   gnucash/branches/gda-dev/src/app-utils/gnc-component-manager.c
   gnucash/branches/gda-dev/src/app-utils/gnc-exp-parser.c
   gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.c
   gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.h
   gnucash/branches/gda-dev/src/app-utils/gncmod-app-utils.c
   gnucash/branches/gda-dev/src/app-utils/guile-util.c
   gnucash/branches/gda-dev/src/app-utils/guile-util.h
   gnucash/branches/gda-dev/src/app-utils/options.scm
   gnucash/branches/gda-dev/src/app-utils/prefs.scm
   gnucash/branches/gda-dev/src/app-utils/test/Makefile.am
   gnucash/branches/gda-dev/src/app-utils/test/test-exp-parser.c
   gnucash/branches/gda-dev/src/app-utils/test/test-load-module
   gnucash/branches/gda-dev/src/backend/file/Makefile.am
   gnucash/branches/gda-dev/src/backend/file/gnc-account-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-backend-file.c
   gnucash/branches/gda-dev/src/backend/file/gnc-book-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-commodity-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-freqspec-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-lot-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-recurrence-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-schedxaction-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-transaction-xml-v2.c
   gnucash/branches/gda-dev/src/backend/file/gnc-xml.h
   gnucash/branches/gda-dev/src/backend/file/gncmod-backend-file.c
   gnucash/branches/gda-dev/src/backend/file/io-example-account.c
   gnucash/branches/gda-dev/src/backend/file/io-example-account.h
   gnucash/branches/gda-dev/src/backend/file/io-gncxml-v1.c
   gnucash/branches/gda-dev/src/backend/file/io-gncxml-v2.c
   gnucash/branches/gda-dev/src/backend/file/io-utils.c
   gnucash/branches/gda-dev/src/backend/file/io-utils.h
   gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.c
   gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.h
   gnucash/branches/gda-dev/src/backend/file/sixtp-utils.c
   gnucash/branches/gda-dev/src/backend/file/sixtp.c
   gnucash/branches/gda-dev/src/backend/file/test/Makefile.am
   gnucash/branches/gda-dev/src/backend/file/test/test-dom-parser1.c
   gnucash/branches/gda-dev/src/backend/file/test/test-file-stuff.c
   gnucash/branches/gda-dev/src/backend/file/test/test-kvp-frames.c
   gnucash/branches/gda-dev/src/backend/file/test/test-load-backend.c
   gnucash/branches/gda-dev/src/backend/file/test/test-load-example-account.c
   gnucash/branches/gda-dev/src/backend/file/test/test-load-xml2.c
   gnucash/branches/gda-dev/src/backend/file/test/test-save-in-lang.c
   gnucash/branches/gda-dev/src/backend/file/test/test-string-converters.c
   gnucash/branches/gda-dev/src/backend/file/test/test-xml-account.c
   gnucash/branches/gda-dev/src/backend/file/test/test-xml-commodity.c
   gnucash/branches/gda-dev/src/backend/file/test/test-xml-pricedb.c
   gnucash/branches/gda-dev/src/backend/file/test/test-xml-transaction.c
   gnucash/branches/gda-dev/src/backend/file/test/test-xml2-is-file.c
   gnucash/branches/gda-dev/src/backend/gda/Makefile.am
   gnucash/branches/gda-dev/src/backend/gda/gnc-account-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-backend-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-backend-util-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-book-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-budget-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-commodity-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-lots-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-price-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-slots-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gnc-transaction-gda.c
   gnucash/branches/gda-dev/src/backend/gda/gncmod-backend-gda.c
   gnucash/branches/gda-dev/src/backend/postgres/Makefile.am
   gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.c
   gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.h
   gnucash/branches/gda-dev/src/backend/postgres/account.c
   gnucash/branches/gda-dev/src/backend/postgres/account.h
   gnucash/branches/gda-dev/src/backend/postgres/checkpoint.c
   gnucash/branches/gda-dev/src/backend/postgres/checkpoint.h
   gnucash/branches/gda-dev/src/backend/postgres/events.c
   gnucash/branches/gda-dev/src/backend/postgres/table.m4
   gnucash/branches/gda-dev/src/backend/postgres/test/Makefile.am
   gnucash/branches/gda-dev/src/backend/postgres/test/test-db.c
   gnucash/branches/gda-dev/src/backend/postgres/test/test-period.c
   gnucash/branches/gda-dev/src/backend/postgres/txn.c
   gnucash/branches/gda-dev/src/backend/postgres/txn.h
   gnucash/branches/gda-dev/src/backend/postgres/txnmass.c
   gnucash/branches/gda-dev/src/base-typemaps.i
   gnucash/branches/gda-dev/src/bin/Makefile.am
   gnucash/branches/gda-dev/src/bin/gnucash-bin.c
   gnucash/branches/gda-dev/src/bin/gnucash-valgrind.in
   gnucash/branches/gda-dev/src/bin/gnucash.in
   gnucash/branches/gda-dev/src/bin/overrides/Makefile.am
   gnucash/branches/gda-dev/src/bin/overrides/gnucash-build-env.in
   gnucash/branches/gda-dev/src/bin/overrides/gnucash-env.in
   gnucash/branches/gda-dev/src/bin/test/Makefile.am
   gnucash/branches/gda-dev/src/business/business-core/Makefile.am
   gnucash/branches/gda-dev/src/business/business-core/business-core.scm
   gnucash/branches/gda-dev/src/business/business-core/file/Makefile.am
   gnucash/branches/gda-dev/src/business/business-core/file/gnc-invoice-xml-v2.c
   gnucash/branches/gda-dev/src/business/business-core/file/gnc-order-xml-v2.c
   gnucash/branches/gda-dev/src/business/business-core/file/gncmod-business-backend-file.c
   gnucash/branches/gda-dev/src/business/business-core/gncAddress.c
   gnucash/branches/gda-dev/src/business/business-core/gncBillTerm.c
   gnucash/branches/gda-dev/src/business/business-core/gncCustomer.c
   gnucash/branches/gda-dev/src/business/business-core/gncEmployee.c
   gnucash/branches/gda-dev/src/business/business-core/gncEntry.c
   gnucash/branches/gda-dev/src/business/business-core/gncInvoice.c
   gnucash/branches/gda-dev/src/business/business-core/gncJob.c
   gnucash/branches/gda-dev/src/business/business-core/gncOrder.c
   gnucash/branches/gda-dev/src/business/business-core/gncTaxTable.c
   gnucash/branches/gda-dev/src/business/business-core/gncVendor.c
   gnucash/branches/gda-dev/src/business/business-core/test/Makefile.am
   gnucash/branches/gda-dev/src/business/business-core/test/test-customer.c
   gnucash/branches/gda-dev/src/business/business-core/test/test-employee.c
   gnucash/branches/gda-dev/src/business/business-core/test/test-job.c
   gnucash/branches/gda-dev/src/business/business-core/test/test-vendor.c
   gnucash/branches/gda-dev/src/business/business-gnome/Makefile.am
   gnucash/branches/gda-dev/src/business/business-gnome/business-gnome-utils.c
   gnucash/branches/gda-dev/src/business/business-gnome/dialog-invoice.c
   gnucash/branches/gda-dev/src/business/business-gnome/dialog-payment.c
   gnucash/branches/gda-dev/src/business/business-gnome/glade/billterms.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/businessprefs.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/choose-owner.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/customer.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/date-close.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/employee.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/invoice.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/job.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/order.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/payment.glade
   gnucash/branches/gda-dev/src/business/business-gnome/glade/vendor.glade
   gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-business.c
   gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-page-invoice.c
   gnucash/branches/gda-dev/src/business/business-gnome/search-owner.c
   gnucash/branches/gda-dev/src/business/business-gnome/search-owner.h
   gnucash/branches/gda-dev/src/business/business-ledger/Makefile.am
   gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedger.c
   gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerLoad.c
   gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerModel.c
   gnucash/branches/gda-dev/src/business/business-reports/Makefile.am
   gnucash/branches/gda-dev/src/business/business-reports/aging.scm
   gnucash/branches/gda-dev/src/business/business-reports/easy-invoice.scm
   gnucash/branches/gda-dev/src/business/business-reports/fancy-invoice.scm
   gnucash/branches/gda-dev/src/business/business-reports/invoice.scm
   gnucash/branches/gda-dev/src/business/business-reports/owner-report.scm
   gnucash/branches/gda-dev/src/business/business-utils/Makefile.am
   gnucash/branches/gda-dev/src/business/business-utils/gncmod-business-utils.c
   gnucash/branches/gda-dev/src/business/dialog-tax-table/Makefile.am
   gnucash/branches/gda-dev/src/business/dialog-tax-table/gncmod-dialog-tax-table.c
   gnucash/branches/gda-dev/src/business/dialog-tax-table/tax-tables.glade
   gnucash/branches/gda-dev/src/calculation/Makefile.am
   gnucash/branches/gda-dev/src/calculation/amort_opt.c
   gnucash/branches/gda-dev/src/calculation/amort_prt.c
   gnucash/branches/gda-dev/src/calculation/fin.c
   gnucash/branches/gda-dev/src/calculation/gncmod-calculation.c
   gnucash/branches/gda-dev/src/calculation/test/Makefile.am
   gnucash/branches/gda-dev/src/core-utils/Makefile.am
   gnucash/branches/gda-dev/src/core-utils/core-utils.i
   gnucash/branches/gda-dev/src/core-utils/core-utils.scm
   gnucash/branches/gda-dev/src/core-utils/gnc-gconf-utils.c
   gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.c
   gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.h
   gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.c
   gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.h
   gnucash/branches/gda-dev/src/core-utils/gnc-gobject-utils.c
   gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.c
   gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.h
   gnucash/branches/gda-dev/src/core-utils/gnc-main.c
   gnucash/branches/gda-dev/src/core-utils/gnc-main.h
   gnucash/branches/gda-dev/src/doc/Makefile.am
   gnucash/branches/gda-dev/src/doc/loans.txt
   gnucash/branches/gda-dev/src/doc/xml/gnucash-v2.rnc
   gnucash/branches/gda-dev/src/engine/Account.c
   gnucash/branches/gda-dev/src/engine/Account.h
   gnucash/branches/gda-dev/src/engine/AccountP.h
   gnucash/branches/gda-dev/src/engine/FreqSpec.c
   gnucash/branches/gda-dev/src/engine/Makefile.am
   gnucash/branches/gda-dev/src/engine/Period.c
   gnucash/branches/gda-dev/src/engine/Recurrence.c
   gnucash/branches/gda-dev/src/engine/Recurrence.h
   gnucash/branches/gda-dev/src/engine/SX-book-p.h
   gnucash/branches/gda-dev/src/engine/SX-book.c
   gnucash/branches/gda-dev/src/engine/SX-book.h
   gnucash/branches/gda-dev/src/engine/SchedXaction.c
   gnucash/branches/gda-dev/src/engine/SchedXaction.h
   gnucash/branches/gda-dev/src/engine/Scrub.c
   gnucash/branches/gda-dev/src/engine/Scrub.h
   gnucash/branches/gda-dev/src/engine/Scrub2.c
   gnucash/branches/gda-dev/src/engine/Scrub3.c
   gnucash/branches/gda-dev/src/engine/Scrub3.h
   gnucash/branches/gda-dev/src/engine/ScrubP.h
   gnucash/branches/gda-dev/src/engine/Split.c
   gnucash/branches/gda-dev/src/engine/TransLog.c
   gnucash/branches/gda-dev/src/engine/Transaction.c
   gnucash/branches/gda-dev/src/engine/Transaction.h
   gnucash/branches/gda-dev/src/engine/binreloc.c
   gnucash/branches/gda-dev/src/engine/binreloc.h
   gnucash/branches/gda-dev/src/engine/cap-gains.c
   gnucash/branches/gda-dev/src/engine/cashobjects.c
   gnucash/branches/gda-dev/src/engine/engine-helpers.c
   gnucash/branches/gda-dev/src/engine/engine-utilities.scm
   gnucash/branches/gda-dev/src/engine/engine.i
   gnucash/branches/gda-dev/src/engine/engine.scm
   gnucash/branches/gda-dev/src/engine/gnc-associate-account.c
   gnucash/branches/gda-dev/src/engine/gnc-budget.c
   gnucash/branches/gda-dev/src/engine/gnc-commodity.c
   gnucash/branches/gda-dev/src/engine/gnc-engine.c
   gnucash/branches/gda-dev/src/engine/gnc-engine.h
   gnucash/branches/gda-dev/src/engine/gnc-filepath-utils.c
   gnucash/branches/gda-dev/src/engine/gnc-hooks.c
   gnucash/branches/gda-dev/src/engine/gnc-lot.c
   gnucash/branches/gda-dev/src/engine/gnc-lot.h
   gnucash/branches/gda-dev/src/engine/gnc-path.c
   gnucash/branches/gda-dev/src/engine/gnc-pricedb.c
   gnucash/branches/gda-dev/src/engine/gncla-dir.h.in
   gnucash/branches/gda-dev/src/engine/gncmod-engine.c
   gnucash/branches/gda-dev/src/engine/iso-4217-currencies.scm
   gnucash/branches/gda-dev/src/engine/kvp-scm.c
   gnucash/branches/gda-dev/src/engine/test-core/Makefile.am
   gnucash/branches/gda-dev/src/engine/test-core/gncmod-test-engine.c
   gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.c
   gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.h
   gnucash/branches/gda-dev/src/engine/test/Makefile.am
   gnucash/branches/gda-dev/src/engine/test/test-book-merge.c
   gnucash/branches/gda-dev/src/engine/test/test-commodities.c
   gnucash/branches/gda-dev/src/engine/test/test-create-account.scm
   gnucash/branches/gda-dev/src/engine/test/test-freq-spec.c
   gnucash/branches/gda-dev/src/engine/test/test-group-vs-book.c
   gnucash/branches/gda-dev/src/engine/test/test-guid.c
   gnucash/branches/gda-dev/src/engine/test/test-load-engine.c
   gnucash/branches/gda-dev/src/engine/test/test-lots.c
   gnucash/branches/gda-dev/src/engine/test/test-numeric.c
   gnucash/branches/gda-dev/src/engine/test/test-object.c
   gnucash/branches/gda-dev/src/engine/test/test-period.c
   gnucash/branches/gda-dev/src/engine/test/test-query.c
   gnucash/branches/gda-dev/src/engine/test/test-querynew.c
   gnucash/branches/gda-dev/src/engine/test/test-recurrence.c
   gnucash/branches/gda-dev/src/engine/test/test-resolve-file-path.c
   gnucash/branches/gda-dev/src/engine/test/test-split-vs-account.c
   gnucash/branches/gda-dev/src/engine/test/test-transaction-reversal.c
   gnucash/branches/gda-dev/src/engine/test/test-transaction-voiding.c
   gnucash/branches/gda-dev/src/experimental/cgi-bin/gnc-server.c
   gnucash/branches/gda-dev/src/experimental/cgi-bin/hello2.c
   gnucash/branches/gda-dev/src/experimental/cgi-bin/hello3.c
   gnucash/branches/gda-dev/src/gnc-module/Makefile.am
   gnucash/branches/gda-dev/src/gnc-module/gnc-module.c
   gnucash/branches/gda-dev/src/gnc-module/gnc-module.h
   gnucash/branches/gda-dev/src/gnc-module/gnc-module.scm
   gnucash/branches/gda-dev/src/gnc-module/test/Makefile.am
   gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/Makefile.am
   gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/agedver.c
   gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/futuremodsys.c
   gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/incompatdep.c
   gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/Makefile.am
   gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/gnc-mod-bar.c
   gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/Makefile.am
   gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/gnc-mod-baz.c
   gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/Makefile.am
   gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/gnc-mod-foo.c
   gnucash/branches/gda-dev/src/gnc-module/test/test-dynload.c
   gnucash/branches/gda-dev/src/gnc-module/test/test-scm-dynload
   gnucash/branches/gda-dev/src/gnc-test-env
   gnucash/branches/gda-dev/src/gnc-ui.h
   gnucash/branches/gda-dev/src/gnome-search/Makefile.am
   gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.c
   gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.h
   gnucash/branches/gda-dev/src/gnome-search/gncmod-gnome-search.c
   gnucash/branches/gda-dev/src/gnome-search/search-account.c
   gnucash/branches/gda-dev/src/gnome-search/search-account.h
   gnucash/branches/gda-dev/src/gnome-search/search-boolean.c
   gnucash/branches/gda-dev/src/gnome-search/search-boolean.h
   gnucash/branches/gda-dev/src/gnome-search/search-date.c
   gnucash/branches/gda-dev/src/gnome-search/search-date.h
   gnucash/branches/gda-dev/src/gnome-search/search-double.c
   gnucash/branches/gda-dev/src/gnome-search/search-double.h
   gnucash/branches/gda-dev/src/gnome-search/search-int64.c
   gnucash/branches/gda-dev/src/gnome-search/search-int64.h
   gnucash/branches/gda-dev/src/gnome-search/search-numeric.c
   gnucash/branches/gda-dev/src/gnome-search/search-numeric.h
   gnucash/branches/gda-dev/src/gnome-search/search-reconciled.c
   gnucash/branches/gda-dev/src/gnome-search/search-reconciled.h
   gnucash/branches/gda-dev/src/gnome-search/search-string.c
   gnucash/branches/gda-dev/src/gnome-search/search-string.h
   gnucash/branches/gda-dev/src/gnome-search/search.glade
   gnucash/branches/gda-dev/src/gnome-utils/Makefile.am
   gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.c
   gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.h
   gnucash/branches/gda-dev/src/gnome-utils/dialog-account.c
   gnucash/branches/gda-dev/src/gnome-utils/dialog-account.h
   gnucash/branches/gda-dev/src/gnome-utils/dialog-options.c
   gnucash/branches/gda-dev/src/gnome-utils/dialog-preferences.c
   gnucash/branches/gda-dev/src/gnome-utils/dialog-totd.c
   gnucash/branches/gda-dev/src/gnome-utils/dialog-transfer.c
   gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.c
   gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.h
   gnucash/branches/gda-dev/src/gnome-utils/druid-gconf-setup.c
   gnucash/branches/gda-dev/src/gnome-utils/glade/commodity.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-query-list.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-reset-warnings.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gconf-setup.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gnc-xml-import.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/druid-provider-multifile.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/exchange-dialog.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-date-format.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-gui-query.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/preferences.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/totd.glade
   gnucash/branches/gda-dev/src/gnome-utils/glade/transfer.glade
   gnucash/branches/gda-dev/src/gnome-utils/gnc-account-sel.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-date-format.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-embedded-window.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-file.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-gnome-utils.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-html-graph-gog.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-html.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-html.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-file-history.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-commodity.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-price.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-selection.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.h
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-commodity.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-price.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.c
   gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.h
   gnucash/branches/gda-dev/src/gnome-utils/gncmod-gnome-utils.c
   gnucash/branches/gda-dev/src/gnome-utils/gnctreemodelsort.c
   gnucash/branches/gda-dev/src/gnome-utils/gnome-utils.i
   gnucash/branches/gda-dev/src/gnome-utils/print-session.c
   gnucash/branches/gda-dev/src/gnome-utils/print-session.h
   gnucash/branches/gda-dev/src/gnome-utils/test/Makefile.am
   gnucash/branches/gda-dev/src/gnome-utils/window-main-summarybar.c
   gnucash/branches/gda-dev/src/gnome/Makefile.am
   gnucash/branches/gda-dev/src/gnome/dialog-chart-export.c
   gnucash/branches/gda-dev/src/gnome/dialog-commodities.c
   gnucash/branches/gda-dev/src/gnome/dialog-find-transactions.c
   gnucash/branches/gda-dev/src/gnome/dialog-new-user.c
   gnucash/branches/gda-dev/src/gnome/dialog-print-check.c
   gnucash/branches/gda-dev/src/gnome/dialog-print-check.h
   gnucash/branches/gda-dev/src/gnome/dialog-sx-from-trans.c
   gnucash/branches/gda-dev/src/gnome/druid-acct-period.c
   gnucash/branches/gda-dev/src/gnome/druid-hierarchy.c
   gnucash/branches/gda-dev/src/gnome/druid-loan.c
   gnucash/branches/gda-dev/src/gnome/druid-merge.c
   gnucash/branches/gda-dev/src/gnome/druid-merge.h
   gnucash/branches/gda-dev/src/gnome/druid-stock-split.c
   gnucash/branches/gda-dev/src/gnome/glade/account.glade
   gnucash/branches/gda-dev/src/gnome/glade/acctperiod.glade
   gnucash/branches/gda-dev/src/gnome/glade/budget.glade
   gnucash/branches/gda-dev/src/gnome/glade/chart-export.glade
   gnucash/branches/gda-dev/src/gnome/glade/commodities.glade
   gnucash/branches/gda-dev/src/gnome/glade/fincalc.glade
   gnucash/branches/gda-dev/src/gnome/glade/lots.glade
   gnucash/branches/gda-dev/src/gnome/glade/merge.glade
   gnucash/branches/gda-dev/src/gnome/glade/newuser.glade
   gnucash/branches/gda-dev/src/gnome/glade/price.glade
   gnucash/branches/gda-dev/src/gnome/glade/print.glade
   gnucash/branches/gda-dev/src/gnome/glade/progress.glade
   gnucash/branches/gda-dev/src/gnome/glade/reconcile.glade
   gnucash/branches/gda-dev/src/gnome/glade/register.glade
   gnucash/branches/gda-dev/src/gnome/glade/sched-xact.glade
   gnucash/branches/gda-dev/src/gnome/glade/stocks.glade
   gnucash/branches/gda-dev/src/gnome/glade/tax.glade
   gnucash/branches/gda-dev/src/gnome/glade/userpass.glade
   gnucash/branches/gda-dev/src/gnome/gnc-plugin-basic-commands.c
   gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-account-tree.c
   gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-budget.c
   gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-register.c
   gnucash/branches/gda-dev/src/gnome/gnc-split-reg.c
   gnucash/branches/gda-dev/src/gnome/gnc-split-reg.h
   gnucash/branches/gda-dev/src/gnome/lot-viewer.c
   gnucash/branches/gda-dev/src/gnome/reconcile-list.c
   gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in
   gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_general.schemas.in
   gnucash/branches/gda-dev/src/gnome/top-level.c
   gnucash/branches/gda-dev/src/gnome/ui/Makefile.am
   gnucash/branches/gda-dev/src/gnome/window-reconcile.c
   gnucash/branches/gda-dev/src/import-export/Makefile.am
   gnucash/branches/gda-dev/src/import-export/binary-import/Makefile.am
   gnucash/branches/gda-dev/src/import-export/binary-import/binary-import.glade
   gnucash/branches/gda-dev/src/import-export/binary-import/druid-commodity.c
   gnucash/branches/gda-dev/src/import-export/binary-import/gncmod-binary-import.c
   gnucash/branches/gda-dev/src/import-export/csv/gnc-csv2glist.c
   gnucash/branches/gda-dev/src/import-export/generic-import.glade
   gnucash/branches/gda-dev/src/import-export/gncmod-generic-import.c
   gnucash/branches/gda-dev/src/import-export/hbci/Makefile.am
   gnucash/branches/gda-dev/src/import-export/hbci/dialog-hbcitrans.c
   gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-initial.c
   gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-utils.c
   gnucash/branches/gda-dev/src/import-export/hbci/glade/hbci.glade
   gnucash/branches/gda-dev/src/import-export/hbci/glade/hbcipass.glade
   gnucash/branches/gda-dev/src/import-export/hbci/glade/hbciprefs.glade
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.c
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.h
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-getbalance.c
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-gettrans.c
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-transfer.c
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.c
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.h
   gnucash/branches/gda-dev/src/import-export/hbci/gnc-plugin-hbci.c
   gnucash/branches/gda-dev/src/import-export/hbci/gncmod-hbci.c
   gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.c
   gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.h
   gnucash/branches/gda-dev/src/import-export/hbci/hbci-interactionP.h
   gnucash/branches/gda-dev/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in
   gnucash/branches/gda-dev/src/import-export/hbci/test/Makefile.am
   gnucash/branches/gda-dev/src/import-export/import-account-matcher.c
   gnucash/branches/gda-dev/src/import-export/import-backend.c
   gnucash/branches/gda-dev/src/import-export/import-match-map.c
   gnucash/branches/gda-dev/src/import-export/import-match-picker.c
   gnucash/branches/gda-dev/src/import-export/import-provider-format.glade
   gnucash/branches/gda-dev/src/import-export/log-replay/Makefile.am
   gnucash/branches/gda-dev/src/import-export/log-replay/gnc-log-replay.c
   gnucash/branches/gda-dev/src/import-export/log-replay/gncmod-log-replay.c
   gnucash/branches/gda-dev/src/import-export/ofx/Makefile.am
   gnucash/branches/gda-dev/src/import-export/ofx/gnc-ofx-import.c
   gnucash/branches/gda-dev/src/import-export/ofx/gncmod-ofx-import.c
   gnucash/branches/gda-dev/src/import-export/ofx/test/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif-import/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif-import/dialog-account-picker.c
   gnucash/branches/gda-dev/src/import-export/qif-import/druid-qif-import.c
   gnucash/branches/gda-dev/src/import-export/qif-import/gncmod-qif-import.c
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-dialog-utils.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-file.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-guess-map.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-import.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-merge-groups.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-parse.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif-to-gnc.scm
   gnucash/branches/gda-dev/src/import-export/qif-import/qif.glade
   gnucash/branches/gda-dev/src/import-export/qif-import/test/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif-io-core/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif-io-core/gncmod-qifiocore.c
   gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-acct-table.scm
   gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-io-core.scm
   gnucash/branches/gda-dev/src/import-export/qif-io-core/test/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif-io-core/test/test-import-phase-1.scm
   gnucash/branches/gda-dev/src/import-export/qif/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif/qif-file.c
   gnucash/branches/gda-dev/src/import-export/qif/test/Makefile.am
   gnucash/branches/gda-dev/src/import-export/qif/test/test-qif.c
   gnucash/branches/gda-dev/src/import-export/test/Makefile.am
   gnucash/branches/gda-dev/src/pixmaps/Makefile.am
   gnucash/branches/gda-dev/src/quotes/gnc-fq-check.in
   gnucash/branches/gda-dev/src/quotes/gnc-fq-dump
   gnucash/branches/gda-dev/src/quotes/gnc-fq-helper.in
   gnucash/branches/gda-dev/src/quotes/gnc-fq-update.in
   gnucash/branches/gda-dev/src/register/ledger-core/Makefile.am
   gnucash/branches/gda-dev/src/register/ledger-core/gnc-ledger-display.c
   gnucash/branches/gda-dev/src/register/ledger-core/gncmod-ledger-core.c
   gnucash/branches/gda-dev/src/register/ledger-core/split-register-control.c
   gnucash/branches/gda-dev/src/register/ledger-core/split-register-load.c
   gnucash/branches/gda-dev/src/register/ledger-core/split-register-model.c
   gnucash/branches/gda-dev/src/register/ledger-core/split-register-p.h
   gnucash/branches/gda-dev/src/register/ledger-core/split-register.c
   gnucash/branches/gda-dev/src/register/ledger-core/split-register.h
   gnucash/branches/gda-dev/src/register/ledger-core/test/Makefile.am
   gnucash/branches/gda-dev/src/register/register-core/Makefile.am
   gnucash/branches/gda-dev/src/register/register-core/formulacell.c
   gnucash/branches/gda-dev/src/register/register-core/gncmod-register-core.c
   gnucash/branches/gda-dev/src/register/register-core/table-allgui.c
   gnucash/branches/gda-dev/src/register/register-core/test/Makefile.am
   gnucash/branches/gda-dev/src/register/register-gnome/Makefile.am
   gnucash/branches/gda-dev/src/register/register-gnome/datecell-gnome.c
   gnucash/branches/gda-dev/src/register/register-gnome/gncmod-register-gnome.c
   gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.c
   gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.h
   gnucash/branches/gda-dev/src/register/register-gnome/gnucash-item-list.c
   gnucash/branches/gda-dev/src/register/register-gnome/test/Makefile.am
   gnucash/branches/gda-dev/src/report/locale-specific/us/Makefile.am
   gnucash/branches/gda-dev/src/report/locale-specific/us/gncmod-locale-reports-us.c
   gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf-de_DE.scm
   gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf.scm
   gnucash/branches/gda-dev/src/report/locale-specific/us/test/Makefile.am
   gnucash/branches/gda-dev/src/report/report-gnome/Makefile.am
   gnucash/branches/gda-dev/src/report/report-gnome/gnc-plugin-page-report.c
   gnucash/branches/gda-dev/src/report/report-gnome/gncmod-report-gnome.c
   gnucash/branches/gda-dev/src/report/report-gnome/report.glade
   gnucash/branches/gda-dev/src/report/report-gnome/test/Makefile.am
   gnucash/branches/gda-dev/src/report/report-gnome/test/test-load-module
   gnucash/branches/gda-dev/src/report/report-gnome/window-report.c
   gnucash/branches/gda-dev/src/report/report-gnome/window-report.h
   gnucash/branches/gda-dev/src/report/report-system/Makefile.am
   gnucash/branches/gda-dev/src/report/report-system/commodity-utilities.scm
   gnucash/branches/gda-dev/src/report/report-system/gncmod-report-system.c
   gnucash/branches/gda-dev/src/report/report-system/html-acct-table.scm
   gnucash/branches/gda-dev/src/report/report-system/html-utilities.scm
   gnucash/branches/gda-dev/src/report/report-system/report-system.scm
   gnucash/branches/gda-dev/src/report/report-system/report-utilities.scm
   gnucash/branches/gda-dev/src/report/report-system/report.scm
   gnucash/branches/gda-dev/src/report/report-system/test/Makefile.am
   gnucash/branches/gda-dev/src/report/report-system/test/test-load-module
   gnucash/branches/gda-dev/src/report/standard-reports/Makefile.am
   gnucash/branches/gda-dev/src/report/standard-reports/account-piecharts.scm
   gnucash/branches/gda-dev/src/report/standard-reports/account-summary.scm
   gnucash/branches/gda-dev/src/report/standard-reports/advanced-portfolio.scm
   gnucash/branches/gda-dev/src/report/standard-reports/average-balance.scm
   gnucash/branches/gda-dev/src/report/standard-reports/balance-sheet.scm
   gnucash/branches/gda-dev/src/report/standard-reports/budget.scm
   gnucash/branches/gda-dev/src/report/standard-reports/cash-flow.scm
   gnucash/branches/gda-dev/src/report/standard-reports/category-barchart.scm
   gnucash/branches/gda-dev/src/report/standard-reports/daily-reports.scm
   gnucash/branches/gda-dev/src/report/standard-reports/equity-statement.scm
   gnucash/branches/gda-dev/src/report/standard-reports/general-journal.scm
   gnucash/branches/gda-dev/src/report/standard-reports/gncmod-standard-reports.c
   gnucash/branches/gda-dev/src/report/standard-reports/income-statement.scm
   gnucash/branches/gda-dev/src/report/standard-reports/net-barchart.scm
   gnucash/branches/gda-dev/src/report/standard-reports/portfolio.scm
   gnucash/branches/gda-dev/src/report/standard-reports/price-scatter.scm
   gnucash/branches/gda-dev/src/report/standard-reports/register.scm
   gnucash/branches/gda-dev/src/report/standard-reports/standard-reports.scm
   gnucash/branches/gda-dev/src/report/standard-reports/test/Makefile.am
   gnucash/branches/gda-dev/src/report/standard-reports/transaction.scm
   gnucash/branches/gda-dev/src/report/standard-reports/trial-balance.scm
   gnucash/branches/gda-dev/src/report/stylesheets/Makefile.am
   gnucash/branches/gda-dev/src/report/stylesheets/gncmod-stylesheets.c
   gnucash/branches/gda-dev/src/report/stylesheets/test/Makefile.am
   gnucash/branches/gda-dev/src/report/stylesheets/test/test-load-module
   gnucash/branches/gda-dev/src/report/utility-reports/Makefile.am
   gnucash/branches/gda-dev/src/report/utility-reports/gncmod-utility-reports.c
   gnucash/branches/gda-dev/src/report/utility-reports/test/Makefile.am
   gnucash/branches/gda-dev/src/scm/Makefile.am
   gnucash/branches/gda-dev/src/scm/fin.scm
   gnucash/branches/gda-dev/src/scm/main.scm
   gnucash/branches/gda-dev/src/scm/price-quotes.scm
   gnucash/branches/gda-dev/src/tax/us/Makefile.am
   gnucash/branches/gda-dev/src/tax/us/gncmod-tax-us.c
   gnucash/branches/gda-dev/src/tax/us/test/Makefile.am
   gnucash/branches/gda-dev/src/test-core/Makefile.am
   gnucash/branches/gda-dev/src/test-core/gncmod-test.c
   gnucash/branches/gda-dev/src/valgrind-gnucash.supp
   gnucash/branches/gda-dev/util/glade-fixup
   gnucash/branches/gda-dev/util/gnc-svnversion
Log:
Merge 15090:15803 from trunk into branch


Modified: gnucash/branches/gda-dev/AUTHORS
===================================================================
--- gnucash/branches/gda-dev/AUTHORS	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/AUTHORS	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,16 +25,14 @@
    he put the selection of the name up to popular vote. We all learned
    that democracy is not a good way to pick names.) Jeremy registered 
    the domain name, and created and maintained the gnucash.org web site 
-   for years, and got the initial GTK/gnome code working. The newest 
-   website design is Jeremy's as well. 
+   for years, and got the initial GTK/gnome code working.
 
 Rob Browning <rlb at cs.utexas.edu> abused everyone for not using perl,
    and then after we added Perl support, dumped Perl in favor of 
-   Guile/Scheme support. Rob maintined the build infrastructure for a 
-   while, added user preferences, and re-wrote the reports in scheme. 
-   One of Rob's recent contributions is the change-over of the 
-   file-format to XML. He is now concentrating on scheme performance. 
-   He is the g-wrap guile wrapper maintainer. 
+   Guile/Scheme support. Rob added user preferences, re-wrote the
+   reports in scheme, and contributed the change-over of the
+   file-format to XML. He then concentrated on scheme performance and
+   has been the g-wrap guile wrapper maintainer.
 
 Dave Peticolas <dave at krondo.com> worked on most parts of Gnucash, especially
    the register and GUI.
@@ -52,12 +50,13 @@
    automated test suite, new file hierarchy import.
 
 Christian Stimming <stimming at tuhh.de> is a report-generating 
-   monster. He's been one of the largest contributors to the current report
-   infrastructure, creating many of the important reports. 
-   He has also contributed HBCI support.
+   monster. He's been one of the largest contributors to the report
+   infrastructure, creating many of the important reports initially. 
+   He has also contributed HBCI online banking support and manages
+   internationalization and translation.
 
 Joshua Sled <jsled at asynchronous.org> works on scheduled transactions
-   and budgeting.
+   and budgeting. The current website design is his as well.
 
 Derek Atkins <derek at ihtfp.com> wrote the business-accounting package
    for Gnucash. This includes the Customer/Vendor database, Job tracking,
@@ -73,20 +72,24 @@
    hack obsessively on GnuCash. (Something in the name?)
 
 Chris Lyttle <chris at wilddev.net> Administers the GnuCash bug list.
-   Is currently writing new help and integrating and finishing a
-   concepts and tutorial written by Carol Champagne. Looks after
+   Improved the help and integrated and finished a concepts and
+   tutorial written by Carol Champagne. Looks after
    releasing new GnuCash versions and updating the website.
 
 Benoit Grégoire <bock at step.polymtl.ca> coded a long awaited OFX module
    for GnuCash and wrote the external libOFX library that it uses.
 
 Neil Williams <linux at codehelp.co.uk> finished conversion from GncBook
-   to QofBook and the separation of QoF into a standalone library.
-   Lots of Doxygen fixes and updates.
+   to QofBook and worked on the separation of QoF into a standalone
+   library. He also contributed lots of Doxygen fixes and updates.
 
 Chris Shoemaker <c.shoemaker at cox.net> implemented budgeting support
-   for GnuCash. He is also an all around hacker.
+   for GnuCash. He replaced g-wrap by SWIG as GnuCash's guile wrapper
+   generator and is also an all around hacker.
 
+Andreas Köhler <andi5.py at gmx.net> is hunting down lots of bugs,
+   especially for GUI code and other gtk related issues.
+
 Other Contributors:
 ----------------
 (In alphabetical order)
@@ -94,6 +97,7 @@
 Mike Alexander <mta at umich.edu> Cap gains, lot and MacOS fixes.
 Andrew Arensburger <arensb at cfar.umd.edu> for FreeBSD & other patches
 Matt Armstrong <matt_armstrong at bigfoot.com> for misc fixes
+Jon Arney <jarney1 at cox.net> Windows porting patches, misc fixes
 A. Alper Atici <alper_atici at yahoo.com> Turkish translation
 Fred Baube <fred at moremagic.com> for attempted Java port/MoneyDance
 Roman Bertle <bertle at smoerz.org> Austrian German account templates
@@ -160,7 +164,6 @@
 Alexey Kakunin <small at arcadia.spb.ru> quickfill patch for Cyrillic
 Ben Kelly <ben.kelly at ieee.org> for Motif menu bug fix, core dump fixes
 Tom Kludy <tkludy at csd.sgi.com> for SGI Irix port
-Andreas Köhler <KoehlerAndreas at web.de> German translation
 Matt Kraai <kraai at alumni.carnegiemellon.edu> date accelerator bug fix
 Sven Kuenzler <sk at xgm.de> for SuSE README file
 Fabrice Kurz <kurzf at voila.fr> French translation
@@ -220,6 +223,7 @@
 Paul Poulain <famille.p.poulain at free.fr> French translations
 Ron Record <rr at sco.com> for SCO Unixware & OpenServer binaries
 Keith Refson <Keith.Refson at earth.ox.ac.uk> Solaris fixes
+Jerry Quinn <jlquinn at optonline.net> Bugfixes
 Andreas Rottmann <a.rottmann at gmx.at> fixes for g-wrap 1.9
 Betina Schmidt <betina-s at gmx.de> German account template
 Dirk Schoenberger <schoenberger at signsoft.com> Qt/KDE work

Modified: gnucash/branches/gda-dev/ChangeLog
===================================================================
--- gnucash/branches/gda-dev/ChangeLog	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/ChangeLog	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,3 +1,14 @@
+2006-11-24  Christian Stimming <stimming at tuhh.de>
+
+	* src/engine/gnc-path.c: Fix gnc_path_get_localedir() because
+	binreloc's implementation did not respect the choice of
+	DATADIRNAME from AM_GLIB_GNU_GETTEXT in configure.
+
+2006-11-20  Derek Atkins  <derek at ihtfp.com>
+
+	* src/import-export/qif-import/qif-parse.scm:
+	  Don't have aktzu in the "case" twice.  Fixes #377519.
+
 2006-11-05  David Hampton  <hampton at employees.org>
 
 	* src/report/standard-reports/category-barchart.scm:
@@ -66,6 +77,17 @@
 	relocation of previously compiled-in paths. With the exception of
 	the env variables in src/bin/gnucash, we're fully relocatable now.
 
+2006-09-16  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/gnome/gnc-plugin-page-sx-list.c (sxsl_get_sx_vars): Add
+	variable extraction to instance-model creation.  The
+	GncSxInstances now has a hashtable of variables parsed from the
+	formula, and the GncSxInstance has a copy of that variables hash.
+	Not finished, but mostly in place.
+
+	* src/gnome/dialog-sx-since-last-run.c: New, simplified version of
+	the since-last-run dialog.  GncSxSlrTreeModelAdapter.
+
 2006-09-13  Christian Stimming <stimming at tuhh.de>
 
 	* src/import-export/hbci/gnc-plugin-hbci.c: Move the MT940
@@ -259,6 +281,30 @@
 	  preferences_dialog->Windows. Move "Show close button on notebook
 	  tabs" from General to Windows. Fixes #340299.
 
+2006-07-27  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/gnome-utils/gnc-dense-cal.c
+	(gnc_dense_cal_transient_model_new): Actually implement
+	GncDenseCalTransientModel. 
+
+	* src/gnome/dialog-sx-editor.c (gnc_sxed_update_cal): 
+	* src/gnome/dialog-sx-from-trans.c (sxftd_update_example_cal):
+	Use GncDenseCalTransientModel from previous ad-hoc updaters.
+
+
+2006-07-25  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/gnome-utils/gnc-dense-cal.c:
+	Add GncDenseCalModel interface, support.
+	Add unfinished GncDenseCalTransient model impl. for
+	one-off being-edited-SX calendar usage.
+
+	* src/gnome/gnc-plugin-page-sx-list.c:
+	Add GncSxInstanceDenseCalAdapter between GncSxInstanceModel and
+	GncDenseCalModel.  Start to hook up 'added' and 'removing' signals
+	on the GncSxInstanceModel.  The SX-List dense-cal works again, and
+	reflects both removed and new SXes.
+
 2006-07-24  Derek Atkins  <derek at ihtfp.com>
 
 	* [lots of Makefile.am files]:
@@ -291,6 +337,27 @@
 	extra de-quoting of path names that is done on the GNC_MODULE_PATH
 	env variable.
 
+2006-07-16  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/engine/SX-book-p.h:
+	* src/engine/SX-book.h:
+	* src/engine/SX-book.c: Promote SX list from a GList to a
+	`SchedXactions` QOF Entity.  Create add/remove API that emits
+	GNC_EVENT_{INSERT,REMOVE} signals.  Correctly associate the SX
+	List with the collection of SchedXaction qof-type rather than the
+	SX template transactions qof-type.  Remove some (now-)dead
+	code.  Fix long-standing bug in registration of SX qof types.
+	
+	* src/gnome/dialog-sx-editor.[ch]:
+	* src/gnome/dialog-schedxaction.[ch]:
+	Move the SX editor dialog subset of dialog-schedxaction to
+	dialog-sx-editor.[ch].
+
+	* src/gnome/gnc-plugin-page-sx-list.c:
+	Hookup SX editor for both 'new' and 'edit' actions. Hookup
+	row-activation from tree-view.  Extend GncSxInstanceModel to
+	support SchedXactions (sx list) modification events.
+
 2006-07-16  Derek Atkins  <derek at ihtfp.com>
 
 	* configure.in:
@@ -320,6 +387,18 @@
 	* src/gnome-utils/gnc-main-window.c: Do not move windows on
 	  restoration that would be offscreen.
 
+2006-07-15  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/engine/SchedXaction.h (GNC_IS_SX,GNC_SX): added for convenience.
+
+	* src/gnome/ui/gnc-plugin-page-sx-list-ui.xml:
+	* src/gnome/gnc-plugin-page-sx-list.[ch]: SX List as a plugin page.
+
+	* src/gnome/gnc-plugin-basic-commands.c: Call SX List plugin page,
+	not dialog.
+
+	* src/doc/sx.rst: Added.
+
 2006-07-15  Derek Atkins  <derek at ihtfp.com>
 
 	* src/business/business-core/gncAddress.[ch]:

Added: gnucash/branches/gda-dev/ChangeLog.2006
===================================================================
--- gnucash/branches/gda-dev/ChangeLog.2006	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/ChangeLog.2006	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,20818 @@
+2006-12-30 20:00  warlord
+
+	* [r15286] branches/2.0, branches/2.0/src/gnc-test-env: Re-apply
+	  the gnc-test-env patch because it changed in trunk.
+
+2006-12-30 19:46  warlord
+
+	* [r15285] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnc-test-env: Make sure we set
+	  DYLD_LIBRARY_PATH in the test environment (for MacOS X) Approved
+	  by jsled Merge from r15259
+
+2006-12-30 19:45  warlord
+
+	* [r15284] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c: Save and restore
+	  the visibility of the toolbar, statusbar, and summarybar. Fixes
+	  #106259. Merge from r15258
+	* [r15283] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/engine/kvp-scm.c: guile 1.8's SCM_EXACTP()
+	  throws an error when passed a non-number. So make sure we test
+	  SCM_NUMBERP() before SCM_EXACTP() This causes gnucash to crash
+	  on e.g. FC6 from the File Properties Menu. Approved by jsled
+	  Merge from r15252
+	* [r15282] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c: Avoid crash when
+	  renaming page in a page-less window by returning if there is no
+	  current page. Fixes #388841. Merge from r15249
+	* [r15281] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/backend/file/gnc-commodity-xml-v2.c: Load and
+	  store a commodity's KVP-frame (IFF it's non-empty). This would
+	  let us store something like an Asset Class. Approved by chris
+	  and others on -devel Merge from r15205
+
+2006-12-30 19:44  warlord
+
+	* [r15280] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/app-utils/gnc-ui-util.c: Check for potentially
+	  failed utf8 conversion of locale strings. bug#383270 Merge from
+	  r15204
+	* [r15279] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/engine/Split.c: Return zero instead of failing
+	  an assertion when the register asks a Split for its amount in a
+	  commodity that is not involved in the split's transaction. This
+	  will prevent the crash in bug #379625, but doesn't solve the
+	  underlying problem, which is a bug in the register. Merge from
+	  r15179 and r15180
+
+2006-12-29 23:30  plongstaff
+
+	* [r15278] branches/gda-dev/configure.in,
+	  branches/gda-dev/src/backend/Makefile.am: Improve configuration
+	  of gda backend. Now is --enable-gda and --disable-gda, with
+	  information taken from pkg-config info.
+
+2006-12-28 23:24  warlord
+
+	* [r15277] trunk, trunk/src/engine/test/test-numeric.c: Change
+	  around the test helper routines so we get the real test lineno.
+
+2006-12-28 22:52  andi5
+
+	* [r15276]
+	  branches/reshuffle-modules/src/network-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/tax/us/test/Makefile.am: Readd
+	  two --library-dirs to make MacOSX pass `make check'.
+
+2006-12-28 22:14  andi5
+
+	* [r15275] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Configure from a relative path
+	  on Windows, because gnucash-build-env will not work with
+	  top_srcdir begin absolute.
+
+2006-12-28 20:26  andi5
+
+	* [r15274]
+	  branches/reshuffle-modules/src/app-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/backend/file/test/Makefile.am,
+	  branches/reshuffle-modules/src/business/business-core/test/Makefile.am,
+	  branches/reshuffle-modules/src/engine/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-module/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnome-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/import-export/test/Makefile.am,
+	  branches/reshuffle-modules/src/network-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/locale-specific/us/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-gnome/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-system/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/standard-reports/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/stylesheets/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/utility-reports/test/Makefile.am,
+	  branches/reshuffle-modules/src/tax/us/test/Makefile.am: Add
+	  missing --library-dir's for tests. At least Windows needs them.
+
+2006-12-28 19:34  andi5
+
+	* [r15273] branches/reshuffle-modules/src/gnc-test-env: In
+	  gnc-test-env, define is-windows? based on whether the
+	  environment variable "OSTYPE" equals "msys". Adjust PATH
+	  environment variable on Windows.
+
+2006-12-28 19:30  andi5
+
+	* [r15272]
+	  branches/reshuffle-modules/src/app-utils/test/test-load-module,
+	  branches/reshuffle-modules/src/report/stylesheets/test/test-load-module:
+	  Use /bin/sh for compatibility reasons.
+
+2006-12-28 18:07  plongstaff
+
+	* [r15271] branches/gda-dev/src/gnome-utils/gnc-file.c: Patch by
+	  Mark Johnson (mrj001 at shaw.ca) to use a File Selector and allow a
+	  uri to be typed in.
+
+2006-12-28 14:33  andi5
+
+	* [r15270] trunk/packaging/win32/install.sh: No need to manually
+	  exclude test subdirectories from mingw build anymore, since
+	  r15260.
+
+2006-12-28 02:22  hampton
+
+	* [r15269] trunk/src/quotes/gnc-fq-check.in,
+	  trunk/src/quotes/gnc-fq-update.in: Add a check for the
+	  Date::Manip module (used by gnc-fq-helper).
+
+2006-12-28 02:21  hampton
+
+	* [r15268] trunk/src/scm/price-quotes.scm: Need to expliticly load
+	  the gnome-utils scheme code.
+
+2006-12-27 20:47  andi5
+
+	* [r15267] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/gnc-module/gnc-module.c: Add
+	  .dylib files to the list of files checked by the module system,
+	  because G_MODULE_SUFFIX is .so on MacOSX. Interim solution.
+
+2006-12-27 17:08  andi5
+
+	* [r15266] branches/reshuffle-modules,
+	  branches/reshuffle-modules/autogen.sh: MacOSX installed
+	  libtoolize as glibtoolize. Handle that in autogen.sh. merged
+	  from trunk, r15255.
+
+2006-12-27 16:57  andi5
+
+	* [r15265] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/gnc-test-env: Set
+	  DYLD_LIBRARY_PATH in gnc-test-env on --library-dir for MacOS X.
+
+2006-12-27 16:56  andi5
+
+	* [r15264] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/gnc-module/test/Makefile.am,
+	  branches/reshuffle-modules/src/network-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/tax/us/test/Makefile.am: Add
+	  --library-dir core-utils to a few tests, to ease the work of
+	  `make check'.
+
+2006-12-27 16:54  andi5
+
+	* [r15263] branches/reshuffle-modules,
+	  branches/reshuffle-modules/configure.in,
+	  branches/reshuffle-modules/doc/README.dependencies,
+	  branches/reshuffle-modules/packaging/gnucash.spec.in,
+	  branches/reshuffle-modules/src/backend/postgres/test/Makefile.am,
+	  branches/reshuffle-modules/src/bin/gnucash-valgrind.in,
+	  branches/reshuffle-modules/src/bin/gnucash.in,
+	  branches/reshuffle-modules/src/bin/overrides/gnucash-env.in,
+	  branches/reshuffle-modules/src/business/business-core/test/Makefile.am,
+	  branches/reshuffle-modules/src/engine/test-core/Makefile.am,
+	  branches/reshuffle-modules/src/engine/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-module/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-module/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-module/test/test-dynload.c,
+	  branches/reshuffle-modules/src/import-export/qif-io-core/test/Makefile.am,
+	  branches/reshuffle-modules/src/valgrind-gnucash.supp: Remove
+	  remaining ltdl stuff, i.e. -lltdl, LTDL_LIBRARY_PATH, the
+	  configure check. Make test-dynload.c use GModule too.
+
+2006-12-27 14:51  warlord
+
+	* [r15262] trunk, trunk/src/network-utils/test/Makefile.am,
+	  trunk/src/tax/us/test/Makefile.am: A few more changes for "make
+	  check" to succeed on MacOS-X. It now does. :)
+
+2006-12-27 13:54  warlord
+
+	* [r15261] trunk, trunk/src/gnc-module/test/Makefile.am: MacOS X
+	  needs core-utils in the library load path for "make check" to
+	  work. While we're at it, might as well pull in libcore-utils.la,
+	  just in case.
+
+2006-12-27 02:51  andi5
+
+	* [r15260] trunk, trunk/src/app-utils/test/Makefile.am,
+	  trunk/src/backend/file/test/Makefile.am,
+	  trunk/src/backend/postgres/test/Makefile.am,
+	  trunk/src/business/business-core/test/Makefile.am,
+	  trunk/src/calculation/test/Makefile.am,
+	  trunk/src/engine/test-core/Makefile.am,
+	  trunk/src/engine/test/Makefile.am,
+	  trunk/src/gnc-module/test/Makefile.am,
+	  trunk/src/gnc-module/test/misc-mods/Makefile.am,
+	  trunk/src/gnc-module/test/mod-bar/Makefile.am,
+	  trunk/src/gnc-module/test/mod-baz/Makefile.am,
+	  trunk/src/gnc-module/test/mod-foo/Makefile.am,
+	  trunk/src/gnome-utils/test/Makefile.am,
+	  trunk/src/import-export/hbci/test/Makefile.am,
+	  trunk/src/import-export/ofx/test/Makefile.am,
+	  trunk/src/import-export/qif-import/test/Makefile.am,
+	  trunk/src/import-export/qif/test/Makefile.am,
+	  trunk/src/import-export/test/Makefile.am,
+	  trunk/src/network-utils/test/Makefile.am,
+	  trunk/src/register/ledger-core/test/Makefile.am,
+	  trunk/src/register/register-core/test/Makefile.am,
+	  trunk/src/register/register-gnome/test/Makefile.am,
+	  trunk/src/report/locale-specific/us/test/Makefile.am,
+	  trunk/src/report/report-gnome/test/Makefile.am,
+	  trunk/src/report/report-system/test/Makefile.am,
+	  trunk/src/tax/us/test/Makefile.am: Do not build tests for `make
+	  all' but only `make check'. This is done by using the automake
+	  prefix check_ instead of noinst_. The modules created in
+	  src/gnc-module/test now use that prefix too, but with
+	  LDFLAGS="-rpath ${PWD}" to make them shared (we never install
+	  them).
+
+2006-12-26 16:47  warlord
+
+	* [r15259] trunk, trunk/src/gnc-test-env: Make sure we set
+	  DYLD_LIBRARY_PATH in the test environment (for MacOS X)
+
+2006-12-26 00:07  hampton
+
+	* [r15258] trunk/src/gnome-utils/gnc-main-window.c: Save and
+	  restore the visibility of the toolbar, statusbar, and
+	  summarybar. Fixes #106259. BP
+
+2006-12-25 20:18  hampton
+
+	* [r15257] branches/remove-group2/src/engine/Account.c: Protect
+	  against setting an existing tree node as the new root of the
+	  tree.
+
+2006-12-25 18:53  warlord
+
+	* [r15256] trunk, trunk/macros/ac_pkg_swig.m4: lack of swig should
+	  be a fatal error (if building from SVN). Fix AC_MSG_WARN ->
+	  AC_MSG_ERROR
+
+2006-12-25 18:38  warlord
+
+	* [r15255] trunk, trunk/autogen.sh: MacOSX installed libtoolize as
+	  glibtoolize. Handle that in autogen
+
+2006-12-25 18:29  hampton
+
+	* [r15254] branches/remove-group2, branches/remove-group2/AUTHORS,
+	  branches/remove-group2/ChangeLog, branches/remove-group2/README,
+	  branches/remove-group2/README.dependencies,
+	  branches/remove-group2/configure.in,
+	  branches/remove-group2/doc/README.francais,
+	  branches/remove-group2/lib/libqof/qof/Makefile.am,
+	  branches/remove-group2/lib/libqof/qof/qofquerycore.c,
+	  branches/remove-group2/lib/libqof/qof/qofsession-p.h,
+	  branches/remove-group2/lib/libqof/qof/qofsession.c,
+	  branches/remove-group2/lib/libqof/qof/qofsession.h,
+	  branches/remove-group2/macros/ac_pkg_swig.m4,
+	  branches/remove-group2/packaging/win32/custom.sh,
+	  branches/remove-group2/packaging/win32/dist.sh,
+	  branches/remove-group2/packaging/win32/functions,
+	  branches/remove-group2/packaging/win32/gnucash.iss.in,
+	  branches/remove-group2/packaging/win32/goffice-0.3.2-patch.diff,
+	  branches/remove-group2/packaging/win32/install.sh,
+	  branches/remove-group2/src/app-utils/Makefile.am,
+	  branches/remove-group2/src/app-utils/gnc-component-manager.c,
+	  branches/remove-group2/src/app-utils/gnc-ui-util.c,
+	  branches/remove-group2/src/app-utils/gnc-ui-util.h,
+	  branches/remove-group2/src/backend/file/gnc-account-xml-v2.c,
+	  branches/remove-group2/src/backend/file/gnc-backend-file.c,
+	  branches/remove-group2/src/backend/file/gnc-commodity-xml-v2.c,
+	  branches/remove-group2/src/backend/file/gnc-transaction-xml-v2.c,
+	  branches/remove-group2/src/backend/file/io-gncxml-v2.c,
+	  branches/remove-group2/src/backend/file/test/test-xml-account.c,
+	  branches/remove-group2/src/backend/file/test/test-xml-commodity.c,
+	  branches/remove-group2/src/backend/file/test/test-xml-pricedb.c,
+	  branches/remove-group2/src/backend/file/test/test-xml-transaction.c,
+	  branches/remove-group2/src/base-typemaps.i,
+	  branches/remove-group2/src/bin/Makefile.am,
+	  branches/remove-group2/src/bin/gnucash-bin.c,
+	  branches/remove-group2/src/business/business-core/Makefile.am,
+	  branches/remove-group2/src/business/business-core/file/gnc-invoice-xml-v2.c,
+	  branches/remove-group2/src/business/business-core/file/gnc-order-xml-v2.c,
+	  branches/remove-group2/src/business/business-core/gncAddress.c,
+	  branches/remove-group2/src/business/business-core/gncBillTerm.c,
+	  branches/remove-group2/src/business/business-core/gncCustomer.c,
+	  branches/remove-group2/src/business/business-core/gncEmployee.c,
+	  branches/remove-group2/src/business/business-core/gncEntry.c,
+	  branches/remove-group2/src/business/business-core/gncInvoice.c,
+	  branches/remove-group2/src/business/business-core/gncJob.c,
+	  branches/remove-group2/src/business/business-core/gncOrder.c,
+	  branches/remove-group2/src/business/business-core/gncTaxTable.c,
+	  branches/remove-group2/src/business/business-core/gncVendor.c,
+	  branches/remove-group2/src/business/business-gnome/Makefile.am,
+	  branches/remove-group2/src/business/business-reports/aging.scm,
+	  branches/remove-group2/src/business/business-reports/invoice.scm,
+	  branches/remove-group2/src/business/business-utils/Makefile.am,
+	  branches/remove-group2/src/business/dialog-tax-table/Makefile.am,
+	  branches/remove-group2/src/core-utils/Makefile.am,
+	  branches/remove-group2/src/core-utils/gnc-gobject-utils.c,
+	  branches/remove-group2/src/engine/Account.c,
+	  branches/remove-group2/src/engine/Makefile.am,
+	  branches/remove-group2/src/engine/SchedXaction.c,
+	  branches/remove-group2/src/engine/Split.c,
+	  branches/remove-group2/src/engine/TransLog.c,
+	  branches/remove-group2/src/engine/binreloc.c,
+	  branches/remove-group2/src/engine/binreloc.h,
+	  branches/remove-group2/src/engine/gnc-budget.c,
+	  branches/remove-group2/src/engine/gnc-commodity.c,
+	  branches/remove-group2/src/engine/gnc-lot.c,
+	  branches/remove-group2/src/engine/gnc-path.c,
+	  branches/remove-group2/src/engine/gnc-path.h,
+	  branches/remove-group2/src/engine/gnc-pricedb.c,
+	  branches/remove-group2/src/engine/gncla-dir.h.in,
+	  branches/remove-group2/src/engine/kvp-scm.c,
+	  branches/remove-group2/src/gnc-module/Makefile.am,
+	  branches/remove-group2/src/gnc-module/gnc-module.c,
+	  branches/remove-group2/src/gnc-module/gnc-module.h,
+	  branches/remove-group2/src/gnome-utils/Makefile.am,
+	  branches/remove-group2/src/gnome-utils/argv-list-converters.c,
+	  branches/remove-group2/src/gnome-utils/argv-list-converters.h,
+	  branches/remove-group2/src/gnome-utils/dialog-transfer.c,
+	  branches/remove-group2/src/gnome-utils/druid-gconf-setup.c,
+	  branches/remove-group2/src/gnome-utils/gnc-dense-cal.c,
+	  branches/remove-group2/src/gnome-utils/gnc-file.c,
+	  branches/remove-group2/src/gnome-utils/gnc-frequency.c,
+	  branches/remove-group2/src/gnome-utils/gnc-gnome-utils.c,
+	  branches/remove-group2/src/gnome-utils/gnc-html.c,
+	  branches/remove-group2/src/gnome-utils/gnc-main-window.c,
+	  branches/remove-group2/src/gnome-utils/gnc-plugin-file-history.c,
+	  branches/remove-group2/src/gnome-utils/gnc-tree-view.c,
+	  branches/remove-group2/src/gnome/Makefile.am,
+	  branches/remove-group2/src/gnome/dialog-sxsincelast.c,
+	  branches/remove-group2/src/gnome/druid-hierarchy.c,
+	  branches/remove-group2/src/gnome/druid-loan.c,
+	  branches/remove-group2/src/gnome/druid-merge.c,
+	  branches/remove-group2/src/gnome/glade/account.glade,
+	  branches/remove-group2/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/remove-group2/src/gnome/top-level.c,
+	  branches/remove-group2/src/gnome/ui/gnc-plugin-basic-commands-ui.xml,
+	  branches/remove-group2/src/import-export/hbci/gnc-file-aqb-import.c,
+	  branches/remove-group2/src/import-export/hbci/gnc-hbci-getbalance.c,
+	  branches/remove-group2/src/import-export/log-replay/gnc-log-replay.c,
+	  branches/remove-group2/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/remove-group2/src/import-export/qif-import/Makefile.am,
+	  branches/remove-group2/src/import-export/qif-import/druid-qif-import.c,
+	  branches/remove-group2/src/import-export/qif-import/qif-file.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-parse.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/remove-group2/src/pixmaps/Makefile.am,
+	  branches/remove-group2/src/pixmaps/gnucash-icon.ico,
+	  branches/remove-group2/src/report/report-gnome/Makefile.am,
+	  branches/remove-group2/src/report/report-gnome/gnc-plugin-page-report.c,
+	  branches/remove-group2/src/report/report-system/Makefile.am,
+	  branches/remove-group2/src/report/report-system/report.scm,
+	  branches/remove-group2/src/report/standard-reports/account-piecharts.scm,
+	  branches/remove-group2/src/report/standard-reports/category-barchart.scm:
+	  Sync changes 15066:15252 into the branch.
+
+2006-12-25 14:16  warlord
+
+	* [r15253] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/dialog-account.c: Correct account
+	  compatibility check with top level account. #389317 Merge from
+	  r14923.
+
+2006-12-23 21:10  warlord
+
+	* [r15252] trunk, trunk/src/engine/kvp-scm.c: guile 1.8's
+	  SCM_EXACTP() throws an error when passed a non-number. So make
+	  sure we test SCM_NUMBERP() before SCM_EXACTP() This causes
+	  gnucash to crash on e.g. FC6 from the File Properties Menu. BP
+
+2006-12-23 18:50  andi5
+
+	* [r15251] trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/gnucash.iss.in: Use `cp -a' in dist.sh.
+	  Let inno create guile.bat (which sets GUILE_LOAD_PATH) and
+	  slibcat, because the user running GnuCash later on may not have
+	  the rights to do that.
+
+2006-12-23 12:36  andi5
+
+	* [r15250] trunk/packaging/win32/install.sh: Fix slib installation
+	  within inst_guile, a regression introduced by r15246.
+
+2006-12-23 06:51  andi5
+
+	* [r15249] trunk/src/gnome-utils/gnc-main-window.c: Avoid crash
+	  when renaming page in a page-less window by returning if there
+	  is no current page. Fixes #388841. BP
+
+2006-12-23 06:41  andi5
+
+	* [r15248] trunk/packaging/win32/dist.sh: Strip libdir directives
+	  in distributed libtool .la files, because they may point to
+	  still existing libraries that will be dlopened and conflict with
+	  those loaded on startup.
+
+2006-12-22 11:10  andi5
+
+	* [r15247] trunk, trunk/packaging/win32/install.sh: Fix install.sh
+	  typo, spotted by hfelton.
+
+2006-12-21 23:09  andi5
+
+	* [r15246] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/gnucash.iss.in,
+	  trunk/packaging/win32/install.sh: Various install.sh
+	  improvements: * Use $GNUCASH_DIR\\{repos,build,inst,dist} as
+	  directories for the source, build, installation and packaging *
+	  `mkdir -p' cannot handle backslashes, use unix paths * Downgrade
+	  to ORBit2-2.13.3 * Print command to create /etc/profile.d if
+	  needed
+
+2006-12-21 19:28  andi5
+
+	* [r15245] trunk/src/app-utils/Makefile.am,
+	  trunk/src/bin/Makefile.am,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-utils/Makefile.am,
+	  trunk/src/engine/Makefile.am, trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am: Add include
+	  directives for ${top_builddir}/src/swig-runtime.h. Merged r15229
+	  from branches/reshuffle-modules.
+
+2006-12-21 19:19  andi5
+
+	* [r15244] trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/functions,
+	  trunk/packaging/win32/install.sh: install.sh: Ease registration
+	  of environment variables. Fix dist.sh to set PATH for unzip and
+	  gconftool-2.
+
+2006-12-21 15:24  plongstaff
+
+	* [r15243] branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h: Remove
+	  unused SQL value handlers
+
+2006-12-21 15:23  plongstaff
+
+	* [r15242] branches/gda-dev/configure.in: Add --with-libgda flag
+	  to all user to specify where libgda is
+
+2006-12-21 14:10  cstim
+
+	* [r15241] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/dist.sh, trunk/packaging/win32/install.sh:
+	  Add code for download/installation of Inno Setup Compiler, as
+	  suggested by hfelton.
+
+2006-12-21 13:53  cstim
+
+	* [r15240] trunk/packaging/win32/install.sh: Minor message
+	  improvement by hfelton.
+
+2006-12-21 01:07  andi5
+
+	* [r15239] trunk/packaging/win32/dist.sh: Do not distribute
+	  share\guile\1.6\slibcat and let slib recreate it once GnuCash is
+	  started for the first time.
+
+2006-12-21 00:05  bock
+
+	* [r15238] branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/test/Makefile.am: *
+	  src/import-export/test/Makefile.am: Minor fix so build completes
+	  on Ubuntu/Debian (tested on Edgy)
+
+2006-12-20 15:27  cstim
+
+	* [r15237] trunk/src/app-utils/gnc-ui-util.c: Convert even more
+	  strings of locale into utf8, as suggested by Jon Arney.
+
+2006-12-20 15:26  cstim
+
+	* [r15236] trunk/src/bin/gnucash-bin.c: Remove windows-specific
+	  ignoring of engine_is_initialized check.
+
+2006-12-19 16:37  cstim
+
+	* [r15235] trunk/packaging/win32/dist.sh: Some forgotten file for
+	  copying
+
+2006-12-19 09:07  andi5
+
+	* [r15234] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/app-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/backend/file/test/Makefile.am,
+	  branches/reshuffle-modules/src/engine/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-module/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-test-env,
+	  branches/reshuffle-modules/src/gnome-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/network-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/locale-specific/us/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-gnome/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-system/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/standard-reports/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/stylesheets/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/utility-reports/test/Makefile.am,
+	  branches/reshuffle-modules/src/tax/us/test/Makefile.am: Readd
+	  --library-dir to gnc-test-env and fix all tests that now lacked
+	  some, mostly gnc-module. Also avoid leading slashes for
+	  adapt-dirsep, because they would be stripped.
+	* [r15233] branches/reshuffle-modules,
+	  branches/reshuffle-modules/configure.in,
+	  branches/reshuffle-modules/src/app-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/backend/file/test/Makefile.am,
+	  branches/reshuffle-modules/src/bin/overrides/gnucash-build-env.in,
+	  branches/reshuffle-modules/src/bin/test/Makefile.am,
+	  branches/reshuffle-modules/src/business/business-core/test/Makefile.am,
+	  branches/reshuffle-modules/src/engine/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnc-module/test/Makefile.am,
+	  branches/reshuffle-modules/src/gnome-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/import-export/test/Makefile.am,
+	  branches/reshuffle-modules/src/network-utils/test/Makefile.am,
+	  branches/reshuffle-modules/src/register/register-core/test/Makefile.am,
+	  branches/reshuffle-modules/src/register/register-gnome/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/locale-specific/us/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-gnome/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-gnome/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-system/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/standard-reports/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/stylesheets/test/Makefile.am,
+	  branches/reshuffle-modules/src/report/utility-reports/test/Makefile.am,
+	  branches/reshuffle-modules/src/tax/us/test/Makefile.am: Fix
+	  tests and trim TESTS_ENVIRONMENT's to minimum versions. Update
+	  gnc-build-env.in. Readd report-gnome/test directory.
+
+2006-12-19 09:06  andi5
+
+	* [r15232] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/gnc-test-env: Clean up
+	  gnc-test-env * --gnc-module-dir params are added to
+	  $GNC_MODULE_PATH * --guile-load-dir params are added to
+	  $GUILE_LOAD_PATH * Drop --library-dir, $LD_LIBRARY_PATH and
+	  $LTDL_LIBRARY_PATH
+	* [r15231] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/app-utils/gncmod-app-utils.c,
+	  branches/reshuffle-modules/src/backend/file/gncmod-backend-file.c,
+	  branches/reshuffle-modules/src/business/business-core/businessmod-core.c,
+	  branches/reshuffle-modules/src/business/business-core/file/gncmod-business-backend-file.c,
+	  branches/reshuffle-modules/src/business/business-gnome/businessmod-gnome.c,
+	  branches/reshuffle-modules/src/business/business-utils/gncmod-business-utils.c,
+	  branches/reshuffle-modules/src/business/dialog-tax-table/gncmod-dialog-tax-table.c,
+	  branches/reshuffle-modules/src/calculation/gncmod-calculation.c,
+	  branches/reshuffle-modules/src/engine/gncmod-engine.c,
+	  branches/reshuffle-modules/src/engine/test-core/gncmod-test-engine.c,
+	  branches/reshuffle-modules/src/gnc-module/test/misc-mods/agedver.c,
+	  branches/reshuffle-modules/src/gnc-module/test/misc-mods/futuremodsys.c,
+	  branches/reshuffle-modules/src/gnc-module/test/misc-mods/incompatdep.c,
+	  branches/reshuffle-modules/src/gnc-module/test/mod-bar/gnc-mod-bar.c,
+	  branches/reshuffle-modules/src/gnc-module/test/mod-baz/gnc-mod-baz.c,
+	  branches/reshuffle-modules/src/gnc-module/test/mod-foo/gnc-mod-foo.c,
+	  branches/reshuffle-modules/src/gnome-search/gncmod-gnome-search.c,
+	  branches/reshuffle-modules/src/gnome-utils/gncmod-gnome-utils.c,
+	  branches/reshuffle-modules/src/import-export/binary-import/gncmod-binary-import.c,
+	  branches/reshuffle-modules/src/import-export/gncmod-generic-import.c,
+	  branches/reshuffle-modules/src/import-export/hbci/gncmod-hbci.c,
+	  branches/reshuffle-modules/src/import-export/log-replay/gncmod-log-replay.c,
+	  branches/reshuffle-modules/src/import-export/ofx/gncmod-ofx-import.c,
+	  branches/reshuffle-modules/src/import-export/qif-import/gncmod-qif-import.c,
+	  branches/reshuffle-modules/src/import-export/qif-io-core/gncmod-qifiocore.c,
+	  branches/reshuffle-modules/src/network-utils/gncmod-network-utils.c,
+	  branches/reshuffle-modules/src/register/ledger-core/gncmod-ledger-core.c,
+	  branches/reshuffle-modules/src/register/register-core/gncmod-register-core.c,
+	  branches/reshuffle-modules/src/register/register-gnome/gncmod-register-gnome.c,
+	  branches/reshuffle-modules/src/report/locale-specific/us/gncmod-locale-reports-us.c,
+	  branches/reshuffle-modules/src/report/report-gnome/gncmod-report-gnome.c,
+	  branches/reshuffle-modules/src/report/report-system/gncmod-report-system.c,
+	  branches/reshuffle-modules/src/report/standard-reports/gncmod-standard-reports.c,
+	  branches/reshuffle-modules/src/report/stylesheets/gncmod-stylesheets.c,
+	  branches/reshuffle-modules/src/report/utility-reports/gncmod-utility-reports.c,
+	  branches/reshuffle-modules/src/tax/us/gncmod-tax-us.c,
+	  branches/reshuffle-modules/src/test-core/gncmod-test.c: Remove
+	  all prefixes "libgncmod_my_mod_LTX_".
+	* [r15230] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/gnc-module/gnc-module.c: Use
+	  GModule instead of libltdl. * Load *.G_MODULE_SUFFIX, not *.la *
+	  Use g_module_{open,symbol,close,error} for
+	  lt_dl{open,sym,close,error} * Drop lt_dlinit
+
+2006-12-19 09:05  andi5
+
+	* [r15229] branches/reshuffle-modules,
+	  branches/reshuffle-modules/src/app-utils/Makefile.am,
+	  branches/reshuffle-modules/src/bin/Makefile.am,
+	  branches/reshuffle-modules/src/business/business-core/Makefile.am,
+	  branches/reshuffle-modules/src/business/business-gnome/Makefile.am,
+	  branches/reshuffle-modules/src/business/business-utils/Makefile.am,
+	  branches/reshuffle-modules/src/engine/Makefile.am,
+	  branches/reshuffle-modules/src/gnome-utils/Makefile.am,
+	  branches/reshuffle-modules/src/gnome/Makefile.am,
+	  branches/reshuffle-modules/src/import-export/qif-import/Makefile.am,
+	  branches/reshuffle-modules/src/report/report-gnome/Makefile.am:
+	  Add include directives for ${top_builddir}/src/swig-runtime.h.
+
+2006-12-18 20:16  andi5
+
+	* [r15228] branches/reshuffle-modules: Branch from trunk at r15227.
+
+2006-12-18 19:39  andi5
+
+	* [r15227] trunk/packaging/win32/install.sh: install.sh: Make
+	  gnome installation relocatable again.
+
+2006-12-18 15:59  cstim
+
+	* [r15226] trunk/packaging/win32/gnucash.iss.in,
+	  trunk/src/pixmaps/Makefile.am: Install the .ico icon file into
+	  $datadir/gnucash/pixmaps instead of $datadir/pixmaps.
+
+2006-12-18 15:35  cstim
+
+	* [r15225] trunk/packaging/win32/gnucash.iss.in,
+	  trunk/src/pixmaps/Makefile.am,
+	  trunk/src/pixmaps/gnucash-icon.ico: Add gnucash icon in Windows
+	  .ico format for windows icon
+
+2006-12-18 02:53  andi5
+
+	* [r15224] trunk/packaging/win32/install.sh: install.sh: Do not
+	  call pkg-config-msys.sh from within pkg-config-msys.sh. Use
+	  correct header directory for regex (differs between v3.8 and
+	  v3.8.g.3). Untested.
+
+2006-12-17 18:32  andi5
+
+	* [r15223] trunk, trunk/macros/ac_pkg_swig.m4: Do not determine
+	  SWIG_LIB by running `swig -swiglib`, because we do not make use
+	  of it and it made problems on MinGW (output was two lines).
+
+2006-12-16 17:50  warlord
+
+	* [r15222] trunk, trunk/src/bin/gnucash-bin.c: Update for 2.0.3
+	  release
+
+2006-12-16 02:50  andi5
+
+	* [r15221] trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/functions: Revert r15216, because the
+	  actual guile dll file names differ from those in builds of
+	  revisions <15213. Replace shebang in packaging/win32/functions
+	  by a local variables list.
+
+2006-12-15 22:31  cstim
+
+	* [r15220] branches/2.0/po/de.po: Update German translation; fixes
+	  bug#383393.
+
+2006-12-15 18:39  cstim
+
+	* [r15219] trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/gnucash.iss.in: Fix missing files of
+	  dist.sh. Improve iss script.
+
+2006-12-15 18:18  cstim
+
+	* [r15218] trunk/packaging/win32/gnucash.iss.in: Fix typo
+
+2006-12-15 18:04  cstim
+
+	* [r15217] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/gnucash.iss.in: Improve Inno Setup
+	  Compiler script; should probably be able to package the outcome
+	  of dist.sh into one setup file.
+
+2006-12-15 15:10  cstim
+
+	* [r15216] trunk/packaging/win32/dist.sh: Fix guile DLL names that
+	  have additional trailing numbers
+
+2006-12-15 14:51  cstim
+
+	* [r15215] trunk/packaging/win32/install.sh: Use the installed
+	  PKG_CONFIG instead of what might be available in the PATH
+
+2006-12-15 14:36  andi5
+
+	* [r15214] trunk/packaging/win32/dist.sh,
+	  trunk/packaging/win32/functions,
+	  trunk/packaging/win32/install.sh: Add dist.sh, a script that
+	  extracts all necessary files needed to run GnuCash on Windows
+	  and puts them into $DIST_DIR. The plan is to call the Inno Setup
+	  Compiler from it and create gnucash-$ver-setup.exe with one
+	  command. A complete GnuCash build on MinGW is needed to run it.
+	  Factor out common functions.
+
+2006-12-14 22:32  andi5
+
+	* [r15213] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Install.sh improvements: *
+	  Replace RegEx-Gnu by RegEx-Spencer 3.8, because GtkHTML is
+	  linked against that * Update fontconfig, use expat-2.0.0.zip
+	  from ftp.gnome.org, drop inst_expat * Use
+	  $GNOME_WIN32_URL/dependencies for other packages too * Build
+	  guile with -avoid-version
+
+2006-12-14 02:30  plongstaff
+
+	* [r15212] branches/gda-dev/src/backend/gda,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-lots-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-slots-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: Use
+	  QofAccessFunc/QofSetterFunc function signatures instead of
+	  creating new ones
+
+2006-12-12 11:41  cstim
+
+	* [r15211] trunk/src/gnome/dialog-sxsincelast.c: Change enum names
+	  to avoid name collision of IGNORE identifier, especially with
+	  win32 headers.
+
+2006-12-12 11:36  cstim
+
+	* [r15210] trunk/AUTHORS: Add author of r15203, 15206, 15207,
+	  15208.
+
+2006-12-12 11:34  cstim
+
+	* [r15209] trunk/lib/libqof/qof/qofquerycore.c: Code cleanup: Move
+	  variable declaration into block where it is used.
+
+2006-12-12 11:33  cstim
+
+	* [r15208] trunk/lib/libqof/qof/qofquerycore.c: Check for return
+	  value of regcomp() and return NULL on failure, as suggested by
+	  Jon Arney.
+
+2006-12-12 11:28  cstim
+
+	* [r15207] trunk/src/gnome-utils/gnc-frequency.c: Rename private
+	  min/max functions to avoid name collisions with existing
+	  functions of macros, as suggested by Jon Arney
+
+2006-12-12 11:24  cstim
+
+	* [r15206] trunk/src/gnome/druid-loan.c: Change enum names to
+	  avoid name collisions, especially with win32 headers.
+
+2006-12-12 02:51  warlord
+
+	* [r15205] trunk, trunk/src/backend/file/gnc-commodity-xml-v2.c:
+	  Load and store a commodity's KVP-frame (IFF it's non-empty).
+	  This would let us store something like an Asset Class. BP
+
+2006-12-11 22:28  cstim
+
+	* [r15204] trunk/src/app-utils/gnc-ui-util.c: Check for
+	  potentially failed utf8 conversion of locale strings. bug#383270
+	  BP
+
+2006-12-11 17:48  cstim
+
+	* [r15203] trunk/src/app-utils/gnc-component-manager.c,
+	  trunk/src/gnc-module/gnc-module.c,
+	  trunk/src/gnc-module/gnc-module.h: Rename variables to avoid
+	  potential conflicts with C/C++ keywords.
+
+2006-12-10 23:36  wilddev
+
+	* [r15200] tags/2.0.3: Tagging the 2.0.3 release of GnuCash
+
+2006-12-10 23:35  wilddev
+
+	* [r15199] branches/2.0/ChangeLog, branches/2.0/NEWS,
+	  branches/2.0/configure.in: update to release 2.0.3
+
+2006-12-09 17:41  plongstaff
+
+	* [r15198] branches/gda-dev/GDA_STATUS: Update GDA status
+
+2006-12-09 17:36  plongstaff
+
+	* [r15197] branches/gda-dev/src/backend/gda/ddl: Remove
+	  obsolete/unused ddl files
+
+2006-12-09 03:43  plongstaff
+
+	* [r15196] branches/gda-dev/src/engine/Account.c,
+	  branches/gda-dev/src/engine/SchedXaction.c: Add
+	  begin_edit/commit_edit around 2 areas where multiple calls are
+	  used to set up an object.
+	* [r15195] branches/gda-dev/src/gnome/dialog-scheduledxaction.c:
+	  Add begin_edit()/commit_edit() around lines filling in new sx
+
+2006-12-09 03:39  plongstaff
+
+	* [r15194] branches/gda-dev/src/bin/gnucash-gdb.in: Add
+	  gnucash-gdb.in to create gnucash-gdb
+
+2006-12-09 00:45  plongstaff
+
+	* [r15193] branches/gda-dev/src/backend/gda/gnc-backend-gda.c: Fix
+	  use of uninitialized variables
+
+2006-12-08 18:48  plongstaff
+
+	* [r15192] branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-lots-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-lots-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-slots-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-slots-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.h: 1) Add
+	  missing files 2) Add initial SX save/restore - will probably
+	  crash 3) When committing clean transaction, commit any dirty
+	  splits
+
+2006-12-08 18:45  plongstaff
+
+	* [r15191] branches/gda-dev/src/engine/SchedXaction.c,
+	  branches/gda-dev/src/engine/SchedXaction.h,
+	  branches/gda-dev/src/engine/Transaction.c: 1) Make some function
+	  arguments 'const' 2) Add GNC_SX macro similar to GObject cast
+	  macros
+
+2006-12-07 14:35  plongstaff
+
+	* [r15190] branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: 1) Use
+	  GObject-style macros instead of casts 2) Prevent nested queries
+	  to solve problem where a split query triggers rerunning the same
+	  query
+
+2006-12-07 14:32  plongstaff
+
+	* [r15189] branches/gda-dev/src/engine/Split.h,
+	  branches/gda-dev/src/engine/gnc-lot.c,
+	  branches/gda-dev/src/engine/gnc-lot.h,
+	  branches/gda-dev/src/engine/gnc-pricedb.c,
+	  branches/gda-dev/src/engine/gnc-pricedb.h: 1) Add
+	  GNC_SPLIT/GNC_IS_SPLIT and GNC_LOT/GNC_IS_LOT macros 2) Make
+	  some arguments const where appropriate
+
+2006-12-06 20:03  andi5
+
+	* [r15188] trunk/lib/libqof/qof/qofsession.c,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-html.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Fix some
+	  printf's of NULL in DEBUG, ENTER and LEAVE macro invocations.
+
+2006-12-06 03:36  plongstaff
+
+	* [r15187] branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h: Replace some
+	  remaining SQL with GdaQuery
+
+2006-12-06 03:16  plongstaff
+
+	* [r15186] branches/gda-dev/lib/libqof/qof/gnc-numeric.c,
+	  branches/gda-dev/lib/libqof/qof/gnc-numeric.h: Add support for
+	  gnc_numeric as a boxed GValue
+
+2006-12-05 21:21  cstim
+
+	* [r15185] trunk/AUTHORS: Add Author for r15184 bugfix
+
+2006-12-05 21:19  cstim
+
+	* [r15184] trunk/src/gnome/dialog-sxsincelast.c: Remove unused
+	  variables and dead code. Patch provided by Jerry Quinn. Fixes
+	  #347084.
+
+2006-12-05 21:15  cstim
+
+	* [r15183] trunk/AUTHORS: Updates for changed areas of
+	  contribution; add andi5 to top. Feel free to adjust this to your
+	  liking again.
+
+2006-12-04 10:36  cstim
+
+	* [r15181] branches/2.0/po/sk.po: Updated Slovak translation by
+	  Zdenko Podobny
+
+2006-12-04 03:09  warlord
+
+	* [r15180] trunk, trunk/src/engine/Split.c: Print out more
+	  information about "broken" splits. Extends r15179 which should
+	  fix the crash of bug #379625 NOTE: it now prints zeros, which
+	  could confuse the user... BP
+
+2006-12-04 02:20  chris
+
+	* [r15179] trunk/src/engine/Split.c: Return zero instead of
+	  failing an assertion when the register asks a Split for its
+	  amount in a commodity that is not involved in the split's
+	  transaction. This will prevent the crash in bug #379625, but
+	  doesn't solve the underlying problem, which is a bug in the
+	  register. BP
+
+2006-12-03 02:10  warlord
+
+	* [r15178] branches/2.0, branches/2.0/ChangeLog: Fix a changelog
+	  entry from r15173 to specify bug #381467
+
+2006-12-03 02:03  warlord
+
+	* [r15177] branches/2.0,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c: Remove unused
+	  variables. merge from r15170.
+	* [r15176] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c: Factor out some
+	  quiting code from gnc_main_window_delete_event() and
+	  gnc_main_window_cmd_file_quit(). The new implementation fixes
+	  two bugs - one in each of the previous implementations. The bug
+	  in the gnc_main_window_cmd_file_quit() code was a race condition
+	  whereby one could quit the application without finishing pending
+	  changes in pages. This would happen if the began a save,
+	  modified the page during the save, and then triggered the
+	  File->Quit command before the save completed. For the register
+	  page, this sequence was possible, even though most of the UI
+	  controls are disabled during save. The bug in the
+	  gnc_main_window_delete_event() code was that it didn't check for
+	  an in-progress save before prompting the user to save a dirty
+	  book. Merge from r15169
+	* [r15175] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/lib/libqof/qof/qofsession-p.h,
+	  branches/2.0/lib/libqof/qof/qofsession.c,
+	  branches/2.0/lib/libqof/qof/qofsession.h,
+	  branches/2.0/src/gnome-utils/gnc-file.c: Fix bug #353450 - Crash
+	  on quit during save. Add a lock to the QofSession object, and
+	  use it in qof_session_save() to protect against re-entrance. The
+	  lock always starts at 1 and is 0 while inside
+	  qof_session_save(). If another call is made to
+	  qof_session_save() while one is in progress, the lock will
+	  momentarily drop below 0 before returning to zero. Note: The
+	  per-session nature of the lock would make it appear that we
+	  support concurrent saving of different sessions. In fact, we do
+	  not, because the file backend blocks the main process until the
+	  forked gzip process is finished, and it only knows how to keep
+	  track of one child pid at a time. Merge from r15168
+
+2006-12-03 02:02  warlord
+
+	* [r15174] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/dialog-transfer.c: Save window size
+	  and position of the transfer dialog. Merge from r15166
+	* [r15173] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c: When progress
+	  bar is showing, do not make menus and toolbars insensitive, but
+	  rather the underlying action groups. This way even keyboard
+	  accelerators will not make sneaking calls while saving. Merge
+	  from r15162
+	* [r15172] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/backend/file/gnc-transaction-xml-v2.c,
+	  branches/2.0/src/business/business-core/file/gnc-invoice-xml-v2.c,
+	  branches/2.0/src/business/business-core/file/gnc-order-xml-v2.c,
+	  branches/2.0/src/business/business-core/gncBillTerm.c,
+	  branches/2.0/src/business/business-core/gncCustomer.c,
+	  branches/2.0/src/business/business-core/gncEmployee.c,
+	  branches/2.0/src/business/business-core/gncEntry.c,
+	  branches/2.0/src/business/business-core/gncInvoice.c,
+	  branches/2.0/src/business/business-core/gncJob.c,
+	  branches/2.0/src/business/business-core/gncOrder.c,
+	  branches/2.0/src/business/business-core/gncTaxTable.c,
+	  branches/2.0/src/business/business-core/gncVendor.c,
+	  branches/2.0/src/engine/Account.c,
+	  branches/2.0/src/engine/SchedXaction.c,
+	  branches/2.0/src/engine/gnc-budget.c,
+	  branches/2.0/src/engine/gnc-commodity.c,
+	  branches/2.0/src/engine/gnc-lot.c,
+	  branches/2.0/src/engine/gnc-pricedb.c: Replace 'static inline'
+	  by 'static' for functions that are used by function pointers.
+	  Fixes some compiler issues when building without certain
+	  optimizations. Merge from r15161
+
+2006-12-03 02:01  warlord
+
+	* [r15171] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c: Remove "closing
+	  last window" confirmation dialog and corresponding warning
+	  (reverting r14580). Fixes #355392. Merge from r14944
+
+2006-12-03 01:40  chris
+
+	* [r15170] trunk/src/gnome-utils/gnc-main-window.c: Remove unused
+	  variables.
+
+2006-12-03 00:56  chris
+
+	* [r15169] trunk/src/gnome-utils/gnc-main-window.c: Factor out
+	  some quiting code from gnc_main_window_delete_event() and
+	  gnc_main_window_cmd_file_quit(). The new implementation fixes
+	  two bugs - one in each of the previous implementations. The bug
+	  in the gnc_main_window_cmd_file_quit() code was a race condition
+	  whereby one could quit the application without finishing pending
+	  changes in pages. This would happen if the began a save,
+	  modified the page during the save, and then triggered the
+	  File->Quit command before the save completed. For the register
+	  page, this sequence was possible, even though most of the UI
+	  controls are disabled during save. The bug in the
+	  gnc_main_window_delete_event() code was that it didn't check for
+	  an in-progress save before prompting the user to save a dirty
+	  book.
+
+2006-12-02 22:13  chris
+
+	* [r15168] trunk/lib/libqof/qof/qofsession-p.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/lib/libqof/qof/qofsession.h,
+	  trunk/src/gnome-utils/gnc-file.c: Fix bug #353450 - Crash on
+	  quit during save. Add a lock to the QofSession object, and use
+	  it in qof_session_save() to protect against re-entrance. The
+	  lock always starts at 1 and is 0 while inside
+	  qof_session_save(). If another call is made to
+	  qof_session_save() while one is in progress, the lock will
+	  momentarily drop below 0 before returning to zero. Note: The
+	  per-session nature of the lock would make it appear that we
+	  support concurrent saving of different sessions. In fact, we do
+	  not, because the file backend blocks the main process until the
+	  forked gzip process is finished, and it only knows how to keep
+	  track of one child pid at a time.
+
+2006-12-02 18:03  andi5
+
+	* [r15167] trunk, trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/argv-list-converters.c,
+	  trunk/src/gnome-utils/argv-list-converters.h,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c: Drop
+	  argv-list-converters.[ch], because its use was removed by r12942
+	  when we switched to a more C-based start-up.
+
+2006-12-02 02:46  andi5
+
+	* [r15166] trunk, trunk/src/gnome-utils/dialog-transfer.c: Save
+	  window size and position of the transfer dialog.
+
+2006-11-30 02:28  plongstaff
+
+	* [r15165] branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: 1)
+	  Remove unnecessary 2nd DELETE when saving slots 2) Start move
+	  toward GValues internally in GDA backend 3) Use GdaQuery for
+	  DELETE operations
+
+2006-11-30 01:16  plongstaff
+
+	* [r15164] branches/gda-dev/src/engine/gnc-budget.c,
+	  branches/gda-dev/src/engine/gnc-budget.h,
+	  branches/gda-dev/src/gnome/gnc-plugin-page-budget.c: Wrap budget
+	  set routines with begin_edit/commit_edit
+
+2006-11-29 22:12  plongstaff
+
+	* [r15163] branches/gda-dev/src/backend/gda/Makefile.am,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: 1)
+	  Initial framework for handling sched transactions 2) Use
+	  GdaQuery for initial load 3) Use GdaDataHandlers for rendering
+	  objects. Good for everything except dates which are rendered as
+	  'DD-MM-YYYY' instead of 'YYYY-MM-DD'.
+
+2006-11-29 19:46  andi5
+
+	* [r15162] trunk, trunk/src/gnome-utils/gnc-main-window.c: When
+	  progress bar is showing, do not make menus and toolbars
+	  insensitive, but rather the underlying action groups. This way
+	  even keyboard accelerators will not make sneaking calls while
+	  saving. BP
+
+2006-11-29 15:13  cstim
+
+	* [r15161] trunk/src/backend/file/gnc-transaction-xml-v2.c,
+	  trunk/src/business/business-core/file/gnc-invoice-xml-v2.c,
+	  trunk/src/business/business-core/file/gnc-order-xml-v2.c,
+	  trunk/src/business/business-core/gncAddress.c,
+	  trunk/src/business/business-core/gncBillTerm.c,
+	  trunk/src/business/business-core/gncCustomer.c,
+	  trunk/src/business/business-core/gncEmployee.c,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncJob.c,
+	  trunk/src/business/business-core/gncOrder.c,
+	  trunk/src/business/business-core/gncTaxTable.c,
+	  trunk/src/business/business-core/gncVendor.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/SchedXaction.c,
+	  trunk/src/engine/gnc-budget.c, trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-lot.c, trunk/src/engine/gnc-pricedb.c:
+	  Replace 'static inline' by 'static' for functions that are used
+	  by function pointers.
+
+2006-11-29 10:28  cstim
+
+	* [r15160] branches/2.0/po/hu.po: Update 100% complete Hungarian
+	  translation by Sulyok Peti.
+
+2006-11-28 16:24  plongstaff
+
+	* [r15159] branches/gda-dev/src/gnome/gnc-plugin-page-budget.c:
+	  Add begin_edit/commit_edit around where budget info is set from
+	  dialog
+	* [r15158] branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c: Save/restore
+	  budget recurrence information
+
+2006-11-28 09:10  cstim
+
+	* [r15157] trunk/packaging/win32/install.sh: Oops. Now really fix
+	  absolute path of perl binary
+
+2006-11-28 09:09  cstim
+
+	* [r15156] trunk/packaging/win32/install.sh: Fix absolute path of
+	  perl binary
+
+2006-11-28 08:47  cstim
+
+	* [r15155] trunk/packaging/win32/custom.sh: Version number updates
+	  for mingw and libxml2
+
+2006-11-28 08:46  cstim
+
+	* [r15154] trunk/packaging/win32/install.sh: Check for installed
+	  perl by absolute path of expected location
+
+2006-11-27 14:40  cstim
+
+	* [r15152] trunk/README, trunk/doc/README.francais: Updated French
+	  README and small corrections to main README by Fabrice Kurz
+
+2006-11-27 14:37  cstim
+
+	* [r15151] branches/2.0/README, branches/2.0/doc/README.francais:
+	  Updated French README and small corrections to main README by
+	  Fabrice Kurz
+
+2006-11-27 13:32  cstim
+
+	* [r15150] trunk/lib/libqof/qof/Makefile.am: Remove unneeded extra
+	  Makefile variable
+
+2006-11-27 12:56  cstim
+
+	* [r15149] trunk/src/engine/Makefile.am,
+	  trunk/src/engine/gncla-dir.h.in: Remove configure-time path
+	  variables that are not used in the source code
+
+2006-11-27 12:37  cstim
+
+	* [r15148] branches/2.0/NEWS: Add info about updated translations
+
+2006-11-27 10:07  cstim
+
+	* [r15147] branches/2.0/po/ca.po, branches/2.0/po/cs.po,
+	  branches/2.0/po/da.po, branches/2.0/po/el.po,
+	  branches/2.0/po/en_GB.po, branches/2.0/po/es.po,
+	  branches/2.0/po/es_NI.po, branches/2.0/po/eu.po,
+	  branches/2.0/po/fr.po, branches/2.0/po/hu.po,
+	  branches/2.0/po/it.po, branches/2.0/po/ja.po,
+	  branches/2.0/po/nb.po, branches/2.0/po/ne.po,
+	  branches/2.0/po/nl.po, branches/2.0/po/pl.po,
+	  branches/2.0/po/pt.po, branches/2.0/po/pt_BR.po,
+	  branches/2.0/po/ro.po, branches/2.0/po/ru.po,
+	  branches/2.0/po/rw.po, branches/2.0/po/sk.po,
+	  branches/2.0/po/sv.po, branches/2.0/po/ta.po,
+	  branches/2.0/po/tr.po, branches/2.0/po/uk.po,
+	  branches/2.0/po/zh_CN.po, branches/2.0/po/zh_TW.po: Translation
+	  updated; merged with newly introduced strings
+
+2006-11-27 10:04  cstim
+
+	* [r15146] branches/2.0/po/de.po: Updated German translation
+
+2006-11-26 14:21  plongstaff
+
+	* [r15145] branches/gda-dev/src/backend/Makefile.am,
+	  branches/gda-dev/src/backend/gda/Makefile.am,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c,
+	  branches/gda-dev/src/bin/Makefile.am: 1) Replace column size
+	  magic numbers by #defines 2) Use some common code 3)
+	  Save/restore budgets (except recurrence) 4) Add gnucash-gdb to
+	  bin
+
+2006-11-26 04:07  plongstaff
+
+	* [r15144] branches/gda-dev/src/engine/gnc-budget.c: Put
+	  begin_edit()/commit_edit() around budget creation to prevent
+	  excess db activity.
+
+2006-11-26 04:06  plongstaff
+
+	* [r15143] branches/gda-dev/lib/libqof/qof/kvp_frame.c: Fix bug
+	  where kvp_frame_add_numeric() (and other routines) wouldn't
+	  create the kvp path if it didn't exist.
+
+2006-11-24 19:54  warlord
+
+	* [r15142] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/backend/file/gnc-account-xml-v2.c: Make the xml
+	  file read behavior less random for malformed account input.
+	  Merge from r15111
+	* [r15141] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/engine/Account.c,
+	  branches/2.0/src/engine/Account.h,
+	  branches/2.0/src/gnome-utils/dialog-account.c,
+	  branches/2.0/src/gnome-utils/gnc-tree-model-account-types.c,
+	  branches/2.0/src/gnome-utils/gnc-tree-model-account-types.h,
+	  branches/2.0/src/import-export/import-account-matcher.c: Handle
+	  type-compatibility when reparenting accounts: #344966. Add
+	  xaccAccountTypesCompatibleWith and change
+	  xaccAccountTypesCompatible to use that. Add
+	  gnc_tree_model_account_types_set_mask and bind mask to the
+	  filter model instead using it as data of the filter function,
+	  because those can only be set once per filter. f_model is not
+	  always set in gnc_tree_model_account_types_get_selection because
+	  of a bug in gtk+ (#357791). Also add
+	  gnc_tree_model_account_types_get_mask. Make the account type
+	  list in the account dialog dynamically filtered based on
+	  compatibility to the parent account. * add
+	  gnc_account_parent_changed_cb. Filter by valid_types & parent
+	  compatible types * add aw->preferred_account_type to remember
+	  what we chose but may not work currently * make valid_types a
+	  guint32 (was GList*) * last_used_account_type is only set in
+	  gnc_ui_to_account Free a list in import-account-matcher.c. Ease
+	  account type changes in the account dialog after OK is clicked.
+	  Before, we did not enforce compatibility with the parent account
+	  and suggested to change only children or children and all parent
+	  accounts up to the top-level one. We do enforce it now and only
+	  need to look at the children. The filling of the hash of
+	  (children) account (type) changes has been replaced by showing
+	  the user a filtered account tree and the types are adjusted
+	  recursively once the user verified the change. This is another
+	  attempt to resolve #344966. Merge r14894, r14895, r14896,
+	  r14897, r14898, r14899
+	* [r15140] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-dense-cal.c: Make
+	  gnc-dense-cal:month_name to use g_date_strftime instead of
+	  strftime so that it returns a clean UTF-8 string. Merge from
+	  r15080 Approved by jsled
+
+2006-11-24 18:44  warlord
+
+	* [r15139] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/qif-import/qif-parse.scm: Don't
+	  have aktzu in the "case" twice. Fixes #377519. Merged r15128
+	  Approved by chris
+
+2006-11-24 18:43  warlord
+
+	* [r15138] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/hbci/gnc-hbci-getbalance.c: Fix
+	  missing date when reconciling from HBCI #372929. as suggested by
+	  Konstantin Goudkov Merge r15110
+	* [r15137] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/report/standard-reports/account-piecharts.scm,
+	  branches/2.0/src/report/standard-reports/category-barchart.scm:
+	  Fix some scheme inexact errors. Fixes 347462. Merge r15088.
+
+2006-11-24 18:42  warlord
+
+	* [r15136] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/register/ledger-core/split-register-control.c,
+	  branches/2.0/src/register/ledger-core/split-register.c: Fix
+	  auto-completion/pending transactions. #348469. Ensure that the
+	  blank transaction is marked as the pending transaction when it
+	  is modified. This fixes a bug where editing the blank
+	  transaction, moving off of the transaction line to a split line,
+	  leaving the split line unedited and then closing the register
+	  will incorrectly leave the transaction open without asking. The
+	  bug fixed by this commit is possibly responsible for some of the
+	  crashes like bug #348469. This fixes a bug in r14495. The bug is
+	  that auto-completed transactions aren't correctly marked as
+	  pending. This bug is probably responsible for the crashes like
+	  those in bug #348469. In general, the register makes it very
+	  difficult to consistently distiguish between beginning to edit a
+	  transaction that's being edited in another register and
+	  beginning to edit the blank transaction, which is already open
+	  for editing, but isn't marked pending so that we can pretend it
+	  hasn't been opened if it never gets modified. Fortunately, the
+	  auto-completion code only runs on the blank transaction, so we
+	  can assume it's not being edited in another register. This patch
+	  goes ahead and marks the blank transaction as pending. Merge
+	  r15002 and r15004.
+	* [r15135] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/core-utils/gnc-gconf-utils.c,
+	  branches/2.0/src/core-utils/gnc-gconf-utils.h,
+	  branches/2.0/src/gnome-utils/dialog-utils.c,
+	  branches/2.0/src/gnome/dialog-print-check.c: Backport change to
+	  fix #378881 Lessen restriction of the parameter whoami of the
+	  gnc_gconf_add/ remove_notification functions. Now the pair of
+	  section and whoami has to be unique, as GncMainWindow adds
+	  notifications to two different sections. Extends r14675. Remove
+	  a superfluous leading slash and doubly defined gconf key macros.
+	  Correct gnc_gconf_add/remove_notification to avoid printf'ing
+	  NULL and therefore crashes on Solaris and Windows. r14675 had
+	  fixed that, r14945 (me) undermined it though. (#378881). Merges
+	  r14945 and r15041.
+
+2006-11-24 14:04  cstim
+
+	* [r15134] trunk/configure.in, trunk/src/engine/Makefile.am,
+	  trunk/src/engine/gncla-dir.h.in: Remove configure argument
+	  --with-locale-dir because it is unused anyway
+
+2006-11-24 13:50  cstim
+
+	* [r15133] trunk/src/backend/file/gnc-backend-file.c: Remove
+	  compiled-in pathname LOCALE_DIR by relocatable runtime function
+
+2006-11-24 13:14  cstim
+
+	* [r15132] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/engine/Makefile.am, trunk/src/engine/binreloc.c,
+	  trunk/src/engine/binreloc.h, trunk/src/engine/gnc-path.c,
+	  trunk/src/engine/gncla-dir.h.in: Fix gnc_path_get_localedir()
+	  because binreloc's implementation did not respect the choice of
+	  DATADIRNAME from AM_GLIB_GNU_GETTEXT in configure.
+
+2006-11-24 10:38  cstim
+
+	* [r15131] trunk/README.dependencies: Add version numbers for
+	  opensuse 10.2, due 2006-12-07.
+
+2006-11-23 12:20  cstim
+
+	* [r15130] branches/2.0/po/de.po: Updated German translation
+
+2006-11-22 15:24  plongstaff
+
+	* [r15129] branches/gda-dev/src/scm/price-quotes.scm: Wrap lines
+	  setting up downloaded price with begin-edit and commit-edit
+
+2006-11-21 14:56  warlord
+
+	* [r15128] trunk, trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/qif-parse.scm: Don't have
+	  aktzu in the "case" twice. Fixes #377519. BP
+
+2006-11-19 21:00  cstim
+
+	* [r15127] branches/2.0/src/gnome/glade/account.glade: Mark
+	  forgotten string as translatable. Merged from trunk, r15126
+
+2006-11-19 20:57  cstim
+
+	* [r15126] trunk/src/gnome/glade/account.glade: Mark forgotten
+	  string as translatable
+
+2006-11-19 20:53  cstim
+
+	* [r15125] branches/2.0/po/fr.po: Improved French translation by
+	  Fabrice Kurz. Fixes #376508
+
+2006-11-18 02:31  plongstaff
+
+	* [r15124] branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: Basic
+	  transaction/split query
+
+2006-11-15 08:54  cstim
+
+	* [r15123] trunk/packaging/win32/install.sh: Revert r15119. That
+	  change needs more testing on my side.
+
+2006-11-15 01:45  jsled
+
+	* [r15122]
+	  branches/sx-cleanup/src/app-utils/gnc-sx-instance-model.c:
+	  Hookup SX QOF_MODIFY_EVENT -> gnc-sx-instance-model:updated; the
+	  sx list view now reflects changes. :)
+
+2006-11-15 01:44  jsled
+
+	* [r15121] branches/sx-cleanup/src/engine/SchedXaction.c: Add
+	  `on_done` handler that emits QOF_MODIFY_EVENT.
+
+2006-11-15 00:09  jsled
+
+	* [r15120]
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c: Add
+	  "editable" as well to control combo box, uh, editability.
+
+2006-11-14 21:56  cstim
+
+	* [r15119] trunk/packaging/win32/install.sh: For non-msys startup
+	  script, add SCHEME_LIBRARY_PATH again - it's definitely needed
+	  on at least one of my test machines.
+
+2006-11-14 20:58  cstim
+
+	* [r15118] trunk/src/backend/file/test/test-xml-account.c,
+	  trunk/src/backend/file/test/test-xml-commodity.c,
+	  trunk/src/backend/file/test/test-xml-pricedb.c,
+	  trunk/src/backend/file/test/test-xml-transaction.c: Replace
+	  mkstemp by g_mkstemp because the former is unavailable on windows
+
+2006-11-14 02:14  chris
+
+	* [r15114] trunk/src/app-utils/Makefile.am,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/gnc-gobject-utils.c,
+	  trunk/src/engine/Makefile.am, trunk/src/engine/TransLog.c,
+	  trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am: Add
+	  src/base-typemaps.i as a prerequisite for all wrapper-generator
+	  rules. Fix some comment typos.
+
+2006-11-14 02:10  chris
+
+	* [r15113] trunk/src/base-typemaps.i: Add a custom SWIG typemap
+	  for wrapping a return value of (char *)NULL as an empty guile
+	  string.
+
+2006-11-14 02:07  chris
+
+	* [r15112]
+	  trunk/src/import-export/qif-import/qif-merge-groups.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm: Fix some #f
+	  vs. '() issues in qif import files.
+
+2006-11-14 02:05  chris
+
+	* [r15111] trunk/src/backend/file/gnc-account-xml-v2.c: Make the
+	  xml file read behavior less random for malformed account input.
+
+2006-11-12 11:06  cstim
+
+	* [r15110] trunk/src/import-export/hbci/gnc-hbci-getbalance.c: Fix
+	  missing date when reconciling from HBCI as suggested by
+	  Konstantin Goudkov, #372929. BP
+
+2006-11-12 02:06  plongstaff
+
+	* [r15109] branches/gda-dev/GDA_STATUS,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: Commit
+	  transactions and splits. Not restored via query yet.
+
+2006-11-11 21:15  plongstaff
+
+	* [r15108] branches/gda-dev/GDA_STATUS,
+	  branches/gda-dev/src/backend/gda/Makefile.am,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c: Save/restore
+	  slots associated with accounts. Note that nested slot path names
+	  are not stored correctly so that on load, the structure will be
+	  flattened.
+
+2006-11-10 22:16  plongstaff
+
+	* [r15107] branches/gda-dev/src/backend/gda/gnc-backend-gda.c: 1)
+	  Fix date handling 2) Need to commit if object is dirty OR being
+	  deleted
+
+2006-11-10 20:31  plongstaff
+
+	* [r15106] branches/gda-dev/src/backend/gda/gnc-backend-gda.c: Use
+	  string GdaDataHandler to convert strings to SQL correctly.
+
+2006-11-10 19:58  plongstaff
+
+	* [r15105] branches/gda-dev/GDA_STATUS,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c: 1) Use
+	  getter/setter functions to transfer from objects <-> db 2)
+	  Create tables if they don't exist 3) Add handlers for each table
+	  column type
+
+2006-11-09 21:53  andi5
+
+	* [r15104] branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-gnome-utils.c: Inform the user
+	  about 'gnucash-docs' package when Help is selected with no
+	  content. Fixes #347102. merged from trunk r15081 and r15082.
+	  approved by cstim.
+
+2006-11-09 14:33  plongstaff
+
+	* [r15103] branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c: Clean up
+	  some includes
+
+2006-11-09 14:27  andi5
+
+	* [r15102] trunk, trunk/src/business/business-reports/aging.scm,
+	  trunk/src/business/business-reports/invoice.scm,
+	  trunk/src/import-export/qif-import/qif-file.scm,
+	  trunk/src/report/report-system/report.scm: Fix three incorrect
+	  tests for swig-wrapped objects and one initialization as #f
+	  instead of '(), the latter making qif imports work again. Remove
+	  also a few lines of old commented cruft.
+
+2006-11-09 14:13  plongstaff
+
+	* [r15101] branches/gda-dev/configure.in,
+	  branches/gda-dev/src/backend/gda/Makefile.am: Use pkg-config in
+	  configure.in to set CFLAGS and LIBS for libgda. Doesn't test
+	  properly for existence of libgda package yet.
+
+2006-11-09 02:05  plongstaff
+
+	* [r15100] branches/gda-dev/GDA_STATUS,
+	  branches/gda-dev/src/backend/gda/Makefile.am,
+	  branches/gda-dev/src/backend/gda/ddl/prices.ddl,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.h,
+	  branches/gda-dev/src/backend/gda/gncmod-backend-gda.c: 1) Fix
+	  commodity handling 2) Save/load prices 3) Start using column ->
+	  variable mapping and common functions
+
+2006-11-08 22:43  hampton
+
+	* [r15099] trunk/src/import-export/qif-import/druid-qif-import.c:
+	  The args to g_build_filename should be NULL terminated.
+
+2006-11-08 22:42  hampton
+
+	* [r15098] trunk/src/gnome-utils/gnc-file.c:
+	  gnc_history_get_last() can return NULL.
+
+2006-11-08 21:06  andi5
+
+	* [r15097] trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/gnome-utils/druid-gconf-setup.c: Replace remaining
+	  _WIN32 macro tests by G_OS_WIN32 ones.
+
+2006-11-08 20:50  andi5
+
+	* [r15096] trunk/src/base-typemaps.i: Add swig base-typemap double
+	  gdouble. gnc-progress-dialog-set-value should work again now.
+
+2006-11-08 16:40  andi5
+
+	* [r15095] trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/import-export/hbci/gnc-file-aqb-import.c,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c: Default
+	  directory tweaks: * replace gnc_init_default_directory by
+	  gnc_get_default_directory and do gconf query there * remove
+	  gnc_extract_directory, but add gnc_set_default_directory * do
+	  not save default directory with trailing (back)slash anymore
+
+2006-11-07 15:56  plongstaff
+
+	* [r15094] branches/gda-dev/GDA_STATUS,
+	  branches/gda-dev/configure.in, branches/gda-dev/src/backend/gda,
+	  branches/gda-dev/src/backend/gda/Makefile.am,
+	  branches/gda-dev/src/backend/gda/ddl,
+	  branches/gda-dev/src/backend/gda/ddl/accounts.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/books.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/budgets.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/business.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/commodities.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/freq_specs.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/gnucash.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/lots.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/prices.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/sched_transactions.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/slots.ddl,
+	  branches/gda-dev/src/backend/gda/ddl/transactions.ddl,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-account-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-backend-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-budget-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-commodity-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-price-gda.h,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.c,
+	  branches/gda-dev/src/backend/gda/gnc-transaction-gda.h,
+	  branches/gda-dev/src/backend/gda/gncmod-backend-gda.c,
+	  branches/gda-dev/src/engine/gnc-engine.c,
+	  branches/gda-dev/src/engine/gnc-filepath-utils.c: Initial commit
+	  of initial gda backend framework. See GDA_STATUS.
+
+2006-11-07 00:23  andi5
+
+	* [r15093] trunk/packaging/win32/install.sh: Work around a bug in
+	  the MSYS bash (which generates 0x01 smilies when handling some
+	  command substitutions), by adding a wrapper script for
+	  pkg-config.exe.
+
+2006-11-06 23:52  andi5
+
+	* [r15092] trunk/packaging/win32/install.sh: Do not simply touch
+	  install-sh because we need that from automake --add-missing.
+	  Warn the user if he has put install.sh in ., .., or ..\.. from
+	  the repository. Improves r15037.
+
+2006-11-06 22:09  warlord
+
+	* [r15090] branches/gda-dev: Create a GDA development branch for
+	  GDA Backend Development
+
+2006-11-06 15:27  cstim
+
+	* [r15089] trunk/src/gnome/druid-hierarchy.c: Add win32 method for
+	  looking up the current LANG string
+
+2006-11-06 04:45  hampton
+
+	* [r15088] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/account-piecharts.scm,
+	  trunk/src/report/standard-reports/category-barchart.scm: Fix
+	  some scheme inexact errors. Fixes 347462. BP
+
+2006-11-04 22:07  cstim
+
+	* [r15086] trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml: Activate
+	  Close Books menu item again. This is an unstable branch, after
+	  all. Reverts r14150. bug#342599
+
+2006-11-04 22:06  cstim
+
+	* [r15085] trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml: Activate
+	  QSF Import/Export again. This is an unstable branch, after all.
+	  Reverts r14147, r14148. bug#342515
+
+2006-11-04 21:57  cstim
+
+	* [r15084] trunk/src/gnome/druid-merge.c,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c: Improve error
+	  reporting of QSF import a little bit. Patch provided by Georgi
+	  Mirchev, bug#343724.
+
+2006-11-04 21:50  cstim
+
+	* [r15083] trunk/src/gnome/druid-merge.c: Fix cancel button of QSF
+	  import. Patch provided by Georgi Mirchev, bug#343723.
+
+2006-11-03 20:51  cstim
+
+	* [r15082] trunk/src/gnome-utils/gnc-gnome-utils.c: Fix missing
+	  i18n header
+
+2006-11-03 19:50  andi5
+
+	* [r15081] trunk/src/gnome-utils/gnc-gnome-utils.c: Inform the
+	  user about 'gnucash-docs' package when Help is selected with no
+	  content. Fixes #347102.
+
+2006-11-03 19:49  andi5
+
+	* [r15080] trunk/src/gnome-utils/gnc-dense-cal.c: Make
+	  gnc-dense-cal:month_name to use g_date_strftime instead of
+	  strftime so that it returns a clean UTF-8 string.
+
+2006-11-01 22:43  andi5
+
+	* [r15076] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/goffice-0.3.2-patch.diff,
+	  trunk/packaging/win32/install.sh: Some win32 package updates: -
+	  Updated versions: MinGW, GLib, ATK, Pango, GTK+, Gail, LibGnome,
+	  LibGSF, Glade, SVN - Move autotools up in the chain (guile1.8
+	  will need that) - Stick with GOffice 0.3.0 (newer version need
+	  code changes), but provide patch for 0.3.2 - Other minor
+	  install.sh improvements
+
+2006-11-01 21:14  andi5
+
+	* [r15070] trunk/src/gnome-utils/gnc-tree-view.c: Another NULL
+	  %s-printf.
+
+2006-11-01 20:46  andi5
+
+	* [r15069] trunk/src/gnome/top-level.c: Fix two NULL %s-printf's.
+
+2006-11-01 20:45  andi5
+
+	* [r15068] trunk/src/gnome-utils/gnc-plugin-file-history.c: Fix
+	  gnc_history_generate_label to search for the correct dir
+	  separator and not to crash when there is none.
+
+2006-11-01 19:36  andi5
+
+	* [r15067] trunk/src/engine/gnc-path.c,
+	  trunk/src/engine/gnc-path.h,
+	  trunk/src/gnome-utils/druid-gconf-setup.c: Automatically update
+	  the gconf search path on windows. Add a force_slashes parameter
+	  to gnc_path_get_gconfdir to get a slash separated path instead
+	  of using G_DIR_SEPARATOR (backslash).
+
+2006-11-01 00:01  hampton
+
+	* [r15066] branches/remove-group2/ChangeLog,
+	  branches/remove-group2/gnucash.m4,
+	  branches/remove-group2/lib/libqof/backend/file/qof-backend-qsf.h,
+	  branches/remove-group2/lib/libqof/qof/qofinstance-p.h,
+	  branches/remove-group2/lib/libqof/qof/qofinstance.h,
+	  branches/remove-group2/lib/libqof/qof/qofsession.h,
+	  branches/remove-group2/src/app-utils/app-utils.i,
+	  branches/remove-group2/src/app-utils/gnc-account-merge.c,
+	  branches/remove-group2/src/app-utils/gnc-account-merge.h,
+	  branches/remove-group2/src/app-utils/gnc-component-manager.c,
+	  branches/remove-group2/src/app-utils/gnc-ui-util.c,
+	  branches/remove-group2/src/app-utils/gnc-ui-util.h,
+	  branches/remove-group2/src/app-utils/guile-util.h,
+	  branches/remove-group2/src/app-utils/options.scm,
+	  branches/remove-group2/src/backend/file/gnc-account-xml-v2.c,
+	  branches/remove-group2/src/backend/file/gnc-book-xml-v2.c,
+	  branches/remove-group2/src/backend/file/gnc-commodity-xml-v2.c,
+	  branches/remove-group2/src/backend/file/gnc-schedxaction-xml-v2.c,
+	  branches/remove-group2/src/backend/file/io-example-account.c,
+	  branches/remove-group2/src/backend/file/io-example-account.h,
+	  branches/remove-group2/src/backend/file/io-gncbin-r.c,
+	  branches/remove-group2/src/backend/file/io-gncbin.h,
+	  branches/remove-group2/src/backend/file/io-gncxml-v1.c,
+	  branches/remove-group2/src/backend/file/io-gncxml-v2.c,
+	  branches/remove-group2/src/backend/file/io-utils.c,
+	  branches/remove-group2/src/backend/file/io-utils.h,
+	  branches/remove-group2/src/backend/file/test/test-load-xml2.c,
+	  branches/remove-group2/src/backend/file/test/test-xml-account.c,
+	  branches/remove-group2/src/backend/file/test/test-xml-transaction.c,
+	  branches/remove-group2/src/backend/postgres/PostgresBackend.c,
+	  branches/remove-group2/src/backend/postgres/PostgresBackend.h,
+	  branches/remove-group2/src/backend/postgres/account.c,
+	  branches/remove-group2/src/backend/postgres/account.h,
+	  branches/remove-group2/src/backend/postgres/checkpoint.c,
+	  branches/remove-group2/src/backend/postgres/checkpoint.h,
+	  branches/remove-group2/src/backend/postgres/events.c,
+	  branches/remove-group2/src/backend/postgres/table.m4,
+	  branches/remove-group2/src/backend/postgres/test/test-db.c,
+	  branches/remove-group2/src/backend/postgres/test/test-period.c,
+	  branches/remove-group2/src/backend/postgres/txn.c,
+	  branches/remove-group2/src/backend/postgres/txn.h,
+	  branches/remove-group2/src/backend/postgres/txnmass.c,
+	  branches/remove-group2/src/business/business-core/gncInvoice.c,
+	  branches/remove-group2/src/business/business-gnome/business-gnome-utils.c,
+	  branches/remove-group2/src/business/business-gnome/dialog-payment.c,
+	  branches/remove-group2/src/business/business-gnome/gnc-plugin-business.c,
+	  branches/remove-group2/src/business/business-gnome/gnc-plugin-page-invoice.c,
+	  branches/remove-group2/src/business/business-ledger/gncEntryLedger.c,
+	  branches/remove-group2/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/remove-group2/src/business/business-reports/owner-report.scm,
+	  branches/remove-group2/src/engine/Account.c,
+	  branches/remove-group2/src/engine/Account.h,
+	  branches/remove-group2/src/engine/AccountP.h,
+	  branches/remove-group2/src/engine/Group.c,
+	  branches/remove-group2/src/engine/Group.h,
+	  branches/remove-group2/src/engine/GroupP.h,
+	  branches/remove-group2/src/engine/Makefile.am,
+	  branches/remove-group2/src/engine/Period.c,
+	  branches/remove-group2/src/engine/SX-book-p.h,
+	  branches/remove-group2/src/engine/SX-book.c,
+	  branches/remove-group2/src/engine/SX-book.h,
+	  branches/remove-group2/src/engine/SchedXaction.c,
+	  branches/remove-group2/src/engine/Scrub.c,
+	  branches/remove-group2/src/engine/Scrub.h,
+	  branches/remove-group2/src/engine/Scrub2.c,
+	  branches/remove-group2/src/engine/Scrub3.c,
+	  branches/remove-group2/src/engine/Scrub3.h,
+	  branches/remove-group2/src/engine/ScrubP.h,
+	  branches/remove-group2/src/engine/Split.c,
+	  branches/remove-group2/src/engine/TransLog.c,
+	  branches/remove-group2/src/engine/Transaction.c,
+	  branches/remove-group2/src/engine/Transaction.h,
+	  branches/remove-group2/src/engine/cap-gains.c,
+	  branches/remove-group2/src/engine/cashobjects.c,
+	  branches/remove-group2/src/engine/engine-helpers.c,
+	  branches/remove-group2/src/engine/engine-utilities.scm,
+	  branches/remove-group2/src/engine/engine.i,
+	  branches/remove-group2/src/engine/engine.scm,
+	  branches/remove-group2/src/engine/gnc-associate-account.c,
+	  branches/remove-group2/src/engine/gnc-budget.c,
+	  branches/remove-group2/src/engine/gnc-engine.c,
+	  branches/remove-group2/src/engine/gnc-engine.h,
+	  branches/remove-group2/src/engine/test-core/test-engine-stuff.c,
+	  branches/remove-group2/src/engine/test-core/test-engine-stuff.h,
+	  branches/remove-group2/src/engine/test/test-create-account.scm,
+	  branches/remove-group2/src/engine/test/test-group-vs-book.c,
+	  branches/remove-group2/src/engine/test/test-lots.c,
+	  branches/remove-group2/src/engine/test/test-period.c,
+	  branches/remove-group2/src/engine/test/test-query.c,
+	  branches/remove-group2/src/experimental/cgi-bin/gnc-server.c,
+	  branches/remove-group2/src/experimental/cgi-bin/hello2.c,
+	  branches/remove-group2/src/experimental/cgi-bin/hello3.c,
+	  branches/remove-group2/src/gnome-utils/account-quickfill.c,
+	  branches/remove-group2/src/gnome-utils/account-quickfill.h,
+	  branches/remove-group2/src/gnome-utils/dialog-account.c,
+	  branches/remove-group2/src/gnome-utils/dialog-account.h,
+	  branches/remove-group2/src/gnome-utils/dialog-transfer.c,
+	  branches/remove-group2/src/gnome-utils/dialog-utils.c,
+	  branches/remove-group2/src/gnome-utils/gnc-account-sel.c,
+	  branches/remove-group2/src/gnome-utils/gnc-file.c,
+	  branches/remove-group2/src/gnome-utils/gnc-html.c,
+	  branches/remove-group2/src/gnome-utils/gnc-tree-model-account.c,
+	  branches/remove-group2/src/gnome-utils/gnc-tree-model-account.h,
+	  branches/remove-group2/src/gnome-utils/gnc-tree-model.h,
+	  branches/remove-group2/src/gnome-utils/gnc-tree-view-account.c,
+	  branches/remove-group2/src/gnome-utils/gnc-tree-view-account.h,
+	  branches/remove-group2/src/gnome-utils/window-main-summarybar.c,
+	  branches/remove-group2/src/gnome/dialog-commodities.c,
+	  branches/remove-group2/src/gnome/dialog-find-transactions.c,
+	  branches/remove-group2/src/gnome/dialog-sxsincelast.c,
+	  branches/remove-group2/src/gnome/druid-acct-period.c,
+	  branches/remove-group2/src/gnome/druid-hierarchy.c,
+	  branches/remove-group2/src/gnome/druid-merge.c,
+	  branches/remove-group2/src/gnome/druid-merge.h,
+	  branches/remove-group2/src/gnome/druid-stock-split.c,
+	  branches/remove-group2/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/remove-group2/src/gnome/gnc-plugin-page-register.c,
+	  branches/remove-group2/src/gnome/gnc-split-reg.c,
+	  branches/remove-group2/src/gnome/reconcile-list.c,
+	  branches/remove-group2/src/gnome/top-level.c,
+	  branches/remove-group2/src/gnome/window-reconcile.c,
+	  branches/remove-group2/src/import-export/binary-import/druid-commodity.c,
+	  branches/remove-group2/src/import-export/hbci/druid-hbci-utils.c,
+	  branches/remove-group2/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  branches/remove-group2/src/import-export/hbci/gnc-hbci-transfer.c,
+	  branches/remove-group2/src/import-export/import-account-matcher.c,
+	  branches/remove-group2/src/import-export/import-backend.c,
+	  branches/remove-group2/src/import-export/import-match-map.c,
+	  branches/remove-group2/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/remove-group2/src/import-export/qif-import/druid-qif-import.c,
+	  branches/remove-group2/src/import-export/qif-import/qif-dialog-utils.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-import.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/remove-group2/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/remove-group2/src/import-export/qif-io-core/qif-acct-table.scm,
+	  branches/remove-group2/src/import-export/qif-io-core/qif-io-core.scm,
+	  branches/remove-group2/src/import-export/qif-io-core/test/test-import-phase-1.scm,
+	  branches/remove-group2/src/register/ledger-core/gnc-ledger-display.c,
+	  branches/remove-group2/src/register/ledger-core/split-register-control.c,
+	  branches/remove-group2/src/register/ledger-core/split-register-load.c,
+	  branches/remove-group2/src/register/ledger-core/split-register-model.c,
+	  branches/remove-group2/src/register/ledger-core/split-register-p.h,
+	  branches/remove-group2/src/register/ledger-core/split-register.c,
+	  branches/remove-group2/src/register/ledger-core/split-register.h,
+	  branches/remove-group2/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/remove-group2/src/report/locale-specific/us/taxtxf.scm,
+	  branches/remove-group2/src/report/report-system/commodity-utilities.scm,
+	  branches/remove-group2/src/report/report-system/html-acct-table.scm,
+	  branches/remove-group2/src/report/report-system/html-utilities.scm,
+	  branches/remove-group2/src/report/report-system/report-system.scm,
+	  branches/remove-group2/src/report/report-system/report-utilities.scm,
+	  branches/remove-group2/src/report/standard-reports/account-piecharts.scm,
+	  branches/remove-group2/src/report/standard-reports/account-summary.scm,
+	  branches/remove-group2/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/remove-group2/src/report/standard-reports/average-balance.scm,
+	  branches/remove-group2/src/report/standard-reports/balance-sheet.scm,
+	  branches/remove-group2/src/report/standard-reports/budget.scm,
+	  branches/remove-group2/src/report/standard-reports/cash-flow.scm,
+	  branches/remove-group2/src/report/standard-reports/category-barchart.scm,
+	  branches/remove-group2/src/report/standard-reports/daily-reports.scm,
+	  branches/remove-group2/src/report/standard-reports/equity-statement.scm,
+	  branches/remove-group2/src/report/standard-reports/general-journal.scm,
+	  branches/remove-group2/src/report/standard-reports/income-statement.scm,
+	  branches/remove-group2/src/report/standard-reports/net-barchart.scm,
+	  branches/remove-group2/src/report/standard-reports/portfolio.scm,
+	  branches/remove-group2/src/report/standard-reports/price-scatter.scm,
+	  branches/remove-group2/src/report/standard-reports/transaction.scm,
+	  branches/remove-group2/src/report/standard-reports/trial-balance.scm,
+	  branches/remove-group2/src/scm/price-quotes.scm: Rebase the
+	  remove group changes on a branch pulled after the gwrap -> swig
+	  changeover.
+
+2006-10-31 03:45  hampton
+
+	* [r15065] branches/remove-group2: Branch from trunk at r15059
+
+2006-10-30 13:24  cstim
+
+	* [r15064] trunk/doc/Makefile.am, trunk/doc/build-suse.txt: Remove
+	  very old and very obsolete build instructions
+
+2006-10-30 13:17  cstim
+
+	* [r15063] trunk/doc/README.german, trunk/doc/guile-hackers.txt:
+	  Replace g-wrap with swig in doc files
+
+2006-10-30 13:12  cstim
+
+	* [r15062] trunk/HACKING, trunk/README, trunk/README.dependencies:
+	  Replace g-wrap with swig in doc files
+
+2006-10-29 03:39  chris
+
+	* [r15061] trunk/src/engine/engine-interface.scm,
+	  trunk/src/import-export/qif-import/qif-dialog-utils.scm,
+	  trunk/src/import-export/qif-import/qif-file.scm,
+	  trunk/src/import-export/qif-io-core/qif-acct-table.scm,
+	  trunk/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  trunk/src/import-export/qif-io-core/qif-invst-xtn-import.scm,
+	  trunk/src/report/standard-reports/budget.scm,
+	  trunk/src/report/standard-reports/cash-flow.scm,
+	  trunk/src/report/standard-reports/transaction.scm: [Part 2]
+	  Audit all .scm files for cases where null objects were assumed
+	  to be #f. (It helps to save all buffers before the commit.)
+
+2006-10-29 03:12  chris
+
+	* [r15060] trunk/src/app-utils/options.scm,
+	  trunk/src/business/business-core/business-core.scm,
+	  trunk/src/business/business-reports/aging.scm,
+	  trunk/src/business/business-reports/business-reports.scm,
+	  trunk/src/business/business-reports/easy-invoice.scm,
+	  trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/business/business-reports/invoice.scm,
+	  trunk/src/business/business-reports/owner-report.scm,
+	  trunk/src/business/business-utils/business-options.scm,
+	  trunk/src/engine/engine-interface.scm,
+	  trunk/src/import-export/qif-import/qif-guess-map.scm,
+	  trunk/src/import-export/qif-import/qif-merge-groups.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/import-export/qif-io-core/qif-acct-table.scm,
+	  trunk/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  trunk/src/report/locale-specific/us/taxtxf.scm,
+	  trunk/src/report/report-gnome/report-gnome.scm,
+	  trunk/src/report/report-system/gnc-report.h,
+	  trunk/src/report/report-system/html-utilities.scm,
+	  trunk/src/report/standard-reports/cash-flow.scm,
+	  trunk/src/report/standard-reports/register.scm,
+	  trunk/src/report/standard-reports/standard-reports.scm,
+	  trunk/src/scm/printing/print-check.scm: Audit all .scm files for
+	  cases where null objects were assumed to be #f. In most of these
+	  cases, I know the value is always returned from C, so we can use
+	  "null?". In cases where I wasn't sure, I make it check for
+	  either #f or null?. Hopefully, I got 'em all. But, really, what
+	  are the chances?
+
+2006-10-28 01:53  chris
+
+	* [r15059] trunk/src/business/business-reports/easy-invoice.scm,
+	  trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/business/business-reports/invoice.scm: Replace
+	  "gnc:entry-get-order" with "gncEntryGetOrder".
+
+2006-10-26 20:45  andi5
+
+	* [r15058] trunk, trunk/packaging/win32/custom.sh: Update slib url
+	  to stick with old version 3a3.
+
+2006-10-22 00:58  chris
+
+	* [r15057] trunk/src/app-utils/app-utils.i,
+	  trunk/src/scm/price-quotes.scm: Get price-quotes to work again.
+	  Fix a type (missing '*') in the GncCommodityList typemap. Re-add
+	  an incorrectly dropped (use-modules ...) statement for the
+	  wrapped part of gnome-utils. Remove some duplicated (use-modules
+	  ...).
+
+2006-10-21 18:31  andi5
+
+	* [r15055] trunk/packaging/win32/reset.sh: Fix typo in reset.sh.
+
+2006-10-21 14:40  chris
+
+	* [r15054] trunk/src/core-utils/core-utils.scm: Re-export symbols
+	  wrapper-provided symbols in core-utils.scm.
+
+2006-10-21 13:26  andi5
+
+	* [r15053] trunk, trunk/src/engine/engine-interface.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  trunk/src/import-export/qif-io-core/qif-invst-xtn-import.scm:
+	  Replace xaccTransAppendSplit by xaccSplitSetParent in a few
+	  scheme files.
+	* [r15052] trunk, trunk/src/engine/engine-interface.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  trunk/src/import-export/qif-io-core/qif-invst-xtn-import.scm:
+	  Correct order of account and split parameters to
+	  xaccSplitSetAccount in a few scheme files.
+	* [r15051] trunk, trunk/src/engine/engine-interface.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  trunk/src/import-export/qif-io-core/qif-invst-xtn-import.scm:
+	  Correct xaccTransactionSetDescription to xaccTransSetDescription
+	  in a few scheme files.
+
+2006-10-20 18:57  warlord
+
+	* [r15050] trunk, trunk/packaging/win32/install.sh,
+	  trunk/packaging/win32/reset.sh: Remove the goffice tmpdir before
+	  rebuilding it remove tmpdir when you reset the build.
+
+2006-10-20 17:53  warlord
+
+	* [r15049] trunk, trunk/packaging/win32/reset.sh: fix a small
+	  syntax bug in the reset script.
+
+2006-10-20 17:51  warlord
+
+	* [r15048] trunk, trunk/packaging/win32/install.sh,
+	  trunk/packaging/win32/reset.sh: Use "passive FTP" with wget, to
+	  allow building behind a firewall Create a 'reset' script to
+	  allow resetting the win32 build environment.
+
+2006-10-20 15:59  andi5
+
+	* [r15047] trunk, trunk/packaging/win32/install.sh: Unlink
+	  ${SWIG_DIR}\INSTALL because it bites with /bin/install.
+
+2006-10-19 23:58  chris
+
+	* [r15046] trunk/src/engine/engine-interface.scm,
+	  trunk/src/report/standard-reports/register.scm,
+	  trunk/src/report/standard-reports/transaction.scm: Fix three
+	  wrapper-related bugs found and patched by Mike Alexander
+	  <mta at umich.edu>. 1) Since the output of (xaccTransGetSplit ...)
+	  may now be '(), check for it with (null? ...). 2) Fix the result
+	  of a sed mis-ordering: s/gnc:query-get-splits/qof-query-run/g
+	  s/gnc:query-get-splits-unique-trans/xaccQueryGetSplitsUniqueTrans/g
+	  3) Fix the result of a sed typo:
+	  s/gnc:split-corr-account-fullname/SPLIT-CORR-ACCT-FULLNAME/g
+	  which should've been
+	  s/gnc:split-corr-account-fullname/SPLIT-CORR-ACCT-NAME/g
+
+2006-10-19 08:18  cstim
+
+	* [r15045] trunk/packaging/win32/install.sh: Fix r15040 that
+	  accidentally used a hard-coded path
+
+2006-10-19 02:50  chris
+
+	* [r15044] trunk/src/gnome/top-level.c: Remove another unused
+	  function. I think I added this function on the swig-redo branch,
+	  but it turned out to be obsoleted by the merge because we no
+	  longer read 1.8.x state files.
+
+2006-10-19 02:05  chris
+
+	* [r15043]
+	  trunk/src/register/register-core/gncmod-register-core.c: Remove
+	  unused function.
+
+2006-10-19 01:00  chris
+
+	* [r15042] trunk/src/business/business-core/business-core.scm,
+	  trunk/src/engine/engine-interface.scm,
+	  trunk/src/import-export/qif-import/qif-merge-groups.scm,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm,
+	  trunk/src/report/standard-reports/cash-flow.scm,
+	  trunk/src/report/standard-reports/transaction.scm: Replace
+	  xaccTransGetSplits with xaccTransGetSplitList.
+	  'xaccTransGetSplits' doesn't exist. It was a result of an
+	  incorrect ordering of sed substitutions:
+	  s/gnc:transaction-get-split/xaccTransGetSplit/g
+	  s/gnc:transaction-get-splits/xaccTransGetSplitList/g
+
+2006-10-18 21:08  andi5
+
+	* [r15041] trunk/src/core-utils/gnc-gconf-utils.c: Correct
+	  gnc_gconf_add/remove_notification to avoid printf'ing NULL and
+	  therefore crashes on Solaris and Windows. r14675 had fixed that,
+	  r14945 (me) undermined it though.
+
+2006-10-18 19:45  andi5
+
+	* [r15040] trunk/packaging/win32/install.sh: Make gnucash.bat work.
+
+2006-10-18 18:15  andi5
+
+	* [r15039] trunk/src/core-utils/Makefile.am,
+	  trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnc-module/test/mod-bar/Makefile.am,
+	  trunk/src/gnc-module/test/mod-baz/Makefile.am,
+	  trunk/src/gnc-module/test/mod-foo/Makefile.am,
+	  trunk/src/import-export/qif-import/qif-import.scm: Make win32
+	  compile again. * Add a few GUILE_LIBS * Remove platform specific
+	  .so from a load-extension parameter
+
+2006-10-18 18:03  andi5
+
+	* [r15038] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Adjust install.sh to better
+	  cope with current HEAD. * Replace g-wrap by swig * Bump SVN_REV
+	  (prior SVNREV_FLAG) to HEAD * Remove backup files in the
+	  repository to cleanup `svn status'
+
+2006-10-18 15:37  cstim
+
+	* [r15037] trunk/packaging/win32/install.sh: Add workaround so
+	  that intltoolize doesn't come up with some foolish
+	  AC_CONFIG_AUX_DIR; bug#362006
+
+2006-10-18 11:52  cstim
+
+	* [r15036] trunk/packaging/win32/install.sh: Temporarily set the
+	  win32 checkout to r15007 until we've added the compiling of SWIG
+	  on win32.
+
+2006-10-18 10:15  andi5
+
+	* [r15035] trunk, trunk/src/report/standard-reports/cash-flow.scm:
+	  Quote a list of account types to avoid a cash flow crash. Fixes
+	  #363068.
+
+2006-10-17 21:46  warlord
+
+	* [r15034] trunk, trunk/src/business/business-core/gncOwner.h:
+	  Don't wrap the GncOwner structure.
+
+2006-10-17 20:41  cstim
+
+	* [r15033] branches/2.0/po/de.po: Fix stupid typo in German
+	  translation
+
+2006-10-17 20:41  hampton
+
+	* [r15032] trunk/src/bin/gnucash-bin.c: Fix uninitialzed variable
+	  error message.
+
+2006-10-17 08:35  cstim
+
+	* [r15031] branches/2.0/src/backend/postgres/test/run-tests.sh:
+	  Fix typo in shell script test as reported by Thomas Klausner.
+	  Merged 15030 from trunk.
+
+2006-10-17 08:32  cstim
+
+	* [r15030] trunk/src/backend/postgres/test/run-tests.sh: Fix typo
+	  in shell script test as reported by Thomas Klausner
+
+2006-10-17 03:04  warlord
+
+	* [r15029] branches/2.0, branches/2.0/src/bin/gnucash-bin.c:
+	  Actually get it to work properly. Test first, silly!
+
+2006-10-17 02:32  warlord
+
+	* [r15028] branches/2.0, branches/2.0/src/bin/gnucash-bin.c: use
+	  PACKAGE_VERSION for last stable release on the release branch.
+
+2006-10-17 02:31  warlord
+
+	* [r15027] trunk, trunk/src/bin/gnucash-bin.c: r13496 at cliodev:
+	  warlord | 2006-10-16 22:29:43 -0400 Update for 2.0.2 release.
+
+2006-10-16 03:35  chris
+
+	* [r15026] trunk/src/Makefile.am, trunk/src/app-utils/Makefile.am,
+	  trunk/src/app-utils/app-utils.i, trunk/src/base-typemaps.i,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-core/business-core.i,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.i,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/core-utils.i, trunk/src/engine/Makefile.am,
+	  trunk/src/engine/engine.i, trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnc-module/gnc-module.i,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnome-utils.i,
+	  trunk/src/gnome/Makefile.am, trunk/src/gnome/gnome.i,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-gnome/report-gnome.i,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/report-system/report-system.i: Factor out some
+	  common typemaps into src/base-typemaps.i
+
+2006-10-16 01:28  andi5
+
+	* [r15025] trunk, trunk/src/app-utils,
+	  trunk/src/business/business-core,
+	  trunk/src/business/business-gnome,
+	  trunk/src/business/dialog-tax-table, trunk/src/core-utils,
+	  trunk/src/engine, trunk/src/gnc-module,
+	  trunk/src/gnc-module/test/mod-bar,
+	  trunk/src/gnc-module/test/mod-baz,
+	  trunk/src/gnc-module/test/mod-foo, trunk/src/gnome,
+	  trunk/src/gnome-search, trunk/src/gnome-utils,
+	  trunk/src/gnome/schemas, trunk/src/import-export,
+	  trunk/src/import-export/binary-import,
+	  trunk/src/import-export/qif-import,
+	  trunk/src/register/register-core, trunk/src/report/report-gnome,
+	  trunk/src/report/report-system: Do not svn:ignore g-wrap files
+	  anymore.
+
+2006-10-15 19:02  chris
+
+	* [r15024] trunk, trunk/Makefile.am, trunk/configure.in,
+	  trunk/lib/libqof/qof/qofquery.c, trunk/macros/ac_pkg_swig.m4,
+	  trunk/macros/g-wrap.m4, trunk/src, trunk/src/Makefile.am,
+	  trunk/src/app-utils, trunk/src/app-utils/Makefile.am,
+	  trunk/src/app-utils/app-utils.i,
+	  trunk/src/app-utils/app-utils.scm,
+	  trunk/src/app-utils/c-interface.scm,
+	  trunk/src/app-utils/date-utilities.scm,
+	  trunk/src/app-utils/gfec.c, trunk/src/app-utils/gfec.h,
+	  trunk/src/app-utils/gnc-component-manager.c,
+	  trunk/src/app-utils/gnc-component-manager.h,
+	  trunk/src/app-utils/gnc-helpers.c,
+	  trunk/src/app-utils/gnc-helpers.h,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gncmod-app-utils.c,
+	  trunk/src/app-utils/guile-util.c,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/app-utils/hooks.scm,
+	  trunk/src/app-utils/kvp-option-registry.scm,
+	  trunk/src/app-utils/option-util.c,
+	  trunk/src/app-utils/option-util.h,
+	  trunk/src/app-utils/options.scm, trunk/src/app-utils/prefs.scm,
+	  trunk/src/app-utils/test/Makefile.am,
+	  trunk/src/app-utils/test/test-component-manager,
+	  trunk/src/app-utils/test/test-load-module,
+	  trunk/src/backend/file/test/Makefile.am,
+	  trunk/src/backend/postgres/test/Makefile.am,
+	  trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/bin/gnucash-valgrind.in, trunk/src/bin/gnucash.in,
+	  trunk/src/bin/overrides/Makefile.am,
+	  trunk/src/bin/overrides/gnucash-build-env.in,
+	  trunk/src/bin/overrides/gnucash-env.in,
+	  trunk/src/business/business-core,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-core/business-core.i,
+	  trunk/src/business/business-core/business-core.scm,
+	  trunk/src/business/business-core/businessmod-core.c,
+	  trunk/src/business/business-core/gncBillTerm.h,
+	  trunk/src/business/business-core/gncBusGuile.c,
+	  trunk/src/business/business-core/gncCustomer.h,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncEntry.h,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncInvoice.h,
+	  trunk/src/business/business-core/gncJob.h,
+	  trunk/src/business/business-core/gncOrder.h,
+	  trunk/src/business/business-core/gncOwner.h,
+	  trunk/src/business/business-core/gw-business-core-spec.scm,
+	  trunk/src/business/business-core/test/Makefile.am,
+	  trunk/src/business/business-gnome,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-gnome/business-gnome.scm,
+	  trunk/src/business/business-gnome/business-options-gnome.c,
+	  trunk/src/business/business-gnome/businessmod-gnome.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/gw-business-gnome-spec.scm,
+	  trunk/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  trunk/src/business/business-reports/aging.scm,
+	  trunk/src/business/business-reports/business-reports.scm,
+	  trunk/src/business/business-reports/easy-invoice.scm,
+	  trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/business/business-reports/invoice.scm,
+	  trunk/src/business/business-reports/owner-report.scm,
+	  trunk/src/business/business-reports/payables.scm,
+	  trunk/src/business/business-reports/receivables.scm,
+	  trunk/src/business/business-utils/Makefile.am,
+	  trunk/src/business/business-utils/business-options.c,
+	  trunk/src/business/business-utils/business-options.scm,
+	  trunk/src/business/business-utils/business-prefs.scm,
+	  trunk/src/business/dialog-tax-table,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.i,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.scm,
+	  trunk/src/business/dialog-tax-table/gncmod-dialog-tax-table.c,
+	  trunk/src/business/dialog-tax-table/gw-dialog-tax-table-spec.scm,
+	  trunk/src/core-utils, trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/core-utils.i,
+	  trunk/src/core-utils/core-utils.scm,
+	  trunk/src/core-utils/gnc-main.c,
+	  trunk/src/core-utils/gnc-main.h,
+	  trunk/src/core-utils/gw-core-utils-spec.scm, trunk/src/engine,
+	  trunk/src/engine/Account.h, trunk/src/engine/Group.c,
+	  trunk/src/engine/Group.h, trunk/src/engine/Makefile.am,
+	  trunk/src/engine/Query.c, trunk/src/engine/Query.h,
+	  trunk/src/engine/Transaction.h,
+	  trunk/src/engine/engine-helpers.c,
+	  trunk/src/engine/engine-helpers.h,
+	  trunk/src/engine/engine-interface.scm,
+	  trunk/src/engine/engine-utilities.scm,
+	  trunk/src/engine/engine.i, trunk/src/engine/engine.scm,
+	  trunk/src/engine/glib-helpers.c,
+	  trunk/src/engine/glib-helpers.h, trunk/src/engine/gnc-budget.h,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h, trunk/src/engine/gnc-hooks.c,
+	  trunk/src/engine/gnc-numeric.scm,
+	  trunk/src/engine/gnc-pricedb.c, trunk/src/engine/gnc-pricedb.h,
+	  trunk/src/engine/gncmod-engine.c,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/engine/gw-kvp-spec.scm, trunk/src/engine/kvp-scm.c,
+	  trunk/src/engine/test-core/Makefile.am,
+	  trunk/src/engine/test/Makefile.am,
+	  trunk/src/engine/test/test-create-account.scm,
+	  trunk/src/engine/test/test-scm-query-import.scm,
+	  trunk/src/gnc-module, trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnc-module/gnc-module.c,
+	  trunk/src/gnc-module/gnc-module.i,
+	  trunk/src/gnc-module/gnc-module.scm,
+	  trunk/src/gnc-module/gw-gnc-module-spec.scm,
+	  trunk/src/gnc-module/test/Makefile.am,
+	  trunk/src/gnc-module/test/mod-bar,
+	  trunk/src/gnc-module/test/mod-bar/Makefile.am,
+	  trunk/src/gnc-module/test/mod-bar/bar-gwrap.scm,
+	  trunk/src/gnc-module/test/mod-bar/bar.i,
+	  trunk/src/gnc-module/test/mod-bar/gnc-mod-bar.c,
+	  trunk/src/gnc-module/test/mod-baz,
+	  trunk/src/gnc-module/test/mod-baz/Makefile.am,
+	  trunk/src/gnc-module/test/mod-baz/baz-gwrap.scm,
+	  trunk/src/gnc-module/test/mod-baz/baz.i,
+	  trunk/src/gnc-module/test/mod-baz/gnc-mod-baz.c,
+	  trunk/src/gnc-module/test/mod-foo,
+	  trunk/src/gnc-module/test/mod-foo/Makefile.am,
+	  trunk/src/gnc-module/test/mod-foo/foo-gwrap.scm,
+	  trunk/src/gnc-module/test/mod-foo/foo.i,
+	  trunk/src/gnc-module/test/mod-foo/gnc-mod-foo.c,
+	  trunk/src/gnc-module/test/test-gwrapped-c,
+	  trunk/src/gnc-module/test/test-load-deps,
+	  trunk/src/gnc-module/test/test-scm-multi, trunk/src/gnome,
+	  trunk/src/gnome-search/Makefile.am, trunk/src/gnome-utils,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/dialog-options.h,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-file.h,
+	  trunk/src/gnome-utils/gnc-html.h,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome-utils/gnc-plugin-menu-additions.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c,
+	  trunk/src/gnome-utils/gncmod-gnome-utils.c,
+	  trunk/src/gnome-utils/gnome-utils.i,
+	  trunk/src/gnome-utils/gnome-utils.scm,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome-utils/test/Makefile.am,
+	  trunk/src/gnome/Makefile.am,
+	  trunk/src/gnome/dialog-price-edit-db.c,
+	  trunk/src/gnome/dialog-sx-from-trans.c,
+	  trunk/src/gnome/dialog-tax-info.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/gnome.i, trunk/src/gnome/gw-gnc-spec.scm,
+	  trunk/src/gnome/top-level.c,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/hbci/Makefile.am,
+	  trunk/src/import-export/log-replay/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/import-export/qif-import/qif-dialog-utils.scm,
+	  trunk/src/import-export/qif-import/qif-file.scm,
+	  trunk/src/import-export/qif-import/qif-guess-map.scm,
+	  trunk/src/import-export/qif-import/qif-import.scm,
+	  trunk/src/import-export/qif-import/qif-merge-groups.scm,
+	  trunk/src/import-export/qif-import/qif-objects.scm,
+	  trunk/src/import-export/qif-import/qif-parse.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/import-export/qif-io-core/qif-acct-table.scm,
+	  trunk/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  trunk/src/import-export/qif-io-core/qif-format-check.scm,
+	  trunk/src/import-export/qif-io-core/qif-invst-xtn-import.scm,
+	  trunk/src/import-export/qif-io-core/qif-parse.scm,
+	  trunk/src/import-export/qif-io-core/test/Makefile.am,
+	  trunk/src/import-export/qif-io-core/test/test-import-phase-1.scm,
+	  trunk/src/import-export/qif-io-core/test/test-parser.scm,
+	  trunk/src/import-export/qif/Makefile.am,
+	  trunk/src/import-export/qif/test/Makefile.am,
+	  trunk/src/import-export/test/Makefile.am,
+	  trunk/src/network-utils/test/Makefile.am,
+	  trunk/src/optional/Makefile.am, trunk/src/optional/swig,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c,
+	  trunk/src/register/register-core/Makefile.am,
+	  trunk/src/register/register-core/gncmod-register-core.c,
+	  trunk/src/register/register-core/gw-register-core-spec.scm,
+	  trunk/src/register/register-core/test/Makefile.am,
+	  trunk/src/register/register-gnome/test/Makefile.am,
+	  trunk/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  trunk/src/report/locale-specific/us/taxtxf.scm,
+	  trunk/src/report/locale-specific/us/test/Makefile.am,
+	  trunk/src/report/report-gnome,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-gnome/dialog-column-view.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c,
+	  trunk/src/report/report-gnome/gncmod-report-gnome.c,
+	  trunk/src/report/report-gnome/gw-report-gnome-spec.scm,
+	  trunk/src/report/report-gnome/report-gnome.i,
+	  trunk/src/report/report-gnome/report-gnome.scm,
+	  trunk/src/report/report-gnome/test/Makefile.am,
+	  trunk/src/report/report-gnome/window-report.c,
+	  trunk/src/report/report-system,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/report-system/commodity-utilities.scm,
+	  trunk/src/report/report-system/gnc-report.c,
+	  trunk/src/report/report-system/gnc-report.h,
+	  trunk/src/report/report-system/gncmod-report-system.c,
+	  trunk/src/report/report-system/gw-report-system-spec.scm,
+	  trunk/src/report/report-system/html-acct-table.scm,
+	  trunk/src/report/report-system/html-barchart.scm,
+	  trunk/src/report/report-system/html-piechart.scm,
+	  trunk/src/report/report-system/html-scatter.scm,
+	  trunk/src/report/report-system/html-style-info.scm,
+	  trunk/src/report/report-system/html-style-sheet.scm,
+	  trunk/src/report/report-system/html-utilities.scm,
+	  trunk/src/report/report-system/options-utilities.scm,
+	  trunk/src/report/report-system/report-system.i,
+	  trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/report-system/report-utilities.scm,
+	  trunk/src/report/report-system/report.scm,
+	  trunk/src/report/report-system/test/Makefile.am,
+	  trunk/src/report/standard-reports/account-piecharts.scm,
+	  trunk/src/report/standard-reports/account-summary.scm,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm,
+	  trunk/src/report/standard-reports/average-balance.scm,
+	  trunk/src/report/standard-reports/balance-sheet.scm,
+	  trunk/src/report/standard-reports/budget.scm,
+	  trunk/src/report/standard-reports/cash-flow.scm,
+	  trunk/src/report/standard-reports/category-barchart.scm,
+	  trunk/src/report/standard-reports/daily-reports.scm,
+	  trunk/src/report/standard-reports/equity-statement.scm,
+	  trunk/src/report/standard-reports/general-journal.scm,
+	  trunk/src/report/standard-reports/income-statement.scm,
+	  trunk/src/report/standard-reports/net-barchart.scm,
+	  trunk/src/report/standard-reports/portfolio.scm,
+	  trunk/src/report/standard-reports/price-scatter.scm,
+	  trunk/src/report/standard-reports/register.scm,
+	  trunk/src/report/standard-reports/standard-reports.scm,
+	  trunk/src/report/standard-reports/test/Makefile.am,
+	  trunk/src/report/standard-reports/transaction.scm,
+	  trunk/src/report/standard-reports/trial-balance.scm,
+	  trunk/src/report/stylesheets/stylesheet-easy.scm,
+	  trunk/src/report/stylesheets/stylesheet-fancy.scm,
+	  trunk/src/report/stylesheets/test/Makefile.am,
+	  trunk/src/report/utility-reports/hello-world.scm,
+	  trunk/src/report/utility-reports/test-graphing.scm,
+	  trunk/src/report/utility-reports/test/Makefile.am,
+	  trunk/src/report/utility-reports/view-column.scm,
+	  trunk/src/report/utility-reports/welcome-to-gnucash.scm,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/main-window.scm,
+	  trunk/src/scm/main.scm, trunk/src/scm/price-quotes.scm,
+	  trunk/src/scm/printing/print-check.scm,
+	  trunk/src/tax/us/test/Makefile.am,
+	  trunk/src/tax/us/txf-de_DE.scm: Merge swig-redo branch back into
+	  trunk. g-wrap is gone. I, for one, welcome our new swig
+	  overlords.
+
+2006-10-15 04:08  chris
+
+	* [r15023] branches/swig-redo/ChangeLog,
+	  branches/swig-redo/Makefile.am, branches/swig-redo/art,
+	  branches/swig-redo/configure.in,
+	  branches/swig-redo/doc/tip_of_the_day.list.in,
+	  branches/swig-redo/lib/guile-www/Makefile.am,
+	  branches/swig-redo/lib/libqof/backend/file/Makefile.am,
+	  branches/swig-redo/lib/libqof/backend/file/qsf-backend.c,
+	  branches/swig-redo/lib/libqof/backend/file/qsf-xml-map.c,
+	  branches/swig-redo/lib/libqof/qof/Makefile.am,
+	  branches/swig-redo/lib/libqof/qof/qof.h,
+	  branches/swig-redo/lib/libqof/qof/qofbackend-p.h,
+	  branches/swig-redo/lib/libqof/qof/qofbackend.h,
+	  branches/swig-redo/lib/libqof/qof/qofbook.c,
+	  branches/swig-redo/lib/libqof/qof/qofbook.h,
+	  branches/swig-redo/lib/libqof/qof/qofbookmerge.c,
+	  branches/swig-redo/lib/libqof/qof/qofchoice.c,
+	  branches/swig-redo/lib/libqof/qof/qofchoice.h,
+	  branches/swig-redo/lib/libqof/qof/qofclass.h,
+	  branches/swig-redo/lib/libqof/qof/qofid-p.h,
+	  branches/swig-redo/lib/libqof/qof/qofid.c,
+	  branches/swig-redo/lib/libqof/qof/qofid.h,
+	  branches/swig-redo/lib/libqof/qof/qofinstance.c,
+	  branches/swig-redo/lib/libqof/qof/qofinstance.h,
+	  branches/swig-redo/lib/libqof/qof/qofobject-p.h,
+	  branches/swig-redo/lib/libqof/qof/qofobject.c,
+	  branches/swig-redo/lib/libqof/qof/qofobject.h,
+	  branches/swig-redo/lib/libqof/qof/qofquery.c,
+	  branches/swig-redo/lib/libqof/qof/qofquery.h,
+	  branches/swig-redo/lib/libqof/qof/qofquerycore-p.h,
+	  branches/swig-redo/lib/libqof/qof/qofquerycore.c,
+	  branches/swig-redo/lib/libqof/qof/qofquerycore.h,
+	  branches/swig-redo/lib/libqof/qof/qofsession.c,
+	  branches/swig-redo/lib/libqof/qof/qofutil.h,
+	  branches/swig-redo/macros/binreloc.m4,
+	  branches/swig-redo/macros/legacy_macros.m4,
+	  branches/swig-redo/packaging/gnucash.spec.in,
+	  branches/swig-redo/packaging/win32,
+	  branches/swig-redo/po/POTFILES.skip,
+	  branches/swig-redo/src/app-utils/Makefile.am,
+	  branches/swig-redo/src/app-utils/gnc-account-merge.c,
+	  branches/swig-redo/src/app-utils/gnc-ui-util.c,
+	  branches/swig-redo/src/app-utils/test/Makefile.am,
+	  branches/swig-redo/src/app-utils/test/test-print-parse-amount.c,
+	  branches/swig-redo/src/app-utils/test/test-print-queries.c,
+	  branches/swig-redo/src/app-utils/test/test-scm-query-string.c,
+	  branches/swig-redo/src/backend/file/gnc-account-xml-v2.c,
+	  branches/swig-redo/src/backend/file/gnc-backend-file.c,
+	  branches/swig-redo/src/backend/file/gnc-commodity-xml-v2.c,
+	  branches/swig-redo/src/backend/file/test/Makefile.am,
+	  branches/swig-redo/src/backend/file/test/test-load-backend.c,
+	  branches/swig-redo/src/backend/file/test/test-load-example-account.c,
+	  branches/swig-redo/src/backend/file/test/test-load-xml2.c,
+	  branches/swig-redo/src/backend/file/test/test-save-in-lang.c,
+	  branches/swig-redo/src/backend/file/test/test-xml2-is-file.c,
+	  branches/swig-redo/src/backend/postgres/putil.c,
+	  branches/swig-redo/src/backend/postgres/test/test-db.c,
+	  branches/swig-redo/src/backend/postgres/test/test-load-backend.c,
+	  branches/swig-redo/src/backend/postgres/test/test-period.c,
+	  branches/swig-redo/src/bin/Makefile.am,
+	  branches/swig-redo/src/bin/gnucash-bin.c,
+	  branches/swig-redo/src/bin/gnucash.in,
+	  branches/swig-redo/src/bin/i18n.h.in,
+	  branches/swig-redo/src/bin/overrides/Makefile.am,
+	  branches/swig-redo/src/bin/test/Makefile.am,
+	  branches/swig-redo/src/business/business-core/Makefile.am,
+	  branches/swig-redo/src/business/business-core/file/gncmod-business-backend-file.c,
+	  branches/swig-redo/src/business/business-core/test/Makefile.am,
+	  branches/swig-redo/src/business/business-core/test/test-address.c,
+	  branches/swig-redo/src/business/business-core/test/test-business.c,
+	  branches/swig-redo/src/business/business-core/test/test-customer.c,
+	  branches/swig-redo/src/business/business-core/test/test-employee.c,
+	  branches/swig-redo/src/business/business-core/test/test-job.c,
+	  branches/swig-redo/src/business/business-core/test/test-vendor.c,
+	  branches/swig-redo/src/business/business-gnome/Makefile.am,
+	  branches/swig-redo/src/business/business-gnome/schemas/Makefile.am,
+	  branches/swig-redo/src/business/business-reports/Makefile.am,
+	  branches/swig-redo/src/business/business-utils/Makefile.am,
+	  branches/swig-redo/src/business/dialog-tax-table/Makefile.am,
+	  branches/swig-redo/src/calculation/expression_parser.c,
+	  branches/swig-redo/src/core-utils/Makefile.am,
+	  branches/swig-redo/src/core-utils/gnc-gconf-utils.c,
+	  branches/swig-redo/src/core-utils/gnc-gconf-utils.h,
+	  branches/swig-redo/src/core-utils/gnc-glib-utils.c,
+	  branches/swig-redo/src/core-utils/gnc-glib-utils.h,
+	  branches/swig-redo/src/engine/Account.c,
+	  branches/swig-redo/src/engine/Account.h,
+	  branches/swig-redo/src/engine/Group.c,
+	  branches/swig-redo/src/engine/Group.h,
+	  branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/engine/Period.c,
+	  branches/swig-redo/src/engine/SX-book.c,
+	  branches/swig-redo/src/engine/SX-book.h,
+	  branches/swig-redo/src/engine/Transaction.c,
+	  branches/swig-redo/src/engine/binreloc.c,
+	  branches/swig-redo/src/engine/binreloc.h,
+	  branches/swig-redo/src/engine/cashobjects.c,
+	  branches/swig-redo/src/engine/gnc-budget.c,
+	  branches/swig-redo/src/engine/gnc-engine.c,
+	  branches/swig-redo/src/engine/gnc-lot.c,
+	  branches/swig-redo/src/engine/gnc-path.c,
+	  branches/swig-redo/src/engine/gnc-path.h,
+	  branches/swig-redo/src/engine/gnc-pricedb.c,
+	  branches/swig-redo/src/engine/gncla-dir.h.in,
+	  branches/swig-redo/src/engine/test/Makefile.am,
+	  branches/swig-redo/src/engine/test/test-commodities.c,
+	  branches/swig-redo/src/engine/test/test-date.c,
+	  branches/swig-redo/src/engine/test/test-group-vs-book.c,
+	  branches/swig-redo/src/engine/test/test-guid.c,
+	  branches/swig-redo/src/engine/test/test-load-engine.c,
+	  branches/swig-redo/src/engine/test/test-lots.c,
+	  branches/swig-redo/src/engine/test/test-numeric.c,
+	  branches/swig-redo/src/engine/test/test-object.c,
+	  branches/swig-redo/src/engine/test/test-period.c,
+	  branches/swig-redo/src/engine/test/test-query.c,
+	  branches/swig-redo/src/engine/test/test-querynew.c,
+	  branches/swig-redo/src/engine/test/test-resolve-file-path.c,
+	  branches/swig-redo/src/engine/test/test-scm-query.c,
+	  branches/swig-redo/src/engine/test/test-split-vs-account.c,
+	  branches/swig-redo/src/engine/test/test-transaction-reversal.c,
+	  branches/swig-redo/src/engine/test/test-transaction-voiding.c,
+	  branches/swig-redo/src/gnc-module/Makefile.am,
+	  branches/swig-redo/src/gnc-module/gnc-module.c,
+	  branches/swig-redo/src/gnc-module/test/test-dynload.c,
+	  branches/swig-redo/src/gnc-test-env,
+	  branches/swig-redo/src/gnome,
+	  branches/swig-redo/src/gnome-search/Makefile.am,
+	  branches/swig-redo/src/gnome-search/search.glade,
+	  branches/swig-redo/src/gnome-utils/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/dialog-account.c,
+	  branches/swig-redo/src/gnome-utils/dialog-preferences.c,
+	  branches/swig-redo/src/gnome-utils/dialog-reset-warnings.c,
+	  branches/swig-redo/src/gnome-utils/dialog-utils.c,
+	  branches/swig-redo/src/gnome-utils/druid-gconf-setup.c,
+	  branches/swig-redo/src/gnome-utils/glade/transfer.glade,
+	  branches/swig-redo/src/gnome-utils/gnc-date-format.c,
+	  branches/swig-redo/src/gnome-utils/gnc-dialog.c,
+	  branches/swig-redo/src/gnome-utils/gnc-dir.h.in,
+	  branches/swig-redo/src/gnome-utils/gnc-druid-provider-file-gnome.c,
+	  branches/swig-redo/src/gnome-utils/gnc-embedded-window.c,
+	  branches/swig-redo/src/gnome-utils/gnc-file.c,
+	  branches/swig-redo/src/gnome-utils/gnc-gnome-utils.c,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.c,
+	  branches/swig-redo/src/gnome-utils/gnc-plugin.c,
+	  branches/swig-redo/src/gnome-utils/gnc-plugin.h,
+	  branches/swig-redo/src/gnome-utils/gnc-query-list.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-account-types.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-account-types.h,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-view.c,
+	  branches/swig-redo/src/gnome-utils/schemas/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/search-param.c,
+	  branches/swig-redo/src/gnome-utils/search-param.h,
+	  branches/swig-redo/src/gnome-utils/test/test-gnc-recurrence.c,
+	  branches/swig-redo/src/gnome/Makefile.am,
+	  branches/swig-redo/src/gnome/dialog-print-check.c,
+	  branches/swig-redo/src/gnome/druid-acct-period.c,
+	  branches/swig-redo/src/gnome/druid-hierarchy.c,
+	  branches/swig-redo/src/gnome/glade/account.glade,
+	  branches/swig-redo/src/gnome/glade/commodities.glade,
+	  branches/swig-redo/src/gnome/glade/price.glade,
+	  branches/swig-redo/src/gnome/glade/stocks.glade,
+	  branches/swig-redo/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/swig-redo/src/gnome/gnucash.desktop.in,
+	  branches/swig-redo/src/gnome/gnucash.desktop.in.in,
+	  branches/swig-redo/src/gnome/schemas/Makefile.am,
+	  branches/swig-redo/src/gnome/schemas/apps_gnucash_warnings.schemas.in,
+	  branches/swig-redo/src/gnome/top-level.c,
+	  branches/swig-redo/src/gnome/window-reconcile.c,
+	  branches/swig-redo/src/import-export/Makefile.am,
+	  branches/swig-redo/src/import-export/hbci/Makefile.am,
+	  branches/swig-redo/src/import-export/hbci/dialog-hbcitrans.c,
+	  branches/swig-redo/src/import-export/hbci/dialog-hbcitrans.h,
+	  branches/swig-redo/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/swig-redo/src/import-export/hbci/gnc-file-aqb-import.c,
+	  branches/swig-redo/src/import-export/hbci/gnc-file-aqb-import.h,
+	  branches/swig-redo/src/import-export/hbci/gnc-hbci-kvp.c,
+	  branches/swig-redo/src/import-export/hbci/gnc-hbci-transfer.c,
+	  branches/swig-redo/src/import-export/hbci/gnc-hbci-utils.c,
+	  branches/swig-redo/src/import-export/hbci/gnc-hbci-utils.h,
+	  branches/swig-redo/src/import-export/hbci/gnc-plugin-hbci-ui.xml,
+	  branches/swig-redo/src/import-export/hbci/gnc-plugin-hbci.c,
+	  branches/swig-redo/src/import-export/hbci/hbci-interaction.c,
+	  branches/swig-redo/src/import-export/hbci/hbci-interaction.h,
+	  branches/swig-redo/src/import-export/hbci/schemas/Makefile.am,
+	  branches/swig-redo/src/import-export/import-account-matcher.c,
+	  branches/swig-redo/src/import-export/import-match-map.c,
+	  branches/swig-redo/src/import-export/mt940/Makefile.am,
+	  branches/swig-redo/src/import-export/mt940/gnc-mt940-import.c,
+	  branches/swig-redo/src/import-export/mt940/gnc-mt940-import.h,
+	  branches/swig-redo/src/import-export/mt940/gnc-plugin-mt940-ui.xml,
+	  branches/swig-redo/src/import-export/mt940/gnc-plugin-mt940.c,
+	  branches/swig-redo/src/import-export/mt940/gnc-plugin-mt940.h,
+	  branches/swig-redo/src/import-export/mt940/gncmod-mt940-import.c,
+	  branches/swig-redo/src/import-export/qif-import/Makefile.am,
+	  branches/swig-redo/src/import-export/qif-import/test/Makefile.am,
+	  branches/swig-redo/src/import-export/qif-io-core/Makefile.am,
+	  branches/swig-redo/src/import-export/qif/Makefile.am,
+	  branches/swig-redo/src/import-export/schemas/Makefile.am,
+	  branches/swig-redo/src/import-export/test/Makefile.am,
+	  branches/swig-redo/src/import-export/test/test-import-parse.c,
+	  branches/swig-redo/src/network-utils/test/Makefile.am,
+	  branches/swig-redo/src/register/ledger-core/split-register-control.c,
+	  branches/swig-redo/src/register/ledger-core/split-register.c,
+	  branches/swig-redo/src/register/register-core/Makefile.am,
+	  branches/swig-redo/src/report/locale-specific/us/Makefile.am,
+	  branches/swig-redo/src/report/locale-specific/us/test/Makefile.am,
+	  branches/swig-redo/src/report/report-gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-system/Makefile.am,
+	  branches/swig-redo/src/report/report-system/test/Makefile.am,
+	  branches/swig-redo/src/report/standard-reports/Makefile.am,
+	  branches/swig-redo/src/report/standard-reports/budget.scm,
+	  branches/swig-redo/src/report/standard-reports/test/Makefile.am,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm,
+	  branches/swig-redo/src/report/stylesheets/Makefile.am,
+	  branches/swig-redo/src/report/stylesheets/test/Makefile.am,
+	  branches/swig-redo/src/report/utility-reports/Makefile.am,
+	  branches/swig-redo/src/report/utility-reports/test/Makefile.am,
+	  branches/swig-redo/src/scm/Makefile.am,
+	  branches/swig-redo/src/tax/us/Makefile.am: Rebase the swig-redo
+	  branch on trunk at r15000. Based on the number of merge
+	  conflicts (almost every Makefile.am) I'm rebasing the branch
+	  before merging into trunk.
+
+2006-10-14 03:15  chris
+
+	* [r15022]
+	  branches/swig-redo/src/app-utils/test/test-component-manager:
+	  Remove disabled test of removed guile api.
+
+2006-10-13 20:11  andi5
+
+	* [r15021] branches/swig-redo, branches/swig-redo/src,
+	  branches/swig-redo/src/Makefile.am: Make src before its
+	  subdirectories so that swig-runtime.h exists early enough.
+	  Svn-ignore that file.
+
+2006-10-13 19:56  andi5
+
+	* [r15020] branches/swig-redo, branches/swig-redo/configure.in:
+	  Complete r15018 by removing the Makefile's in src/optional/swig
+	  from configure.in.
+
+2006-10-13 19:43  chris
+
+	* [r15019] branches/swig-redo/src/Makefile.am,
+	  branches/swig-redo/src/swig-runtime.h: Drop the committed
+	  swig-runtime.h and add a rule to generate it.
+
+2006-10-13 19:08  andi5
+
+	* [r15018] branches/swig-redo,
+	  branches/swig-redo/src/optional/Makefile.am,
+	  branches/swig-redo/src/optional/swig: Drop src/optional/swig.
+	* [r15017] branches/swig-redo,
+	  branches/swig-redo/src/app-utils/Makefile.am,
+	  branches/swig-redo/src/business/business-core/Makefile.am,
+	  branches/swig-redo/src/business/dialog-tax-table/Makefile.am,
+	  branches/swig-redo/src/core-utils/Makefile.am,
+	  branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/gnc-module/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/Makefile.am,
+	  branches/swig-redo/src/gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-system/Makefile.am: Call
+	  swig as $(SWIG) and make these rules conditional on
+	  BUILDING_FROM_SVN.
+
+2006-10-13 13:36  andi5
+
+	* [r15016] branches/swig-redo,
+	  branches/swig-redo/src/core-utils/Makefile.am: Add
+	  GNUCASH_SEPARATE_BUILDDIR symlinks for core-utils.scm.
+	* [r15015] branches/swig-redo,
+	  branches/swig-redo/src/business/business-reports/Makefile.am,
+	  branches/swig-redo/src/report/utility-reports/Makefile.am: Readd
+	  .scm-links to CLEANFILES in two directories.
+
+2006-10-13 08:28  cstim
+
+	* [r15014] trunk/src/import-export/test/Makefile.am: Fix missing
+	  library for debian-libtool as reported by Sigve Indregard.
+
+2006-10-12 22:15  warlord
+
+	* [r15013] branches/swig-redo/configure.in: Conditionalize swig to
+	  SVN/SVK builds only. - add an AM_CONDITIONAL: BUILDING_FROM_SVN
+	  - only test for swig in configure when building from SVN TODO:
+	  Update Makefiles to conditionalize swig.
+
+2006-10-12 21:26  andi5
+
+	* [r15012] branches/swig-redo,
+	  branches/swig-redo/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.c,
+	  branches/swig-redo/src/gnome/dialog-price-edit-db.c,
+	  branches/swig-redo/src/gnome/dialog-tax-info.c,
+	  branches/swig-redo/src/gnome/gnc-plugin-page-register.c: Readd
+	  gnc-module/test/mod-{foo,bar,baz}/swig files to BUILT_SOURCES.
+	  Cosmetic change for a few header inclusions.
+
+2006-10-12 00:52  andi5
+
+	* [r15011] branches/swig-redo,
+	  branches/swig-redo/src/app-utils/Makefile.am,
+	  branches/swig-redo/src/business/business-core/Makefile.am,
+	  branches/swig-redo/src/business/dialog-tax-table/Makefile.am,
+	  branches/swig-redo/src/core-utils/Makefile.am,
+	  branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/gnc-module/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/Makefile.am,
+	  branches/swig-redo/src/gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-system/Makefile.am:
+	  Distribute SWIG interface files. Remove generated wrapper
+	  sources from BUILT_SOURCES and add them to MAINTAINERCLEANFILES.
+
+2006-10-11 20:55  andi5
+
+	* [r15010] branches/swig-redo, branches/swig-redo/Makefile.am,
+	  branches/swig-redo/src/bin/Makefile.am,
+	  branches/swig-redo/src/bin/gnucash-valgrind.in,
+	  branches/swig-redo/src/bin/gnucash.in,
+	  branches/swig-redo/src/bin/overrides/Makefile.am,
+	  branches/swig-redo/src/bin/overrides/gnucash-build-env.in,
+	  branches/swig-redo/src/bin/overrides/gnucash-env.in,
+	  branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/gnome/Makefile.am,
+	  branches/swig-redo/src/import-export/Makefile.am,
+	  branches/swig-redo/src/import-export/log-replay/Makefile.am,
+	  branches/swig-redo/src/import-export/qif-import/Makefile.am:
+	  Remove even more remnants of g-wrap.
+
+2006-10-11 20:55  chris
+
+	* [r15009] trunk/src/engine/gnc-budget.c,
+	  trunk/src/engine/gnc-budget.h,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome/gnc-plugin-page-budget.c,
+	  trunk/src/report/standard-reports/budget.scm: Allow budget
+	  values to default to unset, rather than zero. Main patch by
+	  Gregory Alexander <gregalexa at gmail.com>. On editing, interpret a
+	  blank as an unset budget value. On reporting, show "." for unset
+	  budget values. Add bugdet functions for testing whether a budget
+	  value is set or not, and for unsetting it.
+
+2006-10-11 20:49  chris
+
+	* [r15008] branches/swig-redo/src/gnome-utils/gnome-utils.scm:
+	  Load the guile module containing the swig wrappers for the
+	  gnome-utils module.
+
+2006-10-11 17:09  andi5
+
+	* [r15007] trunk/packaging/win32/goffice-0.3.0-patch.diff,
+	  trunk/packaging/win32/install.sh: Repost
+	  goffice-0.3.0-patch.diff, with gtk-doc.m4 included.
+
+2006-10-11 03:03  chris
+
+	* [r15006]
+	  branches/swig-redo/src/report/standard-reports/register.scm: Use
+	  '() instead of #f for the empty query object.
+
+2006-10-11 01:25  andi5
+
+	* [r15005] branches/swig-redo,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-commodity.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-price.c,
+	  branches/swig-redo/src/gnome/dialog-price-edit-db.c,
+	  branches/swig-redo/src/gnome/dialog-sx-from-trans.c,
+	  branches/swig-redo/src/gnome/dialog-tax-info.c,
+	  branches/swig-redo/src/gnome/gnc-plugin-page-register.c,
+	  branches/swig-redo/src/register/ledger-core/gnc-ledger-display.c:
+	  Fix build by adding a few guile header includes. Again replace
+	  two g_malloc's of r15003 by g_new0.
+
+2006-10-11 00:57  chris
+
+	* [r15004]
+	  trunk/src/register/ledger-core/split-register-control.c: This
+	  fixes a bug in r14495. The bug is that auto-completed
+	  transactions aren't correctly marked as pending. This bug is
+	  probably responsible for the crashes like those in bug #348469.
+	  In general, the register makes it very difficult to consistently
+	  distiguish between beginning to edit a transaction that's being
+	  edited in another register and beginning to edit the blank
+	  transaction, which is already open for editing, but isn't marked
+	  pending so that we can pretend it hasn't been opened if it never
+	  gets modified. Fortunately, the auto-completion code only runs
+	  on the blank transaction, so we can assume it's not being edited
+	  in another register. This patch goes ahead and marks the blank
+	  transaction as pending. BP
+
+2006-10-11 00:44  andi5
+
+	* [r15003] branches/swig-redo,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-account.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-commodity.c,
+	  branches/swig-redo/src/gnome-utils/gnc-tree-model-price.c:
+	  Replace some malloc's by g_malloc.
+
+2006-10-11 00:39  chris
+
+	* [r15002] trunk/src/register/ledger-core/split-register.c: Ensure
+	  that the blank transaction is marked as the pending transaction
+	  when it is modified. This fixes a bug where editing the blank
+	  transaction, moving off of the transaction line to a split line,
+	  leaving the split line unedited and then closing the register
+	  will incorrectly leave the transaction open without asking. The
+	  bug fixed by this commit is possibly responsible for some of the
+	  crashes like bug #348469. BP
+
+2006-10-11 00:33  andi5
+
+	* [r15001] branches/swig-redo,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.c: Include
+	  guile headers in gnc-main-window.c.
+
+2006-10-11 00:07  andi5
+
+	* [r15000] branches/swig-redo, branches/swig-redo/configure.in,
+	  branches/swig-redo/macros/g-wrap.m4: Remove last g-wrap
+	  occurences in configure.in and the file g-wrap.m4.
+
+2006-10-11 00:00  chris
+
+	* [r14999]
+	  branches/swig-redo/src/app-utils/gnc-component-manager.c,
+	  branches/swig-redo/src/app-utils/gnc-component-manager.h,
+	  branches/swig-redo/src/app-utils/gnc-ui-util.c,
+	  branches/swig-redo/src/app-utils/test/Makefile.am: Remove the
+	  guile portions of gnucash's component manager.
+
+2006-10-10 23:59  chris
+
+	* [r14998] branches/swig-redo/src/app-utils/test/test-load-module:
+	  Use a better method for testing in test-load-module.
+
+2006-10-10 23:08  warlord
+
+	* [r14997] branches/swig-redo/configure.in,
+	  branches/swig-redo/src/app-utils/Makefile.am,
+	  branches/swig-redo/src/app-utils/test/Makefile.am,
+	  branches/swig-redo/src/backend/file/test/Makefile.am,
+	  branches/swig-redo/src/backend/postgres/test/Makefile.am,
+	  branches/swig-redo/src/business/business-core/Makefile.am,
+	  branches/swig-redo/src/business/business-core/test/Makefile.am,
+	  branches/swig-redo/src/business/business-gnome/Makefile.am,
+	  branches/swig-redo/src/business/business-reports/Makefile.am,
+	  branches/swig-redo/src/business/business-utils/Makefile.am,
+	  branches/swig-redo/src/business/dialog-tax-table/Makefile.am,
+	  branches/swig-redo/src/core-utils/Makefile.am,
+	  branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/engine/test/Makefile.am,
+	  branches/swig-redo/src/gnome-search/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/test/Makefile.am,
+	  branches/swig-redo/src/gnome/Makefile.am,
+	  branches/swig-redo/src/import-export/Makefile.am,
+	  branches/swig-redo/src/import-export/hbci/Makefile.am,
+	  branches/swig-redo/src/import-export/mt940/Makefile.am,
+	  branches/swig-redo/src/import-export/qif-import/Makefile.am,
+	  branches/swig-redo/src/import-export/qif-io-core/test/Makefile.am,
+	  branches/swig-redo/src/import-export/qif/Makefile.am,
+	  branches/swig-redo/src/import-export/qif/test/Makefile.am,
+	  branches/swig-redo/src/import-export/test/Makefile.am,
+	  branches/swig-redo/src/network-utils/test/Makefile.am,
+	  branches/swig-redo/src/register/register-core/Makefile.am,
+	  branches/swig-redo/src/register/register-core/test/Makefile.am,
+	  branches/swig-redo/src/register/register-gnome/test/Makefile.am,
+	  branches/swig-redo/src/report/locale-specific/us/test/Makefile.am,
+	  branches/swig-redo/src/report/report-gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-gnome/test/Makefile.am,
+	  branches/swig-redo/src/report/report-system/Makefile.am,
+	  branches/swig-redo/src/report/report-system/test/Makefile.am,
+	  branches/swig-redo/src/report/standard-reports/test/Makefile.am,
+	  branches/swig-redo/src/report/stylesheets/test/Makefile.am,
+	  branches/swig-redo/src/report/utility-reports/Makefile.am,
+	  branches/swig-redo/src/report/utility-reports/test/Makefile.am,
+	  branches/swig-redo/src/tax/us/test/Makefile.am: Remove more
+	  remnants of G-wrap - make sure we compile with GUILE_INCS and
+	  link with GUILE_LIBS - remove G_WRAP compile and link macros -
+	  remove G_WRAP module and lib dirs - make sure .scm-links are
+	  built in every place where they're used.
+
+2006-10-10 21:55  warlord
+
+	* [r14996] branches/swig-redo/configure.in: Rip out all g-wrap
+	  configure checks; we don't need 'em anymore.
+
+2006-10-10 18:33  warlord
+
+	* [r14995] branches/swig-redo/configure.in,
+	  branches/swig-redo/macros/ac_pkg_swig.m4: Update the swig
+	  requirement to 1.3.28 (needed for %delobject) Make the swig
+	  version check failure an error instead of a warning, because we
+	  really do need swig to build. This could change if we modify the
+	  build system to distribute the swig-generated files so we don't
+	  need swig at build time, just at 'make dist' (or when building
+	  from SVN). But that can happen later.
+
+2006-10-10 16:19  chris
+
+	* [r14994] branches/swig-redo/src/engine/engine.i: Fix typo in
+	  custom typemap.
+
+2006-10-10 16:16  chris
+
+	* [r14993] branches/swig-redo/src/engine/engine.i: Generate
+	  correct wrapper for gnc_quote_source_set_fq_installed().
+
+2006-10-10 04:05  chris
+
+	* [r14992]
+	  branches/swig-redo/src/gnc-module/test/mod-bar/bar-gwrap.scm,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/baz-gwrap.scm,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/foo-gwrap.scm:
+	  Delete gwrap files for gnc-module tests.
+
+2006-10-10 04:03  chris
+
+	* [r14991] branches/swig-redo/src/gnc-module/test/mod-bar/bar.i,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/baz.i,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/foo.i: Add
+	  interface definitions for gnc-module tests from last commit.
+
+2006-10-10 03:57  chris
+
+	* [r14990] branches/swig-redo/src/gnc-module/test/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-bar,
+	  branches/swig-redo/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-bar/gnc-mod-bar.c,
+	  branches/swig-redo/src/gnc-module/test/mod-baz,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-baz/gnc-mod-baz.c,
+	  branches/swig-redo/src/gnc-module/test/mod-foo,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/swig-redo/src/gnc-module/test/mod-foo/gnc-mod-foo.c,
+	  branches/swig-redo/src/gnc-module/test/test-gwrapped-c,
+	  branches/swig-redo/src/gnc-module/test/test-load-deps,
+	  branches/swig-redo/src/gnc-module/test/test-scm-multi: Convert
+	  all the gnc-module tests to use swig instead of gwrap.
+
+2006-10-10 02:40  chris
+
+	* [r14989] branches/swig-redo/configure.in,
+	  branches/swig-redo/src/app-utils/app-utils.i,
+	  branches/swig-redo/src/app-utils/gnc-helpers.c,
+	  branches/swig-redo/src/app-utils/gnc-helpers.h,
+	  branches/swig-redo/src/business/business-core/business-core.i,
+	  branches/swig-redo/src/business/business-gnome/businessmod-gnome.c,
+	  branches/swig-redo/src/business/dialog-tax-table/dialog-tax-table.i,
+	  branches/swig-redo/src/core-utils/core-utils.i,
+	  branches/swig-redo/src/engine/engine-helpers.c,
+	  branches/swig-redo/src/engine/engine-helpers.h,
+	  branches/swig-redo/src/engine/engine.i,
+	  branches/swig-redo/src/engine/engine.scm,
+	  branches/swig-redo/src/engine/glib-helpers.c,
+	  branches/swig-redo/src/engine/glib-helpers.h,
+	  branches/swig-redo/src/gnc-module/gnc-module.i,
+	  branches/swig-redo/src/gnome-utils/gnc-file.h,
+	  branches/swig-redo/src/gnome-utils/gnome-utils.i,
+	  branches/swig-redo/src/gnome/gnome.i,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.i,
+	  branches/swig-redo/src/report/report-system/html-acct-table.scm,
+	  branches/swig-redo/src/report/report-system/report-system.i,
+	  branches/swig-redo/src/report/utility-reports/hello-world.scm:
+	  Force CFLAGS to include -Wno-unused. This is currently required
+	  because swig generates code unused variables. Add prototypes for
+	  public swig-generated functions. Remove some extraneous
+	  references to g-wrap. Remove some old debugging code.
+
+2006-10-10 01:25  chris
+
+	* [r14988] branches/swig-redo/src/app-utils/Makefile.am: Remove
+	  deleted kvp-options-registry.scm from Makefile.am.
+
+2006-10-10 00:37  chris
+
+	* [r14987] branches/swig-redo/src/app-utils/gw-app-utils-spec.scm,
+	  branches/swig-redo/src/business/business-core/gw-business-core-spec.scm,
+	  branches/swig-redo/src/business/business-gnome/gw-business-gnome-spec.scm,
+	  branches/swig-redo/src/business/dialog-tax-table/gw-dialog-tax-table-spec.scm,
+	  branches/swig-redo/src/core-utils/gw-core-utils-spec.scm,
+	  branches/swig-redo/src/engine/gw-engine-spec.scm,
+	  branches/swig-redo/src/engine/gw-kvp-spec.scm,
+	  branches/swig-redo/src/gnc-module/gw-gnc-module-spec.scm,
+	  branches/swig-redo/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  branches/swig-redo/src/gnome/gw-gnc-spec.scm,
+	  branches/swig-redo/src/register/register-core/gw-register-core-spec.scm,
+	  branches/swig-redo/src/report/report-gnome/gw-report-gnome-spec.scm,
+	  branches/swig-redo/src/report/report-system/gw-report-system-spec.scm:
+	  Delete all the gw-*-spec.scm files. Don't need 'em no mo'.
+
+2006-10-10 00:34  chris
+
+	* [r14986] branches/swig-redo/src/app-utils,
+	  branches/swig-redo/src/business/business-core,
+	  branches/swig-redo/src/business/business-gnome,
+	  branches/swig-redo/src/business/dialog-tax-table,
+	  branches/swig-redo/src/core-utils,
+	  branches/swig-redo/src/engine,
+	  branches/swig-redo/src/gnc-module, branches/swig-redo/src/gnome,
+	  branches/swig-redo/src/gnome-utils,
+	  branches/swig-redo/src/report/report-gnome,
+	  branches/swig-redo/src/report/report-system: Update svn:ignore
+	  for swig-*.c
+
+2006-10-10 00:14  chris
+
+	* [r14985] branches/swig-redo/src/app-utils/prefs.scm,
+	  branches/swig-redo/src/bin/gnucash-bin.c,
+	  branches/swig-redo/src/core-utils/Makefile.am,
+	  branches/swig-redo/src/core-utils/core-utils.i,
+	  branches/swig-redo/src/core-utils/core-utils.scm,
+	  branches/swig-redo/src/core-utils/gnc-main.c,
+	  branches/swig-redo/src/core-utils/gnc-main.h,
+	  branches/swig-redo/src/import-export/qif-import/qif-file.scm,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.scm,
+	  branches/swig-redo/src/scm/main.scm,
+	  branches/swig-redo/src/scm/price-quotes.scm: Convert the
+	  core-utils "module" (more like "directory") from gwrap to swig.
+	  All at once: Add the interface definition. Add a new guile
+	  module to replace the gw-core-utils. Build and load the swig
+	  module (from the new guile module). Use more glib in
+	  gnc-main.[ch] Incidentally, enable guile backtraces
+	  unconditionally.
+
+2006-10-10 00:13  chris
+
+	* [r14984] branches/swig-redo/src/gnc-module/Makefile.am,
+	  branches/swig-redo/src/gnc-module/gnc-module.c,
+	  branches/swig-redo/src/gnc-module/gnc-module.i,
+	  branches/swig-redo/src/gnc-module/gnc-module.scm: Convert
+	  gnc-module from gwrap to swig. All at once: Add the interface
+	  definition. Build and load (from guile) the swig module.
+
+2006-10-10 00:12  chris
+
+	* [r14983] branches/swig-redo/src/app-utils/Makefile.am,
+	  branches/swig-redo/src/app-utils/test/Makefile.am,
+	  branches/swig-redo/src/backend/file/test/Makefile.am,
+	  branches/swig-redo/src/backend/postgres/test/Makefile.am,
+	  branches/swig-redo/src/business/business-core/businessmod-core.c,
+	  branches/swig-redo/src/business/business-core/test/Makefile.am,
+	  branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/engine/Query.c,
+	  branches/swig-redo/src/engine/Query.h,
+	  branches/swig-redo/src/engine/engine.scm,
+	  branches/swig-redo/src/engine/gncmod-engine.c,
+	  branches/swig-redo/src/engine/test-core/Makefile.am,
+	  branches/swig-redo/src/engine/test/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/Makefile.am,
+	  branches/swig-redo/src/gnome/Makefile.am: Remove all uses of
+	  gwrap related to the engine module. Remove some unneeded
+	  functions and temporary code.
+	* [r14982] branches/swig-redo/src/app-utils/app-utils.i,
+	  branches/swig-redo/src/app-utils/guile-util.c,
+	  branches/swig-redo/src/business/business-core/gncBusGuile.c,
+	  branches/swig-redo/src/business/business-gnome/dialog-invoice.c,
+	  branches/swig-redo/src/engine/glib-helpers.c,
+	  branches/swig-redo/src/engine/glib-helpers.h,
+	  branches/swig-redo/src/gnome-utils/dialog-options.c,
+	  branches/swig-redo/src/gnome/gnc-plugin-page-register.c,
+	  branches/swig-redo/src/import-export/qif-import/druid-qif-import.c:
+	  Convert runtime code related to core engine types from gwrap to
+	  swig api. Remove some temporary swig<->gwrap typemaps that
+	  aren't needed anymore because more types have been swigified.
+	  Remove some unneeded functions.
+
+2006-10-10 00:11  chris
+
+	* [r14981] branches/swig-redo/src/app-utils/options.scm,
+	  branches/swig-redo/src/business/business-core/business-core.scm,
+	  branches/swig-redo/src/business/business-reports/aging.scm,
+	  branches/swig-redo/src/business/business-reports/business-reports.scm,
+	  branches/swig-redo/src/business/business-reports/easy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/fancy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/invoice.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/engine/engine-interface.scm,
+	  branches/swig-redo/src/engine/engine-utilities.scm,
+	  branches/swig-redo/src/engine/test/test-create-account.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-dialog-utils.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-acct-table.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-invst-xtn-import.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/test/test-import-phase-1.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf.scm,
+	  branches/swig-redo/src/report/report-system/commodity-utilities.scm,
+	  branches/swig-redo/src/report/report-system/html-acct-table.scm,
+	  branches/swig-redo/src/report/report-system/html-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/standard-reports/account-piecharts.scm,
+	  branches/swig-redo/src/report/standard-reports/account-summary.scm,
+	  branches/swig-redo/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/average-balance.scm,
+	  branches/swig-redo/src/report/standard-reports/balance-sheet.scm,
+	  branches/swig-redo/src/report/standard-reports/budget.scm,
+	  branches/swig-redo/src/report/standard-reports/cash-flow.scm,
+	  branches/swig-redo/src/report/standard-reports/category-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/daily-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/equity-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/general-journal.scm,
+	  branches/swig-redo/src/report/standard-reports/income-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/net-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/price-scatter.scm,
+	  branches/swig-redo/src/report/standard-reports/register.scm,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm,
+	  branches/swig-redo/src/report/standard-reports/trial-balance.scm,
+	  branches/swig-redo/src/report/utility-reports/hello-world.scm:
+	  Automated rename of swig-wrapped engine functions related to
+	  Budgets, Lots, Groups, Splits, Transactions, and Accounts to
+	  their swig-names. #### Split Stuff
+	  s/gnc:split-get-guid/gncSplitGetGUID/g s/gnc:split-get-balance
+	  /xaccSplitGetBalance /g s/gnc:split-get-memo/xaccSplitGetMemo/g
+	  s/gnc:split-get-action/xaccSplitGetAction/g
+	  s/gnc:split-get-reconcile-state/xaccSplitGetReconcile/g
+	  s/gnc:split-get-reconciled-date/gnc-split-get-date-reconciled/g
+	  s/gnc:split-get-amount/xaccSplitGetAmount/g
+	  s/gnc:split-get-share-price/xaccSplitGetSharePrice/g
+	  s/gnc:split-get-value/xaccSplitGetValue/g
+	  s/gnc:split-get-account/xaccSplitGetAccount/g
+	  s/gnc:split-get-parent/xaccSplitGetParent/g
+	  s/gnc:split-get-other-split/xaccSplitGetOtherSplit/g
+	  s/gnc:split-compare-account-full-names/xaccSplitCompareAccountFullNames/g
+	  s/gnc:split-compare-account-codes/xaccSplitCompareAccountCodes/g
+	  s/gnc:split-compare-other-account-full-names/xaccSplitCompareOtherAccountFullNames/g
+	  s/gnc:split-compare-other-account-codes/xaccSplitCompareOtherAccountCodes/g
+	  s/gnc:split-get-corr-account-name/xaccSplitGetCorrAccountName/g
+	  s/gnc:split-get-corr-account-full-name-internal/xaccSplitGetCorrAccountFullName/g
+	  s/gnc:split-get-lot/xaccSplitGetLot/g
+	  s/gnc:split-void-former-amount/xaccSplitVoidFormerAmount/g
+	  s/gnc:split-destroy/xaccSplitDestroy/g
+	  s/gnc:split-create/xaccMallocSplit/g
+	  s/gnc:split-set-value/xaccSplitSetValue/g
+	  s/gnc:split-set-base-value/xaccSplitSetBaseValue/g
+	  s/gnc:split-set-memo/xaccSplitSetMemo/g
+	  s/gnc:split-set-action/xaccSplitSetAction/g
+	  s/gnc:split-set-reconcile/xaccSplitSetReconcile/g
+	  s/gnc:split-set-share-price/xaccSplitSetSharePrice/g
+	  s/gnc:split-set-amount/xaccSplitSetAmount/g
+	  s/gnc:split-set-share-price-and-amount/xaccSplitSetSharePriceAndAmount/g
+	  #### Transaction Stuff
+	  s/gnc:transaction-get-guid/gncTransGetGUID/g
+	  s/gnc:transaction-get-split/xaccTransGetSplit/g
+	  s/gnc:transaction-get-splits/xaccTransGetSplitList/g
+	  s/gnc:transaction-get-num/xaccTransGetNum/g
+	  s/gnc:transaction-get-description/xaccTransGetDescription/g
+	  s/gnc:transaction-get-notes/xaccTransGetNotes/g
+	  s/gnc:transaction-get-void-status/xaccTransGetVoidStatus/g
+	  s/gnc:transaction-order/xaccTransOrder/g
+	  s/gnc:transaction-get-date-posted/gnc-transaction-get-date-posted/g
+	  s/gnc:transaction-get-date-entered/gnc-transaction-get-date-entered/g
+	  s/gnc:transaction-get-account-value/xaccTransGetAccountValue/g
+	  s/gnc:transaction-get-txn-type/xaccTransGetTxnType/g
+	  s/gnc:transaction-destroy/xaccTransDestroy/g
+	  s/gnc:transaction-begin-edit/xaccTransBeginEdit/g
+	  s/gnc:transaction-commit-edit/xaccTransCommitEdit/g
+	  s/gnc:transaction-is-open/xaccTransIsOpen/g
+	  s/gnc:transaction-append-split/xaccTransAppendSplit/g
+	  s/gnc:transaction-set-date /xaccTransSetDate /g
+	  s/gnc:transaction-set-date-time-pair/gnc-transaction-set-date/g
+	  s/gnc:transaction-set-xnum/xaccTransSetNum/g
+	  s/gnc:transaction-set-description/xaccTransactionSetDescription/g
+	  s/gnc:transaction-set-notes/xaccTransSetNotes/g
+	  s/gnc:transaction-create/xaccMallocTransaction/g #### Account
+	  stuff s/gnc:account-get-guid/gncAccountGetGUID/g
+	  s/gnc:account-lookup/xaccAccountLookup/g s/gnc:malloc-account
+	  /xaccMallocAccount /g
+	  s/gnc:account-begin-edit/xaccAccountBeginEdit/g
+	  s/gnc:account-commit-edit/xaccAccountCommitEdit/g
+	  s/gnc:account-insert-split/xaccSplitSetAccount/g
+	  s/gnc:account-set-name/xaccAccountSetName/g
+	  s/gnc:account-set-code/xaccAccountSetCode/g
+	  s/gnc:account-set-description/xaccAccountSetDescription/g
+	  s/gnc:account-set-notes/xaccAccountSetNotes/g
+	  s/gnc:account-get-name/xaccAccountGetName/g
+	  s/gnc:account-get-code/xaccAccountGetCode/g
+	  s/gnc:account-get-description/xaccAccountGetDescription/g
+	  s/gnc:account-get-notes/xaccAccountGetNotes/g
+	  s/gnc:account-get-tax-related/xaccAccountGetTaxRelated/g
+	  s/gnc:account-get-tax-US-code/xaccAccountGetTaxUSCode/g
+	  s/gnc:account-get-tax-US-payer-name-source/xaccAccountGetTaxUSPayerNameSource/g
+	  s/gnc:account-get-children/xaccAccountGetChildren/g
+	  s/gnc:account-get-parent-account/xaccAccountGetParentAccount/g
+	  s/gnc:account-get-parent/xaccAccountGetParent/g
+	  s/gnc:account-get-balance /xaccAccountGetBalance /g
+	  s/gnc:account-get-split-list /xaccAccountGetSplitList /g
+	  s/gnc:get-account-from-full-name/xaccGetAccountFromFullName/g
+	  s/gnc:account-insert-subaccount/xaccAccountInsertSubAccount/g
+	  s/gnc:account-separator-string/gnc-get-account-separator-string/g
+	  #### Group stuff s/gnc:group-get-book/xaccGroupGetBook/g
+	  s/gnc:malloc-account-group/xaccMallocAccountGroup/g
+	  s/gnc:account-group-begin-edit/xaccAccountGroupBeginEdit/g
+	  s/gnc:account-group-destroy/xaccAccountGroupDestroy/g
+	  s/gnc:group-merge-accounts/xaccGroupMergeAccounts/g
+	  s/gnc:group-concat-group/xaccGroupConcatGroup/g
+	  s/gnc:group-get-num-subaccounts/xaccGroupGetNumSubAccounts/g
+	  s/gnc:group-get-num-accounts/xaccGroupGetNumAccounts/g
+	  s/gnc:group-get-account-list/xaccGroupGetAccountListSorted/g
+	  s/gnc:group-get-account/xaccGroupGetAccount/g
+	  s/gnc:group-get-parent/xaccGroupGetParentAccount/g
+	  s/gnc:group-insert-account/xaccGroupInsertAccount/g
+	  s/gnc:group-get-subaccounts/xaccGroupGetSubAccountsSorted/g
+	  s/gnc:lot-closed?/gnc-lot-is-closed/g
+	  s/gnc:lot-get-splits/gnc-lot-get-split-list/g
+	  s/gnc:lot-get-balance/gnc-lot-get-balance/g
+	  s/gnc:budget-get-guid/gncBudgetGetGUID/g
+	  s/gnc:budget-lookup/gnc-budget-lookup/g
+	  s/gnc:budget-get-/gnc-budget-get-/g
+
+2006-10-10 00:10  chris
+
+	* [r14980] branches/swig-redo/src/app-utils/options.scm,
+	  branches/swig-redo/src/business/business-reports/aging.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/engine/test/test-scm-query-import.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/swig-redo/src/report/report-system/commodity-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/standard-reports/average-balance.scm,
+	  branches/swig-redo/src/report/standard-reports/daily-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/general-journal.scm,
+	  branches/swig-redo/src/report/standard-reports/register.scm,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm:
+	  Automated rename of Query-related swig-wrapped engine functions
+	  to their swig-names.
+	  s/gnc:malloc-query/qof-query-create-for-splits/g
+	  s/gnc:free-query/qof-query-destroy/g
+	  s/gnc:query-invert/qof-query-invert/g
+	  s/gnc:query-merge/qof-query-merge/g
+	  s/gnc:query-get-splits/qof-query-run/g
+	  s/gnc:query-get-splits-unique-trans/xaccQueryGetSplitsUniqueTrans/g
+	  s/gnc:query-get-transactions/xaccQueryGetTransactions/g
+	  s/gnc:query-get-lots/xaccQueryGetLots/g
+	  s/gnc:query-add-account-match/xaccQueryAddAccountMatch/g
+	  s/gnc:query-add-single-account-match/xaccQueryAddSingleAccountMatch/g
+	  s/gnc:query-add-description-match/xaccQueryAddDescriptionMatch/g
+	  s/gnc:query-add-value-match/xaccQueryAddValueMatch/g
+	  s/gnc:query-add-date-match-timepair/xaccQueryAddDateMatchTS/g
+	  s/gnc:query-add-date-match/xaccQueryAddDateMatch/g
+	  s/gnc:query-add-cleared-match/xaccQueryAddClearedMatch/g
+	  s/gnc:query-set-sort-increasing/qof-query-set-sort-increasing/g
+	  s/gnc:query-set-max-results/qof-query-set-max-results/g
+	  s/gnc:query->scm/gnc-query2scm/g s/gnc:scm->query/gnc-scm2query/g
+
+2006-10-10 00:09  chris
+
+	* [r14979] branches/swig-redo/src/app-utils/app-utils.scm,
+	  branches/swig-redo/src/app-utils/date-utilities.scm,
+	  branches/swig-redo/src/app-utils/hooks.scm,
+	  branches/swig-redo/src/app-utils/options.scm,
+	  branches/swig-redo/src/business/business-gnome/business-gnome.scm,
+	  branches/swig-redo/src/business/business-reports/aging.scm,
+	  branches/swig-redo/src/business/business-reports/easy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/fancy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/invoice.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/business/business-utils/business-options.scm,
+	  branches/swig-redo/src/business/business-utils/business-prefs.scm,
+	  branches/swig-redo/src/engine/engine-interface.scm,
+	  branches/swig-redo/src/engine/gnc-numeric.scm,
+	  branches/swig-redo/src/engine/test/test-create-account.scm,
+	  branches/swig-redo/src/engine/test/test-scm-query-import.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-dialog-utils.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-file.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-objects.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-parse.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-acct-table.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-format-check.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-invst-xtn-import.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-parse.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/test/test-import-phase-1.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/test/test-parser.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf.scm,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.scm,
+	  branches/swig-redo/src/report/report-system/commodity-utilities.scm,
+	  branches/swig-redo/src/report/report-system/html-acct-table.scm,
+	  branches/swig-redo/src/report/report-system/html-barchart.scm,
+	  branches/swig-redo/src/report/report-system/html-piechart.scm,
+	  branches/swig-redo/src/report/report-system/html-scatter.scm,
+	  branches/swig-redo/src/report/report-system/html-style-info.scm,
+	  branches/swig-redo/src/report/report-system/html-style-sheet.scm,
+	  branches/swig-redo/src/report/report-system/html-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report-system.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report.scm,
+	  branches/swig-redo/src/report/standard-reports/account-piecharts.scm,
+	  branches/swig-redo/src/report/standard-reports/account-summary.scm,
+	  branches/swig-redo/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/average-balance.scm,
+	  branches/swig-redo/src/report/standard-reports/balance-sheet.scm,
+	  branches/swig-redo/src/report/standard-reports/budget.scm,
+	  branches/swig-redo/src/report/standard-reports/cash-flow.scm,
+	  branches/swig-redo/src/report/standard-reports/category-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/daily-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/equity-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/general-journal.scm,
+	  branches/swig-redo/src/report/standard-reports/income-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/net-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/price-scatter.scm,
+	  branches/swig-redo/src/report/standard-reports/register.scm,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm,
+	  branches/swig-redo/src/report/standard-reports/trial-balance.scm,
+	  branches/swig-redo/src/report/stylesheets/stylesheet-easy.scm,
+	  branches/swig-redo/src/report/stylesheets/stylesheet-fancy.scm,
+	  branches/swig-redo/src/report/utility-reports/hello-world.scm,
+	  branches/swig-redo/src/scm/command-line.scm,
+	  branches/swig-redo/src/scm/main-window.scm,
+	  branches/swig-redo/src/scm/price-quotes.scm,
+	  branches/swig-redo/src/tax/us/txf-de_DE.scm: Automated rename of
+	  engine swig-wrapped functions to their swig-names.
+	  s/gnc:query-set-book/qof-query-set-book/g
+	  s/gnc:account-get-commodity/xaccAccountGetCommodity/g
+	  s/gnc:account-set-commodity/xaccAccountSetCommodity/g
+	  s/gnc:transaction-get-currency/xaccTransGetCurrency/g
+	  s/gnc:transaction-set-currency/xaccTransSetCurrency/g
+	  s/'query-and/QOF-QUERY-AND/g s/'query-or/QOF-QUERY-OR/g
+	  s/'query-compare-equal/QOF-COMPARE-EQUAL/g
+	  s/'\?amt-sgn-match-either/QOF-NUMERIC-MATCH-ANY/g
+	  s/'\?amt-sgn-match-credit/QOF-NUMERIC-MATCH-CREDIT/g
+	  s/'\?amt-sgn-match-debit/QOF-NUMERIC-MATCH-DEBIT/g
+	  s/'\?cleared-match-no/CLEARED-NO/g
+	  s/'\?cleared-match-cleared/CLEARED-CLEARED/g
+	  s/'\?cleared-match-reconciled/CLEARED-RECONCILED/g
+	  s/'\?cleared-match-frozen/CLEARED-FROZEN/g
+	  s/'\?cleared-match-voided/CLEARED-VOIDED/g
+	  s/'guid-match-all/QOF-GUID-MATCH-ALL/g
+	  s/'guid-match-any/QOF-GUID-MATCH-ANY/g
+	  s/'guid-match-none/QOF-GUID-MATCH-NONE/g
+	  s/'query-txn-match-all/QUERY-TXN-MATCH-ALL/g
+	  s/'query-txn-match-any/QUERY-TXN-MATCH-ANY/g #### Kvp Stuff
+	  s/kvp-type-gint64/KVP-TYPE-GINT64/g
+	  s/kvp-type-double/KVP-TYPE-DOUBLE/g
+	  s/kvp-type-numeric/KVP-TYPE-NUMERIC/g
+	  s/kvp-type-string/KVP-TYPE-STRING/g
+	  s/kvp-type-guid/KVP-TYPE-GUID/g
+	  s/kvp-type-timespec/KVP-TYPE-TIMESPEC/g
+	  s/kvp-type-binary/KVP-TYPE-BINARY/g
+	  s/kvp-type-glist/KVP-TYPE-GLIST/g
+	  s/kvp-type-frame/KVP-TYPE-FRAME/g
+	  s/gnc:kvp-frame-delete-at-path/gnc-kvp-frame-delete-at-path/g
+	  s/gnc:kvp-frame-set-slot-path/kvp-frame-set-slot-path-gslist/g
+	  s/gnc:kvp-frame-get-slot-path/kvp-frame-get-slot-path-gslist/g
+	  s/gnc:book-get-slots/gnc-book-get-slots/g #### QofIDType Stuff
+	  s/gnc:id-book/QOF-ID-BOOK-SCM/g
+	  s/gnc:query-default-sort/QUERY-DEFAULT-SORT/g
+	  s/gnc:split-lot/SPLIT-LOT/g s/gnc:split-trans/SPLIT-TRANS/g
+	  s/gnc:split-account /SPLIT-ACCOUNT /g
+	  s/gnc:split-value/SPLIT-VALUE/g s/gnc:split-memo/SPLIT-MEMO/g
+	  s/gnc:split-date-reconciled/SPLIT-DATE-RECONCILED/g
+	  s/gnc:trans-date-posted/TRANS-DATE-POSTED/g
+	  s/gnc:trans-desc/TRANS-DESCRIPTION/g s/gnc:trans-num/TRANS-NUM/g
+	  s/gnc:account-code)/ACCOUNT-CODE-)/g
+	  s/gnc:split-account-fullname/SPLIT-ACCT-FULLNAME/g
+	  s/gnc:split-corr-account-fullname/SPLIT-CORR-ACCT-FULLNAME/g
+	  s/gnc:split-corr-account-code/SPLIT-CORR-ACCT-CODE/g
+	  s/gnc:invoice-from-txn/INVOICE-FROM-TXN/g
+	  s/gnc:invoice-owner/INVOICE-OWNER/g
+	  s/gnc:owner-parentg/OWNER-PARENTG/g
+	  s/gnc:owner-from-lot/OWNER-FROM-LOT/g
+	  s/gnc:invoice-from-lot/INVOICE-FROM-LOT/g
+	  s/gnc:query-add-guid-match/qof-query-add-guid-match/g
+	  s/gnc:query-set-sort-order/qof-query-set-sort-order/g ####
+	  Session Stuff s/gnc:session-new/qof-session-new/g
+	  s/gnc:session-get-book/qof-session-get-book/g #### Book stuff
+	  s/gnc:book-get-group/xaccGetAccountGroup/g
+	  s/gnc:book-get-template-group/gnc-book-get-template-group/g
+	  s/gnc:book-get-commodity-table/gnc-commodity-table-get-table/g
+	  s/gnc:book-get-pricedb/gnc-pricedb-get-db/g
+	  s/gnc:book-kvp-changed/qof-book-kvp-changed/g
+	  s/gnc:print-date/gnc-print-date/g
+	  s/gnc:commodity-create/gnc-commodity-new/g
+	  s/gnc:commodity-get-exchange-code/gnc-commodity-get-cusip/g
+	  s/gnc:commodity-is-currency?/gnc-commodity-is-currency/g
+	  s/gnc:commodity-equiv?/gnc-commodity-equiv/g # oops, this gets
+	  some unwanted functions, oh well.
+	  s/gnc:commodity-/gnc-commodity-/g
+	  s/gnc:double-to-gnc-numeric/double-to-gnc-numeric/g
+	  s/gnc:numeric-collector/zymurgy/g s/gnc:numeric-/gnc-numeric-/g
+	  s/zymurgy/gnc:numeric-collector/g
+	  s/gnc:timepair-canonical-day-time/timespecCanonicalDayTime/g
+	  s/gnc:build-dotgnucash-path/gnc-build-dotgnucash-path/g
+	  s/gnc:\*report-hook\*/HOOK-REPORT/g
+	  s/gnc:\*save-options-hook\*/HOOK-SAVE-OPTIONS/g
+	  s/gnc:hook-add-dangler/gnc-hook-add-scm-dangler/g
+	  s/gnc:hook-run-danglers-real/gnc-hook-run/g #### Price stuff
+	  s/gnc:price-create/gnc-price-create/g
+	  s/gnc:price-get-guid/gncPriceGetGUID/g
+	  s/gnc:price-unref/gnc-price-unref/g
+	  s/gnc:price-set-commodity/gnc-price-set-commodity/g
+	  s/gnc:price-set-currency/gnc-price-set-currency/g
+	  s/gnc:price-set-time/gnc-price-set-time/g
+	  s/gnc:price-set-source/gnc-price-set-source/g
+	  s/gnc:price-set-type/gnc-price-set-type/g
+	  s/gnc:price-set-value/gnc-price-set-value/g
+	  s/gnc:price-get-commodity/gnc-price-get-commodity/g
+	  s/gnc:price-get-currency/gnc-price-get-currency/g
+	  s/gnc:price-get-time/gnc-price-get-time/g
+	  #s/gnc:price-set-source/gnc-price-set-source/g
+	  #s/gnc:price-set-type/gnc-price-set-type/g
+	  s/gnc:price-get-value/gnc-price-get-value/g
+	  s/gnc:price-list-destroy/gnc-price-list-destroy/g
+	  s/gnc:pricedb-/gnc-pricedb-/g
+	  s/gnc:quote-source-set-fq-installed/gnc-quote-source-set-fq-installed/g
+
+2006-10-10 00:08  chris
+
+	* [r14978] branches/swig-redo/src/app-utils/app-utils.i,
+	  branches/swig-redo/src/app-utils/gnc-helpers.c,
+	  branches/swig-redo/src/app-utils/hooks.scm,
+	  branches/swig-redo/src/app-utils/option-util.c,
+	  branches/swig-redo/src/business/business-core/business-core.i,
+	  branches/swig-redo/src/engine/engine-helpers.c,
+	  branches/swig-redo/src/engine/gnc-hooks.c,
+	  branches/swig-redo/src/engine/kvp-scm.c,
+	  branches/swig-redo/src/import-export/qif-import/druid-qif-import.c:
+	  Another pass through converting the engine module from gwrap to
+	  swig. Remove some temporary swig<->gwrap typemaps that are no
+	  longer needed because some more types have been swigified.
+	  Convert some runtime code for some engine types from gwrap to
+	  the swig api. Remove a lot of gwrap-specific C code for handling
+	  gwrapped enums. Use '() instead of #f for the empty object.
+	* [r14977] branches/swig-redo/src/engine/engine-helpers.h,
+	  branches/swig-redo/src/engine/gnc-numeric.scm,
+	  branches/swig-redo/src/engine/gw-engine-spec.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-guess-map.scm:
+	  Remove some unused engine functions. Remove some gwrap-specific
+	  guile type-checking code.
+
+2006-10-10 00:07  chris
+
+	* [r14976] branches/swig-redo/src/app-utils/options.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-dialog-utils.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-acct-table.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf.scm,
+	  branches/swig-redo/src/report/report-system/html-acct-table.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/standard-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm:
+	  Automated rename of AccountType-related swig-wrapped functions
+	  to their swig-names. s/gnc:account-get-type-string
+	  /xaccAccountGetTypeStr /g
+	  s/gnc:account-get-type-string$/xaccAccountGetTypeStr/g
+	  s/gnc:account-get-type /xaccAccountGetType /g
+	  s/gnc:account-set-type/xaccAccountSetType/g
+	* [r14975] branches/swig-redo/src/app-utils/guile-util.c,
+	  branches/swig-redo/src/app-utils/option-util.c,
+	  branches/swig-redo/src/app-utils/options.scm,
+	  branches/swig-redo/src/app-utils/prefs.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/business/business-reports/payables.scm,
+	  branches/swig-redo/src/business/business-reports/receivables.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/standard-reports/account-piecharts.scm,
+	  branches/swig-redo/src/report/standard-reports/account-summary.scm,
+	  branches/swig-redo/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/average-balance.scm,
+	  branches/swig-redo/src/report/standard-reports/balance-sheet.scm,
+	  branches/swig-redo/src/report/standard-reports/budget.scm,
+	  branches/swig-redo/src/report/standard-reports/cash-flow.scm,
+	  branches/swig-redo/src/report/standard-reports/category-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/daily-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/equity-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/income-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/net-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/standard-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm,
+	  branches/swig-redo/src/report/standard-reports/trial-balance.scm:
+	  Convert AccountType from gwrap to swig. This type had to be done
+	  by hand for several reasons, most obviously because the same
+	  guile symbols that are used for account-types are sometimes used
+	  with other meanings. This conversion was tedious and
+	  error-prone. This is a potentially risky source of bugs. - Use
+	  '() instead of #f for the empty object. - Convert the runtime
+	  code that uses AccountType to use the swig api. - Incidentally
+	  this fixes an existing bug where the AccountType C<->guile
+	  mapping was broken, with the effect of no longer showing
+	  Account-type specific debit/credit column headers in the
+	  register.
+
+2006-10-10 00:06  chris
+
+	* [r14974] branches/swig-redo/src/engine/Makefile.am,
+	  branches/swig-redo/src/engine/engine.i,
+	  branches/swig-redo/src/engine/engine.scm,
+	  branches/swig-redo/src/engine/gncmod-engine.c: Begin the
+	  conversion of the engine module from gwrap to swig. - Add the
+	  interface definition. - Build and load the swig module. (Unlike
+	  other commits, gwrap is not removed yet, so that there are fully
+	  functional intermediate states.)
+
+2006-10-10 00:05  chris
+
+	* [r14973] branches/swig-redo/src/engine/Account.h,
+	  branches/swig-redo/src/engine/Group.c,
+	  branches/swig-redo/src/engine/Group.h,
+	  branches/swig-redo/src/engine/Query.c,
+	  branches/swig-redo/src/engine/Query.h,
+	  branches/swig-redo/src/engine/Transaction.h,
+	  branches/swig-redo/src/engine/engine-helpers.c,
+	  branches/swig-redo/src/engine/engine-helpers.h,
+	  branches/swig-redo/src/engine/glib-helpers.c,
+	  branches/swig-redo/src/engine/glib-helpers.h,
+	  branches/swig-redo/src/engine/gnc-budget.h,
+	  branches/swig-redo/src/engine/gnc-commodity.c,
+	  branches/swig-redo/src/engine/gnc-commodity.h,
+	  branches/swig-redo/src/engine/gnc-pricedb.c,
+	  branches/swig-redo/src/engine/gnc-pricedb.h,
+	  branches/swig-redo/src/gnome-utils/gnc-file.c,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm:
+	  Prepare the engine module for swigification. - Remove undefined
+	  functions - Use more specific types for GList-of-objects. - Use
+	  gboolean instead of int in some appropriate places. - Convert
+	  some macros to functions. - Implement gnc_scm_to_gslist_string()
+	  and publicize gnc_query_scm2path(), both of which will be useful
+	  for type-mapping. - Use #t/#f instead of 1/0 in some guile code.
+
+2006-10-10 00:04  chris
+
+	* [r14972]
+	  branches/swig-redo/src/app-utils/kvp-option-registry.scm: Delete
+	  kvp-option-registry.scm left-over from last commit.
+
+2006-10-10 00:03  chris
+
+	* [r14971] branches/swig-redo/src/app-utils/app-utils.i,
+	  branches/swig-redo/src/app-utils/app-utils.scm,
+	  branches/swig-redo/src/app-utils/kvp-option-registry.scm,
+	  branches/swig-redo/src/app-utils/option-util.c,
+	  branches/swig-redo/src/app-utils/option-util.h,
+	  branches/swig-redo/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/swig-redo/src/business/business-utils/business-prefs.scm,
+	  branches/swig-redo/src/gnome-utils/gnome-utils.scm,
+	  branches/swig-redo/src/tax/us/txf-de_DE.scm: Move the KVP option
+	  registry implementation from guile into C. - Unwrap some
+	  C->guile->C round-trips. - This removes a dependence on the
+	  gwrap-provided representation of a wrapped QofIdType.
+
+2006-10-10 00:02  chris
+
+	* [r14970] branches/swig-redo/src/bin/gnucash-bin.c,
+	  branches/swig-redo/src/engine/engine-utilities.scm,
+	  branches/swig-redo/src/scm/price-quotes.scm: Move all of the
+	  Session handling for the price-quotes loading from guile to C.
+	  (This is only related to swigification insofar as it removes the
+	  need to wrap some Backend code.)
+
+2006-10-10 00:01  chris
+
+	* [r14969] branches/swig-redo/src/app-utils/gfec.c,
+	  branches/swig-redo/src/app-utils/gfec.h,
+	  branches/swig-redo/src/bin/gnucash-bin.c,
+	  branches/swig-redo/src/gnome/top-level.c,
+	  branches/swig-redo/src/scm/main-window.scm: Move the code that
+	  loads old-style state files from guile into C. Move some file
+	  evaluation code from gnucash-bin.c into gfec.c. (This is only
+	  related to swigification insofar as it removes the need to wrap
+	  some Session code.)
+
+2006-10-10 00:00  chris
+
+	* [r14968] branches/swig-redo/src/app-utils/c-interface.scm,
+	  branches/swig-redo/src/app-utils/date-utilities.scm,
+	  branches/swig-redo/src/app-utils/gw-app-utils-spec.scm,
+	  branches/swig-redo/src/app-utils/options.scm,
+	  branches/swig-redo/src/business/business-reports/aging.scm,
+	  branches/swig-redo/src/business/business-reports/fancy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/business/business-utils/business-options.scm,
+	  branches/swig-redo/src/gnome-utils/gnome-utils.scm,
+	  branches/swig-redo/src/import-export/qif-import/druid-qif-import.c,
+	  branches/swig-redo/src/import-export/qif-import/qif-dialog-utils.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-acct-table.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-bank-xtn-import.scm,
+	  branches/swig-redo/src/import-export/qif-io-core/qif-invst-xtn-import.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/swig-redo/src/report/locale-specific/us/taxtxf.scm,
+	  branches/swig-redo/src/report/report-system/commodity-utilities.scm,
+	  branches/swig-redo/src/report/report-system/html-acct-table.scm,
+	  branches/swig-redo/src/report/report-system/html-style-info.scm,
+	  branches/swig-redo/src/report/report-system/html-utilities.scm,
+	  branches/swig-redo/src/report/report-system/options-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/standard-reports/account-piecharts.scm,
+	  branches/swig-redo/src/report/standard-reports/account-summary.scm,
+	  branches/swig-redo/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/average-balance.scm,
+	  branches/swig-redo/src/report/standard-reports/balance-sheet.scm,
+	  branches/swig-redo/src/report/standard-reports/budget.scm,
+	  branches/swig-redo/src/report/standard-reports/cash-flow.scm,
+	  branches/swig-redo/src/report/standard-reports/category-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/daily-reports.scm,
+	  branches/swig-redo/src/report/standard-reports/equity-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/general-journal.scm,
+	  branches/swig-redo/src/report/standard-reports/income-statement.scm,
+	  branches/swig-redo/src/report/standard-reports/net-barchart.scm,
+	  branches/swig-redo/src/report/standard-reports/portfolio.scm,
+	  branches/swig-redo/src/report/standard-reports/price-scatter.scm,
+	  branches/swig-redo/src/report/standard-reports/register.scm,
+	  branches/swig-redo/src/report/standard-reports/transaction.scm,
+	  branches/swig-redo/src/report/standard-reports/trial-balance.scm,
+	  branches/swig-redo/src/report/utility-reports/hello-world.scm,
+	  branches/swig-redo/src/scm/main-window.scm,
+	  branches/swig-redo/src/scm/price-quotes.scm: Automated rename of
+	  swig-wrapped app-utils functions to their swig-names.
+	  s/gnc:get-current-group)/gnc-get-current-group)/g
+	  s/gnc:get-current-book/gnc-get-current-book/g
+	  s/gnc:gettext-helper/gnc-gettext-helper/g
+	  s/gnc:option-db-/gnc-option-db-/g
+	  s/gnc:default-currency/gnc-default-currency/g
+	  s/gnc:default-report-currency/gnc-default-report-currency/g
+	  s/gnc:default-print-info/gnc-default-print-info/g
+	  s/gnc:option-invoke-callback/gncp_option_invoke_callback/g
+	  s/gnc:locale-default-iso-currency-code/gnc-locale-default-iso-currency-code/g
+	  s/gnc:account-get-full-name/gnc-account-get-full-name/g
+	  s/gnc:commodity-print-info/gnc-commodity-print-info/g
+	  s/gnc:account-print-info/gnc-account-print-info/g
+	  s/gnc:share-print-info-places/gnc-share-print-info-places/g
+	  s/gnc:account-reverse-balance?/gnc-reverse-balance/g
+	  s/gnc:is-euro-currency/gnc-is-euro-currency/g
+	  s/gnc:convert-to-euro/gnc-convert-to-euro/g
+	  s/gnc:convert-from-euro/gnc-convert-from-euro/g
+	  s/gnc:commodity-table-get-quotable-commodities-info/gnc-commodity-table-get-quotable-commodities/g
+	  s/gnc:accounting-period-start/gnc-accounting-period-fiscal-start/g
+	  s/gnc:accounting-period-end/gnc-accounting-period-fiscal-end/g
+	  s/gnc:amount->string/xaccPrintAmount/g
+
+2006-10-09 23:59  chris
+
+	* [r14967] branches/swig-redo/src/app-utils/app-utils.scm,
+	  branches/swig-redo/src/app-utils/option-util.c,
+	  branches/swig-redo/src/app-utils/option-util.h: Convert runtime
+	  code from gwrap to swig api. Also, publicize
+	  gnc_option_db_register_option() and load the swig module instead
+	  of the gwrap module from guile.
+	* [r14966] branches/swig-redo/src/app-utils/Makefile.am,
+	  branches/swig-redo/src/app-utils/app-utils.i,
+	  branches/swig-redo/src/app-utils/gncmod-app-utils.c: Begin to
+	  convert the app-utils module from gwrap to swig. Add the
+	  interface definition. Build and load the swig module.
+
+2006-10-09 23:58  chris
+
+	* [r14965]
+	  branches/swig-redo/src/business/business-gnome/business-gnome.scm,
+	  branches/swig-redo/src/business/business-reports/business-reports.scm,
+	  branches/swig-redo/src/gnome-utils/gnome-utils.scm,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.scm,
+	  branches/swig-redo/src/report/report-system/html-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm,
+	  branches/swig-redo/src/report/report-system/report.scm,
+	  branches/swig-redo/src/report/standard-reports/budget.scm,
+	  branches/swig-redo/src/report/standard-reports/cash-flow.scm,
+	  branches/swig-redo/src/report/utility-reports/hello-world.scm,
+	  branches/swig-redo/src/report/utility-reports/test-graphing.scm,
+	  branches/swig-redo/src/report/utility-reports/view-column.scm,
+	  branches/swig-redo/src/scm/main-window.scm,
+	  branches/swig-redo/src/scm/price-quotes.scm,
+	  branches/swig-redo/src/scm/printing/print-check.scm: Automated
+	  rename of swig-wrapped guile-utils functions to their
+	  swig-names. s/gnc:option-dialog-new/gnc-options-dialog-new/g
+	  s/gnc:option-dialog-destroy/gnc-options-dialog-destroy/g
+	  s/gnc:option-dialog-build-contents/gnc-options-dialog-build-contents/g
+	  s/gnc:option-dialog-set-callbacks/gnc-options-dialog-set-scm-callbacks/g
+	  s/gnc:print-session/gnc-print-session/g
+	  s/gnc:error-dialog/gnc-error-dialog/g
+	  s/gnc:verify-dialog/gnc-verify-dialog/g
+	  s/gnc:info-dialog/gnc-info-dialog/g
+	  s/gnc:warning-dialog/gnc-warning-dialog/g
+	  s/gnc:add-extension/gnc-add-scm-extension/g
+	  s/gnc:html-encode-string/gnc-html-encode-string/g
+	  s/gnc:html-build-url/gnc-build-url/g
+	  s/gnc:set-busy-cursor/gnc-set-busy-cursor/g
+	  s/gnc:unset-busy-cursor/gnc-unset-busy-cursor/g
+	  s/gnc:window-show-progress/gnc-window-show-progress/g
+	  s/gnc:ui-is-running?/gnucash-ui-is-running/g
+	  s/gnc:url-type-customer/URL-TYPE-CUSTOMER/g
+	  s/gnc:url-type-file/URL-TYPE-FILE/g
+	  s/gnc:url-type-jump/URL-TYPE-JUMP/g
+	  s/gnc:url-type-http/URL-TYPE-HTTP/g
+	  s/gnc:url-type-ftp/URL-TYPE-FTP/g
+	  s/gnc:url-type-secure/URL-TYPE-SECURE/g
+	  s/gnc:url-type-register/URL-TYPE-REGISTER/g
+	  s/gnc:url-type-accttree/URL-TYPE-ACCTTREE/g
+	  s/gnc:url-type-report/URL-TYPE-REPORT/g
+	  s/gnc:url-type-options/URL-TYPE-OPTIONS/g
+	  s/gnc:url-type-scheme/URL-TYPE-SCHEME/g
+	  s/gnc:url-type-help/URL-TYPE-HELP/g
+	  s/gnc:url-type-xmldata/URL-TYPE-XMLDATA/g
+	  s/gnc:url-type-price/URL-TYPE-PRICE/g
+	  s/gnc:url-type-other/URL-TYPE-OTHER/g
+
+2006-10-09 23:57  chris
+
+	* [r14964] branches/swig-redo/src/gnome-utils/dialog-options.c,
+	  branches/swig-redo/src/gnome-utils/dialog-options.h,
+	  branches/swig-redo/src/gnome-utils/gnc-html.h,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.c,
+	  branches/swig-redo/src/gnome-utils/gnc-main-window.h,
+	  branches/swig-redo/src/gnome-utils/gnc-plugin-menu-additions.c,
+	  branches/swig-redo/src/gnome-utils/gnome-utils.scm,
+	  branches/swig-redo/src/gnome/dialog-price-edit-db.c,
+	  branches/swig-redo/src/import-export/qif-import/druid-qif-import.c,
+	  branches/swig-redo/src/import-export/qif-import/qif-parse.scm,
+	  branches/swig-redo/src/report/report-gnome/dialog-column-view.c,
+	  branches/swig-redo/src/report/report-gnome/dialog-style-sheet.c,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.i,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.scm,
+	  branches/swig-redo/src/report/report-gnome/window-report.c,
+	  branches/swig-redo/src/scm/price-quotes.scm: More converting of
+	  the gnome-utils module from gwrap to swig. Rename
+	  gnc_build_options_dialog_contents() to
+	  gnc_options_dialog_build_contents() for consistency. Remove some
+	  undefined functions. Privatize a #define. Convert runtime code
+	  from gwrap to swig. Use '() instead of #f for the empty object.
+	  Remove some temporary swig<->gwrap typemaps that are no longer
+	  needed.
+
+2006-10-09 23:56  chris
+
+	* [r14963] branches/swig-redo/src/gnome-utils/Makefile.am,
+	  branches/swig-redo/src/gnome-utils/gncmod-gnome-utils.c,
+	  branches/swig-redo/src/gnome-utils/gnome-utils.i,
+	  branches/swig-redo/src/report/report-system/report-utilities.scm:
+	  Convert the gnome-utils module from gwrap to swig. Add the
+	  interface definition. Build and load the swig module. Use ""
+	  instead of #f to represent an empty string.
+	* [r14962]
+	  branches/swig-redo/src/report/report-system/Makefile.am,
+	  branches/swig-redo/src/report/report-system/gnc-report.c,
+	  branches/swig-redo/src/report/report-system/gnc-report.h,
+	  branches/swig-redo/src/report/report-system/gncmod-report-system.c,
+	  branches/swig-redo/src/report/report-system/report-system.i,
+	  branches/swig-redo/src/report/report-system/report-system.scm,
+	  branches/swig-redo/src/report/report-system/report.scm,
+	  branches/swig-redo/src/report/utility-reports/view-column.scm,
+	  branches/swig-redo/src/report/utility-reports/welcome-to-gnucash.scm:
+	  Convert the report-system module form gwrap to swig. All at
+	  once: Add the interface definiton. Convert the runtime code from
+	  gwrap to swig. Rename wrapped function calls to their
+	  swig-names. Use '() instead of #f for the empty object. Use gint
+	  instead of int in gnc-report.[ch]
+
+2006-10-09 23:55  chris
+
+	* [r14961] branches/swig-redo/src/report/report-gnome/Makefile.am,
+	  branches/swig-redo/src/report/report-gnome/dialog-column-view.c,
+	  branches/swig-redo/src/report/report-gnome/gnc-plugin-page-report.c,
+	  branches/swig-redo/src/report/report-gnome/gncmod-report-gnome.c,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.i,
+	  branches/swig-redo/src/report/report-gnome/report-gnome.scm,
+	  branches/swig-redo/src/report/report-gnome/window-report.c:
+	  Convert the report-gnome module from gwrap to swig. All at once:
+	  Add the interface definition. Convert the runtime code from
+	  gwrap to swig. Rename wrapped function calls to their swig-names.
+
+2006-10-09 23:54  chris
+
+	* [r14960]
+	  branches/swig-redo/src/register/register-core/Makefile.am,
+	  branches/swig-redo/src/register/register-core/gncmod-register-core.c:
+	  Un-gwrap the register-core module. We don't actually use it, so
+	  there's no point in swigifying it.
+	* [r14959]
+	  branches/swig-redo/src/import-export/qif-import/qif-file.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-import.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-to-gnc.scm:
+	  Rename wrapped functions in the gnome module to their
+	  swig-names. gnc-progress-dialog-new
+	  gnc-progress-dialog-set-title gnc-progress-dialog-set-heading
+	  gnc-progress-dialog-set-value gnc-progress-dialog-update
+	  gnc-progress-dialog-destroy Also, we have to load the swig
+	  module directly from guile in one case, because our gnome module
+	  isn't actually a gnucash module. Go figure.
+
+2006-10-09 23:53  chris
+
+	* [r14958] branches/swig-redo/src/app-utils/app-utils.scm,
+	  branches/swig-redo/src/import-export/qif-import/qif-import.scm,
+	  branches/swig-redo/src/scm/main.scm,
+	  branches/swig-redo/src/scm/price-quotes.scm: Convert guile uses
+	  of the gnome gwrap module to uses of swig. Or just remove the
+	  usage if it wasn't needed.
+
+2006-10-09 23:52  chris
+
+	* [r14957] branches/swig-redo/src/gnome/Makefile.am,
+	  branches/swig-redo/src/gnome/gnome.i: Setup the gnome module for
+	  swig instead of gwrap.
+
+2006-10-09 23:51  chris
+
+	* [r14956]
+	  branches/swig-redo/src/business/business-core/business-core.scm,
+	  branches/swig-redo/src/business/business-reports/aging.scm,
+	  branches/swig-redo/src/business/business-reports/business-reports.scm,
+	  branches/swig-redo/src/business/business-reports/easy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/fancy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/invoice.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/business/business-utils/business-options.scm:
+	  Automated rename of swig-wrapped functions for the business
+	  module: s/gnc:invoice-lookup /gncInvoiceLookupFlip /g
+	  s/gnc:invoice-get-guid /gncInvoiceReturnGUID /g
+	  s/gnc:invoice-get-owner /gncInvoiceGetOwner /g
+	  s/gnc:invoice-get-id /gncInvoiceGetID /g s/gnc:invoice-get-book
+	  /gncInvoiceGetBook /g s/gnc:invoice-get-posted-lot
+	  /gncInvoiceGetPostedLot /g s/gnc:invoice-get-posted-txn
+	  /gncInvoiceGetPostedTxn /g s/gnc:invoice-get-currency
+	  /gncInvoiceGetCurrency /g s/gnc:invoice-get-date-posted
+	  /gncInvoiceGetDatePosted /g s/gnc:invoice-get-date-due
+	  /gncInvoiceGetDateDue /g s/gnc:invoice-get-entries
+	  /gncInvoiceGetEntries /g s/gnc:invoice-get-billing-id
+	  /gncInvoiceGetBillingID /g s/gnc:invoice-get-terms
+	  /gncInvoiceGetTerms /g s/gnc:invoice-get-notes
+	  /gncInvoiceGetNotes /g s/gnc:invoice-get-invoice-from-lot
+	  /gncInvoiceGetInvoiceFromLot /g
+	  s/gnc:invoice-get-invoice-from-txn /gncInvoiceGetInvoiceFromTxn
+	  /g s/gnc:owner-get-type/gncOwnerGetType/g s/gnc:owner-get-guid
+	  /gncOwnerReturnGUID /g s/gnc:owner-get-end-owner
+	  /gncOwnerGetEndOwner /g s/gnc:owner-get-name /gncOwnerGetName /g
+	  s/gnc:owner-create /gncOwnerCreate /g
+	  s/gnc:owner-create)/gncOwnerCreate)/g s/gnc:owner-destroy
+	  /gncOwnerDestroy /g
+	  s/gnc:owner-init-customer/gncOwnerInitCustomer/g
+	  s/gnc:owner-init-employee/gncOwnerInitEmployee/g
+	  s/gnc:owner-init-job/gncOwnerInitJob/g
+	  s/gnc:owner-init-vendor/gncOwnerInitVendor/g
+	  s/gnc:owner-get-customer /gncOwnerGetCustomer /g
+	  s/gnc:owner-get-employee /gncOwnerGetEmployee /g
+	  s/gnc:owner-get-job /gncOwnerGetJob /g s/gnc:owner-get-vendor
+	  /gncOwnerGetVendor /g s/gnc:owner-get-owner-from-list
+	  /gncOwnerGetOwnerFromLot /g s/gnc:owner-copy-into-owner
+	  /gncOwnerCopy /g s/gnc:owner-is-valid? /gncOwnerIsValid /g
+	  s/'gnc-owner-customer/GNC-OWNER-CUSTOMER/g
+	  s/'gnc-owner-vendor/GNC-OWNER-VENDOR/g
+	  s/'gnc-owner-employee/GNC-OWNER-EMPLOYEE/g
+	  s/'gnc-owner-job/GNC-OWNER-JOB/g s/(gnc-owner-customer)/(eqv?
+	  type GNC-OWNER-CUSTOMER)/g s/(gnc-owner-vendor)/(eqv? type
+	  GNC-OWNER-VENDOR)/g s/(gnc-owner-employee)/(eqv? type
+	  GNC-OWNER-EMPLOYEE)/g s/(gnc-owner-job)/(eqv? type
+	  GNC-OWNER-JOB)/g s/'gnc-amount-type-value/GNC-AMT-TYPE-VALUE/g
+	  s/'gnc-amount-type-percent/GNC-AMT-TYPE-PERCENT/g
+	  s/gnc:taxtable-lookup /gncTaxTableLookupFlip /g
+	  s/gnc:taxtable-get-guid /gncTaxTableReturnGUID /g
+	  s/gnc:vendor-lookup /gncVendorLookupFlip /g s/gnc:vendor-get-id
+	  /gncVendorGetID /g s/gnc:vendor-get-guid /gncVendorReturnGUID /g
+	  s/gnc:vendor-get-addr /gncVendorGetAddr /g
+	  s/gnc:address-get-addr1 /gncAddressGetAddr1 /g
+	  s/gnc:address-get-addr2 /gncAddressGetAddr2 /g
+	  s/gnc:address-get-addr3 /gncAddressGetAddr3 /g
+	  s/gnc:address-get-addr4 /gncAddressGetAddr4 /g
+	  s/gnc:bill-term-get-description /gncBillTermGetDescription /g
+	  s/gnc:customer-lookup /gncCustomerLookupFlip /g
+	  s/gnc:customer-get-id /gncCustomerGetID /g
+	  s/gnc:customer-get-name /gncCustomerGetName /g
+	  s/gnc:customer-get-addr /gncCustomerGetAddr /g
+	  s/gnc:customer-get-shipaddr /gncCustomerGetShipAddr /g
+	  s/gnc:customer-get-notes /gncCustomerGetNotes /g
+	  s/gnc:customer-get-currency /gncCustomerGetCurrency /g
+	  s/gnc:customer-get-id /gncCustomerGetID /g
+	  s/gnc:customer-get-guid /gncCustomerReturnGUID /g
+	  s/gnc:employee-lookup /gncEmployeeLookupFlip /g
+	  s/gnc:employee-get-id /gncEmployeeGetID /g
+	  s/gnc:employee-get-guid /gncEmployeeReturnGUID /g
+	  s/gnc:employee-get-addr /gncEmployeeGetAddr /g
+	  s/gnc:entry-get-date /gncEntryGetDate /g
+	  s/gnc:entry-get-description /gncEntryGetDescription /g
+	  s/gnc:entry-get-action /gncEntryGetAction /g
+	  s/gnc:entry-get-quantity /gncEntryGetQuantity /g
+	  s/gnc:entry-get-inv-price /gncEntryGetInvPrice /g
+	  s/gnc:entry-get-inv-discount /gncEntryGetInvDiscount /g
+	  s/gnc:entry-get-inv-discount-type /gncEntryGetInvDiscountType /g
+	  s/gnc:entry-get-bill-price /gncEntryGetBillPrice /g
+	  s/gnc:entry-get-inv-taxable /gncEntryGetInvTaxable /g
+	  s/gnc:entry-get-inv-tax-table /gncEntryGetInvTaxTable /g
+	  s/gnc:entry-get-bill-taxable /gncEntryGetBillTaxable /g
+	  s/gnc:entry-get-bill-tax-table /gncEntryGetBillTaxTable /g
+	  s/gnc:entry-get-value /gncEntryReturnValue /g
+	  s/gnc:entry-get-tax-value /gncEntryReturnTaxValue /g
+	  s/gnc:entry-get-discount-value /gncEntryReturnDiscountValue /g
+	  s/gnc:entry-get-tax-values /gncEntryReturnTaxValues /g
+	  s/gnc:entry-get-invoice /gncEntryGetInvoice /g
+	  s/gnc:entry-get-bill /gncEntryGetBill /g s/gnc:entry-get-Order
+	  /gncEntryGetOrder /g s/gnc:job-lookup /gncJobLookupFlip /g
+	  s/gnc:job-get-guid /gncJobReturnGUID /g s/gnc:job-get-owner
+	  /gncJobGetOwner /g s/gnc:order-get-reference
+	  /gncOrderGetReference /g
+	  s/gnc:url-type-customer/URL-TYPE-CUSTOMER/g
+	  s/gnc:url-type-vendor/URL-TYPE-VENDOR/g
+	  s/gnc:url-type-employee/URL-TYPE-EMPLOYEE/g
+	  s/gnc:url-type-invoice/URL-TYPE-INVOICE/g
+	  s/gnc:url-type-ownerreport/URL-TYPE-OWNERREPORT/g
+	  s/gnc:url-type-job/URL-TYPE-JOB/g
+
+2006-10-09 23:50  chris
+
+	* [r14955]
+	  branches/swig-redo/src/business/business-core/business-core.scm,
+	  branches/swig-redo/src/business/business-reports/business-reports.scm,
+	  branches/swig-redo/src/business/business-reports/easy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/fancy-invoice.scm,
+	  branches/swig-redo/src/business/business-reports/invoice.scm,
+	  branches/swig-redo/src/business/business-reports/owner-report.scm,
+	  branches/swig-redo/src/business/business-utils/business-options.scm,
+	  branches/swig-redo/src/business/business-utils/business-prefs.scm:
+	  Convert guile code in the business module to use swig
+	  conventions. These conversions were made manually. They involve:
+	  - using '() instead of "" for the the empty object. - a more
+	  direct handling of wrapped enumeration values. - loading the
+	  swig modules instead of the gwrap modules.
+
+2006-10-09 23:49  chris
+
+	* [r14954]
+	  branches/swig-redo/src/business/business-gnome/business-options-gnome.c,
+	  branches/swig-redo/src/business/business-gnome/dialog-invoice.c,
+	  branches/swig-redo/src/business/business-utils/business-options.c:
+	  Convert all gwrap runtime code into swig code for the business
+	  module.
+	* [r14953]
+	  branches/swig-redo/src/business/business-core/gncEntry.c,
+	  branches/swig-redo/src/business/business-core/gncEntry.h,
+	  branches/swig-redo/src/business/business-core/gncInvoice.c,
+	  branches/swig-redo/src/business/business-core/gncInvoice.h: Use
+	  some typedefs to get more specific C typing that coresponds with
+	  the level of detail that we want to type in guile.
+
+2006-10-09 23:48  chris
+
+	* [r14952]
+	  branches/swig-redo/src/business/business-core/Makefile.am,
+	  branches/swig-redo/src/business/business-core/businessmod-core.c,
+	  branches/swig-redo/src/business/business-core/test/Makefile.am,
+	  branches/swig-redo/src/business/business-gnome/Makefile.am,
+	  branches/swig-redo/src/business/business-gnome/business-gnome.scm,
+	  branches/swig-redo/src/business/business-gnome/businessmod-gnome.c,
+	  branches/swig-redo/src/business/dialog-tax-table/Makefile.am,
+	  branches/swig-redo/src/business/dialog-tax-table/dialog-tax-table.scm,
+	  branches/swig-redo/src/business/dialog-tax-table/gncmod-dialog-tax-table.c:
+	  Build and initialize swig instead of g-wrap in the business
+	  modules This includes some temporary use of g-wrap to handle
+	  some types that aren't converted to swig yet.
+
+2006-10-09 23:47  chris
+
+	* [r14951]
+	  branches/swig-redo/src/business/business-core/gncBillTerm.h,
+	  branches/swig-redo/src/business/business-core/gncCustomer.h,
+	  branches/swig-redo/src/business/business-core/gncInvoice.c,
+	  branches/swig-redo/src/business/business-core/gncInvoice.h,
+	  branches/swig-redo/src/business/business-core/gncJob.h,
+	  branches/swig-redo/src/business/business-core/gncOrder.h,
+	  branches/swig-redo/src/business/business-core/gncOwner.h:
+	  Prepare the business code for swigification. Remove some
+	  undefined functions. Convert some macros to functions.
+	  Regularize a structure name. Conditionally #ifdef out some yucky
+	  macros during swig-processing.
+
+2006-10-09 23:46  chris
+
+	* [r14950]
+	  branches/swig-redo/src/business/business-core/business-core.i,
+	  branches/swig-redo/src/business/dialog-tax-table/dialog-tax-table.i:
+	  Add SWIG interface definitions for the business modules.
+
+2006-10-09 23:44  chris
+
+	* [r14949] branches/swig-redo/Makefile.am,
+	  branches/swig-redo/configure.in,
+	  branches/swig-redo/macros/ac_pkg_swig.m4,
+	  branches/swig-redo/src/Makefile.am,
+	  branches/swig-redo/src/swig-runtime.h: Initial support for SWIG.
+	  Add a SWIG autoconf macro; add swig to the configure.in; Add the
+	  SWIG runtime system.
+
+2006-10-09 23:05  jsled
+
+	* [r14948] branches/sx-cleanup/src/app-utils/Makefile.am,
+	  branches/sx-cleanup/src/app-utils/gnc-sx-instance-model.c,
+	  branches/sx-cleanup/src/app-utils/gnc-sx-instance-model.h,
+	  branches/sx-cleanup/src/core-utils/gnc-glib-utils.c,
+	  branches/sx-cleanup/src/core-utils/gnc-glib-utils.h,
+	  branches/sx-cleanup/src/gnome-utils/Makefile.am,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal-model.c,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal-model.h,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal-store.c,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal-store.h,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.c,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.h,
+	  branches/sx-cleanup/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c,
+	  branches/sx-cleanup/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h,
+	  branches/sx-cleanup/src/gnome/Makefile.am,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.h,
+	  branches/sx-cleanup/src/gnome/dialog-sx-from-trans.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.h,
+	  branches/sx-cleanup/src/gnome/gnc-sx-list-tree-model-adapter.c,
+	  branches/sx-cleanup/src/gnome/gnc-sx-list-tree-model-adapter.h:
+	  Break all new classes out into individual files, mostly from
+	  gnc-plugin-page-sx-list.[ch] and gnc-dense-cal.[ch].
+
+2006-10-09 19:47  jsled
+
+	* [r14947] trunk/ChangeLog, trunk/art, trunk/art/banner.svgz,
+	  trunk/art/icon.svgz, trunk/art/logo.svgz, trunk/art/splash.svgz:
+	  Add 2.0 art source files.
+
+2006-10-09 16:45  andi5
+
+	* [r14945] trunk, trunk/src/core-utils/gnc-gconf-utils.c,
+	  trunk/src/core-utils/gnc-gconf-utils.h,
+	  trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome/dialog-print-check.c: Lessen restriction of the
+	  parameter whoami of the gnc_gconf_add/ remove_notification
+	  functions. Now the pair of section and whoami has to be unique,
+	  as GncMainWindow adds notifications to two different sections.
+	  Extends r14675. Remove a superfluous leading slash and doubly
+	  defined gconf key macros. BP
+	* [r14944] trunk, trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas.in: Remove
+	  "closing last window" confirmation dialog and corresponding
+	  warning (reverting r14580). Fixes #355392.
+
+2006-10-09 11:45  cstim
+
+	* [r14940] trunk/src/gnome/druid-hierarchy.c: Avoid markup in
+	  translatable messages. Bug#360459
+
+2006-10-08 16:55  wilddev
+
+	* [r14936] tags/2.0.2: Tagging the 2.0.2 release of GnuCash
+	* [r14935] branches/2.0/ChangeLog, branches/2.0/NEWS,
+	  branches/2.0/configure.in: update to release 2.0.2
+
+2006-10-06 16:17  andi5
+
+	* [r14933] branches/2.0, branches/2.0/configure.in:
+	  Unconditionally call AC_CONFIG_HEADERS for libgsf and goffice
+	  config header files. This way automake and config.status agree
+	  upon the list of these files. Otherwise, in rare cases, make
+	  distclean might not remove a file stamp-h5, making distcheck
+	  fail. approved by warlord. merged from r14932.
+
+2006-10-06 16:02  andi5
+
+	* [r14932] trunk, trunk/configure.in: Unconditionally call
+	  AC_CONFIG_HEADERS for libgsf and goffice config header files.
+	  This way automake and config.status agree upon the list of these
+	  files. Otherwise, in rare cases, make distclean might not remove
+	  a file stamp-h5, making distcheck fail.
+
+2006-10-06 11:48  andi5
+
+	* [r14931] branches/2.0, branches/2.0/ChangeLog: Add ChangeLog
+	  entries.
+
+2006-10-05 09:30  andi5
+
+	* [r14930] branches/2.0,
+	  branches/2.0/src/report/standard-reports/transaction.scm: Quote
+	  an empty scheme list and avoid crash of transaction report on
+	  empty session. Fixes #359412. approved by cstim. merged from
+	  r14926.
+
+2006-10-04 21:18  andi5
+
+	* [r14929] branches/2.0,
+	  branches/2.0/src/business/business-gnome/schemas/Makefile.am,
+	  branches/2.0/src/gnome-utils/schemas/Makefile.am,
+	  branches/2.0/src/gnome/schemas/Makefile.am,
+	  branches/2.0/src/import-export/hbci/schemas/Makefile.am,
+	  branches/2.0/src/import-export/schemas/Makefile.am: Fix
+	  Makefiles for .schemas file installation. srcdir contains the
+	  .schemas.in files, but not the generated .schemas files. Fixes
+	  make distcheck. merged from r14925.
+
+2006-10-04 13:12  andi5
+
+	* [r14928] branches/2.0,
+	  branches/2.0/src/gnome-utils/glade/transfer.glade: Fix for bug
+	  #359471. Remove the glade hookup of gnc_xfer_dialog_close_cb()
+	  to the close signal. This callback doesn't handle aborting
+	  correctly when called directly, but it will behave correctly
+	  when called indirectly from close_handler(). The "response"
+	  callback will now be called for all actions that close the
+	  dialog. merged from r14927.
+
+2006-10-04 02:30  chris
+
+	* [r14927] trunk/src/gnome-utils/glade/transfer.glade: Fix for bug
+	  #359471. Remove the glade hookup of gnc_xfer_dialog_close_cb()
+	  to the close signal. This callback doesn't handle aborting
+	  correctly when called directly, but it will behave correctly
+	  when called indirectly from close_handler(). The "response"
+	  callback will now be called for all actions that close the
+	  dialog.
+
+2006-10-03 21:13  andi5
+
+	* [r14926] trunk,
+	  trunk/src/report/standard-reports/transaction.scm: Quote an
+	  empty scheme list and avoid crash of transaction report on empty
+	  session. Fixes #359412. BP
+
+2006-10-03 14:14  cstim
+
+	* [r14925] trunk/src/business/business-gnome/schemas/Makefile.am,
+	  trunk/src/gnome-utils/schemas/Makefile.am,
+	  trunk/src/gnome/schemas/Makefile.am,
+	  trunk/src/import-export/hbci/schemas/Makefile.am,
+	  trunk/src/import-export/schemas/Makefile.am: Fix Makefiles for
+	  .schemas file installation. srcdir contains the .schemas.in
+	  files, but not the generated .schemas files. Fixes make
+	  distcheck. BP
+
+2006-10-03 09:19  cstim
+
+	* [r14924] branches/2.0/po/fr.po: Updated French translaction by
+	  Fabrice Kurz
+
+2006-10-02 17:37  andi5
+
+	* [r14923] trunk, trunk/src/gnome-utils/dialog-account.c: Correct
+	  account compatibility check with top level account.
+
+2006-10-02 14:58  cstim
+
+	* [r14922] branches/2.0/src/app-utils/test/Makefile.am,
+	  branches/2.0/src/backend/file/test/Makefile.am,
+	  branches/2.0/src/bin/test/Makefile.am,
+	  branches/2.0/src/business/business-core/test/Makefile.am,
+	  branches/2.0/src/engine/test/Makefile.am,
+	  branches/2.0/src/import-export/test/Makefile.am,
+	  branches/2.0/src/network-utils/test/Makefile.am,
+	  branches/2.0/src/report/locale-specific/us/test/Makefile.am,
+	  branches/2.0/src/report/report-system/test/Makefile.am,
+	  branches/2.0/src/report/standard-reports/test/Makefile.am,
+	  branches/2.0/src/report/stylesheets/test/Makefile.am,
+	  branches/2.0/src/report/utility-reports/test/Makefile.am: Add
+	  library dir for test runtime where necessary, as discussed on
+	  gnucash-devel. Merges from trunk: 11831, 14770, 14771, 14921.
+
+2006-10-02 14:02  cstim
+
+	* [r14921] trunk/src/app-utils/test/Makefile.am,
+	  trunk/src/bin/test/Makefile.am,
+	  trunk/src/business/business-core/test/Makefile.am,
+	  trunk/src/import-export/test/Makefile.am,
+	  trunk/src/network-utils/test/Makefile.am,
+	  trunk/src/report/locale-specific/us/test/Makefile.am,
+	  trunk/src/report/report-system/test/Makefile.am,
+	  trunk/src/report/standard-reports/test/Makefile.am,
+	  trunk/src/report/stylesheets/test/Makefile.am,
+	  trunk/src/report/utility-reports/test/Makefile.am: Add library
+	  dir for test runtime where necessary, as discussed on
+	  gnucash-devel
+
+2006-10-02 13:12  cstim
+
+	* [r14920] trunk/src/network-utils/test/Makefile.am: Revert
+	  r14919; maybe this wasn't the correct fix.
+
+2006-10-02 12:13  cstim
+
+	* [r14919] trunk/src/network-utils/test/Makefile.am: Add library
+	  dir for test runtime
+
+2006-10-02 11:55  cstim
+
+	* [r14918] trunk/packaging/win32/custom.sh: Update openssl version
+	  number as reported by Thomas Arildsen
+
+2006-10-01 21:22  jsled
+
+	* [r14917] branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.h,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.h:
+	  Auto-create support. - add a 'created' state - extend SLR model
+	  for instance-state sensitivity control (so 'Created'-state
+	  instances won't be changed) - add a "SLR summary" - hook-up menu
+	  and book-open hooks for appropriately displaying the SLR dialog
+	  or an info dialog. Fix bug in temporal instance saving.
+
+2006-10-01 21:14  jsled
+
+	* [r14916] branches/sx-cleanup/src/engine/SchedXaction.c: Be
+	  defensive.
+
+2006-10-01 20:18  cstim
+
+	* [r14915] branches/2.0/ChangeLog, branches/2.0/po/fr.po: Updated
+	  French translaction by Fabrice Kurz
+
+2006-10-01 20:11  cstim
+
+	* [r14914] branches/2.0/po/de.po: Small string fix for German
+	  translation
+
+2006-09-30 17:40  jsled
+
+	* [r14913]
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c,
+	  branches/sx-cleanup/src/gnome/glade/sched-xact.glade: Fix bug in
+	  viewing SLR-created transactions; add accel to Review option.
+
+2006-09-30 16:56  jsled
+
+	* [r14912] branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c: Focus
+	  first unbound variable on SLR dialog "OK" with unbound variables.
+
+2006-09-30 15:14  jsled
+
+	* [r14911] branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c,
+	  branches/sx-cleanup/src/gnome/glade/sched-xact.glade: Add
+	  "review created transactions" checkbox, support.
+
+2006-09-29 20:10  jsled
+
+	* [r14910] trunk/src/gnome-utils/search-param.c,
+	  trunk/src/gnome-utils/search-param.h: missing ">"s
+
+2006-09-29 18:55  jsled
+
+	* [r14909] branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c,
+	  branches/sx-cleanup/src/gnome/glade/sched-xact.glade,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.h:
+	  since-last-run variable handling, `remind`er constraints,
+	  consistency checking, Transaction creation. More model fleshing
+	  out.
+
+2006-09-27 20:36  warlord
+
+	* [r14908] trunk, trunk/lib/libqof/qof/qofquery.c: Don't pass a
+	  pointer to a pointer. It's just expecting the pointer.
+
+2006-09-27 17:08  warlord
+
+	* [r14907] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-query-list.c: Initialize sort
+	  order in query lists. Fixes #357481. merged from r14905.
+
+2006-09-27 17:07  warlord
+
+	* [r14906] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/lib/libqof/qof/qofclass.h,
+	  branches/2.0/lib/libqof/qof/qofquery.c,
+	  branches/2.0/lib/libqof/qof/qofquerycore-p.h,
+	  branches/2.0/lib/libqof/qof/qofquerycore.c,
+	  branches/2.0/lib/libqof/qof/qofquerycore.h,
+	  branches/2.0/src/engine/Transaction.c: Add the ability to
+	  override the default sort (#150799). Override the Transaction
+	  Number to sort numerically. * lib/libqof/qof/qofclass.h: *
+	  lib/libqof/qof/qofquery.c: * lib/libqof/qof/qofquerycore-p.h: *
+	  lib/libqof/qof/qofquerycore.[ch]: - Publish the QofCompareFunc
+	  prototype. - Add a new QofParam param_compfcn parameter - Change
+	  QofQuery to use the param_compfcn over the default type compare
+	  function. - create (and publish) a qof API to compare strings as
+	  numbers: qof_string_number_compare_func() *
+	  src/engine/Transaction.c: Assign TRANS_NUM to use
+	  qof_string_numer_compare_func() approved by cstim merged from
+	  r14903 and r14904
+
+2006-09-27 13:55  andi5
+
+	* [r14905] trunk, trunk/src/gnome-utils/gnc-query-list.c:
+	  Initialize sort order in query lists. Fixes #357481. BP
+
+2006-09-27 13:46  warlord
+
+	* [r14904] trunk, trunk/lib/libqof/qof/qofquerycore.c: Missed one
+	  patch hunk in r14903. We need stdlib.h for strtol().
+
+2006-09-27 13:39  warlord
+
+	* [r14903] trunk, trunk/ChangeLog,
+	  trunk/lib/libqof/qof/qofclass.h,
+	  trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofquerycore-p.h,
+	  trunk/lib/libqof/qof/qofquerycore.c,
+	  trunk/lib/libqof/qof/qofquerycore.h,
+	  trunk/src/engine/Transaction.c: Add the ability to override the
+	  default sort (#150799). Override the Transaction Number to sort
+	  numerically. * lib/libqof/qof/qofclass.h: *
+	  lib/libqof/qof/qofquery.c: * lib/libqof/qof/qofquerycore-p.h: *
+	  lib/libqof/qof/qofquerycore.[ch]: - Publish the QofCompareFunc
+	  prototype. - Add a new QofParam param_compfcn parameter - Change
+	  QofQuery to use the param_compfcn over the default type compare
+	  function. - create (and publish) a qof API to compare strings as
+	  numbers: qof_string_number_compare_func() *
+	  src/engine/Transaction.c: Assign TRANS_NUM to use
+	  qof_string_numer_compare_func()
+
+2006-09-27 13:30  warlord
+
+	* [r14902] trunk, trunk/ChangeLog,
+	  trunk/lib/libqof/qof/qofbookmerge.c,
+	  trunk/lib/libqof/qof/qofclass.c,
+	  trunk/lib/libqof/qof/qofclass.h,
+	  trunk/lib/libqof/qof/qofquery-deserial.c,
+	  trunk/lib/libqof/qof/qofquery-serialize.c,
+	  trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofquerycore.c,
+	  trunk/lib/libqof/qof/qofquerycore.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/lib/libqof/qof/qofsql.c, trunk/lib/libqof/qof/qofutil.c,
+	  trunk/src/backend/postgres/gncquery.c, trunk/src/engine/Query.c,
+	  trunk/src/engine/Query.h, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/engine-helpers.c,
+	  trunk/src/gnome-search/search-core-type.c,
+	  trunk/src/gnome-search/search-string.c,
+	  trunk/src/gnome-search/search-string.h: Revert r14892 in order
+	  to try a different approach.
+
+2006-09-26 23:47  warlord
+
+	* [r14901] trunk, trunk/ChangeLog,
+	  trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofquery.h: Implement SubQuery
+	  functionality in QOF: qof_query_run_subquery() Now you can run
+	  one query off of the results of another query.
+
+2006-09-26 22:09  andi5
+
+	* [r14899] trunk, trunk/src/gnome-utils/dialog-account.c: Ease
+	  account type changes in the account dialog after OK is clicked.
+	  Before, we did not enforce compatibility with the parent account
+	  and suggested to change only children or children and all parent
+	  accounts up to the top-level one. We do enforce it now and only
+	  need to look at the children. The filling of the hash of
+	  (children) account (type) changes has been replaced by showing
+	  the user a filtered account tree and the types are adjusted
+	  recursively once the user verified the change. This is another
+	  attempt to resolve #344966.
+
+2006-09-26 22:08  andi5
+
+	* [r14898] trunk,
+	  trunk/src/import-export/import-account-matcher.c: Free a list in
+	  import-account-matcher.c.
+	* [r14897] trunk, trunk/src/gnome-utils/dialog-account.c: Make the
+	  account type list in the account dialog dynamically filtered
+	  based on compatibility to the parent account. * add
+	  gnc_account_parent_changed_cb. Filter by valid_types & parent
+	  compatible types * add aw->preferred_account_type to remember
+	  what we chose but may not work currently * make valid_types a
+	  guint32 (was GList*) * last_used_account_type is only set in
+	  gnc_ui_to_account
+	* [r14896] trunk,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.h: f_model is
+	  not always set in gnc_tree_model_account_types_get_selection
+	  because of a bug in gtk+ (#357791). Also add
+	  gnc_tree_model_account_types_get_mask.
+	* [r14895] trunk,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.h: Add
+	  gnc_tree_model_account_types_set_mask and bind mask to the
+	  filter model instead using it as data of the filter function,
+	  because those can only be set once per filter.
+
+2006-09-26 22:07  andi5
+
+	* [r14894] trunk, trunk/src/engine/Account.c,
+	  trunk/src/engine/Account.h: Add xaccAccountTypesCompatibleWith
+	  and change xaccAccountTypesCompatible to use that.
+	* [r14893] trunk, trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: Revert r14591 (bug
+	  344966) to prepare another solution.
+
+2006-09-26 00:36  warlord
+
+	* [r14892] trunk, trunk/ChangeLog,
+	  trunk/lib/libqof/qof/qofbookmerge.c,
+	  trunk/lib/libqof/qof/qofclass.c,
+	  trunk/lib/libqof/qof/qofclass.h,
+	  trunk/lib/libqof/qof/qofquery-deserial.c,
+	  trunk/lib/libqof/qof/qofquery-serialize.c,
+	  trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofquerycore.c,
+	  trunk/lib/libqof/qof/qofquerycore.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/lib/libqof/qof/qofsql.c, trunk/lib/libqof/qof/qofutil.c,
+	  trunk/src/backend/postgres/gncquery.c, trunk/src/engine/Query.c,
+	  trunk/src/engine/Query.h, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/engine-helpers.c,
+	  trunk/src/gnome-search/search-core-type.c,
+	  trunk/src/gnome-search/search-string.c,
+	  trunk/src/gnome-search/search-string.h: Add a new
+	  QOF_TYPE_NUMSTRING to add numeric sorts. (#150799). This new
+	  type is like QOF_TYPE_STRING but it sorts numerically (first)
+	  and then sorts alphanumerically (by the tail of the number).
+	  Added the QOF Type, the gnome-search support, and modified
+	  TRANS_NUM to use the new type.
+
+2006-09-25 11:58  cstim
+
+	* [r14891] branches/2.0/ChangeLog, branches/2.0/po/ne.po: Updated
+	  complete Nepali translation by Subir Pradhanang et al.
+
+2006-09-23 23:46  warlord
+
+	* [r14890] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome/druid-acct-period.c,
+	  branches/2.0/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/2.0/src/gnome/window-reconcile.c: disable lot scrubbing
+	  during Check & Repair (#357370). Lots are supposed to be
+	  disabled in the 2.0 release until we get the cap-gains code
+	  working. IMHO the cap-gains code should deal with extra txn
+	  splits instead of creating additional txns. (approved by chris)
+	  Merge from r14888.
+	* [r14889] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/register/ledger-core/split-register-control.c,
+	  branches/2.0/src/register/ledger-core/split-register.c,
+	  branches/2.0/src/register/ledger-core/split-register.h: Avoid
+	  crash from opening transaction in more than one register. Bug
+	  #347089. In any case where we might be opening the transaction
+	  and marking it as the pending transaction, check first if it's
+	  already open. If it is, we assume that it's being edited by
+	  another register. We report the error and abort the action that
+	  would have opened the transaction. suspend events around the
+	  Commit(). (approved by warlord and chris) Merge from r14495 and
+	  r14887.
+
+2006-09-23 22:51  warlord
+
+	* [r14888] trunk, trunk/ChangeLog,
+	  trunk/src/gnome/druid-acct-period.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/window-reconcile.c: disable lot scrubbing during
+	  Check & Repair (#357370). Lots are supposed to be disabled in
+	  the 2.0 release until we get the cap-gains code working. IMHO
+	  the cap-gains code should deal with extra txn splits instead of
+	  creating additional txns. BP
+
+2006-09-23 22:31  warlord
+
+	* [r14887] trunk, trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c: suspend events
+	  around the Commit(). Fixes #347089 when combined with r14495. BP
+
+2006-09-23 11:10  cstim
+
+	* [r14886] branches/2.0/po/de.po: Small update to German
+	  translation
+
+2006-09-23 03:09  warlord
+
+	* [r14885] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/backend/file/gnc-backend-file.c,
+	  branches/2.0/src/gnome-utils/gnc-file.c: Do not complain about
+	  non-existent files if we save to a new file. In pass one we
+	  ignore the error returned by stat and call qof_session_begin
+	  with create_if_nonexistent=TRUE for a second run. Merge from
+	  r14865.
+	* [r14884] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/lib/libqof/qof/qofbackend.h,
+	  branches/2.0/src/backend/file/gnc-backend-file.c,
+	  branches/2.0/src/gnome-utils/gnc-file.c: If the file type wasn't
+	  recognized, check whether this failed because of no read
+	  permission and give appropriate user feedback if yes. Feel free
+	  to adjust the wording. Merge from r14791.
+
+2006-09-23 03:08  warlord
+
+	* [r14883] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/backend/file/gnc-backend-file.c: Fix error
+	  checking for non-existing filenames. #351351. Will now always
+	  give a "file not found" message on nonexisting paths or
+	  filenames. Merge from r14789.
+
+2006-09-22 20:26  warlord
+
+	* [r14882] branches/2.0, branches/2.0/ChangeLog, branches/2.0/src,
+	  branches/2.0/src/bin/gnucash-bin.c: Adjust the "development
+	  version" message for the 2.0.1 release. (approved by cstim)
+	  Merge of r14587.
+
+2006-09-22 13:32  cstim
+
+	* [r14881] trunk/packaging/win32/install.sh: Remove -no-undefined
+	  from make because configure.in sets it now
+
+2006-09-22 13:28  cstim
+
+	* [r14880] trunk/configure.in: Add -no-undefined to LDFLAGS
+	  because libtool on Windows requires this argument and we fulfil
+	  it anyway
+
+2006-09-21 19:14  cstim
+
+	* [r14879] trunk/packaging/win32/install.sh: Add more path
+	  elements when creating the win32 startup scripts
+
+2006-09-21 10:05  cstim
+
+	* [r14877] trunk/packaging/win32/install.sh: Revert last change
+	  when perl modifies in-place - that doesn't work on windows
+
+2006-09-20 08:42  cstim
+
+	* [r14876] branches/2.0, branches/2.0/packaging/gnucash.spec.in:
+	  Add pixmaps to RPM. Fixes #355695. Back-ported from r14839.
+
+2006-09-20 08:41  cstim
+
+	* [r14875] branches/2.0, branches/2.0/packaging/gnucash.spec.in:
+	  We don't have a mime-info. Fixes #355676. Back-ported from
+	  r14838.
+
+2006-09-20 08:40  cstim
+
+	* [r14874] branches/2.0, branches/2.0/packaging/gnucash.spec.in:
+	  RPM Build Requires libtool-ltdl-devel. Fixes #355656.
+	  Back-ported from r14837.
+
+2006-09-19 19:02  cstim
+
+	* [r14873] trunk/src/import-export/hbci/gnc-plugin-hbci-ui.xml,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c: Add mt942 and
+	  CSV file types for aqbanking import
+
+2006-09-19 18:50  cstim
+
+	* [r14872] trunk/src/import-export/hbci/Makefile.am,
+	  trunk/src/import-export/hbci/gnc-dtaus-import.c,
+	  trunk/src/import-export/hbci/gnc-dtaus-import.h,
+	  trunk/src/import-export/hbci/gnc-file-aqb-import.c,
+	  trunk/src/import-export/hbci/gnc-file-aqb-import.h,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c: Move
+	  gnc-dtaus-import.[hc] files to filename gnc-file-aqb-import.[hc]
+	  because these are not limited to dtaus import.
+
+2006-09-19 18:44  cstim
+
+	* [r14871] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/mt940/Makefile.am,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.h,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940-ui.xml,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940.c,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940.h,
+	  trunk/src/import-export/mt940/gncmod-mt940-import.c: Remove
+	  mt940 module completely from the build and SVN because all of
+	  its functionality has been moved into the hbci (aqbanking)
+	  module.
+
+2006-09-19 11:00  cstim
+
+	* [r14870] trunk/packaging/win32/install.sh: Properly detect
+	  installed or uninstalled expat. Propose packaging command for
+	  cross-compiled gnucash.
+
+2006-09-19 09:03  cstim
+
+	* [r14869] trunk/src/engine/binreloc.c: Eventually implement full
+	  relocation functionality on win32 as well.
+
+2006-09-19 08:59  cstim
+
+	* [r14868] trunk/src/engine/gnc-engine.c: Revert r14862 here
+	  because the initialization from gnucash-bin.c is also sufficient
+	  for win32.
+
+2006-09-19 03:15  hampton
+
+	* [r14867] trunk/src/engine/binreloc.c: Eliminate some compile
+	  warnings.
+
+2006-09-19 00:56  andi5
+
+	* [r14866] trunk/ChangeLog, trunk/src/gnome-search/search.glade,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/commodities.glade,
+	  trunk/src/gnome/glade/price.glade,
+	  trunk/src/gnome/glade/stocks.glade: Use some more automatic
+	  scrollbars in GtkScrolledWindow's.
+
+2006-09-19 00:52  andi5
+
+	* [r14865] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/gnome-utils/gnc-file.c: Do not complain about
+	  non-existent files if we save to a new file. In pass one we
+	  ignore the error returned by stat and call qof_session_begin
+	  with create_if_nonexistent=TRUE for a second run. BP
+
+2006-09-18 20:58  cstim
+
+	* [r14864] trunk/src/engine/binreloc.c: Unfortunately binreloc
+	  doesn't have program code for Windows. Will be added later.
+
+2006-09-18 20:49  cstim
+
+	* [r14863] trunk/packaging/win32/install.sh: Binreloc needs
+	  explicit configure argument on cross-compile
+
+2006-09-18 20:43  cstim
+
+	* [r14862] trunk/ChangeLog, trunk/Makefile.am, trunk/configure.in,
+	  trunk/macros/binreloc.m4, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/engine/Makefile.am, trunk/src/engine/binreloc.c,
+	  trunk/src/engine/binreloc.h, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-path.c, trunk/src/engine/gncla-dir.h.in:
+	  Implement automatic relocation of previously compiled-in paths.
+	  With the exception of the env variables in src/bin/gnucash we're
+	  fully relocatable now.
+
+2006-09-18 19:57  cstim
+
+	* [r14861] trunk/packaging/win32/install.sh: Fix erroneous
+	  cross-compiling g-wrap args
+
+2006-09-18 19:10  cstim
+
+	* [r14860] trunk/configure.in, trunk/packaging/win32/install.sh:
+	  Also allow user-defined overrides for g-wrap. Necessary if
+	  build-time g-wrap is different from the run-time one during
+	  cross-compile.
+
+2006-09-18 16:16  cstim
+
+	* [r14859] trunk/packaging/win32/install.sh: Forgot one step
+	  necessary for guile and cross-compiling.
+
+2006-09-18 16:11  cstim
+
+	* [r14858] trunk/packaging/win32/README,
+	  trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Fully explain a cross-compile
+	  build of gnucash/mingw32 on Linux.
+
+2006-09-18 15:45  cstim
+
+	* [r14857] trunk/configure.in: Allow the user to override the
+	  guile flags. Necessary when build-time guile and run-time guile
+	  are different, i.e. when cross-compiling.
+
+2006-09-18 15:31  cstim
+
+	* [r14856] trunk/macros/legacy_macros.m4: Small cleanup for crufty
+	  guile version check macro
+
+2006-09-18 09:50  cstim
+
+	* [r14855] trunk/packaging/win32/README,
+	  trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Convert shell scripts from DOS
+	  CR-LF linefeeds to unix LF.
+
+2006-09-17 13:45  cstim
+
+	* [r14854] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: More cross-compile
+	  preparations - goffice needs a cross-compile libtool as well.
+
+2006-09-17 11:03  cstim
+
+	* [r14853] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: More cross-compile
+	  preparations.
+
+2006-09-16 18:56  jsled
+
+	* [r14852] branches/sx-cleanup/ChangeLog,
+	  branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/engine/SchedXaction.h,
+	  branches/sx-cleanup/src/gnome/Makefile.am,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-since-last-run.h,
+	  branches/sx-cleanup/src/gnome/dialog-sxsincelast.c,
+	  branches/sx-cleanup/src/gnome/dialog-sxsincelast.h,
+	  branches/sx-cleanup/src/gnome/glade/sched-xact.glade,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.h: New,
+	  simplified implementation of the SinceLastRun dialog. Extensions
+	  of GncSxInstanceModel to support (variable parsing, single/flat
+	  upcoming-instance list). 2006-09-16 Joshua Sled
+	  <jsled at asynchronous.org> * src/gnome/gnc-plugin-page-sx-list.c
+	  (sxsl_get_sx_vars): Add variable extraction to instance-model
+	  creation. The GncSxInstances now has a hashtable of variables
+	  parsed from the formula, and the GncSxInstance has a copy of
+	  that variables hash. Not finished, but mostly in place. *
+	  src/gnome/dialog-sx-since-last-run.c: New, simplified version of
+	  the since-last-run dialog. GncSxSlrTreeModelAdapter.
+
+2006-09-15 21:11  cstim
+
+	* [r14851] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Further prepare
+	  cross-compiling mingw32/gnucash
+
+2006-09-15 19:29  cstim
+
+	* [r14850] trunk/packaging/win32/README,
+	  trunk/packaging/win32/install.sh: Initial hints on how to start
+	  a cross-compile
+
+2006-09-15 13:41  cstim
+
+	* [r14849] trunk/packaging/win32/custom.sh: Update openssl URL
+
+2006-09-15 11:22  cstim
+
+	* [r14848] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Add GUILE_CPPFLAGS/LDFLAGS.
+	  Add optional --host=mingw32 argument if someone tries
+	  cross-compiling.
+
+2006-09-15 10:47  cstim
+
+	* [r14847] trunk/macros/legacy_macros.m4: Add cross-compiling
+	  workaround to AC_TRY_RUN
+
+2006-09-14 16:27  cstim
+
+	* [r14846] trunk/configure.in: Add cross-compiling workaround to
+	  AC_TRY_RUN macros
+
+2006-09-14 15:33  cstim
+
+	* [r14845] trunk/packaging/win32/create_cross_mingw.sh: Add script
+	  for building a cross-compile mingw toolchain on Linux. Taken
+	  from http://www.mingw.org/MinGWiki/index.php/BuildMingwCross and
+	  updated.
+
+2006-09-14 10:31  andi5
+
+	* [r14844] trunk/packaging/win32/install.sh: Install slib to
+	  another location and avoid the need for the environment variable
+	  SCHEME_LIBRARY_PATH or another implementation of
+	  library-vicinity in guile.init. You must have unset this env var
+	  now. Add g-wrap modules directory to gnucash.bat. GnuCash runs
+	  equally "well" in- and outside MSYS now for me.
+
+2006-09-13 18:35  andi5
+
+	* [r14843] trunk/packaging/win32/goffice-0.3.0-patch.diff,
+	  trunk/packaging/win32/install.sh,
+	  trunk/packaging/win32/intltool-merge: install.sh cleanups, as we
+	  build-depend on ActivePerl now * remove [no-xml] intltool
+	  workarounds and intltool-merge fake script * move all goffice
+	  changes to the patch file
+
+2006-09-13 17:11  andi5
+
+	* [r14842] trunk/packaging/win32/install.sh: Replace 'MS-DOS by
+	  'ms-dos as software-type in guile.init (slib).
+
+2006-09-13 14:22  cstim
+
+	* [r14841] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci-ui.xml,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940-ui.xml,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940.c: Move the MT940
+	  importer action from the mt940 into the hbci plugin because in
+	  the hbci plugin everything is already there. From now on, MT940
+	  importing is available as soon as --enable-hbci is switched on.
+	  The mt940 plugin can be removed from SVN now.
+
+2006-09-13 05:17  warlord
+
+	* [r14839] trunk, trunk/packaging/gnucash.spec.in: Add pixmaps to
+	  RPM. Fixes #355695. BP
+
+2006-09-13 00:12  warlord
+
+	* [r14838] trunk, trunk/packaging/gnucash.spec.in: We don't have a
+	  mime-info. Fixes #355676. BP
+
+2006-09-12 22:36  warlord
+
+	* [r14837] trunk, trunk/packaging/gnucash.spec.in: RPM Build
+	  Requires libtool-ltdl-devel. Fixes #355656. BP
+
+2006-09-12 17:26  cstim
+
+	* [r14836] branches/2.0/po/en_GB.po: Updated British English
+	  translation by Nigel Titley
+
+2006-09-12 13:41  cstim
+
+	* [r14835] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/engine/Makefile.am, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-path.c, trunk/src/engine/gnc-path.h,
+	  trunk/src/engine/gncla-dir.h.in,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c: Fix and clarify path
+	  names that were mixed up. In particular, two different
+	  GNC_LIBDIR macros were defined: One in gncla-dir.h as libdir,
+	  and another one from configure.in as pkglibdir in the CFLAGS.
+	  This was a big mess. Now the pathnames should all follow
+	  automake conventions.
+
+2006-09-12 07:34  andi5
+
+	* [r14834] trunk/packaging/win32/install.sh: install.sh: Install
+	  gconf schema files to
+	  ${GNUCASH_PREFIX}/etc/gconf/gconf.xml.defaults. I suppose this
+	  is what most distributions do as post-install step. If GnuCash
+	  and Gnome are not installed to the same prefix (standard), the
+	  gconf druid will pop up once GnuCash is started. GnuCash will
+	  automagically add the correct lines to ~/.gconf.path, shut down
+	  gconfd and load the default values, if you choose the default
+	  selections. The others seem unadvisable to me for windows, so
+	  another commit might hide the druid.
+
+2006-09-12 07:16  andi5
+
+	* [r14833] trunk/packaging/win32/install.sh: Build Guile and
+	  GnuCash by `make LDFLAGS="$SOME_FLAGS -no-undefined"' and avoid
+	  patching Makefiles and rerunning config.status. Tested on 1
+	  system so far.
+
+2006-09-11 13:50  cstim
+
+	* [r14832] trunk/packaging/win32/install.sh: Make sure the g-wrap
+	  files are modified only once
+
+2006-09-10 10:55  andi5
+
+	* [r14831] trunk/packaging/win32/goffice-0.3.0-patch.diff,
+	  trunk/packaging/win32/install.sh: install.sh fixes: * Rename
+	  input dll in libz.dll.a from bin/zlib1.dll to zlib1.dll * Add
+	  AUTOTOOLS_DIR\\bin to PATH of gnucash.bat because
+	  libgncmodule-0.dll depends on libltdl-3.dll * correct
+	  goffice/Makefile.am to put libgoffice_{init,shutdown} into
+	  interface library
+
+2006-09-09 23:15  andi5
+
+	* [r14830] trunk/src/gnome-utils/Makefile.am: Remove gnc-dir.h
+	  from BUILT_SOURCES
+
+2006-09-09 22:34  andi5
+
+	* [r14829] trunk/packaging/win32/install.sh: install.sh fixes: *
+	  indent needs libintl-2.dll (copy intl.dll) * add freetype2
+	  pkg-config file * add GNOME_{CPP,LD}FLAGS for
+	  inst_{libgsf,goffice,gnucash}
+
+2006-09-08 15:51  cstim
+
+	* [r14828] trunk/packaging/win32/custom.sh: Upgrade Gnome packages
+	  to lates gnome-2.16 release
+
+2006-09-08 15:44  cstim
+
+	* [r14827] trunk/packaging/win32/install.sh: Fix forgotten
+	  sub-path of g-wrap
+
+2006-09-08 15:18  cstim
+
+	* [r14826] trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c:
+	  Fix warning about unused static function if glob.h is unavailable
+
+2006-09-08 14:00  cstim
+
+	* [r14825] trunk/packaging/win32/install.sh: Fix -no-undefined
+	  flag for g-wrap; fix zlib header flags for gsf
+
+2006-09-08 11:04  cstim
+
+	* [r14824] trunk/src/bin/Makefile.am, trunk/src/bin/i18n.h.in,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-dir.h.in: Remove obsolete/unused
+	  generated headers; all directory paths are now in
+	  src/engine/gnc-path.c.
+
+2006-09-08 11:02  cstim
+
+	* [r14823] trunk/src/bin/gnucash-bin.c: Add includes that had been
+	  included by the obsolete i18n.h header
+
+2006-09-07 21:02  cstim
+
+	* [r14822] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/engine/gnc-engine.c, trunk/src/engine/gnc-path.c,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/druid-gconf-setup.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome/druid-hierarchy.c: Replace every hard-coded
+	  directory path with the respective call to gnc_path. (Except for
+	  the qsf and dwi backends, but they are not being maintained
+	  right now anyway.)
+
+2006-09-07 20:37  cstim
+
+	* [r14821] trunk/ChangeLog, trunk/src/engine/Makefile.am,
+	  trunk/src/engine/gnc-path.c, trunk/src/engine/gnc-path.h,
+	  trunk/src/engine/gncla-dir.h.in: Add new file with utility
+	  functions to retrieve the needed directory paths. All
+	  compile-time vs. runtime path lookups will be implemented
+	  exactly in this file.
+
+2006-09-07 18:31  cstim
+
+	* [r14820] trunk/packaging/win32/install.sh: No need to remove
+	  files during win32 install
+
+2006-09-07 16:32  hampton
+
+	* [r14819] trunk/ChangeLog, trunk/src/backend/postgres/putil.c,
+	  trunk/src/backend/postgres/test/test-db.c,
+	  trunk/src/backend/postgres/test/test-load-backend.c,
+	  trunk/src/backend/postgres/test/test-period.c: Include config.h
+	  a couple of places.
+
+2006-09-07 16:14  hampton
+
+	* [r14818] trunk/src/engine/gnc-budget.c: Use the glib-compat.h
+	  file for backward compatible function names.
+
+2006-09-07 15:52  cstim
+
+	* [r14817] trunk/packaging/win32/gnucash.iss.in: Further improve
+	  setup file creation script
+
+2006-09-07 15:49  cstim
+
+	* [r14816] trunk/packaging/win32/install.sh: After installation,
+	  try to create a suitable command.com script.
+
+2006-09-07 12:49  cstim
+
+	* [r14815] trunk/packaging/win32/install.sh: Fix automated path
+	  setup of gnucash script. Should now probably work.
+
+2006-09-07 11:55  cstim
+
+	* [r14814]
+	  trunk/src/business/business-core/gw-business-core-spec.scm: Add
+	  include config.h that was missing in g-wrap wrapper.
+
+2006-09-07 11:38  cstim
+
+	* [r14813] trunk/src/engine/gnc-budget.c: Replace deprecated glib
+	  function if new glib is available
+
+2006-09-07 11:08  cstim
+
+	* [r14812] trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-date-format.c: Need lib/libc for
+	  missing libc function. Need to include localtime_r to get the
+	  declaration
+
+2006-09-07 10:51  cstim
+
+	* [r14811] trunk/src/backend/file/gnc-backend-file.c: On Windows,
+	  before unlink() we need to chmod() the lock file for write
+	  access.
+
+2006-09-06 15:49  cstim
+
+	* [r14810] trunk/configure.in: Remove duplicate setting of
+	  platform_win32 automake conditional
+
+2006-09-06 15:01  cstim
+
+	* [r14809] trunk/configure.in, trunk/packaging/win32,
+	  trunk/packaging/win32/gnucash.iss.in: Add first draft script for
+	  creating a setup.exe installer package on win32.
+
+2006-09-06 12:23  cstim
+
+	* [r14808] trunk/packaging/win32/install.sh: Further improve
+	  script-based gnucash building. Added popt include and ldflags
+	  because ./configure would fail without them.
+
+2006-09-06 12:15  cstim
+
+	* [r14807] trunk/src/gnc-module/gnc-module.c,
+	  trunk/src/gnc-module/test/test-dynload.c: Get rid of warnings
+	  from libtool header on windows/mingw32
+
+2006-09-06 11:46  cstim
+
+	* [r14806] trunk/configure.in, trunk/lib/libqof/qof/qofutil.h,
+	  trunk/macros/legacy_macros.m4: On Windows/mingw32, scanf only
+	  accepts %I64d for long long integers. Reference that gave me
+	  this hint: http://acm.pku.edu.cn/JudgeOnline/faq.htm
+
+2006-09-06 11:07  cstim
+
+	* [r14805] trunk/configure.in: Move check for windows platform
+	  even more up front.
+
+2006-09-06 09:35  cstim
+
+	* [r14804] trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-reports/Makefile.am,
+	  trunk/src/business/business-utils/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am: Last round of
+	  Makefile and symlink cleanup. Gnucash should build fine without
+	  symlinks now.
+
+2006-09-06 09:26  cstim
+
+	* [r14803] trunk/src/bin/gnucash-bin.c: For windows, ignore
+	  gnc_engine_is_initialized check for now because it doesn't work
+	  correctly.
+
+2006-09-06 09:19  cstim
+
+	* [r14802] trunk/packaging/win32/install.sh: Include all of my
+	  known prerequisites to successfully compile gnucash: Fix g-wrap;
+	  Use -no-undefined properly; Speed up build by excluding tests
+	  and don't relink; Try to set up paths in script correctly; Speed
+	  up runtime module loading by excluding dependency_libs.
+
+2006-09-05 19:41  cstim
+
+	* [r14801] trunk/src/engine/gw-kvp-spec.scm: Add last missing
+	  #include config.h
+
+2006-09-05 18:00  cstim
+
+	* [r14800] trunk/src/app-utils/gnc-account-merge.c,
+	  trunk/src/app-utils/test/test-print-parse-amount.c,
+	  trunk/src/app-utils/test/test-print-queries.c,
+	  trunk/src/app-utils/test/test-scm-query-string.c,
+	  trunk/src/backend/file/test/test-load-backend.c,
+	  trunk/src/backend/file/test/test-load-example-account.c,
+	  trunk/src/backend/file/test/test-load-xml2.c,
+	  trunk/src/backend/file/test/test-save-in-lang.c,
+	  trunk/src/backend/file/test/test-xml2-is-file.c,
+	  trunk/src/business/business-core/file/gncmod-business-backend-file.c,
+	  trunk/src/business/business-core/test/test-address.c,
+	  trunk/src/business/business-core/test/test-business.c,
+	  trunk/src/business/business-core/test/test-customer.c,
+	  trunk/src/business/business-core/test/test-employee.c,
+	  trunk/src/business/business-core/test/test-job.c,
+	  trunk/src/business/business-core/test/test-vendor.c,
+	  trunk/src/calculation/expression_parser.c,
+	  trunk/src/engine/Period.c, trunk/src/engine/cashobjects.c,
+	  trunk/src/engine/gnc-budget.c, trunk/src/engine/gnc-lot.c,
+	  trunk/src/engine/test/test-commodities.c,
+	  trunk/src/engine/test/test-date.c,
+	  trunk/src/engine/test/test-group-vs-book.c,
+	  trunk/src/engine/test/test-guid.c,
+	  trunk/src/engine/test/test-load-engine.c,
+	  trunk/src/engine/test/test-lots.c,
+	  trunk/src/engine/test/test-numeric.c,
+	  trunk/src/engine/test/test-object.c,
+	  trunk/src/engine/test/test-period.c,
+	  trunk/src/engine/test/test-query.c,
+	  trunk/src/engine/test/test-querynew.c,
+	  trunk/src/engine/test/test-resolve-file-path.c,
+	  trunk/src/engine/test/test-scm-query.c,
+	  trunk/src/engine/test/test-split-vs-account.c,
+	  trunk/src/engine/test/test-transaction-reversal.c,
+	  trunk/src/engine/test/test-transaction-voiding.c,
+	  trunk/src/gnome-utils/gnc-dialog.c,
+	  trunk/src/gnome-utils/test/test-gnc-recurrence.c,
+	  trunk/src/import-export/hbci/gnc-hbci-kvp.c,
+	  trunk/src/import-export/import-match-map.c,
+	  trunk/src/import-export/test/test-import-parse.c: Add #include
+	  config.h at all places where it has been missing.
+
+2006-09-05 17:31  cstim
+
+	* [r14799] trunk/lib/libqof/qof/qofbookmerge.c: Fix missing
+	  include config.h. Also fix still-used deprecated typedef.
+
+2006-09-05 15:50  cstim
+
+	* [r14798] trunk/lib/libqof/qof/qofutil.h: Error out if none of
+	  the two SCANF formats are defined in config.h.
+
+2006-09-05 14:38  cstim
+
+	* [r14797] trunk/configure.in: Fix typo that prevented the correct
+	  error on unrecognized scanf conventions
+
+2006-09-05 13:38  cstim
+
+	* [r14796] trunk/lib/libqof/qof/qofsession.c: For windows, clean
+	  up error conditions before trying again to load the session.
+
+2006-09-04 16:27  cstim
+
+	* [r14795] trunk/src/app-utils/gnc-ui-util.c: Make sure not to
+	  pass NULL to PERR() message macro
+
+2006-09-04 08:11  andi5
+
+	* [r14794] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Add Glade-3, as it seems to
+	  run smoothly with gnome widgets and simply looks good. One day
+	  someone could try to integrate devhelp.
+
+2006-09-03 21:48  andi5
+
+	* [r14793] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Add ActivePerl. This is a
+	  download of ~8MB only used by intltool, providing a working
+	  XML::Parser module, but by far the easiest solution when trying
+	  to avoid recreating configure scripts with [no-xml]. If it is
+	  accepted, these adjustments for libgsf, goffice and gnucash can
+	  be removed.
+
+2006-09-03 21:08  andi5
+
+	* [r14792] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Readd expat-bin
+	  (xmlparse,xmltok), freetype-dev, jpeg-bin and zlib-dev. Correct
+	  libxml-2.0.pc.
+
+2006-09-03 20:14  cstim
+
+	* [r14791] trunk/ChangeLog, trunk/lib/libqof/qof/qofbackend.h,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/gnome-utils/gnc-file.c: If the file type wasn't
+	  recognized, check whether this failed because of no read
+	  permission and give appropriate user feedback if yes. Feel free
+	  to adjust the wording. BP
+
+2006-09-03 19:54  andi5
+
+	* [r14790] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Split glade installer into
+	  small gtk/gnome/other packages, add libglade. Still experimental.
+
+2006-09-03 11:07  cstim
+
+	* [r14789] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c: Fix error checking
+	  for non-existing filenames. Will now always give a "file not
+	  found" message on nonexisting paths or filenames. #351351. BP
+
+2006-09-03 10:23  cstim
+
+	* [r14788] trunk/src/backend/file/gnc-backend-file.c: Replace
+	  hardcoded dir separator by the glib macro
+
+2006-09-03 10:13  andi5
+
+	* [r14787] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Add OpenSSL install function
+	  as libgnomeui needs libssl32.dll. Add environment variable
+	  LIBGLADE_MODULE_PATH. glade_require("gnome"); works now, Glade-2
+	  does not load gnome widgets, GnuCash is untested.
+
+2006-09-02 19:19  cstim
+
+	* [r14786] trunk/lib/libqof/qof/qofsession.c: Fix typo
+
+2006-09-02 19:18  cstim
+
+	* [r14785] trunk/lib/libqof/qof/qofsession.c: For windows, fall
+	  back to the file backend if a colon was in the URL name.
+
+2006-09-02 15:44  cstim
+
+	* [r14784] trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome/druid-hierarchy.c: Fully specify the correct
+	  subdirectory for windows; the prefix will be determined at
+	  runtime
+
+2006-09-02 08:52  cstim
+
+	* [r14783] trunk/src/engine/Makefile.am: Revert r14780; doesn't
+	  help for mingw/win32.
+
+2006-09-01 21:33  andi5
+
+	* [r14782] trunk/packaging/win32/pi.sh: Add pi.sh, a postinstall
+	  script of mingw.
+
+2006-09-01 21:10  cstim
+
+	* [r14781] trunk/src/import-export/hbci/gnc-hbci-transfer.c: Fix
+	  crash when querying data of the already deleted
+	  template_list_store of the transfer dialog.
+
+2006-09-01 20:29  cstim
+
+	* [r14780] trunk/src/engine/Makefile.am: Use PATH_SEPARATOR
+	  variable for GUILE_LOAD_PATH for windows.
+
+2006-09-01 20:23  cstim
+
+	* [r14779] trunk/src/engine/Makefile.am: Fix parallel build as
+	  proposed by Mike Alexander <mta at umich.edu>
+
+2006-09-01 15:45  cstim
+
+	* [r14778] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash.in:
+	  Use the PATH_SEPARATOR variable from ./configure during path
+	  creation in script. Necessary for windows ; searchpath separator
+
+2006-09-01 15:26  cstim
+
+	* [r14777] trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/gnc-module/gnc-module.c: Change the searchpath
+	  separator to glib macro so that on Windows, ';' is used. Also
+	  clean up more path creation functions.
+
+2006-09-01 15:25  cstim
+
+	* [r14776] trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome/druid-hierarchy.c: For windows, determine glade
+	  and accounts path at runtime instead of configure time.
+
+2006-08-30 16:55  andi5
+
+	* [r14775] trunk/packaging/win32/install.sh: Fix wget_unpacked in
+	  install.sh, once again.
+
+2006-08-30 16:52  andi5
+
+	* [r14774] trunk/packaging/win32/install.sh: Added missing
+	  parameter in wget_unpacked in install.sh.
+
+2006-08-30 08:30  andi5
+
+	* [r14773] trunk/packaging/win32/install.sh: Win32 script: added
+	  wget_unpacked, $LAST_FILE, corrected --with-modules-dir.
+
+2006-08-30 07:15  andi5
+
+	* [r14772] trunk/packaging/win32/install.sh: Replace set [-+]e
+	  switching by `if'.
+
+2006-08-29 21:00  cstim
+
+	* [r14771] trunk/src/backend/file/test/Makefile.am: Add more
+	  library dirs for test runtime.
+
+2006-08-29 20:32  cstim
+
+	* [r14770] trunk/src/engine/test/Makefile.am: Add more library
+	  dirs for test runtime.
+
+2006-08-29 20:31  cstim
+
+	* [r14769] trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: At runtime one of the gnome
+	  packages also needs gail.
+
+2006-08-29 20:23  cstim
+
+	* [r14768] trunk/packaging/win32/install.sh: For configuring
+	  gnucash, add --enable-schemas-install=no. See wiki.
+
+2006-08-29 08:18  cstim
+
+	* [r14767] trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/import-export/qif-io-core/Makefile.am: Next round of
+	  Makefile symlink cleanup. Scheme files are now symlinked or
+	  copied into subdirectories gnucash/.
+	* [r14766] trunk/src/import-export/Makefile.am: Remove unused
+	  scm-links section
+
+2006-08-29 08:07  cstim
+
+	* [r14765] trunk/src/bin/Makefile.am: Add missing include
+
+2006-08-29 08:05  cstim
+
+	* [r14764] trunk/src/report/locale-specific/us/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/standard-reports/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am,
+	  trunk/src/report/utility-reports/Makefile.am: Next round of
+	  Makefile symlink cleanup. Scheme files are now symlinked or
+	  copied into subdirectories gnucash/ and g-wrapped/. Also,
+	  parallel builds should work fine now.
+
+2006-08-29 07:48  cstim
+
+	* [r14763] trunk/src/app-utils/Makefile.am,
+	  trunk/src/core-utils/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/register/register-core/Makefile.am: Add missing -f
+	  flag when symlinking the gw-.scm files
+
+2006-08-29 07:29  cstim
+
+	* [r14762] trunk/src/gnome-utils/Makefile.am: Symlinking
+	  directories only works on non-win32.
+
+2006-08-29 03:28  warlord
+
+	* [r14761] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/po/POTFILES.skip,
+	  branches/2.0/src/gnome-utils/Makefile.am: Drop gtktreedatalist
+	  (and gnctreemodelsort) from the build because it can conflict
+	  with the real gtk+ version of the same file, depending on the
+	  linking order of libgncmod-gnome-utils.so and the gtk+
+	  libraries. Merge from r14709.
+	* [r14760] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome/gnc-plugin-page-account-tree.c: Maintain
+	  the account hierarchy when reparenting the descendants of a
+	  deleted account. Merge from r14700.
+
+2006-08-29 03:27  warlord
+
+	* [r14759] branches/2.0, branches/2.0/ChangeLog: Update so that
+	  bug-buddy 2.16 will still allow you to file bugs against
+	  gnucash. Merge from r14695.
+	* [r14758] branches/2.0, branches/2.0/ChangeLog: Add missing call
+	  to xaccAccountBeginEdit. Merge from r14694.
+	* [r14757] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/hbci/dialog-hbcitrans.c,
+	  branches/2.0/src/import-export/hbci/druid-hbci-initial.c:
+	  Double-check really every string from aqbanking for valid utf-8
+	  characters. Merge from r14680.
+	* [r14756] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/core-utils/gnc-glib-utils.c,
+	  branches/2.0/src/core-utils/gnc-glib-utils.h: Add
+	  gnc_utf8_strip_invalid_strdup() that returns a stripped copy
+	  instead of working in-place. Merge from r14679.
+	* [r14755] branches/2.0,
+	  branches/2.0/src/report/standard-reports/budget.scm: Mark
+	  forgotten strings for translation Merge from r14677.
+
+2006-08-29 03:26  warlord
+
+	* [r14754] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/hbci/dialog-hbcitrans.c: Ensure
+	  the encoding of the ktoblzcheck library is used correctly. Their
+	  encoding is still always ISO-8859-1, but in future versions they
+	  might change it to something else. We're prepared now. Merge
+	  from r14676.
+	* [r14753] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/core-utils/gnc-gconf-utils.c,
+	  branches/2.0/src/core-utils/gnc-gconf-utils.h,
+	  branches/2.0/src/gnome-utils/dialog-preferences.c,
+	  branches/2.0/src/gnome-utils/dialog-reset-warnings.c,
+	  branches/2.0/src/gnome-utils/gnc-main-window.c,
+	  branches/2.0/src/gnome-utils/gnc-plugin.c,
+	  branches/2.0/src/gnome-utils/gnc-plugin.h,
+	  branches/2.0/src/gnome-utils/gnc-tree-view.c: Remove overloading
+	  of an argument passed to the gnc_gconf_add/remove_notification
+	  functions.. This will solve a crash on Solaris caused by
+	  g_vasprintf being passed a "%s" format string and a NULL as
+	  argument. Merge from r14675.
+
+2006-08-28 19:28  cstim
+
+	* [r14752] trunk/packaging/win32/install.sh: Set g-wrap's module
+	  dir to Windows syntax. Make sure goffice exports the
+	  libgoffice_init symbol.
+
+2006-08-28 16:31  warlord
+
+	* [r14751] trunk, trunk/lib/libqof/backend/file/qsf-xml-map.c: and
+	  one more file needs strptime.h.
+
+2006-08-28 16:20  warlord
+
+	* [r14750] trunk, trunk/lib/libqof/backend/file/qsf-backend.c:
+	  need to include strptime.h so we get the declaration.
+
+2006-08-28 16:05  warlord
+
+	* [r14749] trunk, trunk/lib/libqof/backend/file/Makefile.am:
+	  libqof/backend/file needs lib/libc for the missing libc
+	  functions.
+
+2006-08-28 15:42  warlord
+
+	* [r14748] trunk, trunk/src/app-utils/gw-app-utils-spec.scm:
+	  re-add gnc:gui-refresh-all, needed by a test, removed by r14619
+
+2006-08-28 15:20  cstim
+
+	* [r14747] trunk/src/app-utils/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/register/register-core/Makefile.am,
+	  trunk/src/scm/Makefile.am, trunk/src/tax/us/Makefile.am: Next
+	  round of Makefile symlink cleanup. Scheme files are now
+	  symlinked or copied into subdirectories gnucash/ and g-wrapped/.
+	  Also, parallel builds should work fine now.
+
+2006-08-28 14:51  cstim
+
+	* [r14746] trunk/lib/guile-www/Makefile.am,
+	  trunk/src/core-utils/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/gnc-module/Makefile.am: First round of Makefile
+	  symlink cleanup. Scheme files are now symlinked or copied into
+	  subdirectories gnucash/ and g-wrapped/. This will work on a
+	  platform without symlinks just fine.
+
+2006-08-28 12:34  cstim
+
+	* [r14745] trunk/src/gnc-test-env: Guile path on win32 needs to be
+	  separated by ; instead of :.
+
+2006-08-28 11:29  cstim
+
+	* [r14744] trunk/configure.in: Move win32 check out of
+	  libgsf-1.12.3 configure section into the general configure
+	  section
+
+2006-08-28 09:31  cstim
+
+	* [r14743] trunk/configure.in,
+	  trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/lib/libqof/qof/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/gnome-search/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/qif/Makefile.am: Add REGEX_LIBS linker
+	  flag that is needed on win32 platform
+
+2006-08-28 08:56  cstim
+
+	* [r14742] trunk/packaging/win32/install.sh: Add CFLAGS which, if
+	  missing, would cause non-exported symbols. See wiki page.
+
+2006-08-27 19:49  cstim
+
+	* [r14741] trunk/packaging/win32/install.sh: On win32, LDFLAGS
+	  need to contain -no-undefined to get DLLs built.
+
+2006-08-27 12:45  cstim
+
+	* [r14740] trunk/packaging/win32/install.sh: Add more env
+	  variables to configure so that rerunning configure works even
+	  outside of install.sh
+
+2006-08-27 02:01  andi5
+
+	* [r14739] trunk/packaging/win32/goffice-0.3.0-patch.diff: One
+	  more patch fix
+
+2006-08-27 01:29  andi5
+
+	* [r14738] trunk/packaging/win32/goffice-0.3.0-patch.diff: Correct
+	  last patch.
+
+2006-08-27 01:17  warlord
+
+	* [r14737] trunk, trunk/packaging/win32/goffice-0.3.0-patch.diff,
+	  trunk/packaging/win32/install.sh: Patch goffice to deal properly
+	  with goffice.def
+
+2006-08-27 01:16  warlord
+
+	* [r14736] trunk, trunk/packaging/win32/install.sh: modify the
+	  goffice.def later in the build.
+
+2006-08-27 00:29  andi5
+
+	* [r14735] trunk/packaging/win32/README,
+	  trunk/packaging/win32/install.sh: Make the win32 script run even
+	  from outside of the its directory.
+
+2006-08-26 23:11  warlord
+
+	* [r14734] trunk, trunk/packaging/win32/install.sh: Don't
+	  arbitrarily change configure.in. This changeset lets us run this
+	  script multiple times and it wont break configure.in.
+
+2006-08-26 23:06  warlord
+
+	* [r14733] trunk, trunk/packaging/win32/install.sh: revert back to
+	  checking for libgoffice-0.3.pc
+
+2006-08-26 22:59  warlord
+
+	* [r14732] trunk, trunk/configure.in: Check for libgoffice-0.3
+	  before libgoffice-1. (So we find "native" goffice-0.3.x on win32
+
+2006-08-26 21:22  warlord
+
+	* [r14731] trunk, trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh,
+	  trunk/packaging/win32/intltool-merge: Get goffice building
+	  properly. - make sure it will build dynamically - remove unknown
+	  symbols - fix the intltool-merge problem by replacing
+	  intltool-merge
+
+2006-08-26 19:26  jsled
+
+	* [r14730] branches/sx-cleanup/ChangeLog: missed in last commit.
+
+2006-08-26 19:03  cstim
+
+	* [r14729] trunk/packaging/win32/install.sh: Revert libgoffice
+	  pkgconfig filename change. Add CFLAGS at gnucash configure.
+
+2006-08-26 08:53  cstim
+
+	* [r14728] trunk/packaging/win32/install.sh: Fix version number of
+	  libgoffice pc file
+
+2006-08-26 06:03  warlord
+
+	* [r14727] trunk, trunk/packaging/win32/install.sh: msys sed
+	  doesn't understand "-i". Work around that.
+
+2006-08-26 05:31  warlord
+
+	* [r14726] trunk, trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/goffice-0.3.0-patch.diff,
+	  trunk/packaging/win32/install.sh: More updates to the win32
+	  build script. - We need autotools before libgsf - update the
+	  goffice build rule (but still not enabled) - add the goffice
+	  patch. Expand the patch. - turn off the INTLTOOL_XML_RULE in the
+	  goffice makefiles.
+
+2006-08-26 03:30  warlord
+
+	* [r14725] trunk, trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Add script code to build
+	  libgsf -- tested and works for me. Add script code to build
+	  goffice (not enabled, yet).
+
+2006-08-26 01:48  warlord
+
+	* [r14724] trunk, trunk/packaging/win32/install.sh: Be smarter
+	  about handling partially completed builds. - Don't die when wget
+	  has already downloaded the file. - add some more output during
+	  the auto-tools
+
+2006-08-26 01:23  warlord
+
+	* [r14723] trunk, trunk/packaging/win32/install.sh: use WORKING
+	  set +/-e construct.
+
+2006-08-26 01:19  warlord
+
+	* [r14722] trunk, trunk/packaging/win32/install.sh: Fix some
+	  typos. Deal with constructs that don't work with "set -e"
+
+2006-08-26 01:03  warlord
+
+	* [r14721] trunk, trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Update win32 script to be
+	  better about failing.
+
+2006-08-25 20:27  cstim
+
+	* [r14720] trunk/packaging/win32, trunk/packaging/win32/README,
+	  trunk/packaging/win32/custom.sh,
+	  trunk/packaging/win32/install.sh: Add Andi's script for
+	  automated build environment building on Windows/mingw32
+
+2006-08-23 19:29  cstim
+
+	* [r14719] trunk/src/import-export/hbci/gnc-dtaus-import.c,
+	  trunk/src/import-export/hbci/gnc-dtaus-import.h,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c: Generalize
+	  importing function so that this function can fully replace
+	  gnc_file_mt940_import and the whole mt940 module.
+
+2006-08-23 12:09  cstim
+
+	* [r14718] trunk/src/gnome-utils/dialog-utils.c: Replace
+	  hard-coded directory separator by g_build_filename() function
+
+2006-08-23 12:08  cstim
+
+	* [r14717] trunk/src/gnome: Add new svn:ignore
+
+2006-08-23 03:20  hampton
+
+	* [r14716] branches/remove-group/ChangeLog,
+	  branches/remove-group/src/app-utils/gnc-account-merge.c: Merge
+	  account trees properly.
+
+2006-08-23 03:17  hampton
+
+	* [r14715] branches/remove-group/ChangeLog,
+	  branches/remove-group/src/backend/file/io-gncxml-v2.c,
+	  branches/remove-group/src/engine/Account.c: Make sure the root
+	  account exists when the code asks for it. This works both for
+	  reading a new file and a user performing File->New->New File.
+
+2006-08-23 03:09  hampton
+
+	* [r14714] branches/remove-group/ChangeLog,
+	  branches/remove-group/src/gnome-utils/gnc-tree-model-account.c:
+	  Fix a mistake in the updated tree model.
+
+2006-08-22 21:51  hampton
+
+	* [r14713] branches/remove-group/ChangeLog,
+	  branches/remove-group/src/backend/file/gnc-account-xml-v2.c,
+	  branches/remove-group/src/backend/file/io-gncxml-v2.c,
+	  branches/remove-group/src/engine/Account.c,
+	  branches/remove-group/src/engine/Account.h,
+	  branches/remove-group/src/engine/Scrub.c: Don't require the root
+	  account to have a commodity.
+
+2006-08-22 20:08  cstim
+
+	* [r14712] trunk/src/backend/file/gnc-backend-file.c: Fix one more
+	  instance of explicit directory separator to use
+	  G_DIR_SEPARATOR_S instead
+
+2006-08-22 19:41  cstim
+
+	* [r14711] trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/lib/libqof/qof/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/scm/Makefile.am: Replace : as sed's replacement
+	  command delimiter by # because on Windows, fully qualified
+	  filenames might contain the colon.
+
+2006-08-22 19:26  cstim
+
+	* [r14710] trunk/configure.in: Increase aqbanking dependency to >=
+	  1.6.0; has been released on 2005-09-22
+
+2006-08-22 15:33  chris
+
+	* [r14709] trunk/po/POTFILES.skip,
+	  trunk/src/gnome-utils/Makefile.am: Drop gtktreedatalist (and
+	  gnctreemodelsort) from the build because it can conflict with
+	  the real gtk+ version of the same file, depending on the linking
+	  order of libgncmod-gnome-utils.so and the gtk+ libraries. BP
+
+2006-08-22 14:35  cstim
+
+	* [r14708] trunk/src/gnome-utils/Makefile.am: Replace : as sed's
+	  replacement command delimiter by # because on Windows, fully
+	  qualified filenames might contain the colon.
+
+2006-08-22 14:33  cstim
+
+	* [r14707] trunk/src/gnome-utils/gnc-embedded-window.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c: Remove include that
+	  isn't needed anymore; removes dependency on regenerated file
+
+2006-08-22 13:38  cstim
+
+	* [r14706] trunk/src/bin/Makefile.am,
+	  trunk/src/bin/overrides/Makefile.am: Replace : as sed's
+	  replacement command delimiter by # because on Windows, fully
+	  qualified filenames might contain the colon.
+
+2006-08-22 12:51  cstim
+
+	* [r14705] branches/2.0/po/de.po: Update German translation with
+	  latest string (tip-of-day) addition
+
+2006-08-22 02:43  hampton
+
+	* [r14704] branches/remove-group/ChangeLog,
+	  branches/remove-group/src/engine/Account.c,
+	  branches/remove-group/src/engine/Account.h,
+	  branches/remove-group/src/engine/SX-book-p.h,
+	  branches/remove-group/src/engine/SX-book.c,
+	  branches/remove-group/src/engine/SX-book.h: Mark a couple of
+	  functions as static.
+
+2006-08-22 00:38  hampton
+
+	* [r14703] branches/remove-group/ChangeLog,
+	  branches/remove-group/gnucash.m4,
+	  branches/remove-group/lib/libqof/backend/file/qof-backend-qsf.h,
+	  branches/remove-group/lib/libqof/qof/qofinstance-p.h,
+	  branches/remove-group/lib/libqof/qof/qofinstance.h,
+	  branches/remove-group/lib/libqof/qof/qofsession.h,
+	  branches/remove-group/src/app-utils/gnc-account-merge.c,
+	  branches/remove-group/src/app-utils/gnc-account-merge.h,
+	  branches/remove-group/src/app-utils/gnc-component-manager.c,
+	  branches/remove-group/src/app-utils/gnc-ui-util.c,
+	  branches/remove-group/src/app-utils/gnc-ui-util.h,
+	  branches/remove-group/src/app-utils/guile-util.h,
+	  branches/remove-group/src/app-utils/gw-app-utils-spec.scm,
+	  branches/remove-group/src/app-utils/options.scm,
+	  branches/remove-group/src/backend/file/gnc-account-xml-v2.c,
+	  branches/remove-group/src/backend/file/gnc-book-xml-v2.c,
+	  branches/remove-group/src/backend/file/gnc-commodity-xml-v2.c,
+	  branches/remove-group/src/backend/file/gnc-schedxaction-xml-v2.c,
+	  branches/remove-group/src/backend/file/io-example-account.c,
+	  branches/remove-group/src/backend/file/io-example-account.h,
+	  branches/remove-group/src/backend/file/io-gncbin-r.c,
+	  branches/remove-group/src/backend/file/io-gncbin.h,
+	  branches/remove-group/src/backend/file/io-gncxml-v1.c,
+	  branches/remove-group/src/backend/file/io-gncxml-v2.c,
+	  branches/remove-group/src/backend/file/io-utils.c,
+	  branches/remove-group/src/backend/file/io-utils.h,
+	  branches/remove-group/src/backend/file/test/test-load-xml2.c,
+	  branches/remove-group/src/backend/file/test/test-xml-account.c,
+	  branches/remove-group/src/backend/file/test/test-xml-transaction.c,
+	  branches/remove-group/src/backend/postgres/PostgresBackend.c,
+	  branches/remove-group/src/backend/postgres/PostgresBackend.h,
+	  branches/remove-group/src/backend/postgres/account.c,
+	  branches/remove-group/src/backend/postgres/account.h,
+	  branches/remove-group/src/backend/postgres/checkpoint.c,
+	  branches/remove-group/src/backend/postgres/checkpoint.h,
+	  branches/remove-group/src/backend/postgres/events.c,
+	  branches/remove-group/src/backend/postgres/table.m4,
+	  branches/remove-group/src/backend/postgres/test/test-db.c,
+	  branches/remove-group/src/backend/postgres/test/test-period.c,
+	  branches/remove-group/src/backend/postgres/txn.c,
+	  branches/remove-group/src/backend/postgres/txn.h,
+	  branches/remove-group/src/backend/postgres/txnmass.c,
+	  branches/remove-group/src/business/business-core/gncInvoice.c,
+	  branches/remove-group/src/business/business-gnome/business-gnome-utils.c,
+	  branches/remove-group/src/business/business-gnome/dialog-payment.c,
+	  branches/remove-group/src/business/business-gnome/gnc-plugin-business.c,
+	  branches/remove-group/src/business/business-gnome/gnc-plugin-page-invoice.c,
+	  branches/remove-group/src/business/business-ledger/gncEntryLedger.c,
+	  branches/remove-group/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/remove-group/src/business/business-reports/owner-report.scm,
+	  branches/remove-group/src/engine/Account.c,
+	  branches/remove-group/src/engine/Account.h,
+	  branches/remove-group/src/engine/AccountP.h,
+	  branches/remove-group/src/engine/Group.c,
+	  branches/remove-group/src/engine/Group.h,
+	  branches/remove-group/src/engine/GroupP.h,
+	  branches/remove-group/src/engine/Makefile.am,
+	  branches/remove-group/src/engine/Period.c,
+	  branches/remove-group/src/engine/SX-book-p.h,
+	  branches/remove-group/src/engine/SX-book.c,
+	  branches/remove-group/src/engine/SX-book.h,
+	  branches/remove-group/src/engine/SchedXaction.c,
+	  branches/remove-group/src/engine/Scrub.c,
+	  branches/remove-group/src/engine/Scrub.h,
+	  branches/remove-group/src/engine/Scrub2.c,
+	  branches/remove-group/src/engine/Scrub3.c,
+	  branches/remove-group/src/engine/Scrub3.h,
+	  branches/remove-group/src/engine/ScrubP.h,
+	  branches/remove-group/src/engine/Split.c,
+	  branches/remove-group/src/engine/TransLog.c,
+	  branches/remove-group/src/engine/Transaction.c,
+	  branches/remove-group/src/engine/cap-gains.c,
+	  branches/remove-group/src/engine/cashobjects.c,
+	  branches/remove-group/src/engine/engine-helpers.c,
+	  branches/remove-group/src/engine/engine-helpers.h,
+	  branches/remove-group/src/engine/engine-utilities.scm,
+	  branches/remove-group/src/engine/engine.scm,
+	  branches/remove-group/src/engine/gnc-associate-account.c,
+	  branches/remove-group/src/engine/gnc-budget.c,
+	  branches/remove-group/src/engine/gnc-engine.c,
+	  branches/remove-group/src/engine/gnc-engine.h,
+	  branches/remove-group/src/engine/gw-engine-spec.scm,
+	  branches/remove-group/src/engine/test-core/test-engine-stuff.c,
+	  branches/remove-group/src/engine/test-core/test-engine-stuff.h,
+	  branches/remove-group/src/engine/test/test-create-account.scm,
+	  branches/remove-group/src/engine/test/test-group-vs-book.c,
+	  branches/remove-group/src/engine/test/test-lots.c,
+	  branches/remove-group/src/engine/test/test-period.c,
+	  branches/remove-group/src/engine/test/test-query.c,
+	  branches/remove-group/src/experimental/cgi-bin/gnc-server.c,
+	  branches/remove-group/src/experimental/cgi-bin/hello2.c,
+	  branches/remove-group/src/experimental/cgi-bin/hello3.c,
+	  branches/remove-group/src/gnome-utils/account-quickfill.c,
+	  branches/remove-group/src/gnome-utils/account-quickfill.h,
+	  branches/remove-group/src/gnome-utils/dialog-account.c,
+	  branches/remove-group/src/gnome-utils/dialog-account.h,
+	  branches/remove-group/src/gnome-utils/dialog-transfer.c,
+	  branches/remove-group/src/gnome-utils/dialog-utils.c,
+	  branches/remove-group/src/gnome-utils/gnc-account-sel.c,
+	  branches/remove-group/src/gnome-utils/gnc-file.c,
+	  branches/remove-group/src/gnome-utils/gnc-html.c,
+	  branches/remove-group/src/gnome-utils/gnc-tree-model-account.c,
+	  branches/remove-group/src/gnome-utils/gnc-tree-model-account.h,
+	  branches/remove-group/src/gnome-utils/gnc-tree-model.h,
+	  branches/remove-group/src/gnome-utils/gnc-tree-view-account.c,
+	  branches/remove-group/src/gnome-utils/gnc-tree-view-account.h,
+	  branches/remove-group/src/gnome-utils/window-main-summarybar.c,
+	  branches/remove-group/src/gnome/dialog-commodities.c,
+	  branches/remove-group/src/gnome/dialog-find-transactions.c,
+	  branches/remove-group/src/gnome/dialog-sxsincelast.c,
+	  branches/remove-group/src/gnome/druid-acct-period.c,
+	  branches/remove-group/src/gnome/druid-hierarchy.c,
+	  branches/remove-group/src/gnome/druid-merge.c,
+	  branches/remove-group/src/gnome/druid-merge.h,
+	  branches/remove-group/src/gnome/druid-stock-split.c,
+	  branches/remove-group/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/remove-group/src/gnome/gnc-plugin-page-register.c,
+	  branches/remove-group/src/gnome/gnc-split-reg.c,
+	  branches/remove-group/src/gnome/reconcile-list.c,
+	  branches/remove-group/src/gnome/top-level.c,
+	  branches/remove-group/src/gnome/window-reconcile.c,
+	  branches/remove-group/src/import-export/binary-import/druid-commodity.c,
+	  branches/remove-group/src/import-export/hbci/druid-hbci-utils.c,
+	  branches/remove-group/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  branches/remove-group/src/import-export/hbci/gnc-hbci-transfer.c,
+	  branches/remove-group/src/import-export/import-account-matcher.c,
+	  branches/remove-group/src/import-export/import-backend.c,
+	  branches/remove-group/src/import-export/import-match-map.c,
+	  branches/remove-group/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/remove-group/src/import-export/qif-import/druid-qif-import.c,
+	  branches/remove-group/src/import-export/qif-import/qif-dialog-utils.scm,
+	  branches/remove-group/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/remove-group/src/import-export/qif-import/qif-import.scm,
+	  branches/remove-group/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/remove-group/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/remove-group/src/import-export/qif-io-core/qif-acct-table.scm,
+	  branches/remove-group/src/import-export/qif-io-core/qif-io-core.scm,
+	  branches/remove-group/src/import-export/qif-io-core/test/test-import-phase-1.scm,
+	  branches/remove-group/src/optional/swig/Makefile.am,
+	  branches/remove-group/src/register/ledger-core/gnc-ledger-display.c,
+	  branches/remove-group/src/register/ledger-core/split-register-control.c,
+	  branches/remove-group/src/register/ledger-core/split-register-load.c,
+	  branches/remove-group/src/register/ledger-core/split-register-model.c,
+	  branches/remove-group/src/register/ledger-core/split-register-p.h,
+	  branches/remove-group/src/register/ledger-core/split-register.c,
+	  branches/remove-group/src/register/ledger-core/split-register.h,
+	  branches/remove-group/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  branches/remove-group/src/report/locale-specific/us/taxtxf.scm,
+	  branches/remove-group/src/report/report-system/commodity-utilities.scm,
+	  branches/remove-group/src/report/report-system/html-acct-table.scm,
+	  branches/remove-group/src/report/report-system/html-utilities.scm,
+	  branches/remove-group/src/report/report-system/report-system.scm,
+	  branches/remove-group/src/report/report-system/report-utilities.scm,
+	  branches/remove-group/src/report/standard-reports/account-piecharts.scm,
+	  branches/remove-group/src/report/standard-reports/account-summary.scm,
+	  branches/remove-group/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/remove-group/src/report/standard-reports/average-balance.scm,
+	  branches/remove-group/src/report/standard-reports/balance-sheet.scm,
+	  branches/remove-group/src/report/standard-reports/budget.scm,
+	  branches/remove-group/src/report/standard-reports/cash-flow.scm,
+	  branches/remove-group/src/report/standard-reports/category-barchart.scm,
+	  branches/remove-group/src/report/standard-reports/daily-reports.scm,
+	  branches/remove-group/src/report/standard-reports/equity-statement.scm,
+	  branches/remove-group/src/report/standard-reports/general-journal.scm,
+	  branches/remove-group/src/report/standard-reports/income-statement.scm,
+	  branches/remove-group/src/report/standard-reports/net-barchart.scm,
+	  branches/remove-group/src/report/standard-reports/portfolio.scm,
+	  branches/remove-group/src/report/standard-reports/price-scatter.scm,
+	  branches/remove-group/src/report/standard-reports/transaction.scm,
+	  branches/remove-group/src/report/standard-reports/trial-balance.scm,
+	  branches/remove-group/src/scm/price-quotes.scm: Initial removal
+	  of the engine Group.h, GroupP.h, and Group.c files. This
+	  completely removes the AccountGroup data structure.
+
+2006-08-21 20:30  cstim
+
+	* [r14702] trunk/src/import-export/hbci/gnc-dtaus-import.c,
+	  trunk/src/import-export/hbci/gnc-dtaus-import.h,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.h,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940.c: More code
+	  refactoring of aqbanking module: Make importer name a function
+	  argument so that more menu items can be added easily.
+
+2006-08-20 21:57  hampton
+
+	* [r14701] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-account-xml-v2.c,
+	  trunk/src/backend/file/gnc-commodity-xml-v2.c,
+	  trunk/src/gnome/top-level.c: Remove some conditional code that
+	  is no longer compiled, or shouldn't be compiled in 2.2.
+
+2006-08-20 21:52  hampton
+
+	* [r14700] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Maintain the
+	  account hierarchy when reparenting the descendants of a deleted
+	  account. BP
+
+2006-08-20 10:00  cstim
+
+	* [r14699] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/Makefile.am,
+	  trunk/src/import-export/hbci/gnc-dtaus-import.c,
+	  trunk/src/import-export/hbci/gnc-dtaus-import.h,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci-ui.xml,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c: Add new HBCI
+	  action to File->Import that imports a DTAUS file and sends all
+	  transfers as HBCI online transfers to the bank.
+
+2006-08-20 09:58  cstim
+
+	* [r14698] trunk/src/import-export/hbci/hbci-interaction.c,
+	  trunk/src/import-export/hbci/hbci-interaction.h: Add more
+	  auxiliary functions in HBCI log window
+
+2006-08-20 08:25  cstim
+
+	* [r14697] branches/2.0/ChangeLog, branches/2.0/configure.in,
+	  branches/2.0/src/gnome/gnucash.desktop.in,
+	  branches/2.0/src/gnome/gnucash.desktop.in.in: Update so that
+	  bug-buddy 2.16 will still allow you to file bugs against
+	  gnucash. Back-ported from trunk, r14695
+
+2006-08-20 08:24  cstim
+
+	* [r14696] branches/2.0/ChangeLog,
+	  branches/2.0/src/engine/Account.c: Add missing call to
+	  xaccAccountBeginEdit. Back-ported from trunk, r14694
+
+2006-08-20 03:32  hampton
+
+	* [r14695] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/gnome/gnucash.desktop.in,
+	  trunk/src/gnome/gnucash.desktop.in.in: Update so that bug-buddy
+	  2.16 will still allow you to file bugs against gnucash. BP
+
+2006-08-19 05:07  hampton
+
+	* [r14694] trunk/ChangeLog, trunk/src/engine/Account.c: Add
+	  missing call to xaccAccountBeginEdit. BP
+
+2006-08-19 01:56  hampton
+
+	* [r14693] branches/remove-group: Branch from trunk at 14692.
+
+2006-08-19 01:15  chris
+
+	* [r14692] branches/swig-redo: Branch from trunk at r14658.
+
+2006-08-18 20:51  cstim
+
+	* [r14691] trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.h,
+	  trunk/src/import-export/hbci/gnc-hbci-transfer.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.h: Some code
+	  refactoring in preparation for extended importing and HBCI
+	  features.
+
+2006-08-18 04:48  hampton
+
+	* [r14690] trunk/ChangeLog, trunk/lib/libqof/qof/qofbackend-p.h,
+	  trunk/lib/libqof/qof/qofbackend.h,
+	  trunk/lib/libqof/qof/qofbook.c, trunk/lib/libqof/qof/qofbook.h,
+	  trunk/lib/libqof/qof/qofchoice.c,
+	  trunk/lib/libqof/qof/qofchoice.h,
+	  trunk/lib/libqof/qof/qofid-p.h, trunk/lib/libqof/qof/qofid.c,
+	  trunk/lib/libqof/qof/qofid.h,
+	  trunk/lib/libqof/qof/qofinstance.c,
+	  trunk/lib/libqof/qof/qofinstance.h,
+	  trunk/lib/libqof/qof/qofobject-p.h,
+	  trunk/lib/libqof/qof/qofobject.c,
+	  trunk/lib/libqof/qof/qofobject.h, trunk/src/engine/Group.c,
+	  trunk/src/engine/Group.h, trunk/src/engine/SX-book.c,
+	  trunk/src/engine/SX-book.h, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/engine/test/test-object.c: Add some 'const'
+	  declarations.
+
+2006-08-17 12:47  cstim
+
+	* [r14689] trunk/src/gnc-test-env: Improve tests environment setup
+	  script so that support for Windows directory separators can be
+	  switched on easily.
+
+2006-08-17 10:43  cstim
+
+	* [r14688] trunk/ChangeLog, trunk/lib/libqof/qof/qof.h,
+	  trunk/lib/libqof/qof/qofsession.c: Move #include "qofla-dir.h"
+	  into qofsession.c because this is the only place where it is
+	  used. Removes an often regenerated dependency from qof.h.
+
+2006-08-17 01:06  chris
+
+	* [r14687]
+	  branches/swigify/src/business/business-gnome/business-gnome.i,
+	  branches/swigify/src/business/business-reports/owner-report.scm:
+	  Remove unneeded SWIG wrappers. Delete a stray debugging line.
+
+2006-08-16 03:45  chris
+
+	* [r14686]
+	  branches/swigify/src/business/business-reports/business-reports.scm,
+	  branches/swigify/src/business/business-reports/easy-invoice.scm,
+	  branches/swigify/src/business/business-reports/fancy-invoice.scm,
+	  branches/swigify/src/business/business-reports/invoice.scm,
+	  branches/swigify/src/business/business-reports/owner-report.scm,
+	  branches/swigify/src/business/business-utils/business-options.scm:
+	  Fix the scm-side treatment of the enum constants. Revert back to
+	  using the g-wrapped versions of some functions in engine.
+
+2006-08-16 03:41  chris
+
+	* [r14685]
+	  branches/swigify/src/business/business-gnome/business-options-gnome.c:
+	  Change the storage of the option data for an enum-valued option.
+
+2006-08-16 03:39  chris
+
+	* [r14684]
+	  branches/swigify/src/business/business-gnome/businessmod-gnome.c:
+	  Make temporary wrappers for values of gnc:url-id type.
+
+2006-08-16 03:24  chris
+
+	* [r14683]
+	  branches/swigify/src/business/business-core/business-core.scm:
+	  Correctly handle wrapped enum values.
+
+2006-08-16 03:21  chris
+
+	* [r14682]
+	  branches/swigify/src/business/business-core/business-core.i,
+	  branches/swigify/src/business/business-core/businessmod-core.c:
+	  Add temporary type-support for types that haven't been wrapped
+	  yet. Make more custom wrappers equivalent to the "LookupDirect"
+	  macro functions.
+
+2006-08-16 03:04  chris
+
+	* [r14681] branches/swigify/Makefile.am: Distribute SWIG autoconf
+	  macro.
+
+2006-08-15 20:05  cstim
+
+	* [r14680] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c: Double-check
+	  really every string from aqbanking for valid utf-8 characters. BP
+
+2006-08-15 20:00  cstim
+
+	* [r14679] trunk/ChangeLog, trunk/src/core-utils/gnc-glib-utils.c,
+	  trunk/src/core-utils/gnc-glib-utils.h: Add
+	  gnc_utf8_strip_invalid_strdup() that returns a stripped copy
+	  instead of working in-place. BP
+
+2006-08-15 19:45  cstim
+
+	* [r14678] branches/2.0/ChangeLog,
+	  branches/2.0/doc/tip_of_the_day.list.in: Add a tip for raising
+	  the accounts menu in a register page. Back-ported r14670.
+
+2006-08-15 19:34  cstim
+
+	* [r14677] trunk/src/report/standard-reports/budget.scm: Mark
+	  forgotten strings for translation BP
+
+2006-08-15 13:39  cstim
+
+	* [r14676] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.c: Ensure the
+	  encoding of the ktoblzcheck library is used correctly. Their
+	  encoding is still always ISO-8859-1, but in future versions they
+	  might change it to something else. We're prepared now. BP
+
+2006-08-15 05:11  hampton
+
+	* [r14675] trunk/ChangeLog,
+	  trunk/src/core-utils/gnc-gconf-utils.c,
+	  trunk/src/core-utils/gnc-gconf-utils.h,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/dialog-reset-warnings.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-plugin.c,
+	  trunk/src/gnome-utils/gnc-plugin.h,
+	  trunk/src/gnome-utils/gnc-tree-view.c: Remove overloading of an
+	  argument passed to the gnc_gconf_add/remove_notification
+	  functions.. This will solve a crash on Solaris caused by
+	  g_vasprintf being passed a "%s" format string and a NULL as
+	  argument. BP
+
+2006-08-15 04:13  hampton
+
+	* [r14674] trunk/src/import-export/qif-import/test/Makefile.am:
+	  Fix a typo.
+
+2006-08-15 03:03  chris
+
+	* [r14673] trunk/src/import-export/qif-import/test/Makefile.am:
+	  Add indirect dependency libcore-utils.la to qif-import/test to
+	  appease Debian's broken libtool.
+
+2006-08-14 19:00  hampton
+
+	* [r14670] trunk/ChangeLog, trunk/doc/tip_of_the_day.list.in: Add
+	  a tip for raising the accounts menu in a register page.
+
+2006-08-14 10:10  cstim
+
+	* [r14668] branches/2.0/po/de.po: Update German translation after
+	  latest minor string change
+
+2006-08-14 05:12  warlord
+
+	* [r14667] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/import-backend.c: Replace exact
+	  comparison of doubles by checking for a small enough difference.
+	  bug#347791. Merge from r14648.
+	* [r14666] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/business/business-reports/owner-report.scm: Fix
+	  untranslated part of string. Merge from r14647.
+	* [r14665] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/report/report-system/html-utilities.scm,
+	  branches/2.0/src/report/standard-reports/account-summary.scm,
+	  branches/2.0/src/report/standard-reports/balance-sheet.scm,
+	  branches/2.0/src/report/standard-reports/equity-statement.scm,
+	  branches/2.0/src/report/standard-reports/general-journal.scm,
+	  branches/2.0/src/report/standard-reports/income-statement.scm,
+	  branches/2.0/src/report/standard-reports/trial-balance.scm,
+	  branches/2.0/src/report/utility-reports/Makefile.am,
+	  branches/2.0/src/report/utility-reports/utility-reports.scm: Fix
+	  all last untranslated report titles. Deactivated Test Graphing
+	  report because it is untranslated completely. Merge from r14646.
+	* [r14664] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/business/business-reports/aging.scm: Fix string
+	  that wasnt marked for translation. Fortunately exactly this
+	  string exists already. Merge from r14645.
+
+2006-08-13 19:08  chris
+
+	* [r14663]
+	  branches/swigify/src/business/business-gnome/Makefile.am,
+	  branches/swigify/src/business/business-gnome/business-gnome.i,
+	  branches/swigify/src/business/business-gnome/business-options-gnome.c,
+	  branches/swigify/src/business/business-gnome/dialog-invoice.c,
+	  branches/swigify/src/business/business-utils/business-options.c:
+	  The arguments that point to structs defined in the same module
+	  as the function being wrapped are typed as taking a pointer to
+	  the "real" struct, not the "public" typedef'd name of the
+	  struct. If functions in other modules use the same pointer
+	  arguments, and SWIG isn't told about the typedef to the struct,
+	  then these wrappers will be typed with an incompatible generic
+	  pointer type with the public type name. This commit resolves
+	  this by 1) using SWIG's %import directive to see the typedef to
+	  the struct name, 2) associated -Imodule lines in Makefile.am, 3)
+	  using the mangled form of the real struct name anywhere we need
+	  a runtime type query. Got it?
+
+2006-08-13 18:57  chris
+
+	* [r14662] branches/swigify/src/business/business-core/gncOwner.h:
+	  Rename the internal gncOwner struct type for consistency.
+
+2006-08-13 04:06  chris
+
+	* [r14661]
+	  branches/swigify/src/business/business-gnome/business-options-gnome.c:
+	  Correct the runtime-handling of SWIG-wrapped enums.
+
+2006-08-13 03:44  chris
+
+	* [r14660] branches/swigify/configure.in,
+	  branches/swigify/macros/ac_pkg_swig.m4: Add Autoconf support for
+	  SWIG. Also allow user-supplied CFLAGS to override defaults.
+	  (SWIG-generated files may require "-Wno-unused")
+
+2006-08-13 03:18  chris
+
+	* [r14659] branches/swigify, branches/swigify/ChangeLog,
+	  branches/swigify/doc/tip_of_the_day.list.in,
+	  branches/swigify/src/business/business-reports/aging.scm,
+	  branches/swigify/src/business/business-reports/owner-report.scm,
+	  branches/swigify/src/core-utils/Makefile.am,
+	  branches/swigify/src/core-utils/gnc-gobject-utils.c,
+	  branches/swigify/src/core-utils/gnc-gtk-utils.c,
+	  branches/swigify/src/core-utils/gnc-gtk-utils.h,
+	  branches/swigify/src/gnome-utils/Makefile.am,
+	  branches/swigify/src/gnome-utils/gnc-gtk-utils.c,
+	  branches/swigify/src/gnome-utils/gnc-gtk-utils.h,
+	  branches/swigify/src/import-export/import-backend.c,
+	  branches/swigify/src/report/report-system/html-utilities.scm,
+	  branches/swigify/src/report/standard-reports/account-summary.scm,
+	  branches/swigify/src/report/standard-reports/balance-sheet.scm,
+	  branches/swigify/src/report/standard-reports/equity-statement.scm,
+	  branches/swigify/src/report/standard-reports/general-journal.scm,
+	  branches/swigify/src/report/standard-reports/income-statement.scm,
+	  branches/swigify/src/report/standard-reports/trial-balance.scm,
+	  branches/swigify/src/report/utility-reports/Makefile.am,
+	  branches/swigify/src/report/utility-reports/utility-reports.scm:
+	  Sync branch with r14658 from trunk.
+
+2006-08-13 03:12  chris
+
+	* [r14658] trunk, trunk/ChangeLog,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/gnc-gobject-utils.c,
+	  trunk/src/core-utils/gnc-gtk-utils.c,
+	  trunk/src/core-utils/gnc-gtk-utils.h,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-gtk-utils.c,
+	  trunk/src/gnome-utils/gnc-gtk-utils.h: Reverting r14626. It
+	  botched the 'svn move' (svk bug) and broke the build.
+	  "gnc-gobject-utils.c:52: error: 'GtkFunction' undeclared."
+
+2006-08-13 02:39  chris
+
+	* [r14657]
+	  branches/swigify/src/business/business-reports/aging.scm,
+	  branches/swigify/src/business/business-reports/business-reports.scm,
+	  branches/swigify/src/business/business-reports/easy-invoice.scm,
+	  branches/swigify/src/business/business-reports/fancy-invoice.scm,
+	  branches/swigify/src/business/business-reports/invoice.scm,
+	  branches/swigify/src/business/business-reports/owner-report.scm:
+	  Convert the business reports to use the new SWIG bindings.
+	  Mostly, this involves using the exact name of the wrapped
+	  function, but there's also some places where NULL needs to be
+	  represented by '() instead of by #f, like the default-getters
+	  for options.
+
+2006-08-13 02:37  chris
+
+	* [r14656]
+	  branches/swigify/src/business/business-utils/business-options.c,
+	  branches/swigify/src/business/business-utils/business-options.scm,
+	  branches/swigify/src/business/business-utils/business-prefs.scm:
+	  Further swigification of the business-utils module. The
+	  business-options code requires wrapping types with the SWIG
+	  runtime. business-prefs.scm requires using '() instead of #f to
+	  mean NULL.
+
+2006-08-13 02:33  chris
+
+	* [r14655]
+	  branches/swigify/src/business/dialog-tax-table/dialog-tax-table.i,
+	  branches/swigify/src/business/dialog-tax-table/gncmod-dialog-tax-table.c:
+	  Futher swigification of the dialog-tax-table module.
+
+2006-08-13 02:30  chris
+
+	* [r14654]
+	  branches/swigify/src/business/business-gnome/business-options-gnome.c,
+	  branches/swigify/src/business/business-gnome/dialog-invoice.c:
+	  Further conversion of the business-gnome module to SWIG. Now use
+	  the SWIG runtime to wrap and unwrap types for passing to guile.
+
+2006-08-13 02:28  chris
+
+	* [r14653]
+	  branches/swigify/src/business/business-core/Makefile.am,
+	  branches/swigify/src/business/business-core/business-core.i,
+	  branches/swigify/src/business/business-core/business-core.scm,
+	  branches/swigify/src/business/business-core/gncBillTerm.h,
+	  branches/swigify/src/business/business-core/gncEntry.c,
+	  branches/swigify/src/business/business-core/gncEntry.h,
+	  branches/swigify/src/business/business-core/gncInvoice.c,
+	  branches/swigify/src/business/business-core/gncInvoice.h:
+	  Further conversion of the business-core module to swig. Removing
+	  all g-wrap bindings for this module.
+
+2006-08-13 02:03  chris
+
+	* [r14652] branches/swigify/src/engine/Makefile.am,
+	  branches/swigify/src/engine/engine.i,
+	  branches/swigify/src/engine/engine.scm,
+	  branches/swigify/src/engine/gncmod-engine.c,
+	  branches/swigify/src/engine/kvp.i: Add SWIG wrappers to
+	  src/engine, leaving them alongside the g-wrap wrappers.
+
+2006-08-13 01:59  chris
+
+	* [r14651] branches/swigify/src/engine/gnc-budget.h: Remove some
+	  undefined functions.
+
+2006-08-13 01:58  chris
+
+	* [r14650] branches/swigify/src/engine/glib-helpers.c,
+	  branches/swigify/src/engine/glib-helpers.h: Add a SCM to GSList*
+	  helper.
+
+2006-08-13 01:54  chris
+
+	* [r14649]
+	  branches/swigify/src/business/business-gnome/swig-runtime.h,
+	  branches/swigify/src/swig-runtime.h: Move swig-runtime.h to more
+	  accessible location.
+
+2006-08-12 14:48  cstim
+
+	* [r14648] trunk/src/import-export/import-backend.c: Replace exact
+	  comparison of doubles by checking for a small enough difference.
+	  bug#347791. BP
+
+2006-08-12 14:41  cstim
+
+	* [r14647] trunk/src/business/business-reports/owner-report.scm:
+	  Fix untranslated part of string. BP
+
+2006-08-12 14:38  cstim
+
+	* [r14646] trunk/src/report/report-system/html-utilities.scm,
+	  trunk/src/report/standard-reports/account-summary.scm,
+	  trunk/src/report/standard-reports/balance-sheet.scm,
+	  trunk/src/report/standard-reports/equity-statement.scm,
+	  trunk/src/report/standard-reports/general-journal.scm,
+	  trunk/src/report/standard-reports/income-statement.scm,
+	  trunk/src/report/standard-reports/trial-balance.scm,
+	  trunk/src/report/utility-reports/Makefile.am,
+	  trunk/src/report/utility-reports/utility-reports.scm: Fix all
+	  last untranslated report titles. Deactivated Test Graphing
+	  report because it is untranslated completely. BP
+
+2006-08-11 20:30  cstim
+
+	* [r14645] trunk/src/business/business-reports/aging.scm: Fix
+	  string that wasnt marked for translation. Fortunately exactly
+	  this string exists already. BP
+
+2006-08-11 20:08  cstim
+
+	* [r14644] trunk/doc/tip_of_the_day.list.in: Add tip about
+	  keyboard navigation between tabs. Feel free to change the
+	  wording or add more sentences to this rather short tip. I just
+	  didn't want to forget it right now.
+
+2006-08-11 05:35  chris
+
+	* [r14639]
+	  branches/swigify/src/business/dialog-tax-table/gncmod-dialog-tax-table.c:
+	  Convert the dialog-tax-table module to swig.
+
+2006-08-11 05:31  chris
+
+	* [r14638]
+	  branches/swigify/src/business/business-gnome/business-options-gnome.c,
+	  branches/swigify/src/business/business-gnome/dialog-invoice.c:
+	  This appears to be the swig way of using the swig runtime system
+	  to wrap C pointers for passing to guile functions.
+
+2006-08-11 05:29  chris
+
+	* [r14637]
+	  branches/swigify/src/business/business-gnome/swig-runtime.h:
+	  This is a generated file, and certainly doesn't belong here, but
+	  it'll do until we find a better place for it.
+
+2006-08-11 05:28  chris
+
+	* [r14636]
+	  branches/swigify/src/business/business-gnome/businessmod-gnome.c:
+	  Disable the import of the business-gnome wrappers.
+
+2006-08-11 05:26  chris
+
+	* [r14635]
+	  branches/swigify/src/business/business-gnome/business-gnome.scm:
+	  We can pull the generated guile module into other guile modules,
+	  too.
+
+2006-08-11 05:24  chris
+
+	* [r14634]
+	  branches/swigify/src/business/business-gnome/Makefile.am,
+	  branches/swigify/src/business/dialog-tax-table/Makefile.am:
+	  Convert two more Makefiles from g-wrap to swig.
+
+2006-08-11 05:20  chris
+
+	* [r14633]
+	  branches/swigify/src/business/business-core/gncInvoice.c,
+	  branches/swigify/src/business/business-core/gncInvoice.h: SWIG
+	  doens't seem to generate a wrapper for the macro functions. I
+	  hope there's some better solution than making a real function
+	  out of the macro, but this works for now. Suggestions welcome.
+
+2006-08-11 05:17  chris
+
+	* [r14632]
+	  branches/swigify/src/business/business-core/businessmod-core.c:
+	  Pull the generated guile module into the C module from C.
+
+2006-08-11 05:15  chris
+
+	* [r14631]
+	  branches/swigify/src/business/business-core/Makefile.am,
+	  branches/swigify/src/business/business-core/test/Makefile.am:
+	  Switch Makefiles from g-wrap to swig.
+
+2006-08-11 05:12  chris
+
+	* [r14630]
+	  branches/swigify/src/business/business-core/business-core.i,
+	  branches/swigify/src/business/business-gnome/business-gnome.i,
+	  branches/swigify/src/business/dialog-tax-table/dialog-tax-table.i:
+	  Add some swig interface definition files.
+
+2006-08-11 05:08  chris
+
+	* [r14629]
+	  branches/swigify/src/business/business-core/gncCustomer.h,
+	  branches/swigify/src/business/business-core/gncJob.h,
+	  branches/swigify/src/business/business-core/gncOrder.h,
+	  branches/swigify/src/business/business-core/gncOwner.h: Remove
+	  some undefined symbols.
+
+2006-08-11 04:59  chris
+
+	* [r14628] branches/swigify: Branch from trunk at r14627
+
+2006-08-11 02:17  hampton
+
+	* [r14627] trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/druid-qif-import.c: Fix
+	  account currency problems when importing QIF files (introduced
+	  by the widget cleanup.)
+
+2006-08-09 17:48  warlord
+
+	* [r14626] trunk, trunk/ChangeLog,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/gnc-gobject-utils.c,
+	  trunk/src/core-utils/gnc-gtk-utils.c,
+	  trunk/src/core-utils/gnc-gtk-utils.h,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-gtk-utils.c,
+	  trunk/src/gnome-utils/gnc-gtk-utils.h: * move gnc-gtk-utils from
+	  core-utils to gnome-utils because core-utils should not depend
+	  on gtk.
+
+2006-08-09 09:44  cstim
+
+	* [r14624] branches/2.0/ChangeLog, branches/2.0/configure.in,
+	  branches/2.0/src/business/business-gnome/schemas/Makefile.am,
+	  branches/2.0/src/gnome-utils/schemas/Makefile.am,
+	  branches/2.0/src/gnome/schemas/Makefile.am,
+	  branches/2.0/src/import-export/hbci/schemas/Makefile.am,
+	  branches/2.0/src/import-export/schemas/Makefile.am: Find
+	  absolute path of gconftool-2 during configure. Make gconftool
+	  rules to fail if gconftool-2 could not be found. bug#349851.
+	  Backporting r14607, audited by c.shoemaker.
+
+2006-08-09 09:42  cstim
+
+	* [r14623]
+	  branches/2.0/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in:
+	  Fix typo. Merges r14622 from trunk.
+
+2006-08-09 09:41  cstim
+
+	* [r14622]
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in:
+	  Fix typo
+
+2006-08-09 03:31  chris
+
+	* [r14621] trunk/src/backend/file/gnc-book-xml-v2.c,
+	  trunk/src/backend/file/test/test-file-stuff.c: Typo fix found by
+	  Tim (eagle eyes) Wunder. Plus more clean-up to justify another
+	  commit.
+
+2006-08-09 01:16  chris
+
+	* [r14620] trunk/src/backend/file/gnc-book-xml-v2.c,
+	  trunk/src/backend/postgres/putil.h,
+	  trunk/src/gnome/gnc-plugin-page-register.h,
+	  trunk/src/import-export/qif-import/qif-file.scm,
+	  trunk/src/register/ledger-core/split-register-model.c:
+	  Line-wraps, and typo-fixes.
+
+2006-08-09 01:12  chris
+
+	* [r14619] trunk/src/app-utils/gw-app-utils-spec.scm: Guile
+	  doesn't need access to GUI suspend/refresh controls any more.
+
+2006-08-09 01:09  chris
+
+	* [r14618] trunk/src/backend/file/test/test-xml-commodity.c:
+	  De-guilify test-xml-commodity.c
+
+2006-08-09 01:08  chris
+
+	* [r14617] trunk/src/backend/file/test/test-file-stuff.c: Cause
+	  commodity equality test to actually return FALSE for unequal
+	  case.
+
+2006-08-09 00:59  chris
+
+	* [r14616] trunk/src/engine/Period.c: Plug a LotList leak; remove
+	  ominous comment about memory corruption.
+
+2006-08-08 23:16  chris
+
+	* [r14615] trunk/src/core-utils/gnc-gconf-utils.h,
+	  trunk/src/engine/cap-gains.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-plugin.c,
+	  trunk/src/gnome-utils/gnc-window.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/top-level.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.h,
+	  trunk/src/register/register-core/table-allgui.h,
+	  trunk/src/register/register-gnome/table-gnome.c,
+	  trunk/src/test-core/test-stuff.c: More comments, spelling fixes,
+	  line-wraps, whitespace cleanups.
+
+2006-08-08 22:55  chris
+
+	* [r14614] trunk/src/backend/file/io-gncxml-v2.c: Remove some
+	  unnecessary calls to xaccAccountInsertSplit() since the only way
+	  the Split could have the Account pointer is if it had already
+	  been added to the Account.
+
+2006-08-08 22:52  chris
+
+	* [r14613] trunk/src/register/ledger-core/split-register-load.c:
+	  Minor renaming and reordering for clarity in
+	  gnc_split_register_load().
+
+2006-08-08 22:12  chris
+
+	* [r14612] trunk/src/engine/Group.c, trunk/src/engine/Period.c:
+	  Internalize some xaccAccountGroupBegin/CommitEdits into
+	  xaccGroupCopyGroup().
+
+2006-08-08 21:57  chris
+
+	* [r14611] trunk/src/backend/file/test/test-xml-account.c,
+	  trunk/src/engine/Transaction.h,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.h: Various
+	  whitespace, line-wrap, and comment changes.
+
+2006-08-08 12:53  cstim
+
+	* [r14610] branches/2.0/po/ca.po, branches/2.0/po/cs.po,
+	  branches/2.0/po/da.po, branches/2.0/po/el.po,
+	  branches/2.0/po/en_GB.po, branches/2.0/po/es.po,
+	  branches/2.0/po/es_NI.po, branches/2.0/po/eu.po,
+	  branches/2.0/po/fr.po, branches/2.0/po/hu.po,
+	  branches/2.0/po/it.po, branches/2.0/po/ja.po,
+	  branches/2.0/po/nb.po, branches/2.0/po/ne.po,
+	  branches/2.0/po/nl.po, branches/2.0/po/pl.po,
+	  branches/2.0/po/pt.po, branches/2.0/po/pt_BR.po,
+	  branches/2.0/po/ro.po, branches/2.0/po/ru.po,
+	  branches/2.0/po/rw.po, branches/2.0/po/sk.po,
+	  branches/2.0/po/sv.po, branches/2.0/po/ta.po,
+	  branches/2.0/po/tr.po, branches/2.0/po/uk.po,
+	  branches/2.0/po/zh_CN.po, branches/2.0/po/zh_TW.po: Translation
+	  updated; merged with newly introduced strings.
+
+2006-08-08 09:53  cstim
+
+	* [r14609] branches/2.0/po/de.po: Updated German translation after
+	  recent string changes
+
+2006-08-08 09:47  cstim
+
+	* [r14608] branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/druid-gnc-xml-import.c,
+	  branches/2.0/src/gnome-utils/glade/druid-gnc-xml-import.glade:
+	  Improve wording for XML data file import druid. bug#342727.
+
+2006-08-08 09:39  cstim
+
+	* [r14607] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/business/business-gnome/schemas/Makefile.am,
+	  trunk/src/gnome-utils/schemas/Makefile.am,
+	  trunk/src/gnome/schemas/Makefile.am,
+	  trunk/src/import-export/hbci/schemas/Makefile.am,
+	  trunk/src/import-export/schemas/Makefile.am: Find absolute path
+	  of gconftool-2 during configure. Make gconftool rules to fail if
+	  gconftool-2 could not be found. bug#349851. BP
+
+2006-08-08 08:57  cstim
+
+	* [r14606] branches/2.0/src/import-export/qif-import/qif.glade:
+	  Fix string with yet another month-year-day vs. month-day-year
+	  confusion. Back-ported from trunk, r14602.
+	* [r14605]
+	  branches/2.0/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in:
+	  Fix wording of gconf key descriptions according to discussion in
+	  wiki. Back-ported from trunk, r14600.
+
+2006-08-08 08:52  cstim
+
+	* [r14604] trunk/ChangeLog,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c,
+	  trunk/src/gnome-utils/glade/druid-gnc-xml-import.glade: Improve
+	  wording for XML data file import druid. bug#342727. BP
+
+2006-08-07 15:14  cstim
+
+	* [r14603] branches/2.0/ChangeLog, branches/2.0/po/hu.po: Updated
+	  Hungarian translation
+
+2006-08-07 14:15  cstim
+
+	* [r14602] trunk/src/import-export/qif-import/qif.glade: Fix
+	  string with yet another month-year-day vs. month-day-year
+	  confusion. BP
+
+2006-08-07 14:10  cstim
+
+	* [r14601] branches/2.0/po/de.po: Update German translation after
+	  recent string changes
+
+2006-08-07 13:05  cstim
+
+	* [r14600]
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in:
+	  Fix wording of gconf key descriptions according to discussion in
+	  wiki. BP
+
+2006-08-06 22:07  hampton
+
+	* [r14599] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/guile-util.c, trunk/src/app-utils/prefs.scm,
+	  trunk/src/backend/file/gnc-account-xml-v2.c,
+	  trunk/src/backend/file/io-gncbin-r.c,
+	  trunk/src/business/business-gnome/business-gnome-utils.c,
+	  trunk/src/business/business-gnome/dialog-employee.c,
+	  trunk/src/business/business-gnome/dialog-payment.c,
+	  trunk/src/business/business-gnome/gnc-plugin-business.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Account.h,
+	  trunk/src/engine/AccountP.h, trunk/src/engine/Period.c,
+	  trunk/src/engine/Period.h, trunk/src/engine/SchedXaction.c,
+	  trunk/src/engine/Scrub.c, trunk/src/engine/cap-gains.c,
+	  trunk/src/engine/gnc-associate-account.c,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/engine/test-core/test-engine-stuff.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-transfer.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.h,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome/dialog-chart-export.c,
+	  trunk/src/gnome/dialog-tax-info.c,
+	  trunk/src/gnome/druid-hierarchy.c, trunk/src/gnome/druid-loan.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/window-reconcile.c,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/import-account-matcher.c,
+	  trunk/src/import-export/import-account-matcher.h,
+	  trunk/src/import-export/import-main-matcher.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/import-export/qif/qif-parse.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c,
+	  trunk/src/register/ledger-core/split-register-model.c,
+	  trunk/src/register/ledger-core/split-register.c: Regularize the
+	  account type names into the form ACCT_TYPE_xxx.
+
+2006-08-06 10:38  cstim
+
+	* [r14598] branches/2.0/src/gnome-utils/glade/preferences.glade:
+	  Fix typo. Merges 14556 from trunk.
+
+2006-08-06 10:36  cstim
+
+	* [r14597] branches/2.0/doc/tip_of_the_day.list.in,
+	  branches/2.0/lib/libqof/backend/file/qsf-backend.c,
+	  branches/2.0/src/gnome-search/search.glade,
+	  branches/2.0/src/gnome-utils/druid-gnc-xml-import.c,
+	  branches/2.0/src/gnome-utils/glade/preferences.glade,
+	  branches/2.0/src/gnome-utils/gnc-file.c,
+	  branches/2.0/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/2.0/src/gnome/gnc-plugin-page-register.c,
+	  branches/2.0/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  branches/2.0/src/import-export/import-provider-format.glade:
+	  String fixes that have been delayed due to the string freeze.
+	  Merges 14493 from trunk.
+
+2006-08-06 01:41  hampton
+
+	* [r14596] trunk/src/core-utils/gnc-gtk-utils.h: Fix typo.
+
+2006-08-06 00:59  hampton
+
+	* [r14595] trunk/ChangeLog,
+	  trunk/src/import-export/import-backend.c:
+	  gnc_import_process_trans_item() should return TRUE in those
+	  cases where the transaction has been processed.
+
+2006-08-05 21:48  hampton
+
+	* [r14594] trunk/ChangeLog, trunk/src/core-utils/gnc-gtk-utils.c,
+	  trunk/src/core-utils/gnc-gtk-utils.h,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/import-export/import-main-matcher.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c: Fix
+	  compilation errors on FC3.
+
+2006-08-05 21:15  andi5
+
+	* [r14593] trunk/ChangeLog, trunk/src/core-utils/gnc-gtk-utils.c:
+	  Enable inline completion only for gtk>=2.6.
+
+2006-08-05 09:18  andi5
+
+	* [r14592] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-billterms.c,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/gnome-search/dialog-search.c,
+	  trunk/src/gnome-search/search-core-utils.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c,
+	  trunk/src/gnome/dialog-tax-info.c, trunk/src/gnome/druid-loan.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-plugin-budget.c,
+	  trunk/src/gnome/lot-viewer.c,
+	  trunk/src/import-export/gnc-import-format-gnome.c,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/import-main-matcher.c,
+	  trunk/src/import-export/import-match-picker.c,
+	  trunk/src/import-export/qif-import/dialog-account-picker.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c,
+	  trunk/src/report/report-gnome/dialog-column-view.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c: Unref all
+	  new stores.
+
+2006-08-05 01:17  andi5
+
+	* [r14591] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: Check for account type
+	  compatibility when creating a new account. Fixes 344966. BP
+
+2006-08-05 01:06  andi5
+
+	* [r14590] trunk/ChangeLog, trunk/src/core-utils/gnc-gtk-utils.c,
+	  trunk/src/gnome-utils/dialog-account.c: Unref entry completion
+	  in gtk-gtk-utils.c; I18n "Type", unref store in dialog-account.c
+
+2006-08-03 09:30  andi5
+
+	* [r14589] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-reset-warnings.c,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas.in: Add
+	  tooltips to the checkboxes in the Reset Warnings dialog showing
+	  the long descriptions. Remove all linebreaks in these strings to
+	  make them look better.
+
+2006-08-02 18:13  hampton
+
+	* [r14588] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/business-gnome-utils.c,
+	  trunk/src/business/business-gnome/dialog-billterms.c,
+	  trunk/src/business/business-gnome/dialog-payment.c,
+	  trunk/src/business/business-gnome/glade/billterms.glade,
+	  trunk/src/business/business-gnome/glade/payment.glade,
+	  trunk/src/business/business-gnome/search-owner.c,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/business/dialog-tax-table/tax-tables.glade,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/gnc-gtk-utils.c,
+	  trunk/src/core-utils/gnc-gtk-utils.h,
+	  trunk/src/gnome-search/Makefile.am,
+	  trunk/src/gnome-search/dialog-search.c,
+	  trunk/src/gnome-search/search-account.c,
+	  trunk/src/gnome-search/search-boolean.c,
+	  trunk/src/gnome-search/search-core-utils.c,
+	  trunk/src/gnome-search/search-core-utils.h,
+	  trunk/src/gnome-search/search-date.c,
+	  trunk/src/gnome-search/search-double.c,
+	  trunk/src/gnome-search/search-int64.c,
+	  trunk/src/gnome-search/search-numeric.c,
+	  trunk/src/gnome-search/search-reconciled.c,
+	  trunk/src/gnome-search/search-string.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/dialog-commodity.h,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/dialog-utils.h,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome-utils/glade/druid-provider-multifile.glade,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-account-sel.h,
+	  trunk/src/gnome-utils/gnc-currency-edit.c,
+	  trunk/src/gnome-utils/gnc-date-delta.c,
+	  trunk/src/gnome-utils/gnc-date-delta.h,
+	  trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c,
+	  trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h,
+	  trunk/src/gnome-utils/gnc-frequency.c,
+	  trunk/src/gnome-utils/gnc-frequency.h,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome/dialog-fincalc.c,
+	  trunk/src/gnome/dialog-scheduledxaction.h,
+	  trunk/src/gnome/dialog-sx-from-trans.c,
+	  trunk/src/gnome/dialog-tax-info.c, trunk/src/gnome/druid-loan.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/fincalc.glade,
+	  trunk/src/gnome/glade/lots.glade,
+	  trunk/src/gnome/glade/sched-xact.glade,
+	  trunk/src/gnome/glade/stocks.glade,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/lot-viewer.c,
+	  trunk/src/import-export/binary-import/druid-commodity.c,
+	  trunk/src/import-export/generic-import.glade,
+	  trunk/src/import-export/gnc-import-format-gnome.c,
+	  trunk/src/import-export/gnc-import-format-gnome.h,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/hbci/glade/hbci.glade,
+	  trunk/src/import-export/import-backend.c,
+	  trunk/src/import-export/import-backend.h,
+	  trunk/src/import-export/import-main-matcher.c,
+	  trunk/src/import-export/import-match-picker.c,
+	  trunk/src/import-export/import-provider-format.glade,
+	  trunk/src/import-export/qif-import/dialog-account-picker.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/import-export/qif-import/qif.glade,
+	  trunk/src/register/register-gnome/gnucash-color.c,
+	  trunk/src/report/report-gnome/dialog-column-view.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c,
+	  trunk/src/report/report-gnome/report.glade: Remove the majority
+	  of the remaining deprecated widgets by collapsing the
+	  "deprecated-cleanup" branch (r13935:14581) back into trunk.
+
+2006-07-31 13:22  warlord
+
+	* [r14587] trunk, trunk/ChangeLog, trunk/src/bin/gnucash-bin.c:
+	  Adjust the "development version" message for the 2.0.1 release.
+	  BP
+
+2006-07-30 23:30  wilddev
+
+	* [r14585] tags/2.0.1: Tagging the 2.0.1 release of GnuCash
+
+2006-07-30 21:54  wilddev
+
+	* [r14584] branches/2.0/ChangeLog, branches/2.0/NEWS,
+	  branches/2.0/configure.in: update to release 2.0.1
+
+2006-07-30 19:42  warlord
+
+	* [r14583] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome/window-reconcile.c: Replace the hbox
+	  separating debits from credits in the reconciliation window by a
+	  homogeneous table. This avoids nasty redraws when one of them
+	  changes in size. Fixes #342512. Merge from r14582.
+
+2006-07-30 16:28  andi5
+
+	* [r14582] trunk/ChangeLog, trunk/src/gnome/window-reconcile.c:
+	  Replace the hbox separating debits from credits in the
+	  reconciliation window by a homogeneous table. This avoids nasty
+	  redraws when one of them changes in size. Fixes #342512. BP
+
+2006-07-30 04:57  hampton
+
+	* [r14581] branches/deprecated-cleanup,
+	  branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/accounts/de_DE/acctchrt_skr03.gnucash-xea,
+	  branches/deprecated-cleanup/autogen.sh,
+	  branches/deprecated-cleanup/configure.in,
+	  branches/deprecated-cleanup/doc/tip_of_the_day.list.in,
+	  branches/deprecated-cleanup/lib/goffice-0.0.4/goffice/Makefile.am,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/Makefile.am,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/qsf-backend.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/Makefile.am,
+	  branches/deprecated-cleanup/lib/libqof/qof/gnc-numeric.c,
+	  branches/deprecated-cleanup/po/POTFILES.skip,
+	  branches/deprecated-cleanup/src/app-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/bin/Makefile.am,
+	  branches/deprecated-cleanup/src/business/business-core/Makefile.am,
+	  branches/deprecated-cleanup/src/business/business-core/gncAddress.c,
+	  branches/deprecated-cleanup/src/business/business-core/gncAddress.h,
+	  branches/deprecated-cleanup/src/business/business-core/gncEntry.c,
+	  branches/deprecated-cleanup/src/business/business-core/gncEntry.h,
+	  branches/deprecated-cleanup/src/business/business-gnome/Makefile.am,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-invoice.c,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedger.c,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/Makefile.am,
+	  branches/deprecated-cleanup/src/core-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/core-utils/gnc-glib-utils.c,
+	  branches/deprecated-cleanup/src/engine/Group.c,
+	  branches/deprecated-cleanup/src/engine/Makefile.am,
+	  branches/deprecated-cleanup/src/engine/gnc-engine.c,
+	  branches/deprecated-cleanup/src/engine/gnc-filepath-utils.c,
+	  branches/deprecated-cleanup/src/engine/test-core/test-engine-stuff.c,
+	  branches/deprecated-cleanup/src/engine/test/test-resolve-file-path.c,
+	  branches/deprecated-cleanup/src/gnc-module/Makefile.am,
+	  branches/deprecated-cleanup/src/gnc-module/gnc-module.c,
+	  branches/deprecated-cleanup/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/deprecated-cleanup/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/deprecated-cleanup/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome-search/search.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome-utils/druid-gnc-xml-import.c,
+	  branches/deprecated-cleanup/src/gnome-utils/glade/preferences.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-file.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-gnome-utils.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-main-window.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-view.c,
+	  branches/deprecated-cleanup/src/gnome/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome/glade/account.glade,
+	  branches/deprecated-cleanup/src/gnome/glade/budget.glade,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-register.c,
+	  branches/deprecated-cleanup/src/gnome/schemas/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  branches/deprecated-cleanup/src/gnome/schemas/apps_gnucash_warnings.schemas.in,
+	  branches/deprecated-cleanup/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/glade/hbci.glade,
+	  branches/deprecated-cleanup/src/import-export/import-provider-format.glade,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif-file.scm,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif-parse.scm,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register-control.c,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register-model.c,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register.c,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register.h,
+	  branches/deprecated-cleanup/src/register/register-core/Makefile.am,
+	  branches/deprecated-cleanup/src/report/report-gnome/Makefile.am,
+	  branches/deprecated-cleanup/src/report/report-system/Makefile.am,
+	  branches/deprecated-cleanup/src/report/report-system/html-text.scm,
+	  branches/deprecated-cleanup/src/report/report-system/report.scm,
+	  branches/deprecated-cleanup/util/gnc-svnversion: Pull trunk
+	  changes 14487:14580 into deprecated-cleanup branch.
+
+2006-07-30 01:25  andi5
+
+	* [r14580] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas.in: Add
+	  warning close_last_window and show it when user tries to close
+	  the last GnuCash window. Fixes #338865.
+
+2006-07-30 01:18  andi5
+
+	* [r14579] trunk/ChangeLog,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in: Add new
+	  setting general/show_splash_screen to
+	  preferences_dialog->General and only show the splash screen if
+	  it is TRUE. Fixes 339876.
+
+2006-07-30 00:58  andi5
+
+	* [r14578] trunk/ChangeLog,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Fixed some duplicate
+	  accelerators.
+
+2006-07-30 00:39  andi5
+
+	* [r14577] trunk/ChangeLog,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in: Add
+	  preference general/tab_position to choose the edge of the
+	  notebook the tabs will be showed (top, bottom, left or right).
+	  Add it to preferences_dialog->Windows. Move "Show close button
+	  on notebook tabs" from General to Windows. Fixes #340299.
+
+2006-07-29 23:49  hampton
+
+	* [r14576] trunk/doc/tip_of_the_day.list.in: Fix the line
+	  continuation.
+
+2006-07-28 08:05  cstim
+
+	* [r14575] trunk/accounts/de_DE/Makefile.am: Enabled
+	  acctchrt_skr03.gnucash-xea again for distribution and
+	  installation because the author thinks it is verified enough by
+	  now. Reverted 14549.
+
+2006-07-28 08:04  cstim
+
+	* [r14574] branches/2.0/ChangeLog,
+	  branches/2.0/accounts/de_DE/Makefile.am: Updated
+	  acctchrt_skr03.gnucash-xea by Oliver Vollmer. Enabled it again
+	  for distribution and installation because the author thinks it
+	  is verified enough by now. Reverted 14548.
+
+2006-07-28 07:59  cstim
+
+	* [r14573] branches/2.0/accounts/de_DE/acctchrt_skr03.gnucash-xea:
+	  Update German SKR03 account template by Oliver Vollmer. Merge
+	  14568.
+
+2006-07-28 02:46  hampton
+
+	* [r14572] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/business/business-gnome/glade/billterms.glade:
+	  Fix a critical warning in the edit bill term dialog.
+
+2006-07-28 02:22  hampton
+
+	* [r14571] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-billterms.c,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/dialog-tax-table.c,
+	  branches/deprecated-cleanup/src/gnome-search/dialog-search.c,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-account.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-account-sel.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-druid-provider-multifile-gnome.c,
+	  branches/deprecated-cleanup/src/gnome/druid-loan.c,
+	  branches/deprecated-cleanup/src/gnome/druid-stock-split.c,
+	  branches/deprecated-cleanup/src/gnome/lot-viewer.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/druid-qif-import.c,
+	  branches/deprecated-cleanup/src/report/report-gnome/dialog-column-view.c:
+	  Regularize column names. Use enums instead of a sequence of
+	  #defines.
+
+2006-07-28 01:45  jsled
+
+	* [r14570] branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.c,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.h,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-from-trans.c:
+	  GncDenseCalTransientModel impl and use in sx-editor and
+	  sx-from-transaction dialog.
+
+2006-07-28 01:18  warlord
+
+	* [r14569] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/engine/test-core/test-engine-stuff.c: Fix test
+	  of numerics in random splits, because multiplications might also
+	  turn out zero. Merge from r14544
+
+2006-07-27 14:36  cstim
+
+	* [r14568] trunk/accounts/de_DE/acctchrt_skr03.gnucash-xea: Update
+	  German SKR03 account template by Oliver Vollmer
+
+2006-07-26 03:28  jsled
+
+	* [r14567] branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.h:
+	  dead-code removal
+
+2006-07-26 03:11  jsled
+
+	* [r14566] branches/sx-cleanup/ChangeLog,
+	  branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.c,
+	  branches/sx-cleanup/src/gnome-utils/gnc-dense-cal.h,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-from-trans.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c:
+	  Dense-calendar model interface, implementations; the SX-List
+	  dense-cal works again, and with of add/remove ops. -
+	  GncDenseCalModel interface - GncDenseCalTransient model impl. -
+	  Add GncSxInstanceDenseCalAdapter (between GncSxInstanceModel and
+	  GncDenseCalModel) - Start to hook up 'added' and 'removing'
+	  signals on the GncSxInstanceModel.
+
+2006-07-26 02:36  warlord
+
+	* [r14565] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/lib/goffice-0.0.4/goffice/Makefile.am,
+	  branches/2.0/lib/libqof/backend/file/Makefile.am,
+	  branches/2.0/lib/libqof/qof/Makefile.am,
+	  branches/2.0/src/app-utils/Makefile.am,
+	  branches/2.0/src/bin/Makefile.am,
+	  branches/2.0/src/business/business-core/Makefile.am,
+	  branches/2.0/src/business/business-gnome/Makefile.am,
+	  branches/2.0/src/business/dialog-tax-table/Makefile.am,
+	  branches/2.0/src/core-utils/Makefile.am,
+	  branches/2.0/src/engine/Makefile.am,
+	  branches/2.0/src/gnc-module/Makefile.am,
+	  branches/2.0/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/2.0/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/2.0/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/2.0/src/gnome-utils/Makefile.am,
+	  branches/2.0/src/gnome/Makefile.am,
+	  branches/2.0/src/register/register-core/Makefile.am,
+	  branches/2.0/src/report/report-gnome/Makefile.am,
+	  branches/2.0/src/report/report-system/Makefile.am: Allow proper
+	  compile/install from tarball using separate builddir. - Don't
+	  distribute (most) generated files. - Be (more) consistent about
+	  when generated files are cleaned. Audited by jsled Merge from
+	  r14555.
+	* [r14564] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/po/POTFILES.skip: Now that we distribute the SX
+	  schema properly, don't skip it in the POTFILES.skip file.
+	  Audited by jsled. Merge from r14554.
+	* [r14563] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/configure.in: check for SLIB. (#347922) Audited by
+	  jsled Merge from r14551.
+	* [r14562] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/business/business-core/gncEntry.c,
+	  branches/2.0/src/business/business-core/gncEntry.h,
+	  branches/2.0/src/business/business-ledger/gncEntryLedger.c:
+	  Properly round invoice entries and totals. Fixes #300042.
+	  Perform internal computations to LCD, but then export rounded
+	  values. Now, using the test case in Bug #300042 I get the same
+	  values in the invoice window, in the printable invoice report,
+	  and in the CoA Registers. Compute the commodity scu from the
+	  ledger invoice (#300042). This way the SCU is no longer
+	  hard-coded into the business ledger. Audited by chris. Merged
+	  r14531 and r14545.
+	* [r14561] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/qif-import/qif-parse.scm: Allow
+	  comma-radix numbers without a radix. Fixes #142424. I.e., allow
+	  "17.500" to be parsed either as "seventeen and a half" or as
+	  "seventeen thousand five hundred". Note that numbers STILL
+	  default to decimal-radix instead of asking the user to choose.
+	  Audited by jsled Merge from r14523.
+	* [r14560] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/qif-import/qif-file.scm: Ignore
+	  any unknown !Option specification. Fixes #160735. Audited by
+	  jsled. Merged from r14522.
+
+2006-07-25 22:22  warlord
+
+	* [r14559] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/lib/libqof/qof/gnc-numeric.c: Avoid SIGFPE due to
+	  modulo-by-zero is the requested number of significant figures is
+	  greater than log10(2^63). Merge from r14512
+	* [r14558] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/report/report-system/report.scm: Change cmdline
+	  warning into an actual user's error dialog when user attempts to
+	  save a report with the same name as an existing report. Merge
+	  from r14546
+	* [r14557] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/configure.in: Re-use existing GUILE_LOAD_PATH
+	  variable in order not to override existing search paths. Merge
+	  r14540 from trunk.
+
+2006-07-25 20:34  andi5
+
+	* [r14556] trunk/src/gnome-utils/glade/preferences.glade: Fix
+	  comon typo in preferences.glade
+
+2006-07-25 13:25  warlord
+
+	* [r14555] trunk, trunk/ChangeLog,
+	  trunk/lib/goffice-0.0.4/goffice/Makefile.am,
+	  trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/lib/libqof/qof/Makefile.am,
+	  trunk/src/app-utils/Makefile.am, trunk/src/bin/Makefile.am,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/core-utils/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnc-module/test/mod-bar/Makefile.am,
+	  trunk/src/gnc-module/test/mod-baz/Makefile.am,
+	  trunk/src/gnc-module/test/mod-foo/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/register/register-core/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am: Allow proper
+	  compile/install from tarball using separate builddir. - Don't
+	  distribute (most) generated files. - Be (more) consistent about
+	  when generated files are cleaned. BP
+	* [r14554] trunk, trunk/ChangeLog, trunk/po/POTFILES.skip: Now
+	  that we distribute the SX schema properly, don't skip it in the
+	  POTFILES.skip file. BP
+
+2006-07-24 11:06  andi5
+
+	* [r14553] branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome-utils/gnc-tree-view.c: Correctly set
+	  column sort orders from gconf. Fixes #348248. Merge r14552.
+
+2006-07-23 11:43  andi5
+
+	* [r14552] trunk/ChangeLog, trunk/src/gnome-utils/gnc-tree-view.c:
+	  Correctly set column sort orders from gconf. Fixes #348248. BP
+
+2006-07-22 15:47  warlord
+
+	* [r14551] trunk, trunk/ChangeLog, trunk/configure.in: check for
+	  SLIB. (#347922) BP
+
+2006-07-21 17:20  andi5
+
+	* [r14550] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/gnome-utils/gnc-main-window.c: Make tabs within one
+	  notebook reorderable by dnd for gtk>=2.10. Fixes #343454.
+
+2006-07-21 14:05  cstim
+
+	* [r14549] trunk/accounts/de_DE/Makefile.am: Removed
+	  acctchrt_skr03.gnucash-xea from distribution and installation by
+	  request of its author who doubts the fiscal correctness of this
+	  account chart for small businesses.
+
+2006-07-21 13:57  cstim
+
+	* [r14548] branches/2.0/ChangeLog,
+	  branches/2.0/accounts/de_DE/Makefile.am: Removed
+	  acctchrt_skr03.gnucash-xea from distribution and installation by
+	  request of its author who doubts the fiscal correctness of this
+	  account chart for small businesses.
+
+2006-07-20 18:49  cstim
+
+	* [r14547] branches/2.0/po/es.po: Updated Spanish branch-2.0
+	  translation by Eneko Lacunza
+
+2006-07-20 14:34  cstim
+
+	* [r14546] trunk/src/report/report-system/report.scm: Change
+	  cmdline warning into an actual user's error dialog. BP
+
+2006-07-20 01:14  warlord
+
+	* [r14545] trunk,
+	  trunk/src/business/business-ledger/gncEntryLedger.c: Compute the
+	  commodity scu from the ledger invoice (#300042). This way the
+	  SCU is no longer hard-coded into the business ledger.
+
+2006-07-19 16:03  cstim
+
+	* [r14544] trunk/src/engine/test-core/test-engine-stuff.c: Fix
+	  test of numerics in random splits, because multiplications might
+	  also turn out zero.
+
+2006-07-19 14:13  cstim
+
+	* [r14543] trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-filepath-utils.c,
+	  trunk/src/engine/test/test-resolve-file-path.c: Use glib
+	  filepath manipulation functions instead of our own manual
+	  methods. Necessary for non-Unix machines. Please keep an eye
+	  open for potential filename lookup problems.
+
+2006-07-18 15:41  cstim
+
+	* [r14542] trunk/ChangeLog, trunk/src/gnc-module/gnc-module.c: On
+	  windows, deactivate gnucash's extra de-quoting of path names
+	  that is done on the GNC_MODULE_PATH env variable.
+
+2006-07-18 13:49  cstim
+
+	* [r14541] trunk/src/gnc-module/gnc-module.c: Replace hard-coded
+	  directory separator character by glibs cross-platform macro.
+
+2006-07-18 11:38  cstim
+
+	* [r14540] trunk/configure.in: Re-use existing GUILE_LOAD_PATH
+	  variable in order not to override existing search paths. BP
+
+2006-07-18 03:59  chris
+
+	* [r14539]
+	  branches/register-rewrite/src/gnome-utils/test/test-register.c:
+	  Include forgotten #include.
+
+2006-07-18 03:00  chris
+
+	* [r14538] branches/register-rewrite,
+	  branches/register-rewrite/AUTHORS,
+	  branches/register-rewrite/ChangeLog,
+	  branches/register-rewrite/DOCUMENTERS,
+	  branches/register-rewrite/HACKING,
+	  branches/register-rewrite/Makefile.am,
+	  branches/register-rewrite/NEWS,
+	  branches/register-rewrite/README,
+	  branches/register-rewrite/accounts/de_DE/Makefile.am,
+	  branches/register-rewrite/accounts/de_DE/acctchrt_skr03.gnucash-xea,
+	  branches/register-rewrite/autogen.sh,
+	  branches/register-rewrite/configure.in,
+	  branches/register-rewrite/doc/README.OFX,
+	  branches/register-rewrite/doc/README.german,
+	  branches/register-rewrite/doc/TRANSLATION_HOWTO,
+	  branches/register-rewrite/doc/examples/Money95bank_fr.qif,
+	  branches/register-rewrite/doc/examples/Money95invst_fr.qif,
+	  branches/register-rewrite/doc/examples/Money95mfunds_fr.qif,
+	  branches/register-rewrite/doc/examples/Money95stocks_fr.qif,
+	  branches/register-rewrite/doc/examples/abc-all.qif,
+	  branches/register-rewrite/doc/examples/abc.qif,
+	  branches/register-rewrite/doc/examples/bogus.qif,
+	  branches/register-rewrite/doc/examples/cbb-export.qif,
+	  branches/register-rewrite/doc/examples/every.qif,
+	  branches/register-rewrite/doc/examples/ms-money.qif,
+	  branches/register-rewrite/doc/examples/quicktest.qif,
+	  branches/register-rewrite/doc/examples/swipe.qif,
+	  branches/register-rewrite/doc/examples/web.qif,
+	  branches/register-rewrite/doc/tip_of_the_day.list.in,
+	  branches/register-rewrite/glade-fixup,
+	  branches/register-rewrite/lib/glib26/Makefile.am,
+	  branches/register-rewrite/lib/libqof/backend/file/qsf-backend.c,
+	  branches/register-rewrite/lib/libqof/qof/gnc-numeric.c,
+	  branches/register-rewrite/packaging/gnucash-1.9.x.ebuild,
+	  branches/register-rewrite/po/POTFILES.skip,
+	  branches/register-rewrite/po/ca.po,
+	  branches/register-rewrite/po/cs.po,
+	  branches/register-rewrite/po/da.po,
+	  branches/register-rewrite/po/de.po,
+	  branches/register-rewrite/po/el.po,
+	  branches/register-rewrite/po/en_GB.po,
+	  branches/register-rewrite/po/es.po,
+	  branches/register-rewrite/po/es_NI.po,
+	  branches/register-rewrite/po/eu.po,
+	  branches/register-rewrite/po/fr.po,
+	  branches/register-rewrite/po/glossary/nl.po,
+	  branches/register-rewrite/po/hu.po,
+	  branches/register-rewrite/po/it.po,
+	  branches/register-rewrite/po/ja.po,
+	  branches/register-rewrite/po/nb.po,
+	  branches/register-rewrite/po/ne.po,
+	  branches/register-rewrite/po/nl.po,
+	  branches/register-rewrite/po/pl.po,
+	  branches/register-rewrite/po/pt.po,
+	  branches/register-rewrite/po/pt_BR.po,
+	  branches/register-rewrite/po/ro.po,
+	  branches/register-rewrite/po/ru.po,
+	  branches/register-rewrite/po/rw.po,
+	  branches/register-rewrite/po/sk.po,
+	  branches/register-rewrite/po/sv.po,
+	  branches/register-rewrite/po/ta.po,
+	  branches/register-rewrite/po/tr.po,
+	  branches/register-rewrite/po/uk.po,
+	  branches/register-rewrite/po/zh_CN.po,
+	  branches/register-rewrite/po/zh_TW.po,
+	  branches/register-rewrite/src/app-utils/Makefile.am,
+	  branches/register-rewrite/src/app-utils/gnc-ui-util.c,
+	  branches/register-rewrite/src/backend/Makefile.am,
+	  branches/register-rewrite/src/backend/file/Makefile.am,
+	  branches/register-rewrite/src/backend/file/gnc-backend-file.c,
+	  branches/register-rewrite/src/backend/file/gnc-backend-file.h,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.c,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.h,
+	  branches/register-rewrite/src/backend/gnc-backend-api.h,
+	  branches/register-rewrite/src/backend/postgres/test/test-db.c,
+	  branches/register-rewrite/src/backend/postgres/test/test-load-backend.c,
+	  branches/register-rewrite/src/backend/postgres/test/test-period.c,
+	  branches/register-rewrite/src/bin/gnucash-bin.c,
+	  branches/register-rewrite/src/business/business-core/file/Makefile.am,
+	  branches/register-rewrite/src/business/business-core/gncAddress.c,
+	  branches/register-rewrite/src/business/business-core/gncAddress.h,
+	  branches/register-rewrite/src/business/business-core/gncEntry.c,
+	  branches/register-rewrite/src/business/business-core/gncEntry.h,
+	  branches/register-rewrite/src/business/business-gnome/Makefile.am,
+	  branches/register-rewrite/src/business/business-gnome/business-gnome.scm,
+	  branches/register-rewrite/src/business/business-gnome/dialog-customer.c,
+	  branches/register-rewrite/src/business/business-gnome/dialog-employee.c,
+	  branches/register-rewrite/src/business/business-gnome/dialog-invoice.c,
+	  branches/register-rewrite/src/business/business-gnome/dialog-job.c,
+	  branches/register-rewrite/src/business/business-gnome/dialog-order.c,
+	  branches/register-rewrite/src/business/business-gnome/dialog-vendor.c,
+	  branches/register-rewrite/src/business/business-gnome/glade/billterms.glade,
+	  branches/register-rewrite/src/business/business-gnome/glade/invoice.glade,
+	  branches/register-rewrite/src/business/business-ledger/gncEntryLedger.c,
+	  branches/register-rewrite/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/register-rewrite/src/business/dialog-tax-table/tax-tables.glade,
+	  branches/register-rewrite/src/core-utils/Makefile.am,
+	  branches/register-rewrite/src/core-utils/gnc-glib-utils.c,
+	  branches/register-rewrite/src/core-utils/gnc-glib-utils.h,
+	  branches/register-rewrite/src/core-utils/gw-core-utils-spec.scm,
+	  branches/register-rewrite/src/doc/Makefile.am,
+	  branches/register-rewrite/src/doc/valgrind.txt,
+	  branches/register-rewrite/src/engine/Account.c,
+	  branches/register-rewrite/src/engine/Group.c,
+	  branches/register-rewrite/src/engine/Split.c,
+	  branches/register-rewrite/src/engine/Transaction.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.c,
+	  branches/register-rewrite/src/engine/iso-4217-currencies.scm,
+	  branches/register-rewrite/src/gnc-ui.h,
+	  branches/register-rewrite/src/gnome-search/dialog-search.c,
+	  branches/register-rewrite/src/gnome-search/search.glade,
+	  branches/register-rewrite/src/gnome-utils/Makefile.am,
+	  branches/register-rewrite/src/gnome-utils/dialog-account.c,
+	  branches/register-rewrite/src/gnome-utils/dialog-preferences.c,
+	  branches/register-rewrite/src/gnome-utils/dialog-utils.c,
+	  branches/register-rewrite/src/gnome-utils/druid-gnc-xml-import.c,
+	  branches/register-rewrite/src/gnome-utils/glade/preferences.glade,
+	  branches/register-rewrite/src/gnome-utils/glade/totd.glade,
+	  branches/register-rewrite/src/gnome-utils/gnc-file.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-gnome-utils.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-html.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-html.h,
+	  branches/register-rewrite/src/gnome-utils/gnc-icons.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-main-window.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-main-window.h,
+	  branches/register-rewrite/src/gnome-utils/gnc-menu-extensions.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-plugin-file-history.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-plugin-page.h,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-account.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-window.c,
+	  branches/register-rewrite/src/gnome-utils/test/test-gnc-dialog.c,
+	  branches/register-rewrite/src/gnome-utils/ui/gnc-main-window-ui.xml,
+	  branches/register-rewrite/src/gnome/Makefile.am,
+	  branches/register-rewrite/src/gnome/dialog-print-check.c,
+	  branches/register-rewrite/src/gnome/dialog-scheduledxaction.c,
+	  branches/register-rewrite/src/gnome/druid-loan.c,
+	  branches/register-rewrite/src/gnome/glade/account.glade,
+	  branches/register-rewrite/src/gnome/glade/budget.glade,
+	  branches/register-rewrite/src/gnome/glade/lots.glade,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-register.c,
+	  branches/register-rewrite/src/gnome/gnucash.desktop.in,
+	  branches/register-rewrite/src/gnome/gnucash.keys.in,
+	  branches/register-rewrite/src/gnome/gnucash.mime,
+	  branches/register-rewrite/src/gnome/lot-viewer.c,
+	  branches/register-rewrite/src/gnome/schemas/Makefile.am,
+	  branches/register-rewrite/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  branches/register-rewrite/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml,
+	  branches/register-rewrite/src/gnome/ui/gnc-plugin-page-register-ui.xml,
+	  branches/register-rewrite/src/gnome/window-reconcile.c,
+	  branches/register-rewrite/src/import-export/Makefile.am,
+	  branches/register-rewrite/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/register-rewrite/src/import-export/hbci/glade/hbci.glade,
+	  branches/register-rewrite/src/import-export/hbci/gnc-hbci-utils.c,
+	  branches/register-rewrite/src/import-export/import-provider-format.glade,
+	  branches/register-rewrite/src/import-export/log-replay/Makefile.am,
+	  branches/register-rewrite/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/register-rewrite/src/import-export/qif-import/druid-qif-import.c,
+	  branches/register-rewrite/src/import-export/qif-import/qif-file.scm,
+	  branches/register-rewrite/src/import-export/qif-import/qif-parse.scm,
+	  branches/register-rewrite/src/pixmaps/Makefile.am,
+	  branches/register-rewrite/src/pixmaps/appicon.png,
+	  branches/register-rewrite/src/pixmaps/gnucash-icon.png,
+	  branches/register-rewrite/src/pixmaps/gnucash_splash.png,
+	  branches/register-rewrite/src/quotes/gnc-fq-check.in,
+	  branches/register-rewrite/src/quotes/gnc-fq-dump,
+	  branches/register-rewrite/src/quotes/gnc-fq-helper.in,
+	  branches/register-rewrite/src/quotes/gnc-fq-update.in,
+	  branches/register-rewrite/src/register/ledger-core/split-register-control.c,
+	  branches/register-rewrite/src/register/ledger-core/split-register-model.c,
+	  branches/register-rewrite/src/register/ledger-core/split-register-util.c,
+	  branches/register-rewrite/src/register/ledger-core/split-register.c,
+	  branches/register-rewrite/src/register/ledger-core/split-register.h,
+	  branches/register-rewrite/src/register/register-gnome/combocell-gnome.c,
+	  branches/register-rewrite/src/register/register-gnome/gnucash-header.c,
+	  branches/register-rewrite/src/register/register-gnome/gnucash-item-edit.c,
+	  branches/register-rewrite/src/register/register-gnome/gnucash-item-list.c,
+	  branches/register-rewrite/src/register/register-gnome/gnucash-item-list.h,
+	  branches/register-rewrite/src/register/register-gnome/gnucash-sheet.c,
+	  branches/register-rewrite/src/report/report-gnome/Makefile.am,
+	  branches/register-rewrite/src/report/report-gnome/gnc-plugin-page-report.c,
+	  branches/register-rewrite/src/report/report-system/html-text.scm,
+	  branches/register-rewrite/src/report/report-system/report.scm,
+	  branches/register-rewrite/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/register-rewrite/src/report/standard-reports/portfolio.scm,
+	  branches/register-rewrite/src/scm/Makefile.am,
+	  branches/register-rewrite/src/scm/doc.scm,
+	  branches/register-rewrite/src/scm/help-topics-index.old,
+	  branches/register-rewrite/src/scm/help-topics-index.scm,
+	  branches/register-rewrite/src/scm/main.scm,
+	  branches/register-rewrite/util: Merge -r 14238:14537 from trunk.
+
+2006-07-18 02:29  chris
+
+	* [r14537]
+	  branches/register-rewrite/src/app-utils/test/test-exp-parser.c:
+	  Add some expression parser tests.
+
+2006-07-18 02:25  chris
+
+	* [r14536]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c:
+	  Update bug notes.
+
+2006-07-18 02:24  chris
+
+	* [r14535]
+	  branches/register-rewrite/src/gnome-utils/gnc-amount-edit.c:
+	  More graceful behavior if someone abuses the gnc-amount-edit.
+
+2006-07-18 02:06  chris
+
+	* [r14534]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.c:
+	  Remove all traces of misguided attempt to use fancy treeview
+	  separator rows.
+
+2006-07-18 01:57  chris
+
+	* [r14533]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.c:
+	  Factor out some code to emit row_changed and possible
+	  has_child_toggled signals on the parent of the given path. Don't
+	  automatically assign the blank split to the anchor account.
+
+2006-07-17 02:33  chris
+
+	* [r14532]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view.h: Get
+	  better behavior when tabbing out of a blank split by creating a
+	  new blank split to move to.
+
+2006-07-17 02:04  warlord
+
+	* [r14531] trunk, trunk/ChangeLog,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncEntry.h,
+	  trunk/src/business/business-ledger/gncEntryLedger.c: Properly
+	  round invoice entries and totals. Fixes #300042. Perform
+	  internal computations to LCD, but then export rounded values.
+	  Now, using the test case in Bug #300042 I get the same values in
+	  the invoice window, in the printable invoice report, and in the
+	  CoA Registers. BP
+
+2006-07-17 00:39  chris
+
+	* [r14530]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.c:
+	  Loosen restrictions on input to get_iter() function.
+
+2006-07-17 00:25  chris
+
+	* [r14529]
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-account-tree.c:
+	  Temporary hack to enable the account tree to open treeview
+	  registers.
+
+2006-07-17 00:23  chris
+
+	* [r14528]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.h:
+	  Factor out code for getting the currently selected trans and
+	  split. Factor code for returning the cursor to the edited trans.
+	  Factor code for canceling an edit. Provide functions that: move
+	  to the blank trans, reinit the current trans, void/unvoid the
+	  current trans
+
+2006-07-17 00:18  chris
+
+	* [r14527]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.h:
+	  Generalize the utility function for getting an iter from a
+	  split/trans. Provide a function for getting the iter of the
+	  blank trans. Delete some cruft.
+
+2006-07-17 00:04  chris
+
+	* [r14526] branches/register-rewrite/src/gnome-utils/gnc-plugin.c:
+	  Better error handling when an unknown GtkAction is used.
+
+2006-07-17 00:00  chris
+
+	* [r14525] branches/register-rewrite/src/gnome/Makefile.am,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-transactions.c,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-transactions.h,
+	  branches/register-rewrite/src/gnome/gnc-plugin-transactions.c,
+	  branches/register-rewrite/src/gnome/gnc-plugin-transactions.h,
+	  branches/register-rewrite/src/gnome/top-level.c,
+	  branches/register-rewrite/src/gnome/ui/Makefile.am,
+	  branches/register-rewrite/src/gnome/ui/gnc-plugin-page-transactions-ui.xml:
+	  Add a plugin-page for viewing the treeview register.
+
+2006-07-16 23:01  warlord
+
+	* [r14523] trunk, trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/qif-parse.scm: Allow
+	  comma-radix numbers without a radix. Fixes #142424. I.e., allow
+	  "17.500" to be parsed either as "seventeen and a half" or as
+	  "seventeen thousand five hundred". Note that numbers STILL
+	  default to decimal-radix instead of asking the user to choose. BP
+
+2006-07-16 23:00  warlord
+
+	* [r14522] trunk, trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/qif-file.scm: Ignore any
+	  unknown !Option specification. Fixes #160735. BP
+
+2006-07-16 21:35  jsled
+
+	* [r14521] branches/sx-cleanup/ChangeLog,
+	  branches/sx-cleanup/src/backend/file/io-gncxml-v2.c,
+	  branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/engine/SX-book-p.h,
+	  branches/sx-cleanup/src/engine/SX-book.c,
+	  branches/sx-cleanup/src/engine/SX-book.h,
+	  branches/sx-cleanup/src/engine/gnc-engine.h,
+	  branches/sx-cleanup/src/gnome/Makefile.am,
+	  branches/sx-cleanup/src/gnome/dialog-scheduledxaction.c,
+	  branches/sx-cleanup/src/gnome/dialog-scheduledxaction.h,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.c,
+	  branches/sx-cleanup/src/gnome/dialog-sx-editor.h,
+	  branches/sx-cleanup/src/gnome/dialog-sx-from-trans.c,
+	  branches/sx-cleanup/src/gnome/dialog-sxsincelast.c,
+	  branches/sx-cleanup/src/gnome/druid-loan.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c,
+	  branches/sx-cleanup/src/gnome/gnc-split-reg.c,
+	  branches/sx-cleanup/src/gnome/gw-gnc-spec.scm,
+	  branches/sx-cleanup/src/gnome/top-level.c: Move SX list from
+	  GList to a QofEntity; add SX list mutation events;
+	  instance-model reflects SX list mutation; move SX editor to new
+	  file. * src/engine/SX-book-p.h: * src/engine/SX-book.h: *
+	  src/engine/SX-book.c: Promote SX list from a GList to a
+	  `SchedXactions` QOF Entity. Create add/remove API that emits
+	  GNC_EVENT_{INSERT,REMOVE} signals. Correctly associate the SX
+	  List with the collection of SchedXaction qof-type rather than
+	  the SX template transactions qof-type. Remove some (now-)dead
+	  code. Fix long-standing bug in registration of SX qof types. *
+	  src/gnome/dialog-sx-editor.[ch]: *
+	  src/gnome/dialog-schedxaction.[ch]: Move the SX editor dialog
+	  subset of dialog-schedxaction to dialog-sx-editor.[ch]. *
+	  src/gnome/gnc-plugin-page-sx-list.c: Hookup SX editor for both
+	  'new' and 'edit' actions. Hookup row-activation from tree-view.
+	  Extend GncSxInstanceModel to support SchedXactions (sx list)
+	  modification events.
+
+2006-07-16 16:58  warlord
+
+	* [r14520] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/business/business-gnome/dialog-invoice.c: Set
+	  the summary bar values when the window is first opened
+	  (#345978). Merge r14516.
+
+2006-07-16 16:40  warlord
+
+	* [r14519] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/configure.in: check for (g-wrap) module (#347680)
+	  Apparently some distributions ship g-wrap-config separately from
+	  the g-wrap.scm guile module. (also add a bunch of ChangeLog
+	  entries for backported fixes)
+
+2006-07-16 16:17  warlord
+
+	* [r14518] trunk, trunk/ChangeLog, trunk/configure.in: check for
+	  (g-wrap) module (#347680) Apparently some distributions ship
+	  g-wrap-config separately from the g-wrap.scm guile module. BP
+
+2006-07-16 07:45  andi5
+
+	* [r14517] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Do not move windows on
+	  restoration that would be offscreen.
+
+2006-07-16 05:58  warlord
+
+	* [r14516] trunk, trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-invoice.c: Set the
+	  summary bar values when the window is first opened (#345978). BP
+
+2006-07-16 05:16  warlord
+
+	* [r14515] trunk, trunk/ChangeLog,
+	  trunk/src/business/business-core/gncAddress.c,
+	  trunk/src/business/business-core/gncAddress.h: Make GncAddress
+	  more QOF compliant. (#343726) Adds BeginEdit/CommitEdit calls.
+
+2006-07-15 22:27  andi5
+
+	* [r14514]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c:
+	  Switched ordering of credit and debit.
+
+2006-07-15 19:48  chris
+
+	* [r14513] trunk/src/gnome/glade/budget.glade: More reasonable
+	  limits for the SpinButton that selects significant figures.
+
+2006-07-15 19:47  chris
+
+	* [r14512] trunk/lib/libqof/qof/gnc-numeric.c: Avoid SIGFPE due to
+	  modulo-by-zero is the requested number of significant figures is
+	  greater than log10(2^63). BP
+
+2006-07-15 17:07  warlord
+
+	* [r14511] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/configure.in: check for (g-wrap gw-glib-spec) and
+	  bomb out if not found (#347404). Merge r14484 and r14501
+
+2006-07-15 16:19  warlord
+
+	* [r14510] branches/2.0, branches/2.0/configure.in: Pull down one
+	  change from r14497 to fix a broken test (#347607). (manually
+	  changed, not merged. See the bug report for rationale).
+
+2006-07-15 15:56  jsled
+
+	* [r14509] branches/sx-cleanup/ChangeLog,
+	  branches/sx-cleanup/src/doc/sx.rst,
+	  branches/sx-cleanup/src/engine/SchedXaction.h,
+	  branches/sx-cleanup/src/gnome/Makefile.am,
+	  branches/sx-cleanup/src/gnome/glade/sched-xact.glade,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.c,
+	  branches/sx-cleanup/src/gnome/gnc-plugin-page-sx-list.h,
+	  branches/sx-cleanup/src/gnome/ui/Makefile.am,
+	  branches/sx-cleanup/src/gnome/ui/gnc-plugin-page-sx-list-ui.xml:
+	  gnc-plugin-page-sx-list.
+
+2006-07-15 15:29  warlord
+
+	* [r14508] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/gnome/schemas/Makefile.am: Distribute
+	  apps_gnucash_scheduled_transctions.schemas.in (#340641). Merge
+	  from r14499
+
+2006-07-15 15:04  warlord
+
+	* [r14507] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/2.0/src/import-export/hbci/glade/hbci.glade: Fix HBCI
+	  Crash (#347595) Remove obsolete buttons for aqbanking/hbci setup
+	  that are unneeded. Fix crash due to dangling points by deleting
+	  all pointers after calling AB_Banking_Fini. Merged from r14502
+	* [r14506] branches/2.0,
+	  branches/2.0/src/core-utils/gnc-glib-utils.c: Fix off-by-one bug
+	  that strips all spaces from imported strings. (#347472) Merge
+	  from r14494.
+	* [r14505] branches/2.0, branches/2.0/util/gnc-svnversion: Handle
+	  the case of a user who has svk but hasn't configured it.
+	  (#347403). Merge from r14489.
+	* [r14504] branches/2.0, branches/2.0/ChangeLog,
+	  branches/2.0/src/engine/Group.c: Allow account-separator
+	  character in account names (#347321). Revert to previous
+	  behavior of xaccGetAccountFromFullName() which was changed in
+	  r13467 when the function was restructured. This patch returns to
+	  the old behavior (but uses the new function structure). Merge
+	  from r14488 and r14496
+
+2006-07-15 13:26  andi5
+
+	* [r14503] trunk/ChangeLog,
+	  trunk/src/report/report-system/html-text.scm: Remove a duplicate
+	  of gnc:html-text?.
+
+2006-07-15 11:27  cstim
+
+	* [r14502] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/hbci/glade/hbci.glade: Remove obsolete
+	  buttons for aqbanking/hbci setup that are unneeded. Fix crash
+	  due to dangling points by deleting all pointers after calling
+	  AB_Banking_Fini.
+
+2006-07-15 04:02  warlord
+
+	* [r14501] trunk, trunk/ChangeLog, trunk/configure.in: check for
+	  (g-wrap gw-glib-spec) instead of (g-wrap) #347404.
+
+2006-07-15 01:33  warlord
+
+	* [r14500] trunk, trunk/ChangeLog, trunk/autogen.sh,
+	  trunk/configure.in: make sure that po/POTFILES.in exists so
+	  configure doens't complain.
+
+2006-07-14 21:29  andi5
+
+	* [r14499] trunk/ChangeLog, trunk/src/gnome/schemas/Makefile.am:
+	  Add apps_gnucash_scheduled_transctions.schemas.in to
+	  Makefile.am. Fixes #340641. BP
+
+2006-07-14 16:45  andi5
+
+	* [r14498] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-model.c: Let
+	  GtkMessageDialog render the headers of two warnings in bold font.
+
+2006-07-14 02:01  chris
+
+	* [r14497] trunk/configure.in: Minor cleanup of configure.in. The
+	  important change is missing "test" in chunk 730,7. The others
+	  fix the (theoretical) problem of a null variable disappearing,
+	  leading to bash: test: =: unary operator expected And also,
+	  added AC_MSG_NOTICE([Ignore error message "./po/POTFILES.in: No
+	  such file or directory." if it occurrs.]) Patch by "Archimedes
+	  Submerged" <archimerged at gmail.com>
+
+2006-07-14 01:36  chris
+
+	* [r14496] trunk/src/engine/Group.c: Restore a comment that
+	  explains the algorithm restored in r14488.
+
+2006-07-14 00:57  chris
+
+	* [r14495]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c,
+	  trunk/src/register/ledger-core/split-register.h: Avoid crash
+	  from opening transaction in more than one register. Bug #347089.
+	  In any case where we might be opening the transaction and
+	  marking it as the pending transaction, check first if it's
+	  already open. If it is, we assume that it's being edited by
+	  another register. We report the error and abort the action that
+	  would have opened the transaction. BP
+
+2006-07-13 23:15  chris
+
+	* [r14494] trunk/src/core-utils/gnc-glib-utils.c: Fix off-by-one
+	  bug that strips all spaces from imported strings. BP
+
+2006-07-13 22:58  andi5
+
+	* [r14493] trunk/ChangeLog, trunk/doc/tip_of_the_day.list.in,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/src/gnome-search/search.glade,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  trunk/src/import-export/import-provider-format.glade,
+	  trunk/src/report/report-system/report.scm: String fixes that
+	  have been delayed due to the string freeze.
+
+2006-07-13 21:37  andi5
+
+	* [r14492] trunk/ChangeLog, trunk/src/gnome/glade/account.glade:
+	  In the account dialog, do not expand the upper left entries when
+	  the window is resized. Automatic scrollbars for the notes field.
+
+2006-07-12 19:50  warlord
+
+	* [r14489] trunk, trunk/util/gnc-svnversion: Handle the case of a
+	  user who has svk but hasn't configured it. (#347403)
+
+2006-07-12 18:17  warlord
+
+	* [r14488] trunk, trunk/ChangeLog, trunk/src/engine/Group.c: Allow
+	  account-separator character in account names (#347321). Revert
+	  to previous behavior of xaccGetAccountFromFullName() which was
+	  changed in r13467 when the function was restructured. This patch
+	  returns to the old behavior (but uses the new function
+	  structure). r12825 at cliodev: warlord | 2006-07-12 14:16:29 -0400
+
+2006-07-12 16:32  hampton
+
+	* [r14487] branches/deprecated-cleanup,
+	  branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/NEWS,
+	  branches/deprecated-cleanup/README,
+	  branches/deprecated-cleanup/configure.in,
+	  branches/deprecated-cleanup/doc/README.OFX,
+	  branches/deprecated-cleanup/doc/README.german,
+	  branches/deprecated-cleanup/doc/TRANSLATION_HOWTO,
+	  branches/deprecated-cleanup/doc/tip_of_the_day.list.in,
+	  branches/deprecated-cleanup/po/de.po,
+	  branches/deprecated-cleanup/po/es.po,
+	  branches/deprecated-cleanup/po/sk.po,
+	  branches/deprecated-cleanup/src/core-utils/gnc-glib-utils.c,
+	  branches/deprecated-cleanup/src/core-utils/gnc-glib-utils.h,
+	  branches/deprecated-cleanup/src/core-utils/gw-core-utils-spec.scm,
+	  branches/deprecated-cleanup/src/engine/Transaction.c,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-account.c,
+	  branches/deprecated-cleanup/src/gnome-utils/glade/totd.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-main-window.c:
+	  Pull trunk changes 14460:14486 into deprecated-cleanup branch.
+
+2006-07-11 05:07  warlord
+
+	* [r14484] trunk, trunk/configure.in: Check for g-wrap
+	  compile-time system and bomb out if it's not found (#347404).
+	  r12822 at cliodev: warlord | 2006-07-11 01:05:15 -0400
+
+2006-07-10 23:43  warlord
+
+	* [r14483] trunk, trunk/README, trunk/configure.in,
+	  trunk/doc/README.german, trunk/doc/tip_of_the_day.list.in,
+	  trunk/src/gnome-utils/glade/totd.glade: The trunk is still a
+	  development branch. Make it say so. r12820 at cliodev: warlord |
+	  2006-07-10 19:42:41 -0400
+
+2006-07-10 04:31  chris
+
+	* [r14481] branches/register-rewrite/src/engine/Transaction.c:
+	  Make 'rate' argument optional for xaccTransGetRateForCommodity().
+
+2006-07-10 02:44  chris
+
+	* [r14480] branches/register-rewrite/src/engine/Transaction.c,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-register.c,
+	  branches/register-rewrite/src/gnome/gnc-split-reg.c: Factor the
+	  transaction timestamp fixup for reversed transactions into
+	  xaccTransReverse().
+
+2006-07-10 00:40  wilddev
+
+	* [r14478] tags/2.0.0: Tagging the 2.0.0 release of GnuCash
+
+2006-07-10 00:34  wilddev
+
+	* [r14477] branches/2.0: Creating the 2.0 branch of GnuCash
+
+2006-07-10 00:31  wilddev
+
+	* [r14476] trunk/ChangeLog, trunk/NEWS, trunk/README,
+	  trunk/configure.in, trunk/doc/README.OFX,
+	  trunk/doc/README.german, trunk/doc/TRANSLATION_HOWTO,
+	  trunk/doc/tip_of_the_day.list.in,
+	  trunk/src/gnome-utils/glade/totd.glade: update to release 2.0.0
+
+2006-07-09 12:05  chris
+
+	* [r14471] trunk/src/gnome-utils/gnc-main-window.c: Update 'About'
+	  dialog copyright notice.
+
+2006-07-08 15:35  hampton
+
+	* [r14470] trunk/ChangeLog, trunk/src/engine/Transaction.c:
+	  Restore 1.8 behavior by using the full date/time when sorting on
+	  the posted date. Fixes #346954.
+
+2006-07-06 07:45  cstim
+
+	* [r14469] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza, now 100% translated again.
+
+2006-07-06 05:18  hampton
+
+	* [r14468] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: When creating accounts
+	  from the register, fix the name parsing logic to correctly
+	  handle the case where the first new account will be the first
+	  child of its parent. Fixes #345771.
+
+2006-07-05 20:42  cstim
+
+	* [r14467] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza, bug#343229. Translation merged with most recent
+	  gnucash.pot.
+
+2006-07-05 16:04  warlord
+
+	* [r14466] trunk/ChangeLog, trunk/src/core-utils/gnc-glib-utils.c,
+	  trunk/src/core-utils/gnc-glib-utils.h,
+	  trunk/src/core-utils/gw-core-utils-spec.scm: Consider certain
+	  control character as invalid UTF-8. Fixes #346535. *
+	  src/core-utils/gnc-glib-utils.h *
+	  src/core-utils/gw-core-utils-spec.scm: Remove the
+	  gnc_utf8_validate() API. It's not used anywhere. *
+	  src/core-utils/gnc-glib-utils.c: Rework gnc_utf8_validate() as a
+	  copy-and-paste of g_utf8_validate but ignore certain control
+	  characters between 0x00 and 0x20 that are not valid XML
+	  characters. Fixes #346535.
+
+2006-07-04 20:35  cstim
+
+	* [r14465] trunk/ChangeLog, trunk/po/de.po: Proof-read and
+	  improved German translation by feedback from Andi Köhler.
+
+2006-07-04 16:32  jsled
+
+	* [r14463] branches/sx-cleanup: Create 'sx-cleanup' branch.
+
+2006-07-04 10:41  cstim
+
+	* [r14462] trunk/po/sk.po: Updated Slovak translation by Zdenko
+	  Podobny
+
+2006-07-04 00:48  hampton
+
+	* [r14461]
+	  branches/deprecated-cleanup/accounts/de_DE/acctchrt_skr03.gnucash-xea,
+	  branches/deprecated-cleanup/src/doc/valgrind.txt: Pull trunk new
+	  files 14347:14459 into branch.
+
+2006-07-03 23:24  hampton
+
+	* [r14460] branches/deprecated-cleanup/AUTHORS,
+	  branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/DOCUMENTERS,
+	  branches/deprecated-cleanup/HACKING,
+	  branches/deprecated-cleanup/Makefile.am,
+	  branches/deprecated-cleanup/NEWS,
+	  branches/deprecated-cleanup/accounts/de_DE/Makefile.am,
+	  branches/deprecated-cleanup/configure.in,
+	  branches/deprecated-cleanup/doc/examples/Money95bank_fr.qif,
+	  branches/deprecated-cleanup/doc/examples/Money95invst_fr.qif,
+	  branches/deprecated-cleanup/doc/examples/Money95mfunds_fr.qif,
+	  branches/deprecated-cleanup/doc/examples/Money95stocks_fr.qif,
+	  branches/deprecated-cleanup/doc/examples/abc-all.qif,
+	  branches/deprecated-cleanup/doc/examples/abc.qif,
+	  branches/deprecated-cleanup/doc/examples/bogus.qif,
+	  branches/deprecated-cleanup/doc/examples/cbb-export.qif,
+	  branches/deprecated-cleanup/doc/examples/every.qif,
+	  branches/deprecated-cleanup/doc/examples/ms-money.qif,
+	  branches/deprecated-cleanup/doc/examples/quicktest.qif,
+	  branches/deprecated-cleanup/doc/examples/swipe.qif,
+	  branches/deprecated-cleanup/doc/examples/web.qif,
+	  branches/deprecated-cleanup/glade-fixup,
+	  branches/deprecated-cleanup/packaging/gnucash-1.9.x.ebuild,
+	  branches/deprecated-cleanup/po/ca.po,
+	  branches/deprecated-cleanup/po/cs.po,
+	  branches/deprecated-cleanup/po/da.po,
+	  branches/deprecated-cleanup/po/de.po,
+	  branches/deprecated-cleanup/po/el.po,
+	  branches/deprecated-cleanup/po/en_GB.po,
+	  branches/deprecated-cleanup/po/es.po,
+	  branches/deprecated-cleanup/po/es_NI.po,
+	  branches/deprecated-cleanup/po/eu.po,
+	  branches/deprecated-cleanup/po/fr.po,
+	  branches/deprecated-cleanup/po/glossary/nl.po,
+	  branches/deprecated-cleanup/po/hu.po,
+	  branches/deprecated-cleanup/po/it.po,
+	  branches/deprecated-cleanup/po/ja.po,
+	  branches/deprecated-cleanup/po/nb.po,
+	  branches/deprecated-cleanup/po/ne.po,
+	  branches/deprecated-cleanup/po/nl.po,
+	  branches/deprecated-cleanup/po/pl.po,
+	  branches/deprecated-cleanup/po/pt.po,
+	  branches/deprecated-cleanup/po/pt_BR.po,
+	  branches/deprecated-cleanup/po/ro.po,
+	  branches/deprecated-cleanup/po/ru.po,
+	  branches/deprecated-cleanup/po/rw.po,
+	  branches/deprecated-cleanup/po/sk.po,
+	  branches/deprecated-cleanup/po/sv.po,
+	  branches/deprecated-cleanup/po/ta.po,
+	  branches/deprecated-cleanup/po/tr.po,
+	  branches/deprecated-cleanup/po/uk.po,
+	  branches/deprecated-cleanup/po/zh_CN.po,
+	  branches/deprecated-cleanup/po/zh_TW.po,
+	  branches/deprecated-cleanup/src/app-utils/gnc-ui-util.c,
+	  branches/deprecated-cleanup/src/backend/file/gnc-backend-file.c,
+	  branches/deprecated-cleanup/src/backend/file/io-gncxml-v2.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/glade/invoice.glade,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/deprecated-cleanup/src/core-utils/gnc-glib-utils.c,
+	  branches/deprecated-cleanup/src/core-utils/gnc-glib-utils.h,
+	  branches/deprecated-cleanup/src/core-utils/gw-core-utils-spec.scm,
+	  branches/deprecated-cleanup/src/doc/Makefile.am,
+	  branches/deprecated-cleanup/src/engine/Account.c,
+	  branches/deprecated-cleanup/src/engine/gnc-commodity.c,
+	  branches/deprecated-cleanup/src/engine/iso-4217-currencies.scm,
+	  branches/deprecated-cleanup/src/gnome-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-utils.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-main-window.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-main-window.h,
+	  branches/deprecated-cleanup/src/gnome-utils/ui/gnc-main-window-ui.xml,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/gnc-hbci-utils.c,
+	  branches/deprecated-cleanup/src/import-export/log-replay/Makefile.am,
+	  branches/deprecated-cleanup/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/druid-qif-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif-file.scm,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif-parse.scm,
+	  branches/deprecated-cleanup/src/pixmaps/appicon.png,
+	  branches/deprecated-cleanup/src/pixmaps/gnucash-icon.png,
+	  branches/deprecated-cleanup/src/pixmaps/gnucash_splash.png,
+	  branches/deprecated-cleanup/src/quotes/gnc-fq-check.in,
+	  branches/deprecated-cleanup/src/quotes/gnc-fq-dump,
+	  branches/deprecated-cleanup/src/quotes/gnc-fq-helper.in,
+	  branches/deprecated-cleanup/src/quotes/gnc-fq-update.in,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-header.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-item-edit.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-sheet.c,
+	  branches/deprecated-cleanup/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/deprecated-cleanup/src/report/standard-reports/portfolio.scm,
+	  branches/deprecated-cleanup/util: Pull trunk changes 14347:14459
+	  into branch.
+
+2006-07-03 15:26  cstim
+
+	* [r14459] trunk/src/engine/iso-4217-currencies.scm: Adjust
+	  currency decimals as pointed out in bug#320203
+
+2006-07-01 15:05  hampton
+
+	* [r14458] trunk/ChangeLog, trunk/src/quotes/gnc-fq-helper.in:
+	  This one file really does require the perl Date::Manip module.
+
+2006-07-01 09:01  cstim
+
+	* [r14457] trunk/AUTHORS, trunk/ChangeLog,
+	  trunk/po/glossary/nl.po, trunk/po/nl.po: Updated Dutch
+	  translation by Bernard Meens <meensb at xs4all.nl>
+
+2006-06-28 04:21  hampton
+
+	* [r14456] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild,
+	  trunk/src/quotes/gnc-fq-check.in, trunk/src/quotes/gnc-fq-dump,
+	  trunk/src/quotes/gnc-fq-helper.in,
+	  trunk/src/quotes/gnc-fq-update.in: Recent version of
+	  Finance::Quote no longer depend on Date::Manip, but they do now
+	  depend on Crypt::SSLeay.
+
+2006-06-28 03:46  hampton
+
+	* [r14454] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm,
+	  trunk/src/report/standard-reports/portfolio.scm: Restore the
+	  original sort ordering which is grouping by parent account, and
+	  then sorting within a group first by account code and then by
+	  account name. Partial fix for #345385.
+
+2006-06-28 00:02  hampton
+
+	* [r14453] trunk/ChangeLog, trunk/src/quotes/gnc-fq-check.in,
+	  trunk/src/quotes/gnc-fq-dump, trunk/src/quotes/gnc-fq-helper.in,
+	  trunk/src/quotes/gnc-fq-update.in: When modules can't be found
+	  refer users to their package manager first. Other fixups for the
+	  utility program name changes.
+
+2006-06-27 09:10  cstim
+
+	* [r14452] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c: Ignore failed chown()
+	  because it always fails on vfat/samba. #345913
+
+2006-06-26 20:12  hampton
+
+	* [r14442] trunk/ChangeLog, trunk/src/pixmaps/appicon.png,
+	  trunk/src/pixmaps/gnucash-icon.png: Add new application icon.
+
+2006-06-25 23:47  chris
+
+	* [r14437]
+	  branches/register-rewrite/src/gnome/dialog-print-check.c,
+	  branches/register-rewrite/src/gnome/dialog-print-check.h,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-register.c:
+	  Generalize gnc_ui_print_check_dialog_create() to work with any
+	  GncPluginPage instead of only GncPluginPageRegister.
+
+2006-06-25 23:42  chris
+
+	* [r14436]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.h:
+	  Add support for negating the account balance. Add support for
+	  deleting the selected transaction or split.
+
+2006-06-25 23:13  chris
+
+	* [r14435]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view.h,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-budget.c:
+	  Factor out a button press callback that is useful for any plugin
+	  page that uses a GtkTreeView.
+
+2006-06-25 14:58  jsled
+
+	* [r14434] trunk/ChangeLog, trunk/src/pixmaps/gnucash_splash.png:
+	  Reduced-size splash image.
+
+2006-06-25 09:38  cstim
+
+	* [r14433] trunk/po/en_GB.po: Update British English translation
+	  by Nigel Titley with fixed char encoding. #345611
+
+2006-06-24 22:41  chris
+
+	* [r14432] branches/register-rewrite/src/engine/Account.c,
+	  branches/register-rewrite/src/engine/Transaction.c,
+	  branches/register-rewrite/src/engine/Transaction.h,
+	  branches/register-rewrite/src/engine/cap-gains.c,
+	  branches/register-rewrite/src/engine/cap-gains.h,
+	  branches/register-rewrite/src/engine/gnc-commodity.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.h: Add const
+	  to some gnc_commodity arguments.
+
+2006-06-24 21:07  chris
+
+	* [r14431]
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.c:
+	  Remove more unnecessary fixups for impossible gnc_commodity
+	  conditions.
+
+2006-06-24 21:01  chris
+
+	* [r14430]
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.c:
+	  Remove unnecessary code for fixing a now-impossible condition.
+	  Commodities with a given namespace and mnemonic are now always
+	  unique.
+
+2006-06-24 19:03  warlord
+
+	* [r14429] trunk/src/gnome-utils/Makefile.am: Use gnc-svnversion
+	  to detect development version or tarball version Fix a case of a
+	  missing variable, missed from the last changeset.
+
+2006-06-24 18:42  warlord
+
+	* [r14428] trunk/ChangeLog, trunk/configure.in: Remove warning
+	  messages from configure script used for testing.
+
+2006-06-24 18:34  warlord
+
+	* [r14427] trunk/Makefile.am, trunk/configure.in,
+	  trunk/glade-fixup, trunk/src/gnome-utils/Makefile.am,
+	  trunk/util, trunk/util/glade-fixup, trunk/util/gnc-svnversion:
+	  Allow building from either SVN or SVK - create gnc-svnversion
+	  script that builds the revision number from either SVN or SVK.
+	  The script should fail gracefully if you don't have SVK
+	  installed - convert the configure script to use the new
+	  gnc-svnversion script - convert the splash-screen Makefile to
+	  use the gnc-svnversions script
+
+2006-06-24 16:12  chris
+
+	* [r14426]
+	  branches/register-rewrite/src/backend/file/gnc-commodity-xml-v2.c,
+	  branches/register-rewrite/src/backend/file/gnc-schedxaction-xml-v2.c,
+	  branches/register-rewrite/src/backend/file/io-gncbin-r.c,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v1.c,
+	  branches/register-rewrite/src/backend/file/sixtp-dom-parsers.c,
+	  branches/register-rewrite/src/backend/file/test/test-dom-converters1.c,
+	  branches/register-rewrite/src/backend/file/test/test-file-stuff.c,
+	  branches/register-rewrite/src/backend/file/test/test-xml-commodity.c,
+	  branches/register-rewrite/src/backend/postgres/price.c,
+	  branches/register-rewrite/src/engine/SchedXaction.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.h,
+	  branches/register-rewrite/src/engine/gw-engine-spec.scm,
+	  branches/register-rewrite/src/engine/iso-currencies-to-c,
+	  branches/register-rewrite/src/engine/test-core/test-engine-stuff.c,
+	  branches/register-rewrite/src/engine/test/test-commodities.c,
+	  branches/register-rewrite/src/gnome-utils/dialog-commodity.c,
+	  branches/register-rewrite/src/import-export/binary-import/druid-commodity.c,
+	  branches/register-rewrite/src/import-export/qif-import/druid-qif-import.c,
+	  branches/register-rewrite/src/import-export/qif-import/qif-dialog-utils.scm:
+	  Two changes to the gnc_commodity API: 1. Pass only the namespace
+	  and mnemonic strings to gnc_commodity_new(). This separates
+	  construction from the setters and simplifies callers. 2. Combine
+	  gnc_commodity_set_mnemonic() and gnc_commodity_set_namespace()
+	  into one function: gnc_commodity_set_namespace_and_mnemonic().
+	  This allows callers to safely ignore the possibility of an
+	  accidental hash collision when setting these key-parts
+	  non-atomically. These changes result in some simplifications of
+	  gnc_commodity's life-cycle.
+
+2006-06-22 13:30  cstim
+
+	* [r14409] trunk/src/import-export/log-replay/Makefile.am: Add
+	  GTK_LIBS because log_replay uses gtk functions direcly since
+	  r14142
+
+2006-06-20 12:49  cstim
+
+	* [r14393] trunk/ChangeLog,
+	  trunk/src/engine/iso-4217-currencies.scm: Add Suriname Dollar
+	  currency; replaces SRG, but due to a non-unity exchange rate we
+	  cannot have it replaced automatically. #319084
+
+2006-06-20 10:30  cstim
+
+	* [r14392] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/backend/file/io-gncxml-v2.c: Use waitpid() only if
+	  <sys/wait.h> is available. Unavailable on win32.
+
+2006-06-19 01:44  hampton
+
+	* [r14389] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/gnome/druid-loan.c,
+	  branches/deprecated-cleanup/src/gnome/glade/sched-xact.glade:
+	  Another GtkOptionMenu to GtkComboBox conversion.
+
+2006-06-19 01:43  hampton
+
+	* [r14388]
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-options.c:
+	  Another GtkCList -> GtkTreeView/GtkListStore conversion.
+
+2006-06-19 00:34  wilddev
+
+	* [r14387] tags/1.9.8: Tagging the 1.9.8 release of GnuCash
+
+2006-06-19 00:33  wilddev
+
+	* [r14386] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.8
+
+2006-06-18 20:27  cstim
+
+	* [r14384] trunk/AUTHORS, trunk/ChangeLog,
+	  trunk/accounts/de_DE/Makefile.am,
+	  trunk/accounts/de_DE/acctchrt_skr03.gnucash-xea: Add new SKR03
+	  account template (in addition to the existing SKR04) by Oliver
+	  Vollmer
+
+2006-06-18 12:17  cstim
+
+	* [r14383] trunk/po/en_GB.po: Updated British English translation
+	  by Nigel Titley
+
+2006-06-17 23:24  hampton
+
+	* [r14382] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/import-export/generic-import.glade,
+	  branches/deprecated-cleanup/src/import-export/import-backend.c,
+	  branches/deprecated-cleanup/src/import-export/import-backend.h,
+	  branches/deprecated-cleanup/src/import-export/import-main-matcher.c,
+	  branches/deprecated-cleanup/src/import-export/import-match-picker.c:
+	  More and GtkCList -> GtkTreeView/GtkListStore conversions.
+
+2006-06-17 23:23  hampton
+
+	* [r14381]
+	  branches/deprecated-cleanup/src/import-export/gnc-import-format-gnome.c,
+	  branches/deprecated-cleanup/src/import-export/gnc-import-format-gnome.h,
+	  branches/deprecated-cleanup/src/import-export/import-provider-format.glade:
+	  Convert a GtkOptionMenu into a GtkComboBox.
+
+2006-06-17 21:13  cstim
+
+	* [r14380] trunk/po/de.po: Improve some SX-related wordings in
+	  German translation
+
+2006-06-17 20:28  chris
+
+	* [r14379] trunk/ChangeLog: Sync ChangeLog with svn log -v through
+	  r14377.
+
+2006-06-17 03:37  hampton
+
+	* [r14378] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c: Correctly
+	  indicate the focus state of the register. Fixes #342055.
+
+2006-06-17 01:00  chris
+
+	* [r14377] trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/iso-4217-currencies.scm: Update mnemonic for
+	  Mexican Peso. Fixes Bug #345048.
+
+2006-06-17 00:44  hampton
+
+	* [r14376] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Instead of
+	  marking the first page so that it can't be closed, mark the
+	  first *accounts* page so that it can't be closed.
+
+2006-06-17 00:38  chris
+
+	* [r14375] trunk/src/gnome-utils/dialog-utils.c: Make the keypad
+	  'minus' key enter a dash in the date entry for ISO dates. Fixes
+	  Bug #345096.
+
+2006-06-16 23:28  hampton
+
+	* [r14374] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-header.c: Remove five
+	  year old workaround for a resizing bug. Fixes #344764. Also
+	  explicitly initialize a couple of variables.
+
+2006-06-16 23:14  chris
+
+	* [r14373] trunk/src/register/register-gnome/gnucash-sheet.c:
+	  Restore non-editing state when cancelled editing is complete.
+	  Fixes Bug #344870, which was a regression caused by r11892.
+
+2006-06-16 10:48  cstim
+
+	* [r14372] trunk/DOCUMENTERS: Fix misspelled name
+
+2006-06-15 11:46  cstim
+
+	* [r14371] trunk/po/ca.po, trunk/po/cs.po, trunk/po/da.po,
+	  trunk/po/de.po, trunk/po/el.po, trunk/po/en_GB.po,
+	  trunk/po/es.po, trunk/po/es_NI.po, trunk/po/eu.po,
+	  trunk/po/fr.po, trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po,
+	  trunk/po/nb.po, trunk/po/ne.po, trunk/po/nl.po, trunk/po/pl.po,
+	  trunk/po/pt.po, trunk/po/pt_BR.po, trunk/po/ro.po,
+	  trunk/po/ru.po, trunk/po/rw.po, trunk/po/sk.po, trunk/po/sv.po,
+	  trunk/po/ta.po, trunk/po/tr.po, trunk/po/uk.po,
+	  trunk/po/zh_CN.po, trunk/po/zh_TW.po: Update/merge po files to
+	  current catalogue template.
+
+2006-06-15 11:24  cstim
+
+	* [r14370] trunk/po/de.po: Updated German translation to reach
+	  100% again
+
+2006-06-15 03:54  hampton
+
+	* [r14369] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c:
+	  Restore the auto decimal places settings from gconf at startup.
+	  Fixes #344938.
+
+2006-06-14 23:45  hampton
+
+	* [r14368] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/glade/invoice.glade: The
+	  Chargeback and Extra Payments sections of the bill should not
+	  expand to fill extra space.
+
+2006-06-14 23:34  hampton
+
+	* [r14367] trunk/ChangeLog,
+	  trunk/src/business/business-ledger/gncEntryLedgerLoad.c: Use the
+	  new mechanism for the account list popups. Fixes #342058.
+
+2006-06-14 22:38  hampton
+
+	* [r14366] trunk/HACKING: Fix typo.
+
+2006-06-14 22:34  hampton
+
+	* [r14365] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c: HBCI data is
+	  already in utf8. Don't recode into the local charset (which may
+	  not be utf8).
+
+2006-06-14 22:30  hampton
+
+	* [r14364] trunk/HACKING: Update gdb instructions.
+
+2006-06-14 19:49  cstim
+
+	* [r14363] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c: Similarly ensure
+	  for aqbanking/mt940 import that all retrieved strings will be
+	  valid utf8.
+
+2006-06-14 04:16  hampton
+
+	* [r14362] trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/druid-qif-import.c: Do a
+	  better job of turning the busy cursor on/off. Now works
+	  correctly if there's a failure in the input file.
+
+2006-06-14 03:42  hampton
+
+	* [r14361] trunk/ChangeLog, trunk/src/core-utils/gnc-glib-utils.c,
+	  trunk/src/core-utils/gnc-glib-utils.h,
+	  trunk/src/core-utils/gw-core-utils-spec.scm,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/import-export/qif-import/qif-file.scm: Strip all
+	  invalid utf8 characters from imported QIF and OFX/QFX strings.
+	  This fixes bugs #106203 #338296 #344170 and #344219.
+
+2006-06-14 00:34  warlord
+
+	* [r14360] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  force-enable hbci if the user enables mt940
+
+2006-06-14 00:04  hampton
+
+	* [r14359] trunk/ChangeLog, trunk/src/quotes/gnc-fq-helper.in:
+	  Tell gnucash that a currency quote failed instead of just
+	  abandoning the request. Fixes #344546.
+
+2006-06-13 03:17  hampton
+
+	* [r14358] trunk/ChangeLog, trunk/src/engine/Account.c: When
+	  committing an account during the closing of a book, don't search
+	  the engine for splits that are in the process of being assigned
+	  to the account but aren't yet linked into the account. This
+	  eliminates an O(n*m) operation that will never find any work to
+	  perform. Fixes #344473.
+
+2006-06-13 01:37  chris
+
+	* [r14357]
+	  branches/register-rewrite/src/backend/file/test/test-load-backend.c:
+	  Let another test, test-load-backend, find the file backend
+	  gmodule.
+
+2006-06-13 01:29  chris
+
+	* [r14356]
+	  branches/register-rewrite/src/backend/file/test/test-xml-commodity.c:
+	  Un-libguile-ify test-xml-commodity.
+
+2006-06-13 01:23  chris
+
+	* [r14355]
+	  branches/register-rewrite/src/backend/file/test/test-load-xml2.c:
+	  Find the file backend gmodule while testing.
+
+2006-06-13 00:35  chris
+
+	* [r14354] trunk/src/import-export/qif-import/qif-parse.scm: Don't
+	  crash when parsing empty string as date. Fixes #344466.
+
+2006-06-13 00:14  hampton
+
+	* [r14353] trunk/ChangeLog, trunk/src/quotes/gnc-fq-check.in:
+	  Quote the F::Q version number so that it will be correctly
+	  parsed as a string.
+
+2006-06-09 23:33  hampton
+
+	* [r14352] trunk/ChangeLog, trunk/doc/examples/Money95bank_fr.qif,
+	  trunk/doc/examples/Money95invst_fr.qif,
+	  trunk/doc/examples/Money95mfunds_fr.qif,
+	  trunk/doc/examples/Money95stocks_fr.qif,
+	  trunk/doc/examples/abc-all.qif, trunk/doc/examples/abc.qif,
+	  trunk/doc/examples/bogus.qif, trunk/doc/examples/cbb-export.qif,
+	  trunk/doc/examples/every.qif, trunk/doc/examples/ms-money.qif,
+	  trunk/doc/examples/quicktest.qif, trunk/doc/examples/swipe.qif,
+	  trunk/doc/examples/web.qif: Tell subversion these files are text.
+
+2006-06-09 21:33  hampton
+
+	* [r14351] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/doc/Makefile.am, trunk/src/doc/valgrind.txt,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/ui/gnc-main-window-ui.xml: Move the
+	  valgrind reference code from a compiled file to a documentation
+	  file. The start/stop valgrind command didn't work as well as I'd
+	  hoped. Fixes #344353.
+
+2006-06-09 04:38  hampton
+
+	* [r14350] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-commodity.c,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-commodity.h,
+	  branches/deprecated-cleanup/src/gnome-utils/glade/commodity.glade,
+	  branches/deprecated-cleanup/src/import-export/binary-import/druid-commodity.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/druid-qif-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif.glade:
+	  Convert more deprecated GtkCombo widgets into GtkComboBoxEntries.
+
+2006-06-09 04:34  hampton
+
+	* [r14349]
+	  branches/deprecated-cleanup/src/core-utils/gnc-gtk-utils.c,
+	  branches/deprecated-cleanup/src/core-utils/gnc-gtk-utils.h:
+	  Allow completion without requiring that the entered text be
+	  present in the model. Used for new entry of new namespaces.
+
+2006-06-08 11:52  hampton
+
+	* [r14348] branches/deprecated-cleanup/AUTHORS,
+	  branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/Makefile.TAGS,
+	  branches/deprecated-cleanup/Makefile.am,
+	  branches/deprecated-cleanup/NEWS,
+	  branches/deprecated-cleanup/README,
+	  branches/deprecated-cleanup/README.dependencies,
+	  branches/deprecated-cleanup/accounts/Makefile.am,
+	  branches/deprecated-cleanup/accounts/de_AT,
+	  branches/deprecated-cleanup/accounts/de_DE/acctchrt_skr04.gnucash-xea,
+	  branches/deprecated-cleanup/accounts/el_GR/acctchrt_brokerage.gnucash-xea,
+	  branches/deprecated-cleanup/accounts/el_GR/acctchrt_carloan.gnucash-xea,
+	  branches/deprecated-cleanup/accounts/el_GR/acctchrt_common.gnucash-xea,
+	  branches/deprecated-cleanup/autogen.sh,
+	  branches/deprecated-cleanup/configure.in,
+	  branches/deprecated-cleanup/doc/README.HBCI,
+	  branches/deprecated-cleanup/doc/README.german,
+	  branches/deprecated-cleanup/doc/examples/downloaded.mt940,
+	  branches/deprecated-cleanup/goffice-config.h.in,
+	  branches/deprecated-cleanup/gsf-config.h.in,
+	  branches/deprecated-cleanup/lib/glib26/Makefile.am,
+	  branches/deprecated-cleanup/lib/guile-www/cgi.scm,
+	  branches/deprecated-cleanup/lib/guile-www/http.scm,
+	  branches/deprecated-cleanup/lib/libgsf-1.12.3/Makefile.am,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/Makefile.am,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/qof-backend-qsf.h,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/qsf-backend.c,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/qsf-xml-map.c,
+	  branches/deprecated-cleanup/lib/libqof/backend/file/qsf-xml.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/Makefile.am,
+	  branches/deprecated-cleanup/lib/libqof/qof/gnc-date.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/gnc-numeric.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/guid.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/kvp_frame.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qof.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofbackend-p.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofbackend.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofbackend.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofbook.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofbookmerge.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofinstance-p.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofinstance.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofmath128.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofquery.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofsession-p.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofsession.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofsession.h,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofsql.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofutil.c,
+	  branches/deprecated-cleanup/lib/libqof/qof/qofutil.h,
+	  branches/deprecated-cleanup/macros/legacy_macros.m4,
+	  branches/deprecated-cleanup/packaging/gnucash-1.9.x.ebuild,
+	  branches/deprecated-cleanup/packaging/gnucash.spec.in,
+	  branches/deprecated-cleanup/po/POTFILES.skip,
+	  branches/deprecated-cleanup/po/de.po,
+	  branches/deprecated-cleanup/po/el.po,
+	  branches/deprecated-cleanup/po/en_GB.po,
+	  branches/deprecated-cleanup/po/es.po,
+	  branches/deprecated-cleanup/po/fr.po,
+	  branches/deprecated-cleanup/po/glossary/sv.po,
+	  branches/deprecated-cleanup/po/nb.po,
+	  branches/deprecated-cleanup/po/ro.po,
+	  branches/deprecated-cleanup/po/ru.po,
+	  branches/deprecated-cleanup/po/sk.po,
+	  branches/deprecated-cleanup/po/sv.po,
+	  branches/deprecated-cleanup/src/app-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/backend/Makefile.am,
+	  branches/deprecated-cleanup/src/backend/file/Makefile.am,
+	  branches/deprecated-cleanup/src/backend/file/gnc-backend-file.c,
+	  branches/deprecated-cleanup/src/backend/file/gnc-backend-file.h,
+	  branches/deprecated-cleanup/src/backend/file/gnc-budget-xml-v2.c,
+	  branches/deprecated-cleanup/src/backend/file/io-gncxml-v2.c,
+	  branches/deprecated-cleanup/src/backend/file/io-gncxml-v2.h,
+	  branches/deprecated-cleanup/src/backend/file/sixtp-dom-generators.c,
+	  branches/deprecated-cleanup/src/backend/file/sixtp-utils.c,
+	  branches/deprecated-cleanup/src/backend/file/sixtp.c,
+	  branches/deprecated-cleanup/src/backend/file/sixtp.h,
+	  branches/deprecated-cleanup/src/backend/file/test/Makefile.am,
+	  branches/deprecated-cleanup/src/backend/file/test/test-load-backend.c,
+	  branches/deprecated-cleanup/src/backend/file/test/test-load-xml2.c,
+	  branches/deprecated-cleanup/src/backend/gnc-backend-api.h,
+	  branches/deprecated-cleanup/src/backend/postgres/Makefile.am,
+	  branches/deprecated-cleanup/src/backend/postgres/PostgresBackend.c,
+	  branches/deprecated-cleanup/src/backend/postgres/PostgresBackend.h,
+	  branches/deprecated-cleanup/src/backend/postgres/account.c,
+	  branches/deprecated-cleanup/src/backend/postgres/book.c,
+	  branches/deprecated-cleanup/src/backend/postgres/builder.c,
+	  branches/deprecated-cleanup/src/backend/postgres/checkpoint.c,
+	  branches/deprecated-cleanup/src/backend/postgres/escape.c,
+	  branches/deprecated-cleanup/src/backend/postgres/events.c,
+	  branches/deprecated-cleanup/src/backend/postgres/gncquery.c,
+	  branches/deprecated-cleanup/src/backend/postgres/kvp-sql.c,
+	  branches/deprecated-cleanup/src/backend/postgres/price.c,
+	  branches/deprecated-cleanup/src/backend/postgres/test/test-db.c,
+	  branches/deprecated-cleanup/src/backend/postgres/test/test-load-backend.c,
+	  branches/deprecated-cleanup/src/backend/postgres/test/test-period.c,
+	  branches/deprecated-cleanup/src/backend/postgres/txn.c,
+	  branches/deprecated-cleanup/src/backend/postgres/txnmass.c,
+	  branches/deprecated-cleanup/src/backend/postgres/upgrade.c,
+	  branches/deprecated-cleanup/src/bin/gnucash-bin.c,
+	  branches/deprecated-cleanup/src/business/business-core/file/Makefile.am,
+	  branches/deprecated-cleanup/src/business/business-core/gncAddress.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/Makefile.am,
+	  branches/deprecated-cleanup/src/business/business-gnome/business-gnome.scm,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-customer.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-employee.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-invoice.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-job.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-order.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-vendor.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/glade/billterms.glade,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedger.c,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedgerControl.c,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedgerDisplay.c,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedgerLayout.c,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/deprecated-cleanup/src/business/business-ledger/gncEntryLedgerModel.c,
+	  branches/deprecated-cleanup/src/business/business-reports/aging.scm,
+	  branches/deprecated-cleanup/src/business/business-reports/fancy-invoice.scm,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/tax-tables.glade,
+	  branches/deprecated-cleanup/src/core-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/engine/Account.c,
+	  branches/deprecated-cleanup/src/engine/Group.c,
+	  branches/deprecated-cleanup/src/engine/Makefile.am,
+	  branches/deprecated-cleanup/src/engine/Period.c,
+	  branches/deprecated-cleanup/src/engine/Scrub2.c,
+	  branches/deprecated-cleanup/src/engine/Split.c,
+	  branches/deprecated-cleanup/src/engine/TransLog.c,
+	  branches/deprecated-cleanup/src/engine/Transaction.c,
+	  branches/deprecated-cleanup/src/engine/cap-gains.c,
+	  branches/deprecated-cleanup/src/engine/engine-helpers.c,
+	  branches/deprecated-cleanup/src/engine/gnc-budget.c,
+	  branches/deprecated-cleanup/src/engine/gnc-budget.h,
+	  branches/deprecated-cleanup/src/engine/gnc-commodity.c,
+	  branches/deprecated-cleanup/src/engine/gnc-commodity.h,
+	  branches/deprecated-cleanup/src/engine/gnc-engine.c,
+	  branches/deprecated-cleanup/src/engine/gnc-engine.h,
+	  branches/deprecated-cleanup/src/engine/gnc-pricedb.c,
+	  branches/deprecated-cleanup/src/engine/gnc-session-scm.c,
+	  branches/deprecated-cleanup/src/engine/gnc-session-scm.h,
+	  branches/deprecated-cleanup/src/engine/gw-engine-spec.scm,
+	  branches/deprecated-cleanup/src/engine/policy.c,
+	  branches/deprecated-cleanup/src/engine/test-core/test-engine-stuff.c,
+	  branches/deprecated-cleanup/src/engine/test/Makefile.am,
+	  branches/deprecated-cleanup/src/engine/test/test-book-merge.c,
+	  branches/deprecated-cleanup/src/engine/test/test-query.c,
+	  branches/deprecated-cleanup/src/engine/test/test-recursive.c,
+	  branches/deprecated-cleanup/src/gnc-ui.h,
+	  branches/deprecated-cleanup/src/gnome-search/dialog-search.c,
+	  branches/deprecated-cleanup/src/gnome-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-account.c,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-preferences.c,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-utils.c,
+	  branches/deprecated-cleanup/src/gnome-utils/druid-gnc-xml-import.c,
+	  branches/deprecated-cleanup/src/gnome-utils/glade/preferences.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/glade/totd.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-file.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-file.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-gnome-utils.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-html-graph-gog.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-html.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-html.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-icons.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-main-window.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-menu-extensions.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-plugin-file-history.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-plugin-page.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-model-account.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-view-account.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-view-commodity.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-view-price.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-view.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-tree-view.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-window.c,
+	  branches/deprecated-cleanup/src/gnome-utils/print-session.c,
+	  branches/deprecated-cleanup/src/gnome-utils/test/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome-utils/test/test-gnc-dialog.c,
+	  branches/deprecated-cleanup/src/gnome/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome/dialog-chart-export.h,
+	  branches/deprecated-cleanup/src/gnome/dialog-find-transactions.c,
+	  branches/deprecated-cleanup/src/gnome/dialog-print-check.c,
+	  branches/deprecated-cleanup/src/gnome/dialog-scheduledxaction.c,
+	  branches/deprecated-cleanup/src/gnome/druid-hierarchy.c,
+	  branches/deprecated-cleanup/src/gnome/druid-loan.c,
+	  branches/deprecated-cleanup/src/gnome/glade/lots.glade,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-budget.c,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-register.c,
+	  branches/deprecated-cleanup/src/gnome/gnc-split-reg.c,
+	  branches/deprecated-cleanup/src/gnome/gnucash.desktop.in,
+	  branches/deprecated-cleanup/src/gnome/gnucash.keys.in,
+	  branches/deprecated-cleanup/src/gnome/gnucash.mime,
+	  branches/deprecated-cleanup/src/gnome/lot-viewer.c,
+	  branches/deprecated-cleanup/src/gnome/ui/gnc-plugin-basic-commands-ui.xml,
+	  branches/deprecated-cleanup/src/gnome/window-reconcile.c,
+	  branches/deprecated-cleanup/src/import-export/Makefile.am,
+	  branches/deprecated-cleanup/src/import-export/binary-import/druid-commodity.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/gnc-hbci-utils.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/gnc-plugin-hbci.c,
+	  branches/deprecated-cleanup/src/import-export/import-account-matcher.c,
+	  branches/deprecated-cleanup/src/import-export/import-backend.c,
+	  branches/deprecated-cleanup/src/import-export/import-commodity-matcher.c,
+	  branches/deprecated-cleanup/src/import-export/import-match-picker.c,
+	  branches/deprecated-cleanup/src/import-export/import-settings.c,
+	  branches/deprecated-cleanup/src/import-export/import-utilities.c,
+	  branches/deprecated-cleanup/src/import-export/log-replay/gnc-log-replay.c,
+	  branches/deprecated-cleanup/src/import-export/mt940/gnc-mt940-import.c,
+	  branches/deprecated-cleanup/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/druid-qif-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml,
+	  branches/deprecated-cleanup/src/import-export/qif-import/gnc-plugin-qif-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif-file.scm,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif-parse.scm,
+	  branches/deprecated-cleanup/src/import-export/qif-io-core/qif-file.scm,
+	  branches/deprecated-cleanup/src/import-export/qif-io-core/qif-parse.scm,
+	  branches/deprecated-cleanup/src/import-export/test/Makefile.am,
+	  branches/deprecated-cleanup/src/pixmaps/Makefile.am,
+	  branches/deprecated-cleanup/src/pixmaps/gnucash_splash.png,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register-load.c,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register-util.c,
+	  branches/deprecated-cleanup/src/register/ledger-core/split-register.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/combocell-gnome.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/formulacell-gnome.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-grid.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-item-edit.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-item-list.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-item-list.h,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-sheet.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/pricecell-gnome.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/pricecell-gnome.h,
+	  branches/deprecated-cleanup/src/report/report-gnome/Makefile.am,
+	  branches/deprecated-cleanup/src/report/report-gnome/gnc-plugin-page-report.c,
+	  branches/deprecated-cleanup/src/report/report-gnome/window-report.c,
+	  branches/deprecated-cleanup/src/report/report-system/commodity-utilities.scm,
+	  branches/deprecated-cleanup/src/report/report-system/html-table.scm,
+	  branches/deprecated-cleanup/src/report/report-system/report-utilities.scm,
+	  branches/deprecated-cleanup/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/deprecated-cleanup/src/report/standard-reports/general-journal.scm,
+	  branches/deprecated-cleanup/src/report/standard-reports/portfolio.scm,
+	  branches/deprecated-cleanup/src/report/standard-reports/price-scatter.scm,
+	  branches/deprecated-cleanup/src/report/standard-reports/transaction.scm,
+	  branches/deprecated-cleanup/src/report/utility-reports/welcome-to-gnucash.scm,
+	  branches/deprecated-cleanup/src/scm/Makefile.am,
+	  branches/deprecated-cleanup/src/scm/command-line.scm,
+	  branches/deprecated-cleanup/src/scm/doc.scm,
+	  branches/deprecated-cleanup/src/scm/gnumeric/table-utils.scm,
+	  branches/deprecated-cleanup/src/scm/help-topics-index.old,
+	  branches/deprecated-cleanup/src/scm/help-topics-index.scm,
+	  branches/deprecated-cleanup/src/scm/main.scm,
+	  branches/deprecated-cleanup/src/scm/printing/print-check.scm:
+	  Pull trunk changes r13935:14346 into branch.
+
+2006-06-08 02:30  hampton
+
+	* [r14347] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/business-gnome.scm: Restore
+	  the business reports menu.
+
+2006-06-08 02:07  hampton
+
+	* [r14346] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/gnome-search/dialog-search.c,
+	  branches/deprecated-cleanup/src/gnome/dialog-fincalc.c,
+	  branches/deprecated-cleanup/src/gnome/dialog-sx-from-trans.c,
+	  branches/deprecated-cleanup/src/gnome/druid-loan.c,
+	  branches/deprecated-cleanup/src/gnome/glade/fincalc.glade,
+	  branches/deprecated-cleanup/src/gnome/glade/lots.glade,
+	  branches/deprecated-cleanup/src/gnome/glade/sched-xact.glade,
+	  branches/deprecated-cleanup/src/gnome/lot-viewer.c: More
+	  GtkOptionMenu -> GtkCombo and CtkCList -> CtkTreeView
+	  conversions.
+
+2006-06-07 01:34  chris
+
+	* [r14345] trunk/src/register/ledger-core/split-register-util.c:
+	  Um, uhh, important code change. Might fix #343798.* (*) Might
+	  also do strange things to the register, esp. cursor motion.
+
+2006-06-07 00:43  hampton
+
+	* [r14344] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/glade/billterms.glade: Hide
+	  notebook tabs on programmatically changed notebook.
+
+2006-06-06 20:13  jsled
+
+	* [r14343] trunk/packaging/gnucash-1.9.x.ebuild: adjust desktop
+	  entry rule for icon, categories.
+
+2006-06-06 04:37  hampton
+
+	* [r14341] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/business/business-gnome/business-gnome-utils.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-billterms.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-payment.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/glade/billterms.glade,
+	  branches/deprecated-cleanup/src/business/business-gnome/glade/payment.glade,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/dialog-tax-table.c,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/tax-tables.glade,
+	  branches/deprecated-cleanup/src/report/report-gnome/dialog-style-sheet.c,
+	  branches/deprecated-cleanup/src/report/report-gnome/report.glade:
+	  Convert more deprecated GtkOptionMenus and GtkCombos to
+	  GtkComboBoxs.
+
+2006-06-06 03:53  wilddev
+
+	* [r14339] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild:
+	  update ebuild to use gnucash-docs-1.9.0
+
+2006-06-06 03:04  wilddev
+
+	* [r14337] tags/1.9.7: Tagging the 1.9.7 release of GnuCash
+
+2006-06-06 03:03  wilddev
+
+	* [r14336] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.7
+
+2006-06-06 01:52  hampton
+
+	* [r14335]
+	  branches/deprecated-cleanup/src/gnome/dialog-scheduledxaction.h:
+	  Reduce the number of extraneous errors when compiling with the
+	  GTK_DISABLE_DEPRECATED flag turned on.
+
+2006-06-05 13:41  hampton
+
+	* [r14334] trunk/src/business/business-gnome/business-gnome.scm:
+	  Remove dead code.
+
+2006-06-05 13:39  hampton
+
+	* [r14333] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-menu-extensions.c: Fix "missing icon"
+	  menu icons on FC6.
+
+2006-06-05 05:06  hampton
+
+	* [r14332] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/business/business-gnome/search-owner.c,
+	  branches/deprecated-cleanup/src/core-utils/gnc-gtk-utils.c,
+	  branches/deprecated-cleanup/src/gnome-search/Makefile.am,
+	  branches/deprecated-cleanup/src/gnome-search/search-account.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-boolean.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-core-utils.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-core-utils.h,
+	  branches/deprecated-cleanup/src/gnome-search/search-date.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-double.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-int64.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-numeric.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-reconciled.c,
+	  branches/deprecated-cleanup/src/gnome-search/search-string.c:
+	  Convert the search selection widgets over from the deprecated
+	  GtkOptionMenu to a GtkComboBox.
+
+2006-06-05 04:21  hampton
+
+	* [r14331] trunk/ChangeLog, trunk/src/gnome-utils/gnc-icons.c,
+	  trunk/src/gnome-utils/test/test-gnc-dialog.c: Fix a couple of
+	  files that didn't include config.h.
+
+2006-06-05 03:39  warlord
+
+	* [r14330] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/glib26/Makefile.am, trunk/src/app-utils/Makefile.am,
+	  trunk/src/bin/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/gnome-search/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/test/Makefile.am,
+	  trunk/src/gnome/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/log-replay/Makefile.am,
+	  trunk/src/import-export/ofx/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am: Move the GLIB26
+	  compatibility checks to configure.in. Just modify GLIB_LIBS and
+	  GLIB_CFLAGS so everyone properly links against the glib26
+	  compatibility library when necessary.
+
+2006-06-05 02:44  hampton
+
+	* [r14328] trunk/ChangeLog, trunk/src/app-utils/Makefile.am,
+	  trunk/src/bin/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/gnome-search/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/test/Makefile.am,
+	  trunk/src/gnome/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/log-replay/Makefile.am,
+	  trunk/src/import-export/ofx/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am: Don't ever reference
+	  lib/glib26 if the host system has glib 2.6 or better installed.
+
+2006-06-05 01:48  hampton
+
+	* [r14327] trunk/ChangeLog, trunk/src/bin/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/gnome-search/Makefile.am,
+	  trunk/src/gnome-utils/test/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/log-replay/Makefile.am,
+	  trunk/src/import-export/ofx/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am: Add lib/glib26 to the
+	  include and library paths.
+
+2006-06-05 01:47  hampton
+
+	* [r14326] trunk/src/gnome-utils/gnc-plugin-page.h: Include
+	  gkeyfile.h instead of explicitly declaring a data type. This
+	  prevents include file ordering problems.
+
+2006-06-05 00:39  hampton
+
+	* [r14325] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/core-utils/gnc-gtk-utils.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-account-sel.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-currency-edit.c:
+	  Set up the list store completion data structures in common code.
+
+2006-06-04 23:34  hampton
+
+	* [r14324] trunk/ChangeLog: Add bug id.
+
+2006-06-04 22:25  warlord
+
+	* [r14323] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-plugin-file-history.c: swap the
+	  #includes so it builds on FC3 w/ glib-2.4
+
+2006-06-04 21:43  jsled
+
+	* [r14322] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c: Use
+	  UTF8_STRING for copy/pastes, as it's at least 4 whole characters
+	  better than just "STRING".
+
+2006-06-04 21:02  hampton
+
+	* [r14321] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-plugin-file-history.c: If the g2 file
+	  history list is empty, then copy the file history list over from
+	  Gnucash 1.x gnome settings file. #342724.
+
+2006-06-04 18:27  jsled
+
+	* [r14320] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c:
+	  Bug#333299: Handle selections more correctly in a utf8 world,
+	  within GnuCash at least.
+
+2006-06-04 15:01  jsled
+
+	* [r14319] trunk/ChangeLog, trunk/src/gnome/druid-loan.c:
+	  Bug#343795: Treat all numbers in a auto-decimal-point-safe way.
+
+2006-06-04 12:23  andi5
+
+	* [r14318] trunk/ChangeLog, trunk/src/gnome-utils/gnc-html.c,
+	  trunk/src/gnome-utils/gnc-html.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Add
+	  gnc_html_copy and enable report pages to copy to clipboard.
+	  Fixes #343645. Readd descriptions for Cut/Copy/Paste actions in
+	  register pages.
+
+2006-06-04 05:15  warlord
+
+	* [r14317] trunk/ChangeLog,
+	  trunk/src/business/dialog-tax-table/tax-tables.glade,
+	  trunk/src/engine/Split.c: Properly round values when setting the
+	  Base Value. Fixes #337505. (also fix a string, but the fixed
+	  string is already translated so shouldn't be a problem).
+
+2006-06-04 00:51  jsled
+
+	* [r14316] trunk/ChangeLog, trunk/src/gnome/glade/lots.glade,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/lot-viewer.c,
+	  trunk/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml,
+	  trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml: Bug#343772:
+	  Re-enable View Lots; disable 'View' button. Fix clist/lot-title
+	  handling bug.
+
+2006-06-03 21:20  hampton
+
+	* [r14309] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/combocell-gnome.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.h: Only use
+	  the amount of space required to show all the entries in the
+	  popup, not all the available space. Fixes #343242.
+
+2006-06-03 19:58  hampton
+
+	* [r14308] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: The register
+	  code shouldn't process any keystrokes that have a "modifier"
+	  (e.g. Alt, Meta, etc.) key pressed. This allows
+	  Alt-Ctl-Pgup/Down in a register to change the notebook page,
+	  just like from the accounts page. Also remove some dead code.
+
+2006-06-03 14:55  chris
+
+	* [r14303]
+	  branches/register-rewrite/src/backend/file/gnc-commodity-xml-v2.c:
+	  Change of variable name: s/exchange/namespace/
+
+2006-06-03 14:51  chris
+
+	* [r14302] trunk/src/backend/file/test/test-load-backend.c,
+	  trunk/src/backend/file/test/test-load-xml2.c,
+	  trunk/src/backend/postgres/test/test-db.c,
+	  trunk/src/backend/postgres/test/test-load-backend.c,
+	  trunk/src/backend/postgres/test/test-period.c: When loading the
+	  gmodule backends from the test suite, look in ../.libs for the
+	  real module.
+
+2006-06-03 13:42  chris
+
+	* [r14301] trunk/configure.in, trunk/po/POTFILES.skip,
+	  trunk/src/backend/file/Makefile.am,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/bin/gnucash-bin.c,
+	  trunk/src/import-export/Makefile.am: Disable support for the old
+	  binary file format.
+
+2006-06-03 08:59  andi5
+
+	* [r14300] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.h,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: Link gnome-utils
+	  against backend/file and remove symbol lookup in
+	  druid-gnc-xml-import.c.
+
+2006-06-03 08:27  andi5
+
+	* [r14299] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: Add GDK_Menu
+	  as shortcut for showing register popups. Fixes 343244.
+
+2006-06-02 21:43  hampton
+
+	* [r14298] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-window.c: The progress bar changes
+	  size when text is added/removed. Prevent these changes by
+	  setting the text to a single space when there is no text to
+	  display. Fixes #343455.
+
+2006-06-02 21:02  hampton
+
+	* [r14297] trunk/ChangeLog, trunk/src/gnome/window-reconcile.c:
+	  Limit the reconciliation date to the past or today, never the
+	  future. Fixes #343527.
+
+2006-06-02 01:50  warlord
+
+	* [r14296] trunk/ChangeLog, trunk/src/backend/Makefile.am,
+	  trunk/src/backend/file/Makefile.am,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/gnc-backend-file.h,
+	  trunk/src/backend/gnc-backend-api.h,
+	  trunk/src/business/business-core/file/Makefile.am,
+	  trunk/src/gnome/Makefile.am: Refactor the file backend into a
+	  shared library and a loadable module. This should let us build
+	  on both Win32 AND MacOS, and means we don't need to compile the
+	  file-backend sources multiple times.
+
+2006-06-01 23:06  warlord
+
+	* [r14289] trunk/ChangeLog, trunk/po/nb.po: * po/nb.po: updated
+	  Norwegian Bokmål translation by Sigve Indregard
+
+2006-06-01 21:02  warlord
+
+	* [r14288] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/gnome-utils/dialog-preferences.c: * configure.in:
+	  Don't need to patch libtool for darwin anymore. Patch by David
+	  Reiser. * src/gnome-utils/dialog-preferences.c: fix non-C99
+	  construct so the file builds again.
+
+2006-06-01 15:30  andi5
+
+	* [r14287] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/glade/preferences.glade: Do not try to
+	  find positions for alphabetic insertions of add_on pages, but
+	  rather append and then sort pages in the end. Solves appearance
+	  of pref dialog in non-C locales. Move "Accounting Period" to the
+	  top, regardless of above.
+
+2006-06-01 08:56  andi5
+
+	* [r14286] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Cancel renaming of a
+	  page when GDK_Escape is pressed. Fixes #343226.
+
+2006-06-01 01:44  chris
+
+	* [r14285] trunk/src/gnome-utils/gnc-tree-model-account.c: Restore
+	  two behaviors removed by r14283, and add a third. 1) Invalidate
+	  outstanding iterators when a row is inserted or deleted. 2) Emit
+	  row_changed for ancestors of inserted or deleted row. New) Emit
+	  row_changed for ancestors of a changed account, too.
+
+2006-05-31 19:30  andi5
+
+	* [r14283] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: Replace
+	  gnc_tree_model_account_path_changed with manual checks whether
+	  the inserted (resp. deleted) account is the first (resp. last)
+	  account in its level and call gtm_row_has_child_toggled only in
+	  these cases. Might fix #343405, as GtkTreeModelFilter seems to
+	  make (false) assumptions when being woken up too often.
+
+2006-05-31 04:30  chris
+
+	* [r14281]
+	  branches/register-rewrite/src/backend/file/io-example-account.c,
+	  branches/register-rewrite/src/backend/file/io-gncbin-r.c,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v1.c,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.c,
+	  branches/register-rewrite/src/backend/postgres/price.c,
+	  branches/register-rewrite/src/backend/postgres/test/test-db.c,
+	  branches/register-rewrite/src/engine/Account.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.h,
+	  branches/register-rewrite/src/engine/gw-engine-spec.scm,
+	  branches/register-rewrite/src/engine/iso-currencies-to-c,
+	  branches/register-rewrite/src/engine/test-core/test-engine-stuff.c,
+	  branches/register-rewrite/src/engine/test/test-commodities.c,
+	  branches/register-rewrite/src/experimental/cgi-bin/hello.c,
+	  branches/register-rewrite/src/gnome-utils/dialog-commodity.c,
+	  branches/register-rewrite/src/gnome/dialog-commodities.c,
+	  branches/register-rewrite/src/import-export/binary-import/druid-commodity.c,
+	  branches/register-rewrite/src/import-export/qif-import/druid-qif-import.c:
+	  Internalize the commodity table membership within the commodity.
+	  gnc_commoditys now handle their own gnc_commodity_table
+	  membership automatically. New commodities are automatically
+	  inserted in to their table and automatically removed from their
+	  table when they're destroyed. Any changes to a commodity that
+	  affect its key in the table (e.g. mnemonic or namespace) are
+	  handled internally by removing and re-adding the commodity.
+	  gnc_commodity_table_insert() and gnc_commodity_table_remove()
+	  are now private.
+
+2006-05-31 04:07  chris
+
+	* [r14280] branches/register-rewrite/lib/libqof/qof/qofutil.c: Get
+	  a valid string from CACHE_INSERT(), even when we insert NULL.
+	  This will let us dereference the result without checking it,
+	  like would be done in a hashtable key function.
+
+2006-05-31 02:04  chris
+
+	* [r14279] branches/register-rewrite/src/engine/gnc-commodity.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.h: Change
+	  return value type of gnc_commodity_table_has_namespace() to
+	  gboolean.
+
+2006-05-31 01:59  chris
+
+	* [r14278] branches/register-rewrite/src/engine/SchedXaction.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.c: Minor
+	  formatting and control-flow simplifications.
+
+2006-05-31 01:41  chris
+
+	* [r14277] branches/register-rewrite/src/engine/gnc-commodity.c:
+	  Employ CACHE_REPLACE().
+
+2006-05-31 00:56  chris
+
+	* [r14276] trunk/src/gnome/gnucash.desktop.in,
+	  trunk/src/pixmaps/Makefile.am: GNOME integration, part 2. Bug
+	  #342936. Use the same icon for the window manager as for the
+	  desktop.
+
+2006-05-30 20:30  warlord
+
+	* [r14259] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncAddress.c: remove some
+	  duplicated code.
+
+2006-05-30 20:26  warlord
+
+	* [r14258] trunk/ChangeLog, trunk/po/es.po: Updated Spanish
+	  Translation from Eneko Lacunza
+
+2006-05-30 04:41  hampton
+
+	* [r14254] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-customer.c,
+	  trunk/src/business/business-gnome/dialog-employee.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-job.c,
+	  trunk/src/business/business-gnome/dialog-order.c,
+	  trunk/src/business/business-gnome/dialog-vendor.c,
+	  trunk/src/gnc-ui.h, trunk/src/gnome-search/dialog-search.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome/dialog-print-check.c,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/window-reconcile.c: Update the help file names
+	  now that the docs are xml instead of html. Fixes #343255.
+
+2006-05-30 04:39  hampton
+
+	* [r14253] trunk/src/scm/Makefile.am, trunk/src/scm/doc.scm,
+	  trunk/src/scm/help-topics-index.old,
+	  trunk/src/scm/help-topics-index.scm, trunk/src/scm/main.scm:
+	  Remove old help-topics-index files.
+
+2006-05-30 02:06  chris
+
+	* [r14252]
+	  branches/register-rewrite/src/backend/file/gnc-account-xml-v2.c,
+	  branches/register-rewrite/src/backend/postgres/account.c,
+	  branches/register-rewrite/src/engine/Account.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.c,
+	  branches/register-rewrite/src/engine/gnc-commodity.h: Factor a
+	  1.8 compatibility hack out of the normal calling sequence into a
+	  stand-alone function. This will allow us to mark the Account's
+	  commodity as const.
+
+2006-05-29 22:07  chris
+
+	* [r14251] trunk/src/gnome/Makefile.am,
+	  trunk/src/gnome/gnucash.desktop.in,
+	  trunk/src/gnome/gnucash.keys.in, trunk/src/gnome/gnucash.mime,
+	  trunk/src/pixmaps/Makefile.am: Improve GNOME desktop
+	  integration. Bug #342936 Patch supplied by Stanislav Brabec
+	  <sbrabec at suse.cz>.
+
+2006-05-29 21:25  chris
+
+	* [r14250]
+	  branches/register-rewrite/src/gnome-utils/test/Makefile.am,
+	  branches/register-rewrite/src/gnome-utils/test/test-register.c:
+	  Add test-register to test-drive the transaction tree-view/model.
+
+2006-05-29 21:18  chris
+
+	* [r14249] branches/register-rewrite/src/gnome-utils/Makefile.am,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-model-transaction.h,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.h:
+	  Add a treeview and treemodel for transactions.
+
+2006-05-29 20:59  chris
+
+	* [r14248] branches/register-rewrite/lib/libqof/qof/qofsession.c,
+	  branches/register-rewrite/lib/libqof/qof/qofsession.h: Factor
+	  out one chuck of code into a static function.
+
+2006-05-29 20:55  chris
+
+	* [r14247]
+	  branches/register-rewrite/src/gnome-utils/dialog-transfer.c,
+	  branches/register-rewrite/src/gnome-utils/dialog-transfer.h,
+	  branches/register-rewrite/src/register/ledger-core/split-register-control.c:
+	  Two changes to gnc_xfer_dialog_run_exchange_dialog(). - pass the
+	  converted amount back to the caller - pass in the commodity
+	  directly, instead getting the commodity from an account.
+
+2006-05-29 20:48  chris
+
+	* [r14246] branches/register-rewrite/src/engine/Split.c,
+	  branches/register-rewrite/src/engine/Split.h,
+	  branches/register-rewrite/src/engine/Transaction.c,
+	  branches/register-rewrite/src/engine/Transaction.h,
+	  branches/register-rewrite/src/register/ledger-core/split-register-model.c:
+	  Some convenient engine api changes/additions. - make
+	  xaccSplitConvertAmount() take the target commodity instead of
+	  account - fix the one caller. - add
+	  xaccTransSetRateForCommodity(),
+	  xaccTransAdjustRateForCommodity() and
+	  xaccTransGetRateForCommodity() for managing the rates internal
+	  to a trans.
+
+2006-05-29 20:43  chris
+
+	* [r14245]
+	  branches/register-rewrite/src/engine/test-core/test-engine-stuff.c:
+	  Ensure that each test transaction's currency is the commodity of
+	  one of its splits' accounts.
+
+2006-05-29 20:18  chris
+
+	* [r14244] branches/register-rewrite/src/app-utils/options.scm:
+	  Add and correct some comments.
+
+2006-05-29 20:17  chris
+
+	* [r14243]
+	  branches/register-rewrite/src/app-utils/gnc-exp-parser.c,
+	  branches/register-rewrite/src/engine/Account.c,
+	  branches/register-rewrite/src/engine/cap-gains.c: Some comments
+	  and line-wraps.
+
+2006-05-29 20:13  chris
+
+	* [r14242]
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view.c:
+	  Change some of our function name prefixes from 'gtk_' to 'gnc_'.
+
+2006-05-29 20:11  chris
+
+	* [r14241]
+	  branches/register-rewrite/src/gnome-utils/dialog-account.c: Line
+	  wraps.
+
+2006-05-29 20:09  chris
+
+	* [r14240]
+	  branches/register-rewrite/src/import-export/test/Makefile.am:
+	  Rearrange and remove duplicate Makefile entry.
+
+2006-05-29 19:53  chris
+
+	* [r14239]
+	  branches/register-rewrite/src/gnome/gnc-plugin-page-register.c:
+	  Remove unused variable.
+
+2006-05-29 19:45  chris
+
+	* [r14238] branches/register-rewrite/AUTHORS,
+	  branches/register-rewrite/ChangeLog,
+	  branches/register-rewrite/Makefile.TAGS,
+	  branches/register-rewrite/Makefile.am,
+	  branches/register-rewrite/lib/libqof/backend/file/Makefile.am,
+	  branches/register-rewrite/lib/libqof/qof/qofsession.c,
+	  branches/register-rewrite/packaging/gnucash-1.9.x.ebuild,
+	  branches/register-rewrite/po/en_GB.po,
+	  branches/register-rewrite/po/es.po,
+	  branches/register-rewrite/po/fr.po,
+	  branches/register-rewrite/src/backend/file/Makefile.am,
+	  branches/register-rewrite/src/backend/file/gnc-backend-file.c,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.c,
+	  branches/register-rewrite/src/backend/file/io-gncxml-v2.h,
+	  branches/register-rewrite/src/backend/file/sixtp.c,
+	  branches/register-rewrite/src/backend/file/sixtp.h,
+	  branches/register-rewrite/src/backend/postgres/Makefile.am,
+	  branches/register-rewrite/src/bin/gnucash-bin.c,
+	  branches/register-rewrite/src/business/business-reports/aging.scm,
+	  branches/register-rewrite/src/engine/gnc-engine.c,
+	  branches/register-rewrite/src/gnome-utils/druid-gnc-xml-import.c,
+	  branches/register-rewrite/src/gnome-utils/gnc-tree-view.c,
+	  branches/register-rewrite/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/register-rewrite/src/import-export/hbci/gnc-hbci-utils.c,
+	  branches/register-rewrite/src/pixmaps/gnucash_splash.png: Bump
+	  the branch root up to r14237 from trunk.
+
+2006-05-29 19:24  chris
+
+	* [r14237] trunk/src/business/business-reports/aging.scm: Fix a
+	  crash in the aging report. Breaks a string, but seeing English
+	  is better than seeing a guile stack trace.
+
+2006-05-29 16:38  jsled
+
+	* [r14236] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild:
+	  Remove support for being a dual-nature -release and -svn ebuild.
+	  Misc cleanups.
+
+2006-05-29 07:08  andi5
+
+	* [r14235] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c:
+	  Add wait_for_gzip to avoid reading from a file that is still
+	  being written to by a child process, a race condition at the end
+	  of the xml import druid.
+
+2006-05-29 04:53  chris
+
+	* [r14233] trunk/Makefile.am: revert r14177 because it fails make
+	  dist.
+
+2006-05-29 04:52  chris
+
+	* [r14232] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/engine/gnc-engine.c: Move the error-handling of
+	  failure to initialize the engine from gnc-engine.c to
+	  gnucash-bin.c. This allows tests that call gnc_engine_init() but
+	  fail to find a backend to still pass.
+
+2006-05-28 21:24  hampton
+
+	* [r14229] trunk/AUTHORS, trunk/ChangeLog,
+	  trunk/src/pixmaps/gnucash_splash.png: New splash screen from
+	  Joshua Facemyer / Impressus Art <faceman at impressusart.com>.
+
+2006-05-28 21:22  hampton
+
+	* [r14228] trunk/po/en_GB.po: Updated translation from Nigel
+	  Titley.
+
+2006-05-28 21:21  hampton
+
+	* [r14227] trunk/src/backend/file/io-gncxml-v2.c: Fix gcc4
+	  complaint about unused return value of the write function.
+
+2006-05-28 17:47  andi5
+
+	* [r14217] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/backend/file/io-gncxml-v2.h,
+	  trunk/src/backend/file/sixtp.c, trunk/src/backend/file/sixtp.h,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: Move
+	  is_gzipped_file to io-gncxml-v2.c. Extend try_gz_open to read
+	  from gzipped files. Let gnc_xml2_find_ambiguous and
+	  parse_with_subst_push_handler read gzipped files. Add
+	  gnc_is_our_first_xml_chunk. Remove "error" from argument list of
+	  gnc_xml2_find_ambiguous.
+
+2006-05-28 14:34  jsled
+
+	* [r14214] trunk/Makefile.TAGS: only conditionally remove the file.
+
+2006-05-28 02:23  chris
+
+	* [r14213] trunk/src/gnome-utils/gnc-tree-view.c: The description
+	  for the "sort_column" gconf key of the tree_views says,
+	  "Possible values for this setting are the name of any column in
+	  this dialog (see the column_order key) or the keyword 'none'."
+	  The third click on a column header removes the sorting by that
+	  column. This patch will now store 'none' for the sort_column in
+	  that case.
+
+2006-05-27 19:05  chris
+
+	* [r14212] trunk/src/gnome-utils/gnc-tree-view.c: Use
+	  GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID instead of '0' as the
+	  fallback sort column, since column 0 may not be sortable with
+	  the default sort function. Set the MODEL_COLUMN column property,
+	  even when it is -1, since gnc_tree_view_set_sort_column() looks
+	  for this condition. Make the
+	  gnc_tree_view_count_visible_columns() function only count
+	  regular columns, so that the special columns don't count, but
+	  count any DEFAULT_VISIBLE columns, even if they've been hidden
+	  by gconf. That way, the special columns will still show and
+	  allow the user to unhide columns.
+
+2006-05-27 15:09  jsled
+
+	* [r14211] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild:
+	  Add docs extraction, un-slot, un-/opt-ize.
+
+2006-05-27 14:19  chris
+
+	* [r14210] trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/src/backend/file/Makefile.am,
+	  trunk/src/backend/postgres/Makefile.am: Add -avoid-version to
+	  LDFLAGS of gmodule backends. Hopefully this will solve the
+	  problem Macs are having dlopen'ing them.
+
+2006-05-27 10:44  andi5
+
+	* [r14209] trunk/ChangeLog,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: When the user
+	  chooses another default encoding, do not recheck the file for
+	  ambiguous words, but rather just resort what has been found
+	  before.
+
+2006-05-26 21:45  warlord
+
+	* [r14208] trunk/ChangeLog, trunk/lib/libqof/qof/qofsession.c,
+	  trunk/src/engine/gnc-engine.c: QOF should load its own backend
+	  libraries. It shouldn't depend on apps to load QOF libraries.
+	  Make sure app-defined backends are used first. Fix a memory leak
+	  in qofsession.
+
+2006-05-26 19:45  cstim
+
+	* [r14207] trunk/po/fr.po: Updated French translation by Fabrice
+	  Kurz
+
+2006-05-26 19:45  warlord
+
+	* [r14206] trunk/ChangeLog, trunk/src/engine/gnc-engine.c:
+	  force-exit gnucash if a required library can't be loaded.
+
+2006-05-26 15:41  warlord
+
+	* [r14205] trunk/ChangeLog, trunk/src/engine/gnc-engine.c: load
+	  the qsf backend from the right place.
+
+2006-05-26 12:57  cstim
+
+	* [r14204] trunk/src/import-export/hbci/gnc-hbci-utils.c: Remove
+	  version query that is obsolete due to the configure.in required
+	  version
+
+2006-05-26 12:53  cstim
+
+	* [r14203] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c: Simplify
+	  calling the aqhbci setup wizard for aqbanking>=1.9.1 because we
+	  don't need to select an aqbanking backend beforehand.
+
+2006-05-26 11:01  cstim
+
+	* [r14202] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza
+
+2006-05-26 01:45  chris
+
+	* [r14201] branches/register-rewrite: Branch from trunk at r14200
+	  for some treeview register work
+
+2006-05-26 00:23  chris
+
+	* [r14200] trunk/ChangeLog, trunk/configure.in: REactivate
+	  --enable-sql by reverting part of r14175; see bug#332251
+
+2006-05-26 00:14  chris
+
+	* [r14199] trunk/src/engine/gnc-engine.c: Load the file backend
+	  _after_ the qsf backend, so that it gets tried _before_ the qsf
+	  backend, because the qsf backend prints some noisy error
+	  messages while figuring out that the gnucash file isn't a qsf
+	  file.
+
+2006-05-26 00:10  chris
+
+	* [r14198] trunk/ChangeLog,
+	  trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/lib/libqof/backend/file/qof-backend-qsf.h,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/qof/guid.c, trunk/lib/libqof/qof/qof.h,
+	  trunk/lib/libqof/qof/qofbackend-p.h,
+	  trunk/lib/libqof/qof/qofbackend.c,
+	  trunk/lib/libqof/qof/qofbackend.h,
+	  trunk/lib/libqof/qof/qofbook.c,
+	  trunk/lib/libqof/qof/qofsession-p.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/lib/libqof/qof/qofsession.h,
+	  trunk/lib/libqof/qof/qofutil.c, trunk/lib/libqof/qof/qofutil.h,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/gnc-backend-file.h,
+	  trunk/src/backend/file/test/test-load-backend.c,
+	  trunk/src/backend/file/test/test-load-xml2.c,
+	  trunk/src/backend/postgres/Makefile.am,
+	  trunk/src/backend/postgres/PostgresBackend.c,
+	  trunk/src/backend/postgres/PostgresBackend.h,
+	  trunk/src/backend/postgres/test/test-db.c,
+	  trunk/src/backend/postgres/test/test-load-backend.c,
+	  trunk/src/backend/postgres/test/test-period.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Makefile.am,
+	  trunk/src/engine/Period.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/gnc-commodity.h, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-engine.h, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/engine/gnc-session-scm.c,
+	  trunk/src/engine/gnc-session-scm.h,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c,
+	  trunk/src/gnome-utils/gnc-main-window.c: Merge 'misc-backend' -r
+	  14160:14184 into trunk. This includes the now semi-functional
+	  postgres backend.
+
+2006-05-24 23:55  chris
+
+	* [r14184] branches/misc-backend/ChangeLog: Sync ChangeLog with
+	  'svn log -v' from misc-backend branch.
+
+2006-05-24 23:49  chris
+
+	* [r14183] trunk/ChangeLog: Sync ChangeLog with 'svn log -v'
+
+2006-05-24 23:27  jsled
+
+	* [r14182] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-load.c:
+	  Bug#340885: Disable skipping hidden accounts for the purposes of
+	  quickfill completion population.
+
+2006-05-24 22:57  chris
+
+	* [r14181] branches/misc-backend/lib/libqof/qof/guid.c: The
+	  postgres backend depends on the value of the null guid, so
+	  revert it to its 1.8 value.
+
+2006-05-24 22:54  chris
+
+	* [r14180] trunk/lib/libqof/qof/gnc-date.c: Consistently pad date
+	  formats with zeros instead of spaces.
+
+2006-05-24 15:53  warlord
+
+	* [r14178] trunk/ChangeLog,
+	  trunk/src/report/report-gnome/window-report.c: Re-enable window
+	  sensitivity if the report fails. Fixes #341610
+
+2006-05-24 15:42  cstim
+
+	* [r14177] trunk/Makefile.am: Explicitly remove all compiled
+	  gettext catalogs from make dist (in case the gettext version
+	  were including them in make dist) because they will be compiled
+	  at compile time anyway.
+
+2006-05-24 09:17  cstim
+
+	* [r14175] trunk/ChangeLog, trunk/configure.in: Deactivate
+	  --enable-sql because PostgreSQL backend is still broken and we
+	  can't fix it before 2.0.0; bug#332251.
+
+2006-05-24 09:01  cstim
+
+	* [r14174] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza
+
+2006-05-24 08:59  cstim
+
+	* [r14173] trunk/po/el.po: Updated Greek translation by Nikos
+	  Charonitakis
+
+2006-05-24 03:55  chris
+
+	* [r14170] branches/misc-backend/src/backend/postgres/Makefile.am,
+	  branches/misc-backend/src/backend/postgres/PostgresBackend.c,
+	  branches/misc-backend/src/engine/Account.c,
+	  branches/misc-backend/src/engine/gnc-commodity.h: Trivial
+	  comments/cleanups.
+
+2006-05-24 03:53  chris
+
+	* [r14169]
+	  branches/misc-backend/src/gnome-utils/gnc-html-graph-gog.c:
+	  Clarify unused parameters.
+
+2006-05-24 03:48  chris
+
+	* [r14168] branches/misc-backend/src/gnome-utils/gnc-file.c:
+	  There's no need to rerun the book-saved callbacks in
+	  gnc_file_save_as() because they've already been run in
+	  gnc_file_save()
+
+2006-05-24 03:44  chris
+
+	* [r14167] branches/misc-backend/src/gnome-utils/gnc-file.c,
+	  branches/misc-backend/src/gnome-utils/gnc-main-window.c: Use the
+	  session URL instead of file path for 1) determining if we have
+	  something open 2) determining if we're saving exactly what we
+	  have open 3) updating the title bar
+
+2006-05-24 03:34  chris
+
+	* [r14166]
+	  branches/misc-backend/lib/libqof/backend/file/Makefile.am,
+	  branches/misc-backend/lib/libqof/backend/file/qof-backend-qsf.h,
+	  branches/misc-backend/lib/libqof/backend/file/qsf-backend.c,
+	  branches/misc-backend/lib/libqof/qof/qof.h,
+	  branches/misc-backend/lib/libqof/qof/qofsession.c: Move the QSF
+	  backend from custom init to GModule init.
+
+2006-05-24 03:21  chris
+
+	* [r14165]
+	  branches/misc-backend/lib/libqof/backend/file/qsf-backend.c,
+	  branches/misc-backend/lib/libqof/qof/qofbackend-p.h,
+	  branches/misc-backend/lib/libqof/qof/qofbackend.c,
+	  branches/misc-backend/lib/libqof/qof/qofbackend.h,
+	  branches/misc-backend/lib/libqof/qof/qofsession-p.h,
+	  branches/misc-backend/lib/libqof/qof/qofsession.c,
+	  branches/misc-backend/lib/libqof/qof/qofsession.h,
+	  branches/misc-backend/lib/libqof/qof/qofutil.c,
+	  branches/misc-backend/lib/libqof/qof/qofutil.h,
+	  branches/misc-backend/src/backend/file/gnc-backend-file.c,
+	  branches/misc-backend/src/backend/file/gnc-backend-file.h,
+	  branches/misc-backend/src/backend/file/test/test-load-backend.c,
+	  branches/misc-backend/src/backend/file/test/test-load-xml2.c,
+	  branches/misc-backend/src/backend/postgres/PostgresBackend.c,
+	  branches/misc-backend/src/backend/postgres/PostgresBackend.h,
+	  branches/misc-backend/src/backend/postgres/test/test-db.c,
+	  branches/misc-backend/src/backend/postgres/test/test-load-backend.c,
+	  branches/misc-backend/src/backend/postgres/test/test-period.c,
+	  branches/misc-backend/src/engine/Period.c,
+	  branches/misc-backend/src/engine/Transaction.c,
+	  branches/misc-backend/src/engine/gnc-engine.c,
+	  branches/misc-backend/src/engine/gnc-engine.h,
+	  branches/misc-backend/src/engine/gnc-pricedb.c,
+	  branches/misc-backend/src/engine/gnc-session-scm.c,
+	  branches/misc-backend/src/engine/gnc-session-scm.h,
+	  branches/misc-backend/src/engine/gw-engine-spec.scm: Decrease
+	  coupling between backends and engine: - do not include the
+	  (supposedly) private qofbackend-p.h in qofutil.h, instead,
+	  include it explictly in only the places that need it. - since
+	  backends are GModules, use the GModule module init hook, instead
+	  of rolling our own and using a different function for each
+	  backend - loop over a list of backends for the engine to try to
+	  load - include the postgres backend in that list of backends -
+	  move qof_session_export() from gnc-engine.c to qofsession.c -
+	  publicize qof_backend_set_error() and qof_backend_get_error() -
+	  privatize QofBookFileType to gnc-backend-file.c Incidental: -
+	  Plug a string leak in qofsession.c - drop the unused
+	  gnc_session_scm_export code - Drop unimplemented prototype
+	  gncBackendInit_file() - Formatting cleanups.
+
+2006-05-24 03:18  chris
+
+	* [r14164] branches/misc-backend/lib/libqof/qof/qofbook.c:
+	  Recognize unequal books as unequal.
+
+2006-05-24 03:16  chris
+
+	* [r14163] branches/misc-backend/src/engine/Makefile.am: Make sure
+	  GNC_LIBDIR is updated when the installation dir changes.
+
+2006-05-24 01:44  jsled
+
+	* [r14162] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: Bug#342182:
+	  change gtk-workaround check to be more specific in face of
+	  evidence.
+
+2006-05-24 01:40  chris
+
+	* [r14161] branches/misc-backend: Branched from trunk at r14160,
+	  hoping postgres will work again someday...
+
+2006-05-24 01:25  chris
+
+	* [r14159] trunk/lib/guile-www/cgi.scm,
+	  trunk/lib/guile-www/http.scm,
+	  trunk/src/import-export/qif-import/qif-file.scm,
+	  trunk/src/import-export/qif-io-core/qif-file.scm,
+	  trunk/src/scm/command-line.scm: Fix Bug#342736 by replacing
+	  "make-shared-substring" with "substring". Guile 1.8
+	  automatically shares strings as copy-on-write and no longer
+	  provides the "make-shared-substring" procedure.
+
+2006-05-24 00:49  chris
+
+	* [r14158] trunk/lib/libqof/qof/gnc-date.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c: Fix Bug#342546 by
+	  using the pref date format instead of locale. Also prefix-pad
+	  fixed-width date formats with '0'.
+
+2006-05-23 14:41  warlord
+
+	* [r14157]
+	  trunk/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml:
+	  re-add the test-druid menu item but leave it commented out
+
+2006-05-23 14:07  cstim
+
+	* [r14156] trunk/accounts/el_GR/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/el_GR/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/el_GR/acctchrt_common.gnucash-xea: Updated Greek
+	  account templates by Nikos Charonitakis
+
+2006-05-23 11:20  cstim
+
+	* [r14154] trunk/README.dependencies: Add versions of latest
+	  suse10.1
+
+2006-05-23 08:09  cstim
+
+	* [r14153] trunk/po/fr.po: Updated French translation by Fabrice
+	  Kurz
+
+2006-05-22 19:27  cstim
+
+	* [r14152] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml,
+	  trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml: Deactivate
+	  the "View Lots" menu item because the lot viewer is unfinished
+	  as well.
+
+2006-05-22 18:26  warlord
+
+	* [r14151] trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml,
+	  trunk/src/import-export/qif-import/gnc-plugin-qif-import.c:
+	  remove hook to test druid for 2.0 release.
+
+2006-05-22 18:21  cstim
+
+	* [r14150] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml: Deactivate
+	  the "Close Books" menu item because that feature is unfinished
+	  as well.
+
+2006-05-22 18:14  cstim
+
+	* [r14148] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml: Hide the
+	  "Export account chart as QSF" as well. Not ready for 2.0.0 due
+	  to e.g. bug#341559.
+
+2006-05-21 20:02  cstim
+
+	* [r14147] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml: Hide the
+	  "QSF Import" for the 2.0.0 release because it is not yet
+	  finished. Can be activated again in the next developing HEAD
+	  branch.
+
+2006-05-21 13:04  cstim
+
+	* [r14146] trunk/AUTHORS, trunk/ChangeLog, trunk/configure.in,
+	  trunk/po/ro.po: Initial Romanian translation by Danny Fischer
+
+2006-05-21 13:01  cstim
+
+	* [r14145] trunk/po/ru.po: Updated Russian translation by Vladimir
+	  Turbaevsky
+
+2006-05-21 12:59  cstim
+
+	* [r14144] trunk/po/sk.po: Updated Slovak translation by Zdenko
+	  Podobný
+
+2006-05-21 12:58  cstim
+
+	* [r14143] trunk/po/sv.po: Updated Swedish translation by Jonas
+	  Norling
+
+2006-05-20 10:25  andi5
+
+	* [r14142] trunk/ChangeLog, trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-file.h,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c: Extend
+	  gnc_file_dialog to take a GList of GtkFileFilters instead of a
+	  filter string. Allows patterns like *.[Qq][Ii][Ff] without
+	  messing up the dialog, fixes #336124.
+
+2006-05-20 05:54  hampton
+
+	* [r14141] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-options.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-account-sel.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-account-sel.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-date-delta.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-date-delta.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-frequency.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-frequency.h,
+	  branches/deprecated-cleanup/src/gnome/glade/sched-xact.glade,
+	  branches/deprecated-cleanup/src/gnome/gnc-plugin-page-account-tree.c:
+	  Second cleanup pass. Conversions from GtkOptionMenu to
+	  GtkComboBoxEntry.
+
+2006-05-20 05:53  hampton
+
+	* [r14140] branches/deprecated-cleanup/src/core-utils/Makefile.am,
+	  branches/deprecated-cleanup/src/core-utils/gnc-gtk-utils.c,
+	  branches/deprecated-cleanup/src/core-utils/gnc-gtk-utils.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-currency-edit.c:
+	  Extract functions that can be applied to a GtkComboBoxEntry to
+	  require that all user typed entries exist in the embedded
+	  GtkTreeModel or else they are rejected.
+
+2006-05-20 05:52  hampton
+
+	* [r14139]
+	  branches/deprecated-cleanup/src/gnome/dialog-tax-info.c,
+	  branches/deprecated-cleanup/src/register/register-gnome/gnucash-color.c:
+	  Simple cleanups.
+
+2006-05-20 03:41  hampton
+
+	* [r14138] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-grid.c: Make the blue
+	  past/future dividing line thicker so that it is obvious. Fixes
+	  #342051.
+
+2006-05-20 02:02  hampton
+
+	* [r14137] trunk/ChangeLog, trunk/configure.in,
+	  trunk/macros/legacy_macros.m4,
+	  trunk/src/engine/engine-helpers.c: Make the removal of
+	  scm_block_gc conditional on having guile 1.8 installed.
+
+2006-05-19 23:30  hampton
+
+	* [r14136] trunk/ChangeLog, trunk/src/engine/engine-helpers.c:
+	  More of the patch from Bill Nottingham for compiling with guile
+	  1.8.
+
+2006-05-18 11:36  cstim
+
+	* [r14127] trunk/po/fr.po: Updated French translation by Jonathan
+	  Ernst. He said: I didn't translate anything new, but I fixed a
+	  lot of strings that where not following the Gnome-Fr translation
+	  guidelines (non-breaking spaces befor ":", web->Web, menu
+	  accelerators)."
+
+2006-05-18 11:32  cstim
+
+	* [r14126] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza
+
+2006-05-18 02:06  hampton
+
+	* [r14122] trunk/ChangeLog, trunk/src/engine/Account.c,
+	  trunk/src/engine/Scrub2.c, trunk/src/engine/cap-gains.c,
+	  trunk/src/engine/policy.c: This patch fixes almost all of the
+	  test-period errors. It still sometimes gets an error because it
+	  generates an amount that can't be represented with the
+	  denominator it has chosen, but there's not much gnucash can do
+	  about that. From #342153.
+
+2006-05-17 21:54  andi5
+
+	* [r14098] trunk/ChangeLog,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: Scott Oonk's patch
+	  to activate forward button in XML import druid after having
+	  decided on each ambiguous string. Fix #342050.
+
+2006-05-16 23:22  warlord
+
+	* [r14084] trunk/ChangeLog, trunk/lib/libgsf-1.12.3/Makefile.am,
+	  trunk/packaging/gnucash.spec.in: Get the RPM SPEC to build
+	  properly (should built from future tarballs) *
+	  lib/libgsl/Makefile.am: don't distribute the gsl specfiles *
+	  packaging/gnucash.spec.in: fix for change of location of files.
+
+2006-05-16 16:18  warlord
+
+	* [r14083] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-date.c:
+	  revert r14081 because we always have localtime_r.
+
+2006-05-16 09:34  cstim
+
+	* [r14082] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza
+
+2006-05-16 09:32  cstim
+
+	* [r14081] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-date.c: Use
+	  localtime_r only when HAVE_LOCALTIME_R is defined. Might be
+	  undefined on some weird systems out there, e.g. windows/mingw32.
+
+2006-05-15 22:21  warlord
+
+	* [r14080] trunk/ChangeLog,
+	  trunk/src/import-export/test/Makefile.am: need to link against
+	  gnome-utils
+
+2006-05-15 21:03  jsled
+
+	* [r14079] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-date.c:
+	  Convert `localtime` to `localtime_r`, after seeing localtime
+	  fail (strange as it is...).
+
+2006-05-15 14:51  cstim
+
+	* [r14078] trunk/po/ru.po: Updated Russian Translation by Vladimir
+	  Turbaevsky
+
+2006-05-15 12:47  cstim
+
+	* [r14076] trunk/doc/README.german: Updated German README which
+	  was horribly outdated.
+	* [r14075] trunk/ChangeLog, trunk/README, trunk/doc/README.HBCI:
+	  Updated explanation of HBCI features.
+
+2006-05-15 09:12  cstim
+
+	* [r14074] trunk/po/glossary/sv.po: Updated Swedish glossary
+	  translation by Jonas Norling. PO-Revision Date 2006-05-04 ,
+	  unfortunately delayed due to Translation Project notification
+	  delay of 10 days.
+
+2006-05-15 09:09  cstim
+
+	* [r14073] trunk/po/en_GB.po: Updated British English translation
+	  by Nigel Titley. PO-Revision-Date 2006-05-05, unfortunately
+	  delayed due to Translation Project notification delay of 10 days.
+
+2006-05-15 02:04  wilddev
+
+	* [r14072] tags/1.9.6: Tagging the 1.9.6 release of GnuCash
+	* [r14071] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.6
+
+2006-05-15 00:13  chris
+
+	* [r14070] trunk/ChangeLog: sync ChangeLog with 'svn log -v'
+
+2006-05-14 23:34  jsled
+
+	* [r14069] trunk/Makefile.am: only pickup files from src/ and
+	  lib/, not ./gnucash-1.9.x/[...] (or another other irrelevant
+	  copies) as well.
+
+2006-05-14 23:29  jsled
+
+	* [r14068] trunk/Makefile.TAGS: remove the files before rebuilding
+	  them (since we're rebuilding in append mode).
+
+2006-05-14 23:26  jsled
+
+	* [r14067] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild:
+	  Updated ebuild.
+
+2006-05-14 23:24  jsled
+
+	* [r14066] trunk/ChangeLog, trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/report/standard-reports/general-journal.scm:
+	  Bug#341609: filter template transactions from general journal
+	  report query.
+
+2006-05-14 23:22  warlord
+
+	* [r14065] trunk/ChangeLog, trunk/po/el.po: * po/el.po: Updated
+	  Greek translation by Nikos Charonitakis <nikosx at gmail.com>
+
+2006-05-14 22:56  jsled
+
+	* [r14064] trunk/Makefile.TAGS: argument list too long with cat;
+	  use xargs instead.
+
+2006-05-14 22:39  jsled
+
+	* [r14063] trunk/src/backend/file/test/Makefile.am: add core-utils
+	  to test setup; test-load-xml2 fails for me (from `make check`)
+	  otherwise
+
+2006-05-14 22:25  jsled
+
+	* [r14062] trunk/src/engine/test/Makefile.am: Re-enable
+	  test-period, as the lots-scrubbing code is commented out.
+
+2006-05-14 21:30  chris
+
+	* [r14050] trunk/src/engine/Transaction.c: Disable Lots scrubbing,
+	  which is causing test-suite failures.
+
+2006-05-14 21:05  jsled
+
+	* [r14049] trunk/src/engine/test/Makefile.am: comment out
+	  test-period for the moment. :p
+
+2006-05-14 16:59  warlord
+
+	* [r14042] trunk/ChangeLog, trunk/lib/libqof/qof/qofquery.h: Fix
+	  the documentation of qof_query_merge for degenerate cases.
+
+2006-05-14 11:59  chris
+
+	* [r14038] trunk/src/backend/file/io-gncxml-v2.c: Undo accidental
+	  revert of part of r13713 by r14026.
+
+2006-05-14 02:07  chris
+
+	* [r14037] trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-view-price.c,
+	  trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome-utils/gnc-tree-view.h,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c,
+	  trunk/src/import-export/import-account-matcher.c: Change the
+	  method for specifying and recording the default visibility of
+	  tree-view columns. There is now a per-column setting,
+	  "DEFAULT_VISIBLE", similar to "ALWAYS_VISIBLE", that controls
+	  the visibility of a column in the absence of, or prior to, gconf
+	  management. It is no longer necessary for the tree view to store
+	  a list of column names for default visible columns. To faciliate
+	  the adaptation of pre-existing tree-views, the
+	  view_column_find_by_name() has been publicized as
+	  gnc_tree_view_find_column_by_name(). All callers of
+	  gnc_tree_view_configure_columns() have been converted to use the
+	  DEFAULT_VISIBLE column property.
+
+2006-05-13 04:52  chris
+
+	* [r14034] trunk/src/report/report-system/commodity-utilities.scm,
+	  trunk/src/report/report-system/report-utilities.scm,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm,
+	  trunk/src/report/standard-reports/portfolio.scm,
+	  trunk/src/report/standard-reports/price-scatter.scm,
+	  trunk/src/report/standard-reports/transaction.scm,
+	  trunk/src/scm/gnumeric/table-utils.scm: Fixing bug #341589:
+	  Apparently, guile 1.8 will actually enforce the rule that all
+	  datum portions of case-statement clauses be unique. The syntax:
+	  'foo expands to a list of two symbols: (quote foo) If both 'foo
+	  and 'bar are used, then the "quote" symbol won't be unique.
+
+2006-05-12 20:56  cstim
+
+	* [r14033] trunk/po/de.po: Update German translation after
+	  unavoidable string changes
+
+2006-05-12 16:23  warlord
+
+	* [r14032] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/lib/libqof/qof/Makefile.am, trunk/lib/libqof/qof/qof.h:
+	  Disable the use of external QOF and make sure we can co-exist. *
+	  lib/libqof/qof/Makefile.am: change the name of our qof library *
+	  lib/libqof/backend/file/Makefile.am: change the name of our qsf
+	  library * lib/libqof/qof/qof.h: point to the newly named qsf
+	  library * configure.in: Error out if the user calls --enable-qof
+	  Change the name of the internal qof library and directories so
+	  that our qof can co-exist with a "native" qof
+
+2006-05-12 16:18  warlord
+
+	* [r14031] trunk/ChangeLog, trunk/src/engine/gnc-engine.c: Use QSF
+	  #defines instead of hard-coding the library name and init-fcn
+
+2006-05-12 15:35  warlord
+
+	* [r14030] trunk/ChangeLog, trunk/goffice-config.h.in,
+	  trunk/gsf-config.h.in: Make sure to properly define _GNU_SOURCE
+	  in sub-config files. The build was broken without this.
+
+2006-05-12 10:50  cstim
+
+	* [r14029] trunk/src/gnome-utils/glade/totd.glade,
+	  trunk/src/report/utility-reports/welcome-to-gnucash.scm: Fix
+	  strings that mentioned gnucash-1.8
+
+2006-05-12 08:41  cstim
+
+	* [r14028] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-plugin-hbci.c: Add the
+	  Tools->HBCI Setup menu item to the register tabs as well.
+	  Bug#341510.
+
+2006-05-12 01:47  chris
+
+	* [r14027] trunk/src/gnome-utils/gnc-main-window.c: Fix Bug
+	  #341375. When handling the focus-out event for a
+	  GtkCellEditable, it's important not to keep the editable alive
+	  for too long, because the cursor-blink timeout expects that the
+	  editable still has the focus. The easiest way to do this is to
+	  stop the editing immediately by calling
+	  gtk_cell_editable_editing_done() and then handle all the real
+	  work from the "editing-done" signal handler.
+
+2006-05-12 00:28  chris
+
+	* [r14026] trunk/src/backend/file/io-gncxml-v2.c: Minor cleanups
+	  to gnc_counter_end_handler().
+
+2006-05-12 00:25  chris
+
+	* [r14025] trunk/src/engine/Makefile.am: Cause gncla-dir.h to be
+	  re-made after a 'make clean'.
+
+2006-05-11 22:25  chris
+
+	* [r14024] trunk/configure.in: Look for g-wrap's (g-wrap gw
+	  standard) or (g-wrap gw-standard) since g-wrap 1.9.6 doesn't
+	  have (g-wrap runtime).
+
+2006-05-11 21:21  chris
+
+	* [r14023] trunk/configure.in: When searching for the g-wrap
+	  runtime module, look in the G_WRAP_MODULE_DIR.
+
+2006-05-11 05:04  chris
+
+	* [r14022] trunk/configure.in: Warn if no g-wrap runtime module is
+	  available during configure.
+
+2006-05-11 03:04  warlord
+
+	* [r14019] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  add $GUILE_INCS when testing g-wrap
+
+2006-05-11 01:14  chris
+
+	* [r14002] trunk/configure.in,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/qof/gnc-date.c,
+	  trunk/lib/libqof/qof/gnc-numeric.c, trunk/lib/libqof/qof/guid.c,
+	  trunk/lib/libqof/qof/kvp_frame.c,
+	  trunk/lib/libqof/qof/qofbackend.c,
+	  trunk/lib/libqof/qof/qofbookmerge.h,
+	  trunk/lib/libqof/qof/qofmath128.c,
+	  trunk/lib/libqof/qof/qofsql.c,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/sixtp-dom-generators.c,
+	  trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/backend/postgres/PostgresBackend.c,
+	  trunk/src/backend/postgres/account.c,
+	  trunk/src/backend/postgres/book.c,
+	  trunk/src/backend/postgres/builder.c,
+	  trunk/src/backend/postgres/checkpoint.c,
+	  trunk/src/backend/postgres/escape.c,
+	  trunk/src/backend/postgres/events.c,
+	  trunk/src/backend/postgres/gncquery.c,
+	  trunk/src/backend/postgres/kvp-sql.c,
+	  trunk/src/backend/postgres/price.c,
+	  trunk/src/backend/postgres/txn.c,
+	  trunk/src/backend/postgres/txnmass.c,
+	  trunk/src/backend/postgres/upgrade.c,
+	  trunk/src/business/business-ledger/gncEntryLedger.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerControl.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerDisplay.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerLayout.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerModel.c,
+	  trunk/src/engine/TransLog.c, trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/test/test-book-merge.c,
+	  trunk/src/engine/test/test-recursive.c,
+	  trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/print-session.c,
+	  trunk/src/gnome/dialog-chart-export.h,
+	  trunk/src/gnome/dialog-find-transactions.c,
+	  trunk/src/gnome/dialog-print-check.c,
+	  trunk/src/gnome/gnc-split-reg.c, trunk/src/gnome/lot-viewer.c,
+	  trunk/src/gnome/window-reconcile.c,
+	  trunk/src/import-export/binary-import/druid-commodity.c,
+	  trunk/src/import-export/import-account-matcher.c,
+	  trunk/src/import-export/import-backend.c,
+	  trunk/src/import-export/import-commodity-matcher.c,
+	  trunk/src/import-export/import-match-picker.c,
+	  trunk/src/import-export/import-settings.c,
+	  trunk/src/import-export/import-utilities.c,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/register/ledger-core/split-register.c: Factor out
+	  #define _GNU_SOURCE from various .c files into an AC_GNU_SOURCE
+	  check in configure.in.
+
+2006-05-10 20:42  warlord
+
+	* [r13992] trunk/autogen.sh: Add some extra "don't shoot yourself
+	  in the foot" text to autogen.
+
+2006-05-10 14:54  cstim
+
+	* [r13990] trunk/accounts/de_AT,
+	  trunk/accounts/de_AT/acctchrt_business.gnucash-xea: Add
+	  svnignores.
+
+2006-05-10 13:11  warlord
+
+	* [r13989] trunk/ChangeLog,
+	  trunk/src/import-export/qif-io-core/qif-parse.scm: Same patch as
+	  qif-import/qif-parse.scm for guile-1.8.
+
+2006-05-10 12:50  cstim
+
+	* [r13988] trunk/AUTHORS, trunk/ChangeLog,
+	  trunk/accounts/Makefile.am, trunk/accounts/de_AT,
+	  trunk/accounts/de_AT/Makefile.am,
+	  trunk/accounts/de_AT/acctchrt_auto.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_autoloan.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_business.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_common.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_houseown.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_investment.gnucash-xea,
+	  trunk/accounts/de_AT/acctchrt_kids.gnucash-xea,
+	  trunk/configure.in: Added new Austrian German account templates
+	  by Roman Bertle
+
+2006-05-10 12:47  cstim
+
+	* [r13987] trunk/accounts/de_DE/acctchrt_skr04.gnucash-xea: Fix
+	  erroneous guid types in account template
+
+2006-05-10 12:32  cstim
+
+	* [r13986] trunk/po/de.po: Small wording fix in German translation
+
+2006-05-10 03:54  chris
+
+	* [r13985] trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/report/report-system/html-table.scm: Fix fancy invoice
+	  report. Bug #341046. Also, liberalize gnc:html-table-append-row!
+	  to accept a non-list argument.
+
+2006-05-10 01:53  chris
+
+	* [r13984] trunk/src/scm/main.scm: Silence guile warnings about
+	  duplicate binding introduced in guile-1.8.
+
+2006-05-09 22:44  warlord
+
+	* [r13980] trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/qif-parse.scm: Bill
+	  Nottingham's patch to fix a guile parser problem during build.
+
+2006-05-09 03:17  chris
+
+	* [r13966] trunk/src/gnome-utils/gnc-main-window.c: Use
+	  g_get_current_time() instead of gettimeofday(). Fixes #341044.
+
+2006-05-09 00:42  chris
+
+	* [r13965] trunk/src/scm/printing/print-check.scm: Limit memo
+	  length to 27 chars on Quicken wallet checks with side stub Patch
+	  by David Reiser, bug #340977
+
+2006-05-08 19:57  cstim
+
+	* [r13959] trunk/doc/examples/downloaded.mt940: Add MT940 example
+	  file for testing mt940 import
+
+2006-05-08 04:56  chris
+
+	* [r13958] trunk/src/engine/Split.c,
+	  trunk/src/engine/Transaction.c: Remove some unnecessary calls to
+	  xaccGroupMarkNotSaved() which were dirtying the book implicitly
+	  without setting any time of first change. Instead, make sure
+	  that committed Splits dirty their parent Transaction.
+
+2006-05-08 04:47  chris
+
+	* [r13957] trunk/lib/libqof/qof/qofinstance-p.h,
+	  trunk/lib/libqof/qof/qofinstance.c,
+	  trunk/lib/libqof/qof/qofutil.c: Add a flag, 'infant', to
+	  QofInstance to note that the instance has been committed at
+	  least once in its lifecycle. Then, we can mark the collection
+	  dirty whenever an object is committed, except for the special
+	  case of an QofInstance that has never been committed before and
+	  is now being deleted.
+
+2006-05-08 03:04  chris
+
+	* [r13956] trunk/lib/libqof/qof/qofutil.c,
+	  trunk/lib/libqof/qof/qofutil.h: Fix off-by-one error when
+	  checking editlevel in qof_commit_edit() (and macro version), in
+	  case we ever want qof_commit_edit() to actually do something
+	  with a backend.
+
+2006-05-08 03:02  chris
+
+	* [r13955] trunk/lib/libqof/qof/qofutil.c,
+	  trunk/lib/libqof/qof/qofutil.h: Make qof_commit_edit() (and
+	  macro version) call qof_backend_run_commit() instead of
+	  qof_backend_run_begin(). Minor cleanups of qof_commit_edit() and
+	  qof_begin_edit().
+
+2006-05-08 02:54  chris
+
+	* [r13954] trunk/src/backend/file/gnc-budget-xml-v2.c,
+	  trunk/src/engine/gnc-budget.c, trunk/src/engine/gnc-budget.h,
+	  trunk/src/gnome/gnc-plugin-page-budget.c: Add begin/commit edit
+	  blocks to budget setters. Change to using the "destroy" method
+	  for budget deletion.
+
+2006-05-07 21:52  jsled
+
+	* [r13944] trunk/ChangeLog, trunk/src/engine/Group.c: Simply
+	  traversal impl.
+
+2006-05-07 21:39  jsled
+
+	* [r13943] trunk/src/engine/test/test-query.c: Restructure for
+	  clarity.
+	* [r13942] trunk/ChangeLog,
+	  trunk/src/engine/test-core/test-engine-stuff.c: Fix `test-query`
+	  failure.
+
+2006-05-07 20:22  jsled
+
+	* [r13941] trunk/src/engine/test/test-query.c: indentation.
+
+2006-05-07 20:12  jsled
+
+	* [r13940] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c: Bug#340936: Actually
+	  close the SX list when we are button-requested to Close the
+	  dialog, thus cleaning up properly.
+
+2006-05-07 18:01  jsled
+
+	* [r13939] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/formulacell-gnome.c,
+	  trunk/src/register/register-gnome/pricecell-gnome.c,
+	  trunk/src/register/register-gnome/pricecell-gnome.h: Bug#340875:
+	  factor utf8-clean decimal-point insertion and string handling
+	  out of the pricecell, and call from the formulacell.
+
+2006-05-07 00:38  hampton
+
+	* [r13937] branches/deprecated-cleanup/ChangeLog,
+	  branches/deprecated-cleanup/src/business/business-gnome/dialog-billterms.c,
+	  branches/deprecated-cleanup/src/business/business-gnome/glade/billterms.glade,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/dialog-tax-table.c,
+	  branches/deprecated-cleanup/src/business/dialog-tax-table/tax-tables.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-account.c,
+	  branches/deprecated-cleanup/src/gnome-utils/dialog-utils.h,
+	  branches/deprecated-cleanup/src/gnome-utils/glade/druid-provider-multifile.glade,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-druid-provider-multifile-gnome.c,
+	  branches/deprecated-cleanup/src/gnome-utils/gnc-druid-provider-multifile-gnome.h,
+	  branches/deprecated-cleanup/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  branches/deprecated-cleanup/src/gnome/druid-loan.c,
+	  branches/deprecated-cleanup/src/gnome/druid-stock-split.c,
+	  branches/deprecated-cleanup/src/gnome/glade/account.glade,
+	  branches/deprecated-cleanup/src/gnome/glade/stocks.glade,
+	  branches/deprecated-cleanup/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/deprecated-cleanup/src/import-export/hbci/glade/hbci.glade,
+	  branches/deprecated-cleanup/src/import-export/qif-import/dialog-account-picker.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/druid-qif-import.c,
+	  branches/deprecated-cleanup/src/import-export/qif-import/qif.glade,
+	  branches/deprecated-cleanup/src/report/report-gnome/dialog-column-view.c,
+	  branches/deprecated-cleanup/src/report/report-gnome/report.glade:
+	  First cleanup pass. Mostly conversions from GtkCList to
+	  GtkTreeView/GtkTreeStore.
+
+2006-05-07 00:14  hampton
+
+	* [r13936] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c: Rebuild the
+	  column selection menu when the report currency is changed. Fixes
+	  #340243.
+
+2006-05-06 23:23  hampton
+
+	* [r13935] branches/deprecated-cleanup: Branch for cleaning up the
+	  various Gtk, Gdk, etc. deprecated functions.
+
+2006-05-06 23:01  hampton
+
+	* [r13934] trunk/configure.in: Really bump the version number for
+	  setting the GNOME_DISABLE_DEPRECATED flag.
+
+2006-05-06 22:26  hampton
+
+	* [r13933] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-transfer.c,
+	  trunk/src/register/register-gnome/gnucash-header.c: Trivial
+	  replacements for deprecated functions.
+
+2006-05-06 21:11  hampton
+
+	* [r13932] trunk/ChangeLog, trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-main-window.c: Use the new qof
+	  functions to provide a dirty indication in the title bar, fixing
+	  #339026. Also provide an indication of how long the book has
+	  been dirty in the "save changes to file" dialog.
+
+2006-05-06 21:09  hampton
+
+	* [r13931] trunk/ChangeLog, trunk/lib/libqof/qof/qofbook-p.h,
+	  trunk/lib/libqof/qof/qofbook.c, trunk/lib/libqof/qof/qofbook.h,
+	  trunk/lib/libqof/qof/qofutil.c: Add support for directly marking
+	  the book dirty, for recording the time that the book
+	  transitioned from clean to dirty, and for calling back a
+	  registered function when the book transitions from clean to
+	  dirty.
+
+2006-05-06 14:53  hampton
+
+	* [r13930] trunk/ChangeLog, trunk/configure.in: Can't use external
+	  qof until it supports "alternate dirty mode".
+
+2006-05-06 07:55  cstim
+
+	* [r13929] trunk/po/nb.po: Updated (finished) norwegian bokmaal
+	  translation by Sigve Indregard
+
+2006-05-06 06:14  hampton
+
+	* [r13928] trunk/ChangeLog, trunk/src/engine/Account.c,
+	  trunk/src/engine/SchedXaction.c,
+	  trunk/src/engine/SchedXaction.h,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h, trunk/src/engine/gnc-lot.c,
+	  trunk/src/engine/gnc-lot.h, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/gnome-utils/dialog-commodity.c: Add
+	  begin_edit/commit_edit brackets around object modifications.
+	  Some other related edit changes. Bug #339943 should be fixed as
+	  of this change.
+
+2006-05-06 06:03  hampton
+
+	* [r13927] trunk/src/engine/gnc-engine.c: Unconditionally enable
+	  qof alternate dirty mode.
+
+2006-05-06 06:01  hampton
+
+	* [r13926] trunk/ChangeLog, trunk/lib/libqof/qof/qofbook.c,
+	  trunk/lib/libqof/qof/qofbook.h, trunk/lib/libqof/qof/qofid-p.h,
+	  trunk/lib/libqof/qof/qofid.c, trunk/lib/libqof/qof/qofid.h,
+	  trunk/lib/libqof/qof/qofinstance.c,
+	  trunk/lib/libqof/qof/qofinstance.h,
+	  trunk/lib/libqof/qof/qofutil.c: Add an alternate mode for
+	  handling the dirty state of instances and collections. In this
+	  mode, marking an instance as dirty does not immediately mark the
+	  collection as dirty. The collection is only dirtied when a dirty
+	  instance is actually committed to the collection.
+
+2006-05-06 01:27  hampton
+
+	* [r13925] trunk/ChangeLog, trunk/configure.in: Bump the version
+	  number for setting the GNOME_DISABLE_DEPRECATED flag.
+
+2006-05-05 13:02  jsled
+
+	* [r13924] trunk/src/backend/file/test/test-load-xml2.c: fix
+	  mis-use of test api.
+
+2006-05-05 01:21  jsled
+
+	* [r13923]
+	  trunk/src/backend/file/test/test-files/xml2/Money95bank_fr.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/Money95invst.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/Money95mutual.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/Money95stocks.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/abc.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/abcall.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/carols-data-file.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/cbb-export.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/conrads-file.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/every.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/goonies-file.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/hierachical-data-file.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/ms-money.gml2,
+	  trunk/src/backend/file/test/test-files/xml2/pricedb1.gml2,
+	  trunk/src/backend/file/test/test-load-xml2.c: add encoding to
+	  test xml files to prevent loading errors; reformat error message.
+
+2006-05-05 00:58  chris
+
+	* [r13922] trunk/src/engine/Split.c: More consistent Lot<->Split
+	  handling. Try to use the right API for adding a cloned Split to
+	  the Lot. Make sure to remove the Split from the Lot when
+	  deleting a Split. (This prevents use-after-free by test-lots.)
+	  Add some comments to some strange code that's possibly wrong.
+
+2006-05-05 00:40  chris
+
+	* [r13921] trunk/src/engine/Scrub.c,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/Transaction.h,
+	  trunk/src/engine/cap-gains.c, trunk/src/engine/cap-gains.h: Move
+	  some gains-related transaction-scrubbing operations to from
+	  cap-gains.c to Transaction.c. Fix a logic error where
+	  "split->gains |= ~GAINS_STATUS_ADIRTY" was supposed to be
+	  "split->gains &= ~GAINS_STATUS_ADIRTY". Disable the loop-restart
+	  code in xaccTransScrubGainsDate() because I think the state
+	  changes inside the loop will never cause a previously-skipped
+	  Split to be not skipped during another pass. Incidental: make
+	  both xaccTransFindSplitByAccount() arguments 'const' Internalize
+	  Begin/Commit edit block into xaccTransScrubSplits()
+
+2006-05-05 00:18  chris
+
+	* [r13920] trunk/src/engine/test/test-transaction-reversal.c: Some
+	  testing bits that got left out of r13916.
+
+2006-05-05 00:17  chris
+
+	* [r13919] trunk/src/engine/test-core/test-engine-stuff.c:
+	  Correctly ensure that the amount and value of test Splits have
+	  the same sign
+
+2006-05-04 09:18  cstim
+
+	* [r13918] trunk/po/nb.po: Updated Norwegian Bokmaal translaction
+	  by Sigvei Indregard
+
+2006-05-04 03:59  chris
+
+	* [r13917] trunk/src/register/ledger-core/split-register-load.c:
+	  Fix bug #340168 by ignoring Splits that have been destroyed
+	  since the last call to xaccTransBeginEdit().
+
+2006-05-04 00:06  chris
+
+	* [r13916] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/gnc-split-reg.c: Hide the Transaction's
+	  management of the "reverse-by" KVP inside the engine. Add new
+	  function xaccTransGetReversedBy() to find the reversing
+	  transaction if there is one. This also ensures that the KVP
+	  changes are inside a Begin/Commit block.
+
+2006-05-03 20:46  cstim
+
+	* [r13915] trunk/po/fr.po: Updated French translation by Fabrice
+	  Kurz
+
+2006-05-03 02:28  hampton
+
+	* [r13912] trunk/ChangeLog, trunk/src/backend/postgres/price.c,
+	  trunk/src/business/business-core/gncBillTerm.c,
+	  trunk/src/business/business-core/gncCustomer.c,
+	  trunk/src/business/business-core/gncEmployee.c,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncJob.c,
+	  trunk/src/business/business-core/gncOrder.c,
+	  trunk/src/business/business-core/gncTaxTable.c,
+	  trunk/src/business/business-core/gncVendor.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Group.c,
+	  trunk/src/engine/SchedXaction.c, trunk/src/engine/gnc-budget.c,
+	  trunk/src/engine/gnc-commodity.c: Use the existing QOF API to
+	  modify the instance dirty flag.
+
+2006-05-02 19:35  cstim
+
+	* [r13900] trunk/po/de.po: Updated German translation; still 3666
+	  out of 3666 translated.
+
+2006-05-02 19:26  andi5
+
+	* [r13899] trunk/ChangeLog,
+	  trunk/src/gnome/glade/sched-xact.glade: Correct option strings
+	  in sx editor for tri-annual transactions. Fix #339724.
+
+2006-05-02 12:17  jsled
+
+	* [r13898] trunk/src/register/register-gnome/pricecell-gnome.c:
+	  match malloc to free, not g_free.
+
+2006-05-02 09:05  cstim
+
+	* [r13897] trunk/configure.in: Ensure the warning about debian and
+	  error-on-warning is shown only if necessary
+
+2006-05-02 03:48  hampton
+
+	* [r13896] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: Use the parent commodity
+	  and account type when creating new accounts. Fixes #337189 and
+	  #340242.
+
+2006-05-02 02:32  hampton
+
+	* [r13895] trunk/ChangeLog, trunk/src/engine/TransLog.c,
+	  trunk/src/engine/TransLog.h, trunk/src/gnome-utils/gnc-file.c:
+	  Start a new log file after a save. Fixes #173056.
+
+2006-05-02 00:11  jsled
+
+	* [r13894] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/pricecell-gnome.c: Bug#340358:
+	  mem/string-handling crasher fix.
+
+2006-05-01 08:00  cstim
+
+	* [r13893] trunk/po/en_GB.po: Updated British English translation
+	  by Nigel Titley
+
+2006-05-01 02:49  hampton
+
+	* [r13892] trunk/ChangeLog, trunk/src/gnome/reconcile-list.c:
+	  Patch from Mike Alexander to fix the cleared split date
+	  threshold in the reconcile window. Fixes #340235.
+
+2006-04-30 23:29  andi5
+
+	* [r13891] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c: Add legend only to
+	  barchart and piechart plots, not to scatter plots, as there is
+	  currently no usage for it. Fix #337769.
+
+2006-04-30 19:28  hampton
+
+	* [r13890] trunk/src/report/report-system/report.scm: Remove
+	  translation on new strings.
+
+2006-04-30 16:49  jsled
+
+	* [r13889] trunk/ChangeLog, trunk/src/gnome/druid-hierarchy.c:
+	  Bug#340197: reverse account opening balances when desired.
+
+2006-04-30 10:32  cstim
+
+	* [r13888] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c: Fix
+	  retrieval of reconcile abbreviation if the translators
+	  erroneously did not use the same string length as the english
+	  string. Bug #339722.
+
+2006-04-30 03:52  hampton
+
+	* [r13887] trunk/ChangeLog, trunk/src/engine/cap-gains.c,
+	  trunk/src/engine/cap-gains.h, trunk/src/engine/gnc-lot.c: Patch
+	  from Mike Alexander's to handle multiple lot dispositions on the
+	  same day. Needed since the transaction sorting code may sort
+	  gains splits after other splits on the same day. Add a new
+	  function to find the source split associated with a capital
+	  gains split. Also use lot_amount and lot_value consistently
+	  instead of opening_amount and opening_value.
+
+2006-04-30 02:59  hampton
+
+	* [r13886] trunk/src/report/report-gnome/dialog-column-view.c,
+	  trunk/src/report/report-gnome/gncmod-report-gnome.c: Function
+	  opening curly brace should be on a line by itself.
+
+2006-04-30 02:38  chris
+
+	* [r13885] trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/register/ledger-core/split-register.c: Take care of
+	  any pending changes to a Transaction before voiding it.
+
+2006-04-30 01:27  hampton
+
+	* [r13884] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-billterms.c,
+	  trunk/src/business/business-gnome/glade/billterms.glade:
+	  Eliminate some gtk warning messages. Stop the contents of the
+	  Bill Terms dialog from shifting around when the first/last term
+	  is created/destroyed.
+
+2006-04-30 00:43  chris
+
+	* [r13883] trunk/src/register/ledger-core/split-register.c: When
+	  deleting the current Transaction in the register, let the action
+	  take effect immediately by commiting the transaction if it's
+	  open.
+
+2006-04-29 22:42  andi5
+
+	* [r13882] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.h: Remove
+	  all XIM code, as it has been commented out unconditionally
+	  already for a while. Send focus in/out events to register
+	  GtkEntry. Address #337020.
+
+2006-04-29 21:51  jsled
+
+	* [r13881] trunk/ChangeLog, trunk/src/app-utils/gnc-exp-parser.c,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/dialog-sxsincelast.c: Bug#157179: make
+	  multi-commodity SX handling a bit better. Expose the needed
+	  exchange rates as variables in the since-last-run dialog.
+
+2006-04-29 15:08  chris
+
+	* [r13880] trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.h: Return the
+	  GtkTreeViewColumn from gnc_tree_view_account_add_kvp_column().
+
+2006-04-29 13:15  cstim
+
+	* [r13879] trunk/ChangeLog, trunk/po/glossary/de.po,
+	  trunk/po/glossary/gnc-glossary.txt: Clarify definitions of and
+	  relations between bill, invoice, job, and order.
+
+2006-04-29 07:30  hampton
+
+	* [r13878] trunk/ChangeLog,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Don't
+	  allow the user to save a report until they have changed the
+	  report name. Remove the duplicate shortcut on the Add Report
+	  menu item.
+
+2006-04-29 07:27  hampton
+
+	* [r13877] trunk/ChangeLog,
+	  trunk/src/report/report-system/report.scm: Don't load a custom
+	  report that has the same name as a standard report. Fixes
+	  #168250.
+
+2006-04-29 07:25  hampton
+
+	* [r13876] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c: Load the
+	  user config earlier in startup. Fixes the missing custom report
+	  problem #338668.
+
+2006-04-29 06:53  hampton
+
+	* [r13875] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: Lower the
+	  minimum required width of the register. This does affect the
+	  size constraint imposed by the register summary bar.
+
+2006-04-29 02:17  chris
+
+	* [r13874] trunk/src/engine/Account.c,
+	  trunk/src/engine/AccountP.h: When deleting an Account, also
+	  delete any Splits that are set to be added to the Account if
+	  their open Transaction is commited.
+
+2006-04-29 02:04  hampton
+
+	* [r13873] trunk/ChangeLog, trunk/configure.in: Default to
+	  --enable-error-on-warning only in svn based source trees. Fixes
+	  #330687.
+
+2006-04-28 21:11  hampton
+
+	* [r13872] trunk/AUTHORS, trunk/ChangeLog,
+	  trunk/src/engine/Scrub2.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/cap-gains.c, trunk/src/engine/gnc-lot.c,
+	  trunk/src/engine/gnc-lot.h,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/window-reconcile.c: Mike Alexander's patch to
+	  fix lot date calculation, and to include all splits when
+	  computing capital gain's instead of just the opening lot. Scrub
+	  lots when scrubbing everything else. Some MacOs X fixes.
+
+2006-04-28 20:46  hampton
+
+	* [r13871] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c: Finishing all
+	  pending transactions before new and open commands, not just save
+	  commands. Fixes #334090.
+
+2006-04-28 13:01  chris
+
+	* [r13870] trunk/src/gnome/gnc-plugin-page-budget.c: For budget
+	  data entry interpret an empty string as valid input meaning "0".
+	  Closes #339946
+
+2006-04-27 21:02  chris
+
+	* [r13869] trunk/src/engine/Account.c: Remove an assertion w/
+	  explanation of why it doesn't hold. Fixes #339781.
+
+2006-04-27 21:00  cstim
+
+	* [r13868] trunk/AUTHORS, trunk/ChangeLog, trunk/po/fr.po: Updated
+	  French translation by Fabrice Kurz
+
+2006-04-27 20:44  cstim
+
+	* [r13867] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c,
+	  trunk/src/import-export/hbci/hbci-interaction.c,
+	  trunk/src/import-export/hbci/hbci-interaction.h: Fix
+	  GNCInteractor_hadErrors() that reported too many errors. Fixes
+	  #339504.
+
+2006-04-27 13:14  jsled
+
+	* [r13866] trunk/src/gnome/dialog-scheduledxaction.c: Bug#334627
+	  fix attempt 2: remove needless NULLing-out of SX.
+
+2006-04-27 03:27  chris
+
+	* [r13865] trunk/src/register/ledger-core/split-register.c:
+	  Address bug #339288: When deleting a split, ensure the
+	  transaction is open for editing, an redraw the display afterward.
+
+2006-04-27 02:52  chris
+
+	* [r13864] trunk/src/gnome/gnc-plugin-page-budget.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/gnc-split-reg.c,
+	  trunk/src/gnome/reconcile-list.c,
+	  trunk/src/gnome/window-reconcile.c: Remove some unnecessary
+	  BeginEdit/CommitEdit calls. Early exit the budget keynav
+	  function on no-op case.
+
+2006-04-27 02:18  chris
+
+	* [r13863]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register.c: More register
+	  fixes related to recent changes: For the autofill in
+	  basic-ledger mode, avoid an extra BeginCommit. For "remove all
+	  splits from the transaction" case, also avoid a potential extra
+	  BeginCommit. Also, fix a bug where one split might have not been
+	  removed if this operation was performed in a register other than
+	  the one where the transaction was created. Make sure that
+	  whenever we actually do commit the pending transaction, we clear
+	  the stored GUID *before* the commit, since it may be checked
+	  again from the register's refresh event handler. In other news,
+	  I haven't seen the orphan splits recently...
+
+2006-04-27 01:33  jsled
+
+	* [r13862] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c: Attempt to affect
+	  #334627: re-order destroying SX vs. window.
+
+2006-04-26 09:11  cstim
+
+	* [r13861] trunk/ChangeLog, trunk/doc/gnucash.1.in: Properly quote
+	  marks. Bug #339731.
+
+2006-04-26 04:49  hampton
+
+	* [r13860] trunk/ChangeLog, trunk/src/gnome/glade/progress.glade,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/import-export/qif-import/qif-file.scm,
+	  trunk/src/import-export/qif-import/qif-merge-groups.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm: Center the
+	  progress dialog on the qif import druid. Fixes #336188.
+
+2006-04-26 04:14  hampton
+
+	* [r13859] trunk/ChangeLog, trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-pricedb.c: Mark the collections as clean
+	  after the default items have been created. Fixes #337185.
+
+2006-04-26 03:30  chris
+
+	* [r13858] trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome-utils/gnc-tree-view.h: Publicize the
+	  ALWAYS_VISIBLE column attribute for GncTreeView.
+
+2006-04-26 02:21  hampton
+
+	* [r13857] trunk/ChangeLog, trunk/src/scm/price-quotes.scm: Fix
+	  the crash in #339764.
+
+2006-04-26 01:31  jsled
+
+	* [r13856] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/register-core/formulacell.c,
+	  trunk/src/register/register-core/pricecell.c,
+	  trunk/src/register/register-core/table-allgui.c: Bug#119078:
+	  promote register parse errors to the user.
+
+2006-04-26 00:03  hampton
+
+	* [r13853] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Don't try to update
+	  the main window page name when invoked with an embedded window.
+	  Fixes #339763.
+
+2006-04-25 20:56  cstim
+
+	* [r13852] trunk/ChangeLog, trunk/po/de.po: Updated German
+	  translation. 3666 out of 3666 translated.
+
+2006-04-25 08:33  andi5
+
+	* [r13850] trunk/ChangeLog, trunk/src/gnome-utils/gnc-tree-view.c:
+	  Initialize depth variable in tree view keynav before using it.
+
+2006-04-25 05:13  hampton
+
+	* [r13849] trunk/ChangeLog, trunk/src/scm/process.scm: Handle the
+	  failure to fork a child process and print an error message,
+	  instead of just ignoring the error. Fixes #127241.
+
+2006-04-25 04:20  hampton
+
+	* [r13848] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-currency-edit.c,
+	  trunk/src/gnome-utils/gnc-currency-edit.h: Add completion
+	  support to the currency edit widget. Fixes #339412.
+
+2006-04-25 04:18  chris
+
+	* [r13847] trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome-utils/gnc-tree-view.h,
+	  trunk/src/gnome/gnc-plugin-page-budget.c: Implement a keynav
+	  policy for the budget page. Addresses bug #339515.
+
+2006-04-25 04:17  hampton
+
+	* [r13846] trunk/src/gnome/glade/account.glade: Don't use the full
+	  width of the dialog, only as much as is necessary for the
+	  content.
+
+2006-04-24 22:35  chris
+
+	* [r13844] trunk/src/register/ledger-core/split-register.c:
+	  Another crack at fixing bug #327780. Simplify the control flow
+	  around the code in gnc_split_register_save() that decides what
+	  transactions to commit and when. Be sure to commit the blank
+	  transaction even when it's not the pending transaction. Refresh
+	  the register after transaction rollback. Add more assertions
+	  that will either fail in some case I haven't tested or prove
+	  that more register code is unreachable.
+
+2006-04-24 22:27  chris
+
+	* [r13843]
+	  trunk/src/register/ledger-core/split-register-control.c: Use
+	  'pending_trans' variable name for clearer code.
+
+2006-04-24 14:20  cstim
+
+	* [r13842] trunk/po/fr.po: Updated French translation by Jonathan
+	  Ernst.
+
+2006-04-24 13:58  chris
+
+	* [r13841] trunk/src/register/ledger-core/split-register.c: Fix
+	  uninitialized use in
+	  gnc_split_register_empty_current_trans_except_split
+
+2006-04-24 08:23  cstim
+
+	* [r13840] trunk/ChangeLog,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c: Activate
+	  newly added string as string freeze exception. That bug was
+	  grave enough to justify this.
+
+2006-04-24 00:58  chris
+
+	* [r13836] trunk/src/gnome/gnc-plugin-page-budget.c: Default the
+	  budget page's show_hidden flag to FALSE. Closes #339413.
+
+2006-04-24 00:12  chris
+
+	* [r13835] trunk/ChangeLog: sync ChangeLog from 'svn log -v'
+
+2006-04-23 23:01  chris
+
+	* [r13834]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register.c: Don't
+	  immediately commit the blank transaction after creating it. When
+	  saving the register state, don't commit an open transaction
+	  unless we think it was opened from this register. These changes
+	  are intended to fix bug #327780. I've also added several related
+	  assertions. If any of these assertions fail, it may indicate
+	  that I don't really understand what's going on, and that this
+	  may not be the correct fix for #327780.
+
+2006-04-23 21:07  chris
+
+	* [r13833]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-p.h,
+	  trunk/src/register/ledger-core/split-register.c: Remove some
+	  unnecessary Begin/Commit blocks around code that is already
+	  transactional. Convert some Split function calls to the
+	  xaccSplit... form.
+
+2006-04-22 20:14  hampton
+
+	* [r13832] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Update a
+	  report's tab name in the main window when the name in the report
+	  options is changed. Fixes #334199. Also update a register's tab
+	  name if the account name is changed.
+
+2006-04-22 19:04  cstim
+
+	* [r13831] trunk/ChangeLog, trunk/src/gnome/gnc-split-reg.c: Mark
+	  string for translation as pointed out by Andreas Köhler.
+
+2006-04-22 05:14  chris
+
+	* [r13830] trunk/src/engine/Transaction.c: Internalize the
+	  transactional semantics for all Transaction setters. This is
+	  what I actually intended in r13130, but we want the stuff that
+	  xaccTransCommitEdit provides over-and-above what qof_commit_edit
+	  provides.
+
+2006-04-22 05:09  hampton
+
+	* [r13829] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Fix a null pointer
+	  dereference. Don't make the Close button sensitive until a page
+	  has been added. Fixes #339372.
+
+2006-04-22 04:53  hampton
+
+	* [r13828] trunk/ChangeLog, trunk/src/gnome-utils/gnc-icons.c,
+	  trunk/src/pixmaps/Makefile.am, trunk/src/pixmaps/account-16.png,
+	  trunk/src/pixmaps/account.png,
+	  trunk/src/pixmaps/delete-account-16.png,
+	  trunk/src/pixmaps/delete-account.png,
+	  trunk/src/pixmaps/edit-account-16.png,
+	  trunk/src/pixmaps/edit-account.png,
+	  trunk/src/pixmaps/gnc-account-16.png,
+	  trunk/src/pixmaps/gnc-account-delete-16.png,
+	  trunk/src/pixmaps/gnc-account-delete.png,
+	  trunk/src/pixmaps/gnc-account-edit-16.png,
+	  trunk/src/pixmaps/gnc-account-edit.png,
+	  trunk/src/pixmaps/gnc-account-new-16.png,
+	  trunk/src/pixmaps/gnc-account-new.png,
+	  trunk/src/pixmaps/gnc-account-open-16.png,
+	  trunk/src/pixmaps/gnc-account-open.png,
+	  trunk/src/pixmaps/gnc-account.png,
+	  trunk/src/pixmaps/gnc-split-trans-16.png,
+	  trunk/src/pixmaps/gnc-split-trans.png,
+	  trunk/src/pixmaps/gnc-transfer-16.png,
+	  trunk/src/pixmaps/gnc-transfer.png,
+	  trunk/src/pixmaps/new-account-16.png,
+	  trunk/src/pixmaps/new-account.png,
+	  trunk/src/pixmaps/open-account-16.png,
+	  trunk/src/pixmaps/open-account.png,
+	  trunk/src/pixmaps/split-transaction-16.png,
+	  trunk/src/pixmaps/split-transaction.png,
+	  trunk/src/pixmaps/transfer-16.png,
+	  trunk/src/pixmaps/transfer.png: Rename some icon files.
+
+2006-04-22 04:42  chris
+
+	* [r13827] trunk/src/business/business-core/gncBillTerm.c,
+	  trunk/src/business/business-core/gncCustomer.c,
+	  trunk/src/business/business-core/gncEmployee.c,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncJob.c,
+	  trunk/src/business/business-core/gncOrder.c,
+	  trunk/src/business/business-core/gncTaxTable.c,
+	  trunk/src/business/business-core/gncVendor.c,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/gnc-pricedb.c:
+	  Replace calls to QOF_COMMIT_EDIT_PART1 macro with calls to
+	  qof_commit_edit()
+
+2006-04-22 04:02  hampton
+
+	* [r13826] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/gnc-plugin-page-invoice.c,
+	  trunk/src/gnome-utils/gnc-icons.c,
+	  trunk/src/gnome-utils/gnc-icons.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/pixmaps/Makefile.am,
+	  trunk/src/pixmaps/gnc-invoice-16.png,
+	  trunk/src/pixmaps/gnc-invoice-edit-16.png,
+	  trunk/src/pixmaps/gnc-invoice-edit.png,
+	  trunk/src/pixmaps/gnc-invoice-post-16.png,
+	  trunk/src/pixmaps/gnc-invoice-post.png,
+	  trunk/src/pixmaps/gnc-invoice-unpost-16.png,
+	  trunk/src/pixmaps/gnc-invoice-unpost.png,
+	  trunk/src/pixmaps/gnc-invoice.png,
+	  trunk/src/pixmaps/gnc-jumpto-16.png,
+	  trunk/src/pixmaps/gnc-jumpto.png,
+	  trunk/src/pixmaps/gnc-sx-new-16.png,
+	  trunk/src/pixmaps/gnc-sx-new.png: Add new icons for invoices,
+	  adding a scheduled transaction, and the jump action. Fixes
+	  #339112.
+
+2006-04-22 01:25  chris
+
+	* [r13825] trunk/lib/libqof/qof/qoflog.c: Avoid buffer overrun in
+	  qoflog.
+
+2006-04-22 00:57  hampton
+
+	* [r13824] trunk/ChangeLog, trunk/src/engine/TransLog.c,
+	  trunk/src/engine/TransLog.h,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c: Don't allow
+	  the user to open the current log file. Fixes #337211.
+
+2006-04-21 22:55  hampton
+
+	* [r13823] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Don't
+	  allow a report page to be closed of it is in the process of
+	  reloading. Make the close buttons on the notebook tabs
+	  insensitive when the rest of the UI is insensitive. Fixes 339327.
+
+2006-04-21 21:14  hampton
+
+	* [r13822] trunk/ChangeLog,
+	  trunk/src/report/report-gnome/report-gnome.scm,
+	  trunk/src/report/utility-reports/welcome-to-gnucash.scm: Make
+	  the "Welcome to GnuCash" report menu item build the entire
+	  report, instead of just the first sub-report.
+
+2006-04-21 19:21  hampton
+
+	* [r13821] trunk/ChangeLog,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c,
+	  trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/report-system/report.scm: Correctly save and
+	  restore multicolumn reports. Fixes 327627.
+
+2006-04-21 19:18  hampton
+
+	* [r13820] trunk/src/report/report-system/html-document.scm: Don't
+	  complain about reports without html titles. This occurs for
+	  every embedded report.
+
+2006-04-21 15:25  hampton
+
+	* [r13819] trunk/ChangeLog, trunk/src/gnome/glade/reconcile.glade:
+	  Remove translatable flag from a temp label.
+
+2006-04-21 15:22  hampton
+
+	* [r13818] trunk/src/gnome/glade/reconcile.glade: Remove unused
+	  dialog.
+
+2006-04-21 15:07  hampton
+
+	* [r13817] trunk/ChangeLog, trunk/src/gnome/glade/account.glade:
+	  Add a tooltip for the "hidden" option in the Edit Account dialog.
+
+2006-04-21 08:09  cstim
+
+	* [r13816] trunk/po/en_GB.po: Remove erroneous translation in
+	  en_GB: Probably a proposed fuzzy translation has been accepted
+	  without checking.
+
+2006-04-21 08:08  cstim
+
+	* [r13815] trunk/accounts/fr_CH: Add svnignores
+
+2006-04-20 20:34  andi5
+
+	* [r13813] trunk/src/gnome-utils/glade/druid-gnc-xml-import.glade:
+	  Remove translatable property of some forgotten placeholder
+	  strings in glade file.
+
+2006-04-20 20:21  cstim
+
+	* [r13812] trunk/po/de.po: Updated German translation; 3623 out of
+	  3676 translated.
+
+2006-04-20 01:37  chris
+
+	* [r13811] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/backend/file/pilot-qsf-gncCustomer.xml,
+	  trunk/lib/libqof/backend/file/qof-backend-qsf.h,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.h,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/kvp_frame.c,
+	  trunk/lib/libqof/qof/kvp_frame.h,
+	  trunk/lib/libqof/qof/qofbookmerge.c,
+	  trunk/lib/libqof/qof/qofchoice.c,
+	  trunk/lib/libqof/qof/qofutil.c, trunk/lib/libqof/qof/qofutil.h:
+	  Revert r13797 so that it can be recommited as logical,
+	  documented changes.
+
+2006-04-20 00:05  hampton
+
+	* [r13810] trunk/ChangeLog,
+	  trunk/src/report/report-system/gnc-report.c: If the report
+	  already has an id assigned (i.e. restored reports) then add it
+	  to the table using that id. Only generate ids for reports that
+	  don't have them yet.
+
+2006-04-19 22:28  hampton
+
+	* [r13809] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Don't call shutdown
+	  directly from the delete_event handler, but use a periodic idle
+	  function that checks to insure that gnucash isn't saving the
+	  data file before calling shutdown. Fixes 338952.
+
+2006-04-19 19:35  cstim
+
+	* [r13808] trunk/ChangeLog, trunk/accounts/Makefile.am,
+	  trunk/accounts/fr_CH, trunk/accounts/fr_CH/Makefile.am,
+	  trunk/accounts/fr_CH/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_business.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_cdmoneymkt.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_childcare.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_common.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_currency.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_eduloan.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_fixedassets.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_homeloan.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_homeown.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_otherloan.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_renter.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_retiremt.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_spouseinc.gnucash-xea,
+	  trunk/accounts/fr_CH/acctchrt_spouseretire.gnucash-xea,
+	  trunk/configure.in: New French Swiss account templates by
+	  Jonathan Ernst
+
+2006-04-19 02:35  hampton
+
+	* [r13803] trunk/ChangeLog, trunk/src/gnome/top-level.c,
+	  trunk/src/report/report-gnome/window-report.c,
+	  trunk/src/report/report-gnome/window-report.h: Parse the old
+	  ~/.gnome/GnuCash MDI document file to see which 1.8 reports
+	  should be opened the first time gnucash2 starts.
+
+2006-04-18 19:28  cstim
+
+	* [r13802] trunk/ChangeLog, trunk/po/fr.po: Updated French
+	  translation by Jonathan Ernst
+
+2006-04-18 19:27  cstim
+
+	* [r13801] trunk/AUTHORS, trunk/ChangeLog, trunk/Makefile.am,
+	  trunk/po/glossary/fr.po: Added French glossary by Jonathan Ernst
+
+2006-04-18 18:05  warlord
+
+	* [r13800] trunk/ChangeLog, trunk/doc/tip_of_the_day.list.in,
+	  trunk/src/report/standard-reports/register.scm: Two string fixes.
+
+2006-04-17 20:04  cstim
+
+	* [r13799] trunk/po/ne.po: Updated Nepali translation from
+	  Translation Project
+
+2006-04-17 14:30  andi5
+
+	* [r13798] trunk/src/gnome-utils/druid-gnc-xml-import.c:
+	  Initialize some variables before usage so that gcc does not
+	  complain.
+
+2006-04-17 13:06  codehelp
+
+	* [r13797] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/backend/file/pilot-qsf-gncCustomer.xml,
+	  trunk/lib/libqof/backend/file/qof-backend-qsf.h,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.h,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/kvp_frame.c,
+	  trunk/lib/libqof/qof/kvp_frame.h,
+	  trunk/lib/libqof/qof/qofbookmerge.c,
+	  trunk/lib/libqof/qof/qofchoice.c,
+	  trunk/lib/libqof/qof/qofutil.c, trunk/lib/libqof/qof/qofutil.h:
+	  Final changes for QOF 0.6.4 - Improvements in map handling.
+
+2006-04-17 09:05  codehelp
+
+	* [r13796] trunk/po/en_GB.po: updated en_GB translation
+
+2006-04-16 23:33  wilddev
+
+	* [r13795] tags/1.9.5: Tagging the 1.9.5 release of GnuCash
+
+2006-04-16 23:32  wilddev
+
+	* [r13794] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.5
+
+2006-04-16 22:25  warlord
+
+	* [r13793] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-gnome/dialog-choose-owner.c,
+	  trunk/src/business/business-gnome/dialog-choose-owner.h,
+	  trunk/src/business/business-gnome/glade/Makefile.am,
+	  trunk/src/business/business-gnome/glade/choose-owner.glade: Add
+	  new files to make the string freeze that define the interface to
+	  choose a customer or vendor for a hand-entered transaction.
+	  Hopefully we can simplify the input by allowing users to enter a
+	  transaction directly and assigning it to a customer/vendor by
+	  hand (rather than going through the business interfaces).
+
+2006-04-16 21:19  andi5
+
+	* [r13792] trunk/src/gnome-utils/druid-gnc-xml-import.c: Add a
+	  string to final page of encodings druid.
+
+2006-04-15 23:21  warlord
+
+	* [r13791] trunk/ChangeLog,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: need to #include
+	  gmodule.h.
+
+2006-04-15 21:37  chris
+
+	* [r13790] trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/report-system/report-utilities.scm,
+	  trunk/src/report/standard-reports/balance-sheet.scm,
+	  trunk/src/report/standard-reports/equity-statement.scm,
+	  trunk/src/report/standard-reports/trial-balance.scm: Avoid
+	  trying to represent "forever-ago" with a timepair. Instead, call
+	  gnc:accountlist-get-comm-balance-at-date when we really just
+	  want the balance at one date. This fixes the retained-earnings
+	  calculation on the balance sheet report.
+
+2006-04-15 21:26  hampton
+
+	* [r13789] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome-utils/gnc-tree-view-price.c,
+	  trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/commodities.glade,
+	  trunk/src/gnome/glade/price.glade,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c: Replace "commodity"
+	  with "security" where it is user visible. If its possible to
+	  determine that the user is operating on a currency instead of a
+	  commodity, update titles/labels to specify "security". Fixes
+	  338382.
+
+2006-04-15 18:50  hampton
+
+	* [r13788] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Scrub.c,
+	  trunk/src/engine/Scrub.h,
+	  trunk/src/import-export/hbci/gnc-hbci-kvp.c,
+	  trunk/src/import-export/hbci/gnc-hbci-kvp.h: Clean up the xml
+	  file some by dropping empty kvp strings/frames and 'false'
+	  placeholder values.
+
+2006-04-15 18:10  andi5
+
+	* [r13787] trunk/ChangeLog,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: Fix to compile on
+	  systems with glib < 2.9.
+
+2006-04-15 16:40  hampton
+
+	* [r13786] trunk/ChangeLog, trunk/lib/libqof/qof/kvp_frame.c,
+	  trunk/lib/libqof/qof/kvp_frame.h, trunk/src/engine/Account.c,
+	  trunk/src/engine/Split.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h,
+	  trunk/src/engine/gw-engine-spec.scm: The kvp_frame_get_string()
+	  function returns a pointer to an internal string. Mark it
+	  'const' to prevent callers from trying to free it.
+
+2006-04-15 03:52  hampton
+
+	* [r13785] trunk/ChangeLog, trunk/src/engine/Account.c,
+	  trunk/src/engine/Account.h,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.h,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c,
+	  trunk/src/register/ledger-core/split-register-load.c: Add a
+	  per-account "hidden" flag, and update the accounts page and the
+	  account quickfill to respect this flag. Also flip the "hide zero
+	  balance" flag to a "show zero balance" flag for symmetry.
+	  Implements 87077.
+
+2006-04-15 00:14  hampton
+
+	* [r13784] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Allow the
+	  account tree view callback to run in addition the the page
+	  callback. Fixes 303995.
+
+2006-04-14 22:56  hampton
+
+	* [r13783] trunk/ChangeLog,
+	  trunk/src/gnome-utils/glade/preferences.glade: Clarify text
+	  regarding the lines in the register. Fixes 338479.
+
+2006-04-14 22:44  hampton
+
+	* [r13782] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c: Fixes to compile
+	  with gcc4.
+
+2006-04-14 17:38  andi5
+
+	* [r13781] trunk/ChangeLog, trunk/lib/libqof/qof/qofbackend.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/gnc-backend-file.h,
+	  trunk/src/backend/file/io-example-account.c,
+	  trunk/src/backend/file/io-example-account.h,
+	  trunk/src/backend/file/io-gncxml-v1.c,
+	  trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/backend/file/io-gncxml-v2.h,
+	  trunk/src/backend/file/sixtp.c, trunk/src/backend/file/sixtp.h,
+	  trunk/src/backend/file/test/test-xml2-is-file.c,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.c,
+	  trunk/src/gnome-utils/druid-gnc-xml-import.h,
+	  trunk/src/gnome-utils/glade/Makefile.am,
+	  trunk/src/gnome-utils/glade/druid-gnc-xml-import.glade,
+	  trunk/src/gnome-utils/gnc-file.c: Initial support to decode old,
+	  ambiguous data files, missing an encoding declaration, with the
+	  help of the user.
+
+2006-04-14 16:45  warlord
+
+	* [r13780] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/backend/file/test/test-dom-converters1.c,
+	  trunk/src/engine/Transaction.c,
+	  trunk/src/engine/test/test-date.c: Fix a bunch of 64-bit compile
+	  issues. * src/engine/Transaction.c: *
+	  src/engine/test/test-date.c: *
+	  src/backend/file/test/test-dom-converters1.c: Fix 64-bit
+	  compile: Use G_GUINT64_FORMAT instead of %llu or lld for
+	  Timespec seconds. * src/app-utils/gnc-ui-util.c: Fix 64-bit
+	  compile issues: - Use QOF_SCANF_LLD instead of GNC_SCANF_LLD. -
+	  Use QOF_SCANF_LLD and G_GINT64_FORMAT properly. - replace %lld
+	  with G_GINT64_FORMAT
+
+2006-04-14 05:37  hampton
+
+	* [r13779] trunk/ChangeLog,
+	  trunk/src/business/business-ledger/gncEntryLedgerDisplay.c,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/gnc-event.h,
+	  trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome/window-reconcile.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c: Add a new
+	  event for when a split associated with account is changed.
+
+2006-04-14 05:36  hampton
+
+	* [r13778] trunk/ChangeLog,
+	  trunk/src/gnome-utils/account-quickfill.c: Improve the
+	  performance of the listen_for_accounts function. Never rebuild
+	  the list_store from scratch as the time required to sort each
+	  account insertion takes forever with a large number of accounts.
+
+2006-04-14 03:49  hampton
+
+	* [r13777] trunk/ChangeLog, trunk/src/app-utils/options.scm,
+	  trunk/src/engine/commodity-table.scm,
+	  trunk/src/engine/engine.scm, trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm: Finish
+	  cleaning up old uses of NS_ISO. Use the C is_currency function
+	  for both C and Scheme calls.
+
+2006-04-14 02:36  hampton
+
+	* [r13776] trunk/ChangeLog, trunk/src/app-utils/gnc-euro.c,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/options.scm,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/gnc-currency-edit.c,
+	  trunk/src/import-export/binary-import/druid-commodity.c,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm: Replace
+	  NS_ISO with NS_CURRENCY. This substitution was already performed
+	  by the called functions, so there this change is purely cosmetic.
+
+2006-04-14 02:31  hampton
+
+	* [r13775] trunk/src/gnome-utils/dialog-commodity.c: Another
+	  comment.
+
+2006-04-14 02:29  hampton
+
+	* [r13774] trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h: Add a couple of comments.
+
+2006-04-13 19:39  andi5
+
+	* [r13773] trunk/ChangeLog, trunk/src/engine/Group.c: Fix loop of
+	  split account reassignments in xaccGroupMergeAccounts, because
+	  the commit of one split will change the list itself. Potentially
+	  fix 337048.
+
+2006-04-13 09:01  cstim
+
+	* [r13772] trunk/po/ca.po, trunk/po/cs.po, trunk/po/da.po,
+	  trunk/po/de.po, trunk/po/el.po, trunk/po/en_GB.po,
+	  trunk/po/es.po, trunk/po/es_NI.po, trunk/po/eu.po,
+	  trunk/po/fr.po, trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po,
+	  trunk/po/nb.po, trunk/po/ne.po, trunk/po/nl.po, trunk/po/pl.po,
+	  trunk/po/pt.po, trunk/po/pt_BR.po, trunk/po/ru.po,
+	  trunk/po/rw.po, trunk/po/sk.po, trunk/po/sv.po, trunk/po/ta.po,
+	  trunk/po/tr.po, trunk/po/uk.po, trunk/po/zh_CN.po,
+	  trunk/po/zh_TW.po: Update/merge po files.
+
+2006-04-12 15:22  hampton
+
+	* [r13771] trunk/ChangeLog, trunk/src/engine/gnc-commodity.c:
+	  Update the determination of what's a currency and what isn't.
+	  Fixes 337804.
+
+2006-04-12 02:31  chris
+
+	* [r13770] trunk/src/gnome-utils/gnc-tree-view.c: Test for support
+	  of the tree-model-sort interface instead of one particular
+	  implementation.
+
+2006-04-11 20:49  andi5
+
+	* [r13769] trunk/ChangeLog, trunk/lib/libqof/qof/qofsession.c: Fix
+	  leakage of old books.
+
+2006-04-11 15:20  warlord
+
+	* [r13768] trunk/ChangeLog, trunk/lib/libqof/qof/qofbookmerge.c: *
+	  lib/libqof/qof/qofbookmerge.c: fix a few memory leaks.
+
+2006-04-11 03:12  chris
+
+	* [r13767] trunk/src/engine/Split.c: Implement Split events for
+	  Split destruction, Split rollback, (including Split
+	  un-destruction) and Split re-parenting. All these actions now
+	  generate ITEM-REMOVED or ITEM-ADDED events for related
+	  Transactions (as appropriate). Minor: allow xaccSplitSetParent()
+	  to accept a NULL argument in order to use it in the
+	  rollback-newly-created-split case.
+
+2006-04-11 02:55  chris
+
+	* [r13766] trunk/src/engine/Transaction.c: Avoid generating
+	  Transaction modified events for Transaction roll-back. Enable
+	  emission of some new Split events. Use xaccSplitRollbackEdit()
+	  in implementation of xaccTransRollbackEdit(). Avoid rollback of
+	  Splits not owned by the Transaction. This was actually
+	  impossible to encounter, but the algorithm is now correct even
+	  for some cases that aren't permitted by other code.
+
+2006-04-10 22:20  warlord
+
+	* [r13765] trunk/ChangeLog, trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/gnc-commodity.c, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-pricedb.c, trunk/src/engine/kvp-scm.c,
+	  trunk/src/gnome-utils/QuickFill.c: Get gnucash to build properly
+	  with the new QOF changes (0.6.4+) *
+	  src/backend/file/sixtp-utils.c: use QOF_SCANF_LLD to read 64-bit
+	  numbers. * src/gnome-utils/QuickFill.c: *
+	  src/engine/gnc-pricedb.c: * src/engine/Transaction.c: *
+	  src/engine/gnc-commodity.c: convert gnc_string_cache* APIs to
+	  CACHE_* APIs. * src/engine/Account.c: Properly convert usage of
+	  SAFE_STRCMP() to safe_strcmp() * src/engine/kvp-scm.c: #include
+	  <qof.h> instead of <kvp_frame.h> * src/engine/gnc-engine.c:
+	  Update the method used to shutdown QOF.
+
+2006-04-10 22:13  warlord
+
+	* [r13764] trunk/ChangeLog, trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/qofutil.h: Create a QOF_SCANF_LLD (because
+	  we cannot use the printf version). Keep the deprecated
+	  GNC_SCANF_LLD defined in terms of the new QOF_SCANF_LLD.
+
+2006-04-10 21:49  warlord
+
+	* [r13763] trunk/ChangeLog, trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/backend/file/test/test-load-backend.c,
+	  trunk/src/business/business-core/gncBusGuile.c,
+	  trunk/src/business/business-core/gw-business-core-spec.scm,
+	  trunk/src/business/dialog-tax-table/gw-dialog-tax-table-spec.scm,
+	  trunk/src/engine/Account.c, trunk/src/engine/Period.c,
+	  trunk/src/engine/SchedXaction.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/engine-helpers.c,
+	  trunk/src/engine/gnc-associate-account.c,
+	  trunk/src/engine/gnc-commodity.c, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-lot.c, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/engine/gnc-session.c,
+	  trunk/src/engine/gw-kvp-spec.scm, trunk/src/engine/kvp-scm.c,
+	  trunk/src/engine/test/test-load-engine.c,
+	  trunk/src/gnome-utils/QuickFill.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c: Revert
+	  r13749. Wedon't need to explicitly #include glib.h because qof.h
+	  includes it for us. Also, this changeset contains lots of other
+	  stuff that has nothing to do with glib.h. Note that this
+	  revision wont build, but I'll fix that shortly.
+
+2006-04-10 21:14  warlord
+
+	* [r13762] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c: Back out r13752.
+	  We don't need to explicitly #include glib.h because qof.h
+	  includes it for us. Besides, it doesn't fix the whole problem.
+
+2006-04-10 20:54  cstim
+
+	* [r13761] trunk/po/de.po: Updated German translation. 3601 out of
+	  3620 translated.
+
+2006-04-10 20:48  cstim
+
+	* [r13760]
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas.in:
+	  Fix spelling error
+
+2006-04-08 23:52  hampton
+
+	* [r13758] trunk/ChangeLog,
+	  trunk/src/gnome-utils/account-quickfill.c: Eliminate some
+	  unnecessary work by comparing the account name in the quickfill
+	  with the actual account name, and only rebuilding the quickfill
+	  if they differ. This improves GnuCash's response somewhat, but
+	  still needs more improvement.
+
+2006-04-08 22:50  codehelp
+
+	* [r13757] trunk/lib/libqof/qof/qofbackend.c: typo - erroneous &
+
+2006-04-08 10:06  cstim
+
+	* [r13756] trunk/po/de.po: Updated German translation. 3562 out of
+	  3620 translated.
+
+2006-04-07 23:39  hampton
+
+	* [r13754] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Include the svn
+	  revision number in the about dialog.
+
+2006-04-07 19:46  warlord
+
+	* [r13753] trunk/ChangeLog, trunk/lib/libqof/qof/qof.h: *
+	  lib/libqof/qof/qof.h: QOF requires <glib.h>
+
+2006-04-07 19:25  codehelp
+
+	* [r13752] trunk/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c: already include
+	  glib/gi18n.h, also need glib.h
+
+2006-04-07 18:52  codehelp
+
+	* [r13751] trunk/src/doc/gnc-numeric-example.txt: Move example
+	  from gnc_numeric.h to a separate Doxygen file.
+	* [r13750] trunk/ChangeLog,
+	  trunk/src/app-utils/gnc-account-merge.c,
+	  trunk/src/app-utils/gnc-component-manager.c,
+	  trunk/src/app-utils/gnc-ui-util.c: Replacing deprecated code.
+
+2006-04-07 18:51  codehelp
+
+	* [r13749] trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/backend/file/test/test-load-backend.c,
+	  trunk/src/business/business-core/gncBusGuile.c,
+	  trunk/src/business/business-core/gw-business-core-spec.scm,
+	  trunk/src/business/dialog-tax-table/gw-dialog-tax-table-spec.scm,
+	  trunk/src/engine/Account.c, trunk/src/engine/Period.c,
+	  trunk/src/engine/SchedXaction.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/engine-helpers.c,
+	  trunk/src/engine/gnc-associate-account.c,
+	  trunk/src/engine/gnc-commodity.c, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-lot.c, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/engine/gnc-session.c,
+	  trunk/src/engine/gw-kvp-spec.scm, trunk/src/engine/kvp-scm.c,
+	  trunk/src/engine/test/test-load-engine.c,
+	  trunk/src/gnome-utils/QuickFill.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c: Explicitly
+	  including glib.h instead of relying on libqof to reduce
+	  dependency problems.
+
+2006-04-07 18:50  codehelp
+
+	* [r13748] trunk/configure.in: QOF 0.6.4 requirement
+	* [r13747] trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/gnc-date.c,
+	  trunk/lib/libqof/qof/gnc-date.h,
+	  trunk/lib/libqof/qof/gnc-numeric.h, trunk/lib/libqof/qof/guid.h,
+	  trunk/lib/libqof/qof/kvp_frame.c,
+	  trunk/lib/libqof/qof/kvp_frame.h,
+	  trunk/lib/libqof/qof/qof-be-utils.h,
+	  trunk/lib/libqof/qof/qofbackend-p.h,
+	  trunk/lib/libqof/qof/qofbackend.c,
+	  trunk/lib/libqof/qof/qofbackend.h,
+	  trunk/lib/libqof/qof/qofbook-p.h,
+	  trunk/lib/libqof/qof/qofbook.c, trunk/lib/libqof/qof/qofbook.h,
+	  trunk/lib/libqof/qof/qofbookmerge.c,
+	  trunk/lib/libqof/qof/qofbookmerge.h,
+	  trunk/lib/libqof/qof/qofclass.h,
+	  trunk/lib/libqof/qof/qofevent.c,
+	  trunk/lib/libqof/qof/qofevent.h, trunk/lib/libqof/qof/qofgobj.c,
+	  trunk/lib/libqof/qof/qofid-p.h, trunk/lib/libqof/qof/qofid.h,
+	  trunk/lib/libqof/qof/qofinstance.c,
+	  trunk/lib/libqof/qof/qofla-dir.h.in,
+	  trunk/lib/libqof/qof/qoflog.c, trunk/lib/libqof/qof/qoflog.h,
+	  trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofquerycore-p.h,
+	  trunk/lib/libqof/qof/qofquerycore.h,
+	  trunk/lib/libqof/qof/qofreference.c,
+	  trunk/lib/libqof/qof/qofsession.h,
+	  trunk/lib/libqof/qof/qofsql.c, trunk/lib/libqof/qof/qofsql.h:
+	  Standardise on gint and gchar. libqof 0.6.4 release.
+
+2006-04-07 18:49  codehelp
+
+	* [r13746] trunk/lib/libqof/backend/file/qof-backend-qsf.h,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.h: Add encoding support
+	  and fix compression option handling
+	* [r13745] trunk/lib/libqof/qof/Makefile.am,
+	  trunk/lib/libqof/qof/gnc-engine-util.c,
+	  trunk/lib/libqof/qof/gnc-engine-util.h,
+	  trunk/lib/libqof/qof/qof.h, trunk/lib/libqof/qof/qofutil.c,
+	  trunk/lib/libqof/qof/qofutil.h: Replace gnc-engine-util with
+	  qofutil
+
+2006-04-07 15:53  hampton
+
+	* [r13744] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Patch from
+	  chpe at gnome.org to use the gtk_show_about_dialog to avoid an
+	  inconsistency in the GtkAboutDialog code. Fixes 337634.
+
+2006-04-07 04:26  hampton
+
+	* [r13743] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c:
+	  Generate the gnc:count-data tags by hand so that the attribute
+	  will be written properly with all versions of libxml2.
+
+2006-04-07 04:21  hampton
+
+	* [r13742] trunk/src/backend/file/gnc-commodity-xml-v2.c: When
+	  writing a currency to the data file, write the full commodity
+	  data block for backward compatibility with 1.8, instead of just
+	  writing the quote source information.
+
+2006-04-06 03:44  hampton
+
+	* [r13741] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-window.c,
+	  trunk/src/gnome-utils/gnc-window.h,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c: Make the entire UI
+	  (menus and toolbar) insensitive when the progress bar is
+	  showing. Replaces the code to make the Save/Save As menus
+	  insensitive while saving. Should prevent a whole class of bugs
+	  caused by gtk commands sneaking in and causing non-recursive
+	  code to be entered recursively.
+
+2006-04-06 03:04  wilddev
+
+	* [r13740] tags/1.9.4: Tagging the 1.9.4 release of GnuCash
+
+2006-04-06 03:02  wilddev
+
+	* [r13739] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.4
+
+2006-04-05 22:30  chris
+
+	* [r13738] trunk/src/engine/test/test-commodities.c: Make the
+	  tests for growing commodity tables more accurate - silences
+	  incorrect failures.
+
+2006-04-05 17:59  chris
+
+	* [r13737] trunk/src/engine/gnc-commodity.c: When destroying a
+	  commodity, remove it from the commodity table. Fixes random
+	  crashes demonstrated by test-xml-commodities.
+
+2006-04-05 09:17  cstim
+
+	* [r13736] trunk/src/import-export/qif-import/qif.glade: Fix
+	  changed button label in text; 337190.
+
+2006-04-05 07:10  cstim
+
+	* [r13735] trunk/po/es.po: Updated Spanish translation by Eneko
+	  Lacunza
+
+2006-04-04 08:48  cstim
+
+	* [r13734]
+	  trunk/src/gnome-utils/glade/druid-provider-multifile.glade,
+	  trunk/src/import-export/qif-import/qif.glade: Fix translatable
+	  atttribute of non-visible label
+
+2006-04-04 08:45  cstim
+
+	* [r13733] trunk/po/glossary/nb.po, trunk/po/nb.po: Updated
+	  Norwegian translation and glossary by Tor Harald Thorland
+
+2006-04-03 22:26  hampton
+
+	* [r13732] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c: Serialize access to
+	  the "Save" and "Save As" commands. Fixes 148905.
+
+2006-04-03 21:39  hampton
+
+	* [r13731] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-commodity-xml-v2.c,
+	  trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/backend/file/sixtp-dom-generators.c,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome/dialog-commodities.c: Use the name "Currency"
+	  internally instead of ISO4217. Make it possible to edit the "get
+	  quotes" flag on currencies.
+
+2006-04-03 21:28  codehelp
+
+	* [r13730] trunk/po/en_GB.po: updated en_GB translation, utf-8.
+	  3626 messages
+
+2006-04-03 18:34  cstim
+
+	* [r13729] trunk/po/de.po: Updated German translation - 3551 out
+	  of 3617 done.
+
+2006-04-02 22:10  hampton
+
+	* [r13728] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-model.c: Change
+	  the access key on the "Change Split" button. Fixes 336836.
+
+2006-04-02 21:59  hampton
+
+	* [r13727] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Change the access key
+	  on the Transaction menu to not conflict with the Tools menu.
+	  Fixes 336829.
+
+2006-04-01 23:06  andi5
+
+	* [r13726] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: Set search column for
+	  account types lists interactive search. Fix 336833.
+
+2006-04-01 09:40  cstim
+
+	* [r13725] trunk/po/ca.po, trunk/po/cs.po, trunk/po/da.po,
+	  trunk/po/el.po, trunk/po/en_GB.po, trunk/po/es.po,
+	  trunk/po/es_NI.po, trunk/po/eu.po, trunk/po/fr.po,
+	  trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po, trunk/po/nb.po,
+	  trunk/po/ne.po, trunk/po/nl.po, trunk/po/pl.po, trunk/po/pt.po,
+	  trunk/po/pt_BR.po, trunk/po/ru.po, trunk/po/rw.po,
+	  trunk/po/sk.po, trunk/po/sv.po, trunk/po/ta.po, trunk/po/tr.po,
+	  trunk/po/uk.po, trunk/po/zh_CN.po, trunk/po/zh_TW.po: Make
+	  update-po for upcoming release
+
+2006-04-01 09:39  cstim
+
+	* [r13724] trunk/po/de.po: Updated German translation - 3540 out
+	  of 3616 done.
+
+2006-04-01 05:45  hampton
+
+	* [r13723] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-account-xml-v2.c,
+	  trunk/src/engine/Account.c,
+	  trunk/src/engine/engine-utilities.scm,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/scm/price-quotes.scm: Mike Alexander's patch to get
+	  currency quote retrieval working again, and some other small
+	  currency quote bugfixes. Closes 333572.
+
+2006-04-01 05:28  hampton
+
+	* [r13722] trunk/src/bin/gnucash-bin.c: Remove debug message.
+
+2006-03-31 21:08  jsled
+
+	* [r13721] trunk/src/test-core/test-stuff.h: match quotes (breaks
+	  editor syntax hilighting)
+
+2006-03-31 21:03  jsled
+
+	* [r13720] trunk/src/gnc-ui.h: spelling fix.
+
+2006-03-31 06:38  hampton
+
+	* [r13719] trunk/ChangeLog, trunk/src/engine/Transaction.c:
+	  Restore sorting transactions by date posted. Fixes 335190.
+
+2006-03-31 01:43  chris
+
+	* [r13718] trunk/src/engine/test-core/test-engine-stuff.c,
+	  trunk/src/engine/test/test-freq-spec.c,
+	  trunk/src/test-core/test-stuff.c,
+	  trunk/src/test-core/test-stuff.h: Return the actual number of
+	  test failures with get_rv(). Use shorter strings for commodity
+	  mnemonics. Ensure that test splits amount and value have the
+	  same sign. Avoid numerical overflow in rate calculation when
+	  generating test splits.
+
+2006-03-31 00:00  jsled
+
+	* [r13717] trunk/ChangeLog,
+	  trunk/src/app-utils/test/test-exp-parser.c,
+	  trunk/src/calculation/expression_parser.c: Tighten the grammar
+	  around quoted strings. Test-case fixes.
+
+2006-03-30 20:59  jsled
+
+	* [r13716] trunk/src/app-utils/test/test-exp-parser.c,
+	  trunk/src/calculation/expression_parser.c: factor out grammar
+	  check, add tests.
+
+2006-03-30 19:48  jsled
+
+	* [r13715] trunk/ChangeLog,
+	  trunk/src/app-utils/test/test-exp-parser.c,
+	  trunk/src/calculation/expression_parser.c,
+	  trunk/src/calculation/finvar.h: Bugs#308554, 334811: Add basic
+	  validation and test-cases for invalid expressions.
+
+2006-03-30 18:00  hampton
+
+	* [r13714] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-reset-warnings.c: Fix the dialog so
+	  that the 'Cancel' button cancels all changes made since the
+	  dialog was opened. (c.f. The HIG section on explicit apply
+	  windows.) The 'OK' button is now always sensitive.
+
+2006-03-30 17:20  hampton
+
+	* [r13713] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-window.c: Work around the fact that a
+	  validating XML parser barfs on gnucash's use of an attribute in
+	  an undefined namespace.
+
+2006-03-30 15:14  jsled
+
+	* [r13712] trunk/ChangeLog,
+	  trunk/accounts/C/acctchrt_checkbook.gnucash-xea: Bug#334777:
+	  Non-placeholder leaf Expense account in 'Simple Checkbook'
+	  example account tree.
+
+2006-03-30 09:15  cstim
+
+	* [r13711] trunk/src/gnome-utils/gnc-file.c: Fix forgotten i18n
+	  string
+
+2006-03-30 08:36  cstim
+
+	* [r13710] trunk/ChangeLog, trunk/po/es.po: Updated Spanish
+	  translation by Eneko Lacunza
+
+2006-03-28 21:19  cstim
+
+	* [r13709] trunk/ChangeLog,
+	  trunk/src/report/report-system/options-utilities.scm,
+	  trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/standard-reports/account-summary.scm,
+	  trunk/src/report/standard-reports/balance-sheet.scm,
+	  trunk/src/report/standard-reports/income-statement.scm: Move
+	  gnc:options-add-subtotal-view! options from income-statement,
+	  account-summary, and balance-sheet to option-utilisies.scm. Try
+	  to clarify the wording of the option -- any native english
+	  speaker please feel free to correct the wording even more.
+
+2006-03-28 20:31  cstim
+
+	* [r13708] trunk/src/report/standard-reports/equity-statement.scm,
+	  trunk/src/report/standard-reports/income-statement.scm,
+	  trunk/src/report/standard-reports/trial-balance.scm: Remove
+	  unused i18n strings
+
+2006-03-28 20:30  cstim
+
+	* [r13707] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/account-summary.scm,
+	  trunk/src/report/standard-reports/balance-sheet.scm: Revert
+	  report date option to the 1.8 state where the stock
+	  gnc:options-add-report-date! was used and allowed many potential
+	  relative dates.
+
+2006-03-28 18:43  cstim
+
+	* [r13706] trunk/po/de.po: Updated German translation - 3546 out
+	  of 3620 done.
+
+2006-03-28 18:42  cstim
+
+	* [r13705] trunk/src/gnome/window-reconcile.c: Fix incomplete
+	  marking for translation
+
+2006-03-28 02:04  hampton
+
+	* [r13704] trunk/ChangeLog, trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/glade/account.glade: Change the title of the
+	  category view to track changes in the highlighted group name.
+	  Fixes reopened 334783.
+
+2006-03-27 20:33  cstim
+
+	* [r13703] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.h: Stick with
+	  vertical padding of 2 as discussed in bug#334920.
+
+2006-03-26 00:21  hampton
+
+	* [r13702] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml: Add a
+	  reconcile button to the toolbar of a register page.
+
+2006-03-25 23:51  hampton
+
+	* [r13701] trunk/ChangeLog, trunk/src/gnome/window-reconcile.c:
+	  Add a context menu to the reconcile window. Fixes 120830.
+
+2006-03-25 21:03  warlord
+
+	* [r13700] trunk/ChangeLog,
+	  trunk/src/gnome-utils/test/Makefile.am: link against GUILE_LIBS
+	  when building the test-link test app (#336007)
+
+2006-03-25 16:35  hampton
+
+	* [r13699] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/combocell-gnome.c: Fix the
+	  lack of action strings in the popup menu. The problem occurs
+	  because the menu is populated before the the item edit widget is
+	  created. Add a list store to track these strings (what the old
+	  menustrings list did) which is then passed off to the item_edit
+	  widget when that is created. Fixes 334592.
+
+2006-03-25 02:53  chris
+
+	* [r13698] trunk/src/report/report-gnome/window-report.c: More
+	  translator-friendly string placement.
+
+2006-03-24 22:16  hampton
+
+	* [r13697] trunk/ChangeLog,
+	  trunk/src/gnome/ui/gnc-reconcile-window-ui.xml,
+	  trunk/src/gnome/window-reconcile.c: Add toolbar icons for
+	  Postpone and Cancel. Fixes 114267.
+
+2006-03-24 22:14  hampton
+
+	* [r13696] trunk/configure.in: List the optional components that
+	  will be compiled in the summary at the end of the configure run.
+
+2006-03-24 14:52  hampton
+
+	* [r13695]
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  trunk/src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in:
+	  Regularize capitalization of the word 'GnuCash' where its user
+	  visible.
+
+2006-03-24 02:01  chris
+
+	* [r13694] trunk/src/report/report-gnome/window-report.c: When
+	  opening GnuCash for the first time since 1.8.x, allow the user
+	  to choose which reports (if any) to open. If the user cancels
+	  the dialog, no reports are opened, otherwise, for each report,
+	  they are asked whether or not they want to open it. However, if
+	  there are less than 4 reports the dialog is skipped and the
+	  reports are just opened. Closes bug#335188. Note: if someone
+	  implements a solution that opened only precisely the reports
+	  that were left open in 1.8.x, it's fine to remove this extra
+	  code.
+
+2006-03-24 00:20  jsled
+
+	* [r13693] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c: Bug#335564: ensure
+	  book's SX list is consistent.
+
+2006-03-24 00:09  andi5
+
+	* [r13692] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-grid.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c,
+	  trunk/src/register/register-gnome/gnucash-sheet.h,
+	  trunk/src/register/register-gnome/gnucash-style.c: Add vertical
+	  padding in register cells and align text, editable text and the
+	  text cursor vertically. This makes the cells taller and centers
+	  the text. Add one pixel to the horizontal padding.
+
+2006-03-23 21:40  hampton
+
+	* [r13691] trunk/ChangeLog,
+	  trunk/src/backend/file/gncmod-backend-file.c,
+	  trunk/src/backend/postgres/PostgresBackend.c,
+	  trunk/src/business/business-core/businessmod-core.c,
+	  trunk/src/business/business-core/file/gncmod-business-backend-file.c,
+	  trunk/src/business/business-gnome/businessmod-gnome.c,
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in,
+	  trunk/src/business/business-utils/gncmod-business-utils.c,
+	  trunk/src/business/dialog-tax-table/gncmod-dialog-tax-table.c,
+	  trunk/src/doc/doxygen_main_page.c,
+	  trunk/src/engine/gnc-filepath-utils.c,
+	  trunk/src/engine/gncmod-engine.c,
+	  trunk/src/experimental/cgi-bin/gnc-server.c,
+	  trunk/src/gnome-search/gncmod-gnome-search.c,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/druid-gconf-setup.c,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome-utils/glade/druid-gconf-setup.glade,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome-utils/glade/totd.glade,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-splash.c,
+	  trunk/src/gnome/dialog-fincalc.c,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas.in,
+	  trunk/src/import-export/generic-import.glade,
+	  trunk/src/import-export/hbci/glade/hbci.glade,
+	  trunk/src/import-export/log-replay/gnc-plugin-log-replay.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c,
+	  trunk/src/report/report-gnome/gncmod-report-gnome.c,
+	  trunk/src/report/report-system/gncmod-report-system.c:
+	  Regularize capitalization of the word 'GnuCash'.
+
+2006-03-23 20:42  warlord
+
+	* [r13690] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/businessmod-gnome.c: open the
+	  bills due reminder at BOOK_OPENED instead of UI_START. This gets
+	  us the bills-due reminder on File->Open as well.
+
+2006-03-23 16:01  hampton
+
+	* [r13688] trunk/ChangeLog,
+	  trunk/src/backend/postgres/checkpoint.c: Update to compile on
+	  FC5.
+
+2006-03-23 12:12  cstim
+
+	* [r13687] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c,
+	  trunk/src/import-export/hbci/hbci-interaction.c,
+	  trunk/src/import-export/hbci/hbci-interactionP.h: Store the log
+	  level of all printed messages and use this as yet another check
+	  whether aqbanking had any errors.
+
+2006-03-23 05:41  chris
+
+	* [r13686] trunk/src/gnome-utils/dialog-options.c: Add a label to
+	  the budget selection combobox. Bug#334501
+
+2006-03-23 00:42  hampton
+
+	* [r13685] trunk/ChangeLog,
+	  trunk/accounts/C/acctchrt_common.gnucash-xea,
+	  trunk/accounts/da/acctchrt_common.gnucash-xea,
+	  trunk/accounts/de_CH/acctchrt_common.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_common.gnucash-xea,
+	  trunk/accounts/el_GR/acctchrt_common.gnucash-xea,
+	  trunk/accounts/es_ES/acctchrt_common.gnucash-xea,
+	  trunk/accounts/fr_FR/acctchrt_common.gnucash-xea,
+	  trunk/accounts/hu_HU/acctchrt_common.gnucash-xea,
+	  trunk/accounts/it/acctchrt_common.gnucash-xea,
+	  trunk/accounts/ja_JP.EUC/acctchrt_common.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_common.gnucash-xea,
+	  trunk/accounts/pt_BR/acctchrt_common.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_common.gnucash-xea,
+	  trunk/accounts/sk/acctchrt_common.gnucash-xea,
+	  trunk/accounts/tr_TR/acctchrt_common.gnucash-xea: Mark all
+	  common account sets to be initially selected when creating a new
+	  file.
+	* [r13684] trunk/src/gnome/dialog-new-user.c,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/druid-hierarchy.h,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Differentiate
+	  between calling the hierarchy druid from the new user code and
+	  from the window menus. In the former case, account sets that are
+	  marked to be initially selected will be pre-selected in the
+	  "account sets" tree. In the latter case (e.g. adding a new
+	  account set to existing accounts) these markings will be
+	  ignored. Don't allow the user to move off the account set
+	  selection page until at least one account set is selected.
+	  Relabel a window to make it clear that the account tree only
+	  reflects the accounts in one particular set, not the aggregate
+	  set of accounts that will be created. Fixes 334778, 334780 and
+	  334783.
+
+2006-03-23 00:33  chris
+
+	* [r13683]
+	  trunk/src/register/ledger-core/split-register-control.c: Avoid
+	  infinite loop in gnc_find_split_in_trans_by_memo(). Bug #335465
+	  Reported by Mike Alexander.
+
+2006-03-22 09:49  andi5
+
+	* [r13682] trunk/ChangeLog, trunk/src/gnome-utils/gnc-dense-cal.c,
+	  trunk/src/gnome-utils/gnc-frequency.c,
+	  trunk/src/gnome-utils/gnc-recurrence.c: Remove some optional
+	  return value locations in emissions of signals without return
+	  value.
+
+2006-03-22 09:30  andi5
+
+	* [r13681] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c: Rename gtkhtml
+	  workaround, non-squared graphs in gtkhtml >= 3.10.1. Fix 328114.
+
+2006-03-22 09:16  cstim
+
+	* [r13680] trunk/src/gnome/glade/stocks.glade: Fix small text
+	  problem. #335455.
+
+2006-03-21 23:36  hampton
+
+	* [r13679] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-account.h,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml: Add
+	  support for renumbering the account codes for all the children
+	  of a given account. Implements 334594.
+
+2006-03-21 22:02  cstim
+
+	* [r13678] trunk/po/fr.po: Updated French translation
+
+2006-03-21 06:16  andi5
+
+	* [r13677] trunk/ChangeLog, trunk/src/gnome-utils/gnc-date-edit.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Fill the filter by
+	  dialog with given start/end time instead of calculating
+	  earliest/latest date found. Fix 335237.
+
+2006-03-20 02:08  wilddev
+
+	* [r13674] tags/1.9.3: Tagging the 1.9.3 release of GnuCash
+
+2006-03-20 02:07  wilddev
+
+	* [r13673] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.3
+
+2006-03-19 21:12  cstim
+
+	* [r13672] trunk/po/de.po: Updated German translation - 3536 out
+	  of 3615 done.
+
+2006-03-19 20:42  cstim
+
+	* [r13671] trunk/src/business/business-reports/easy-invoice.scm,
+	  trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/business/business-reports/invoice.scm,
+	  trunk/src/gnome/glade/register.glade: I18n cleanup; mark
+	  forgotten strings for translation
+
+2006-03-19 20:01  cstim
+
+	* [r13670] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland; Translated 2523 out of 3713.
+
+2006-03-19 17:11  andi5
+
+	* [r13669] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-options.c: Treat the date option
+	  widget as container if it shows absolute and relative dates, in
+	  multichoice_cb.
+
+2006-03-18 21:21  andi5
+
+	* [r13668] trunk/ChangeLog, trunk/src/gnome-utils/gnc-dense-cal.c,
+	  trunk/src/gnome/dialog-sx-from-trans.c: Update frequency
+	  specification in SX from transaction dialog before moving one
+	  day back. Replace deprecated gdk_draw_pixmap.
+
+2006-03-18 16:11  andi5
+
+	* [r13667] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-sx-from-trans.c: Let glib subtract days
+	  from a GDate, because G_DATE_BAD_DAY (0) is a bad day.
+
+2006-03-18 15:05  andi5
+
+	* [r13666] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-embedded-window.c,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/dialog-sxsincelast.c: Correct SX editor and
+	  Since Last Run dialog to close their register plugin pages
+	  instead of only the ledgers. Fix 334627.
+
+2006-03-18 11:17  cstim
+
+	* [r13665] trunk/ChangeLog, trunk/src/scm/doc.scm,
+	  trunk/src/scm/help-topics-index.scm, trunk/src/scm/main.scm:
+	  Remove translation macros so that this unused file isn't
+	  included in the translation template any more. Avoids useless
+	  translation work. * src/scm/doc.scm, src/scm/main.scm: Comment
+	  out gnc:load-help-topics function because it isn't used anymore,
+	  and with the last change it also won't be translated anymore.
+
+2006-03-18 09:39  cstim
+
+	* [r13663] trunk/src/business/business-core/file/Makefile.am:
+	  Remove linking against module to stop the whining about
+	  currently broken MacOSX build. Needs to be fixed on an
+	  architectural basis sooner or later.
+
+2006-03-18 00:39  hampton
+
+	* [r13662] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-price-edit-db.c,
+	  trunk/src/scm/price-quotes.scm: Pass a dialog pointer through
+	  the scm code and back to the C error display functions. This
+	  will parent the error dialog properly. Fixes 334929.
+
+2006-03-17 23:26  hampton
+
+	* [r13661] trunk/ChangeLog,
+	  trunk/src/gnome-utils/account-quickfill.c: Enhance the quickfill
+	  event handler to detect changes in whether an account should
+	  appear in the quickfill. Fixes 334787.
+
+2006-03-17 22:59  hampton
+
+	* [r13660] trunk/ChangeLog, trunk/src/engine/gnc-hooks.c,
+	  trunk/src/engine/gnc-hooks.h, trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-main-window.c: Add a "book saved"
+	  hook. Use this to update the window titles after a file is
+	  saved. Fixes 334789.
+
+2006-03-17 21:04  cstim
+
+	* [r13659] trunk/src/import-export/hbci/Makefile.am,
+	  trunk/src/import-export/mt940/Makefile.am,
+	  trunk/src/import-export/ofx/Makefile.am: Clean up linker flags
+	  for optional packages as well
+
+2006-03-17 16:45  cstim
+
+	* [r13658] trunk/src/gnome-utils/Makefile.am: Remove unneeded
+	  extra directory separator
+
+2006-03-17 14:49  cstim
+
+	* [r13657] trunk/src/business/business-reports/owner-report.scm,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm: I18n
+	  cleanup; mark forgotten strings for translation
+
+2006-03-17 14:41  cstim
+
+	* [r13656] trunk/src/bin,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-ledger/Makefile.am: Final batch of
+	  fixed linker arguments. The standard configuration now builds on
+	  windows.
+
+2006-03-17 14:39  cstim
+
+	* [r13655] trunk/src/gnome-utils/Makefile.am: Don't display an
+	  Error if there actually wasn't one.
+
+2006-03-17 14:37  andi5
+
+	* [r13654] trunk/ChangeLog, trunk/src/engine/Split.c: Fix return
+	  value of get_corr_account_split and reverse the tests of its
+	  callers. Fix 334801.
+
+2006-03-17 05:37  hampton
+
+	* [r13653] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-view-price.c,
+	  trunk/src/gnome-utils/gnc-tree-view.c: Use the stable sort
+	  function from Account.c to back up the user selected primary
+	  sort column. Fixes 334595. Also collapse common code, pull
+	  strings via the model, and use the utf8 collate function instead
+	  of strcmp.
+
+2006-03-17 04:25  hampton
+
+	* [r13652] trunk/src/engine/Account.c, trunk/src/engine/Account.h,
+	  trunk/src/engine/Recurrence.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: Collapse
+	  duplicated code into a single function.
+
+2006-03-16 22:47  andi5
+
+	* [r13651] trunk/ChangeLog, trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/gnome/dialog-price-edit-db.c: Add row_activated
+	  callback to commodity and price editor tree views. Fix 334661.
+
+2006-03-16 22:03  andi5
+
+	* [r13650] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Make register ui
+	  update unconditionally if in a GncEmbeddedWindow.
+
+2006-03-16 20:26  hampton
+
+	* [r13649] trunk/ChangeLog, trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/gnc-glib-utils.c,
+	  trunk/src/core-utils/gnc-glib-utils.h,
+	  trunk/src/engine/Account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-view-price.c: Add a wrapper
+	  function for g_utf8_collate that handles checking for null
+	  pointers or null strings.
+
+2006-03-16 20:10  hampton
+
+	* [r13648] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.h,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c: Move the
+	  computation of accounting period balances into the model and
+	  colorize it.
+
+2006-03-16 15:38  cstim
+
+	* [r13647] trunk/HACKING: Add instructions for symbol lookup
+
+2006-03-16 15:25  cstim
+
+	* [r13646] trunk/ChangeLog,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-core/file/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/gnome/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/binary-import/test,
+	  trunk/src/import-export/log-replay/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/import-export/qif-import/test,
+	  trunk/src/import-export/qif/Makefile.am,
+	  trunk/src/import-export/test,
+	  trunk/src/register/register-gnome/test: Add more linker flags
+	  for referenced libraries. Necessary when the required libraries
+	  are not inferred from the dependencies by that particular
+	  libtool, e. g. on windows/mingw32.
+
+2006-03-16 03:43  hampton
+
+	* [r13645] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Treat the file name as
+	  utf8 when finding the file name for the window title.
+
+2006-03-16 02:42  hampton
+
+	* [r13644] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Don't create a new
+	  window for a page if there's already an open blank window. Fixes
+	  334672.
+
+2006-03-15 20:59  warlord
+
+	* [r13643] trunk/src/business/business-core/file/Makefile.am:
+	  Missed a backslash. Oops.
+
+2006-03-15 20:33  warlord
+
+	* [r13642] trunk/ChangeLog,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-core/file/Makefile.am: move
+	  file-backend dependency from core to core/file.
+
+2006-03-15 20:16  andi5
+
+	* [r13641] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-date.h,
+	  trunk/src/gnome/window-reconcile.c: Add a call to
+	  gnc_tm_set_day_end to correct initial ending balance in
+	  reconcile windows. Tiny comment typo in qof/gnc-date.h.
+
+2006-03-15 17:29  warlord
+
+	* [r13640] trunk/ChangeLog,
+	  trunk/src/business/business-core/Makefile.am: Move sources to
+	  remove the libgw-engine dependency.
+
+2006-03-15 17:08  warlord
+
+	* [r13639] trunk/ChangeLog,
+	  trunk/lib/libqof/backend/file/qsf-backend.c: *
+	  lib/libqof/backend/file/qsf-backend.c: add <locale.h> Note: it
+	  think it's probably wrong to set the locale here.
+
+2006-03-15 16:57  cstim
+
+	* [r13638] trunk/src/backend/file/test/Makefile.am,
+	  trunk/src/business/business-core/test,
+	  trunk/src/register/ledger-core/Makefile.am,
+	  trunk/src/register/ledger-core/test,
+	  trunk/src/register/register-core/Makefile.am,
+	  trunk/src/register/register-core/test: More linker flags for
+	  libraries. More svnignores.
+
+2006-03-15 12:51  cstim
+
+	* [r13637] trunk/ChangeLog,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-utils/Makefile.am,
+	  trunk/src/gnome-search/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/standard-reports/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am,
+	  trunk/src/report/utility-reports/Makefile.am: Add more linker
+	  flags for referenced libraries. Necessary when the required
+	  libraries are not inferred from the dependencies by that
+	  particular libtool, e. g. on windows/mingw32.
+
+2006-03-15 12:31  cstim
+
+	* [r13636] trunk/src/app-utils/test, trunk/src/calculation/test,
+	  trunk/src/gnome-utils/test, trunk/src/report/report-system/test:
+	  Add more svnignores for .exe test executables
+
+2006-03-15 11:14  cstim
+
+	* [r13635] trunk/ChangeLog, trunk/src/gnc-module/gnc-module.c,
+	  trunk/src/gnc-module/gnc-module.h,
+	  trunk/src/gnc-module/test/test-dynload.c: Remove include
+	  <ltdl.h> that is unnecessary for code using this header. Gets
+	  rid of some <ltdl.h> weirdness that plagues other object code
+	  files on windows.
+
+2006-03-14 16:59  cstim
+
+	* [r13634] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c: Disable extra NFS
+	  lockfile checking on windows due to missing link(2). This is not
+	  a problem because on windows there also is no NFS, and the
+	  open(O_CREAT|O_EXCL) is sufficiently atomic for our purposes.
+
+2006-03-14 16:31  cstim
+
+	* [r13633] trunk/src/app-utils/Makefile.am: Add linker flags for
+	  libraries that are needed with some libtools
+
+2006-03-14 15:21  cstim
+
+	* [r13632] trunk/configure.in: Check for gethostid and lnk
+	  functions
+
+2006-03-14 14:28  cstim
+
+	* [r13631] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland
+
+2006-03-14 11:00  cstim
+
+	* [r13630] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c:
+	  Disable file compression on windows due to missing pipe(2),
+	  conditioned on #ifdef _WIN32. Insert code suggestion for
+	  windows, but is disabled for now.
+
+2006-03-14 10:23  cstim
+
+	* [r13629] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h,
+	  trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.c,
+	  trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h:
+	  Improve include order so that building without <glob.h> is
+	  possible.
+
+2006-03-14 10:19  cstim
+
+	* [r13628] trunk/src/gnome/Makefile.am: Add necessary include and
+	  linker flags when files from backend/file should be compiled here
+	* [r13627] trunk/src/import-export/gnc-import-format-gnome.h:
+	  Remove unused include header
+
+2006-03-14 10:18  cstim
+
+	* [r13626] trunk/src/backend/file/test, trunk/src/engine/test,
+	  trunk/src/network-utils/test,
+	  trunk/src/report/locale-specific/us/test, trunk/src/tax/us/test:
+	  Add svnignores
+
+2006-03-14 08:43  cstim
+
+	* [r13625] trunk/po/fr.po: Updated French translation by Didier
+	  Vidal.
+
+2006-03-14 06:32  hampton
+
+	* [r13624] trunk/ChangeLog, trunk/src/engine/Account.c,
+	  trunk/src/engine/Group.c, trunk/src/engine/Group.h,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome/druid-stock-split.c: Leave the accounts
+	  unordered in the engine. Switch the g-wrap functions that return
+	  account lists to use new functions that return sorted lists so
+	  that they see no change. Fixes 331855. Also change the default
+	  account sorting to sort on utf8 strings.
+
+2006-03-14 06:08  hampton
+
+	* [r13623] trunk/src/gnome-utils/dialog-account.c: Fix a warning
+	  message.
+
+2006-03-13 22:56  codehelp
+
+	* [r13622] trunk/configure.in: bring library versions into line
+	  with QOF 0.6.3
+
+2006-03-13 22:52  codehelp
+
+	* [r13621] trunk/ChangeLog,
+	  trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/lib/libqof/backend/file/pilot-qsf-gncCustomer.xml,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-map.xsd.xml,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.h,
+	  trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/gnc-date.c: Synchronise with QOF 0.6.3.
+	  Correct map handling to allow reverse operations and iteration
+	  over hierarchical objects. Improving debug messages and
+	  preventing a crash when loading a map directly. Standardise QSF
+	  backend on gint and gchar. Add new map file.
+
+2006-03-13 21:16  cstim
+
+	* [r13620] trunk/po/de.po: Updated German translation - 3650 out
+	  of 3749 done.
+
+2006-03-13 21:11  cstim
+
+	* [r13619] trunk/src/gnome/gnc-plugin-page-register.c: Improve
+	  wording. Mark all strings for i18n.
+
+2006-03-13 17:07  andi5
+
+	* [r13618] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-plugin-page.c: Save a QofBook instead
+	  of its GUID in the list of books in plugin pages. This should
+	  renable the deletion of some plugin pages.
+
+2006-03-13 16:54  cstim
+
+	* [r13617] trunk/ChangeLog,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/business/business-core/gw-business-core-spec.scm,
+	  trunk/src/business/business-gnome/gw-business-gnome-spec.scm,
+	  trunk/src/business/dialog-tax-table/gw-dialog-tax-table-spec.scm,
+	  trunk/src/core-utils/gw-core-utils-spec.scm,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnc-module/gw-gnc-module-spec.scm,
+	  trunk/src/gnc-module/test/mod-bar/bar-gwrap.scm,
+	  trunk/src/gnc-module/test/mod-baz/baz-gwrap.scm,
+	  trunk/src/gnc-module/test/mod-foo/foo-gwrap.scm,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome/gw-gnc-spec.scm,
+	  trunk/src/register/register-core/gw-register-core-spec.scm,
+	  trunk/src/report/report-gnome/gw-report-gnome-spec.scm,
+	  trunk/src/report/report-system/gw-report-system-spec.scm,
+	  trunk/src/scm/main.scm: Reduce debug stack size from 2,000,000
+	  to 200,000 because guile on windows will only accept the smaller
+	  value.
+
+2006-03-13 15:20  cstim
+
+	* [r13616] trunk/lib, trunk/src/gnc-module/test/Makefile.am,
+	  trunk/src/gnc-module/test/misc-mods/Makefile.am,
+	  trunk/src/gnc-module/test/mod-bar/Makefile.am,
+	  trunk/src/gnc-module/test/mod-baz/Makefile.am,
+	  trunk/src/gnc-module/test/mod-foo/Makefile.am: Add linker flags
+	  in test programs for platforms where they are not inferred by
+	  libtool
+
+2006-03-13 04:37  hampton
+
+	* [r13615] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome-utils/gnc-plugin-page.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.h,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Add a new per-page
+	  callback to tell the page to finish any pending activities. The
+	  page may return FALSE to abort whatever the caller's normal
+	  function. Add helper routines to iterate over all pages in a
+	  window, or all pages in all windows. Call these new functions
+	  before Quit, Save, Close, and closing a window. The register
+	  page now implements this hook and uses it to save/discard any
+	  pending transaction. Closes 334090.
+
+2006-03-12 22:49  hampton
+
+	* [r13614] trunk/ChangeLog,
+	  trunk/src/gnome-utils/glade/commodity.glade: Tweak a couple of
+	  tooltips. Try and make it clear that the commodity mnemonic
+	  field must exactly match that used by the quote source.
+
+2006-03-12 22:46  hampton
+
+	* [r13613] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm: Andrew
+	  Sackville-West's patch to tidy up the multi-currency handling
+	  quite a bit. It also adds some functionality such as showing the
+	  basis, realized and unrealized gains, and takes advantage of the
+	  new gnc_pricedb_lookup-latest-before function.
+
+2006-03-12 22:23  hampton
+
+	* [r13612] trunk/ChangeLog,
+	  trunk/src/business/business-reports/aging.scm: Andrew
+	  Sackville-West's patch to show zero balance entries in the
+	  payables and receivables aging reports.
+
+2006-03-12 22:18  hampton
+
+	* [r13611] trunk/ChangeLog, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/engine/gnc-pricedb.h,
+	  trunk/src/engine/gw-engine-spec.scm: Andrew Sackville-West's
+	  changes to add the ability to lookup the latest price before a
+	  specific date.
+
+2006-03-12 21:54  hampton
+
+	* [r13610] trunk/ChangeLog, trunk/src/engine/Transaction.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/gnc-split-reg.c,
+	  trunk/src/gnome/gnc-split-reg.h,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c,
+	  trunk/src/register/ledger-core/split-register.h,
+	  trunk/src/register/register-gnome/gnucash-sheet.c,
+	  trunk/src/register/register-gnome/gnucash-sheet.h: Replace the
+	  changes in r13361 with a better method for determining when a
+	  change in the register needs to be reflected in the available
+	  user actions. Now updates the Void and Unvoid actions which
+	  implements the enhancement request in 330763.
+
+2006-03-12 03:52  hampton
+
+	* [r13609] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/combocell-gnome.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.h: Finish
+	  removing the redundant list of valid strings maintained by the
+	  combocell and use the list in the item_edit widget. Fixes the
+	  problem where account cell contents disappear when focusing
+	  in/out of an account cell.
+
+2006-03-12 03:42  hampton
+
+	* [r13608] trunk/src/gnome-utils/account-quickfill.c: Update the
+	  quickfill to watch for accounts being added/removed from the
+	  account tree.
+
+2006-03-12 03:38  chris
+
+	* [r13607] trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/glade/transfer.glade: Restore some widget
+	  names that were lost in r9938 but still used by
+	  dialog-transfer.c. Added a warning to find more bugs like this
+	  one.
+
+2006-03-11 23:41  andi5
+
+	* [r13606] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-commodity.c: Fix order of
+	  parameters to gnc_ui_common_commodity_modal, and 334181.
+
+2006-03-11 21:52  warlord
+
+	* [r13605] trunk/ChangeLog, trunk/src/engine/Makefile.am: fix the
+	  build-order (and install order) of the engine libs.
+
+2006-03-11 21:07  cstim
+
+	* [r13604]
+	  trunk/src/import-export/binary-import/binary-import.glade: Unify
+	  whitespaces in strings
+
+2006-03-11 20:54  cstim
+
+	* [r13603] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland; Translated 2431 out of 3729.
+
+2006-03-11 19:43  warlord
+
+	* [r13602] trunk/ChangeLog,
+	  trunk/src/business/business-reports/invoice.scm: translate
+	  "Thank you.." string.
+
+2006-03-11 19:39  chris
+
+	* [r13601] trunk/src/engine/Group.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: Change the
+	  account removal event back to using the parent account instead
+	  of the group, but delay the nulling of the account's group
+	  pointer until after the generation of the remove event. That
+	  way, the tree model can verify that the removed account's root
+	  is the same as the root for the model. Also, in the model's
+	  event handler, check that accounts are in the same book as the
+	  model is for.
+
+2006-03-11 18:10  warlord
+
+	* [r13600] trunk/ChangeLog,
+	  trunk/src/gnome-search/dialog-search.c: Make sure we translate
+	  the button label string.
+
+2006-03-11 17:30  hampton
+
+	* [r13599] trunk/ChangeLog, trunk/src/engine/Group.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: The account tree
+	  model event handler needs to be more robust in the case of
+	  multiple account sets existing at the same time. Pass the
+	  account group instead of the parent account so that its possible
+	  to determine which model a "top level" account belongs to. Fixes
+	  333866.
+
+2006-03-11 15:52  andi5
+
+	* [r13597] trunk/ChangeLog,
+	  trunk/src/gnome-utils/window-main-summarybar.c: Unref the
+	  summary bar list store so that it gets deleted together with the
+	  combobox.
+
+2006-03-11 15:23  andi5
+
+	* [r13595] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c: Avoid calculation
+	  of account period total for the top level account.
+
+2006-03-11 01:23  chris
+
+	* [r13594] trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/backend/file/test/test-save-in-lang.c,
+	  trunk/src/gnc-module/gnc-module.c: Invert sense of conditions
+	  involving g_setenv() since its return value is different than
+	  that of setenv(). Also, convert last remaining uses of setenv()
+	  to g_setenv().
+
+2006-03-10 23:32  warlord
+
+	* [r13593] trunk/ChangeLog, trunk/Makefile.am: put ".links" into
+	  lib so rm -rf works properly from the top-level of the source
+	  tree.
+
+2006-03-10 23:11  hampton
+
+	* [r13592] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Walk through the list
+	  of plugins installed in a window and uninstall them before the
+	  window is destroyed. Fixes 333973.
+
+2006-03-10 23:06  hampton
+
+	* [r13591] trunk/src/core-utils/gnc-gobject-utils.c: Change the
+	  output from this file to use g_message instead of g_warning so
+	  the --g-fatal-warnings argument doesn't trip over it.
+
+2006-03-10 22:16  warlord
+
+	* [r13590] trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/qif-dialog-utils.scm:
+	  gnc:get-account-from-full-name requires two args, not three
+	  (#334170)
+
+2006-03-10 20:35  cstim
+
+	* [r13589] trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome/glade/price.glade: I18n cleanup; improve wording
+	  to disambiguation the semantics of a bool checkbox.
+	* [r13588] trunk/po/de.po: Updated German translation - 3642 out
+	  of 3729 done.
+
+2006-03-10 20:07  hampton
+
+	* [r13587] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Show newly created
+	  windows when restoring the second and subsequent windows.
+
+2006-03-10 14:58  cstim
+
+	* [r13586] trunk/ChangeLog, trunk/po/da.po, trunk/po/es_NI.po,
+	  trunk/po/eu.po, trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po,
+	  trunk/po/nl.po, trunk/po/pl.po, trunk/po/pt_BR.po,
+	  trunk/po/ru.po, trunk/po/sk.po, trunk/po/sv.po, trunk/po/tr.po,
+	  trunk/po/zh_TW.po: Recode all po files into UTF-8 character
+	  encoding, except for the most recent ones, and uk.po which seems
+	  to contain encoding errors.
+
+2006-03-10 14:28  cstim
+
+	* [r13585] trunk/lib/libgsf-1.12.3/gsf-win32/Makefile.am: Fix
+	  linker flags for gsf-win32 sublibrary
+
+2006-03-10 12:08  cstim
+
+	* [r13584] trunk/lib/libqof/qof/Makefile.am: Add include/linker
+	  flags for using the lib/libc substitutions
+
+2006-03-10 11:04  cstim
+
+	* [r13583] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/gnome-utils/dialog-utils.c: Gnucash replaced
+	  dlopen/dlsym by the g_module functions, so don't error out if
+	  they are unavailable; dlsym is needed only optionally for BSD
+	  linkers. Also removes quotation error in AC_MSG_ERROR macro.
+
+2006-03-10 10:58  cstim
+
+	* [r13582] trunk/macros/legacy_macros.m4: Add long-forgotten macro
+	  definition from acinclude.m4 r10161 that is sometimes still
+	  needed
+
+2006-03-10 10:30  cstim
+
+	* [r13581] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c,
+	  trunk/src/gnome-utils/gnc-druid-provider-multifile-gnome.h: If
+	  <glob.h> unavailable, provide own typedef and disable globbing.
+
+2006-03-10 10:17  cstim
+
+	* [r13580] trunk/src/app-utils/Makefile.am: libgncmod-app-utils
+	  uses functions from libgw-engine, so link to that library
+
+2006-03-10 09:40  cstim
+
+	* [r13579] trunk/configure.in: Reorder CHECK_FUNCS so that they
+	  are checked even if enable-gui=no
+
+2006-03-10 09:36  cstim
+
+	* [r13578] trunk/src/backend/file/gnc-backend-file.c: Check for
+	  errno macro EOPNOTSUPP only if it is defined
+
+2006-03-10 09:14  cstim
+
+	* [r13577] trunk/src/app-utils/Makefile.am: Fix linker flags
+
+2006-03-10 04:23  chris
+
+	* [r13576] trunk/src/gnome-utils/dialog-transfer.c,
+	  trunk/src/gnome-utils/dialog-transfer.h,
+	  trunk/src/register/ledger-core/split-register-control.c: Factor
+	  out and create new function:
+	  gnc_xfer_dialog_run_exchange_dialog() This isolates the
+	  amount-to-value conversion algorithm from the register.
+
+2006-03-10 02:28  chris
+
+	* [r13575]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-p.h,
+	  trunk/src/register/ledger-core/split-register.c: More register
+	  line wraps, clean-ups, etc., plus some minor re-ordering to
+	  prepare for some factoring.
+
+2006-03-09 22:58  andi5
+
+	* [r13574] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Move retrieval of
+	  private data of main window after the creation of the window.
+
+2006-03-09 21:57  hampton
+
+	* [r13573] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/qofevent-p.h,
+	  trunk/lib/libqof/qof/qofevent.c,
+	  trunk/src/app-utils/gnc-component-manager.c,
+	  trunk/src/engine/gnc-commodity.h, trunk/src/engine/gnc-engine.h,
+	  trunk/src/gnome-utils/account-quickfill.c,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.h,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c: Finish removing
+	  deprecated QOF functions.
+
+2006-03-09 21:23  hampton
+
+	* [r13572] trunk/ChangeLog, trunk/src/gnc-ui.h,
+	  trunk/src/gnome/dialog-price-editor.c,
+	  trunk/src/gnome/top-level.c: Restore clickable links for price
+	  quotes.
+
+2006-03-09 18:12  codehelp
+
+	* [r13571] trunk/ChangeLog, trunk/src/optional/Makefile.am: Make
+	  xsl/ available for installation and therefore packaging.
+
+2006-03-09 17:04  codehelp
+
+	* [r13570] trunk/lib/libqof/backend/file/qsf-backend.c: Remove
+	  deprecated glib function g_strncasecmp in favour of
+	  g_ascii_strncasecmp
+
+2006-03-09 17:03  codehelp
+
+	* [r13569] trunk/lib/libqof/qof/qofevent.h: Doxygen tweak
+	* [r13568] trunk/lib/libqof/qof/qofquery-deserial.c: Update
+	  status; this file will not exist in libqof2
+	* [r13567] trunk/ChangeLog, trunk/lib/libqof/qof/Makefile.am,
+	  trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h, trunk/lib/libqof/qof/qof.h,
+	  trunk/lib/libqof/qof/qof_book_merge.c,
+	  trunk/lib/libqof/qof/qof_book_merge.h,
+	  trunk/lib/libqof/qof/qofbookmerge.c,
+	  trunk/lib/libqof/qof/qofbookmerge.h,
+	  trunk/src/engine/test/test-book-merge.c,
+	  trunk/src/gnome/druid-merge.c: Move qof_book_merge to new naming
+	  convention and deprecate old code
+
+2006-03-09 16:54  codehelp
+
+	* [r13566] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/optional/Makefile.am, trunk/src/optional/xsl,
+	  trunk/src/optional/xsl/Makefile.am,
+	  trunk/src/optional/xsl/README,
+	  trunk/src/optional/xsl/date-time.xsl,
+	  trunk/src/optional/xsl/gnucash-gnccustomer-vcard2.xsl,
+	  trunk/src/optional/xsl/gnucash-std.xsl,
+	  trunk/src/optional/xsl/string.xsl,
+	  trunk/src/optional/xsl/vcard-gnccustomer.pl: Optional XSL
+	  stylesheets and support - prototypes
+
+2006-03-09 16:50  codehelp
+
+	* [r13565] trunk/ChangeLog: allow recursive copying of gncEntry
+	  from a gncInvoice
+
+2006-03-09 16:49  codehelp
+
+	* [r13564] trunk/src/business/business-core/gncInvoice.c: allow
+	  recursive copying of gncEntry from a gncInvoice
+
+2006-03-09 16:44  cstim
+
+	* [r13563] trunk/ChangeLog, trunk/src/engine/Transaction.c: Add
+	  substitution code for unavailable function gettimeofday
+
+2006-03-09 16:43  cstim
+
+	* [r13562] trunk/lib/libqof/qof/qoflog.c: Clean up unused
+	  gettimeofday argument
+
+2006-03-09 16:31  cstim
+
+	* [r13561] trunk/src/gnc-module/test: Add svnignores
+
+2006-03-09 16:26  cstim
+
+	* [r13560] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-date.c,
+	  trunk/lib/libqof/qof/qoflog.c: Add substitution code for
+	  unavailable functions gettimeofday and gmtime_r.
+
+2006-03-09 16:06  cstim
+
+	* [r13559] trunk/src/backend/file/gnc-backend-file.c: Add
+	  compatibility ifdefs for unavailable functions
+
+2006-03-09 15:49  cstim
+
+	* [r13558] trunk/src/engine/Makefile.am: Reorder linking of engine
+	  libraries to avoid undefined references which are not allowed on
+	  windows
+
+2006-03-09 15:48  cstim
+
+	* [r13557] trunk/lib/libgsf-1.12.3/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/gsf/Makefile.am,
+	  trunk/src/app-utils/Makefile.am,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am: Add more linker flags,
+	  necessary for some platforms (windows)
+
+2006-03-09 14:28  cstim
+
+	* [r13556] trunk/ChangeLog, trunk/Makefile.am, trunk/configure.in,
+	  trunk/lib/guile-www/Makefile.am,
+	  trunk/src/app-utils/Makefile.am,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-reports/Makefile.am,
+	  trunk/src/business/business-utils/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/core-utils/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/import-export/qif-io-core/Makefile.am,
+	  trunk/src/optional/swig/Makefile.am,
+	  trunk/src/register/register-core/Makefile.am,
+	  trunk/src/report/locale-specific/us/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/standard-reports/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am,
+	  trunk/src/report/utility-reports/Makefile.am,
+	  trunk/src/scm/Makefile.am, trunk/src/scm/gnumeric/Makefile.am,
+	  trunk/src/scm/printing/Makefile.am,
+	  trunk/src/tax/us/Makefile.am: Replace "ln -sf" by "$(LN_S) -f"
+	  for systems that don't have symbolic links available.
+
+2006-03-09 13:03  cstim
+
+	* [r13555] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h: Check for
+	  <glob.h> and provide own typedef if header unavailable.
+
+2006-03-09 13:00  cstim
+
+	* [r13554] trunk/configure.in,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c: Check for <X11/Xlib.h>
+	  and ignore code section if header unavailable.
+
+2006-03-09 12:59  cstim
+
+	* [r13553] trunk/src/gnome-utils/druid-gconf-setup.c: Remove
+	  unused header include
+
+2006-03-09 12:22  cstim
+
+	* [r13552] trunk/ChangeLog, trunk/po/glossary/vi.po: Updated
+	  vietnamese glossary by Clytie Siddall <clytie at riverland.net.au>
+
+2006-03-09 09:39  cstim
+
+	* [r13551] trunk/Makefile.am: Add creation rules for
+	  po/gnucash.pot so that it can always be created for make dist.
+
+2006-03-09 06:08  hampton
+
+	* [r13550] trunk/ChangeLog, trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofsession.c, trunk/src/engine/Group.c,
+	  trunk/src/engine/gw-engine-spec.scm: Remove more functions to be
+	  deprecated in libqof2. (Pass Three - more trivial substitutions
+	  and simple translations.)
+
+2006-03-09 05:51  hampton
+
+	* [r13549] trunk/ChangeLog, trunk/lib/libc/setenv.c,
+	  trunk/lib/libc/setenv.h,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/gnc-engine-util.h,
+	  trunk/lib/libqof/qof/kvp-util-p.h,
+	  trunk/lib/libqof/qof/kvp-util.h,
+	  trunk/lib/libqof/qof/qof_book_merge.c,
+	  trunk/lib/libqof/qof/qofbackend-p.h,
+	  trunk/lib/libqof/qof/qofchoice.c,
+	  trunk/lib/libqof/qof/qofgobj.c,
+	  trunk/lib/libqof/qof/qofinstance.c,
+	  trunk/lib/libqof/qof/qofquery-deserial.c,
+	  trunk/lib/libqof/qof/qofreference.c,
+	  trunk/lib/libqof/qof/qofsql.c, trunk/src/RecnWindow.h,
+	  trunk/src/app-utils/gnc-exp-parser.h,
+	  trunk/src/app-utils/gnc-ui-common.h,
+	  trunk/src/app-utils/gnc-ui-util.h,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/backend/file/gnc-xml-helper.h,
+	  trunk/src/backend/file/gnc-xml.h,
+	  trunk/src/backend/file/sixtp-dom-generators.h,
+	  trunk/src/backend/file/sixtp-dom-parsers.h,
+	  trunk/src/backend/file/test/test-file-stuff.h,
+	  trunk/src/backend/postgres/checkpoint.c,
+	  trunk/src/business/business-gnome/gw-business-gnome-spec.scm,
+	  trunk/src/business/dialog-tax-table/gw-dialog-tax-table-spec.scm,
+	  trunk/src/engine/AccountP.h, trunk/src/engine/FreqSpec.h,
+	  trunk/src/engine/GroupP.h, trunk/src/engine/SX-book.h,
+	  trunk/src/engine/SX-ttinfo.h, trunk/src/engine/ScrubP.h,
+	  trunk/src/engine/SplitP.h, trunk/src/engine/TransLog.h,
+	  trunk/src/engine/TransactionP.h,
+	  trunk/src/engine/test-core/test-engine-stuff.h,
+	  trunk/src/gnome-utils/QuickFill.h,
+	  trunk/src/gnome-utils/dialog-account.h,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome/dialog-chart-export.c,
+	  trunk/src/gnome/dialog-fincalc.h,
+	  trunk/src/gnome/dialog-print-check.h,
+	  trunk/src/gnome/gw-gnc-spec.scm,
+	  trunk/src/register/register-core/gtable.h,
+	  trunk/src/register/register-core/gw-register-core-spec.scm,
+	  trunk/src/register/register-gnome/gncmod-register-gnome.c,
+	  trunk/src/report/report-gnome/gw-report-gnome-spec.scm,
+	  trunk/src/test-core/test-stuff.h: Never include "config.h" from
+	  a header file. Doing so makes it nigh impossible to override
+	  configuration settings.
+
+2006-03-09 03:58  warlord
+
+	* [r13548] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/engine/Split.c, trunk/src/engine/gnc-event.h: Define
+	  and emit two new events when splits are added/removed from
+	  accounts. * src/engine/gnc-event.h: Add GNC_EVENT_ITEM_ADDED and
+	  GNC_EVENT_ITEM_REMOVED event definitions * src/engine/Split.c:
+	  Emit GNC_EVENT_ITEM_ADDED and GNC_EVENT_ITEM_REMOVED events when
+	  a split is added or removed from an account. * configure.in:
+	  depend on QOF 0.6.3 for proper event handling.
+
+2006-03-09 03:48  hampton
+
+	* [r13547] trunk/ChangeLog, trunk/lib/libqof/qof/qoflog.h,
+	  trunk/src/app-utils/gnc-component-manager.c,
+	  trunk/src/app-utils/gnc-component-manager.h,
+	  trunk/src/backend/postgres/events.c,
+	  trunk/src/business/business-core/gncAddress.c,
+	  trunk/src/business/business-core/gncBillTerm.c,
+	  trunk/src/business/business-core/gncCustomer.c,
+	  trunk/src/business/business-core/gncEmployee.c,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncJob.c,
+	  trunk/src/business/business-core/gncOrder.c,
+	  trunk/src/business/business-core/gncTaxTable.c,
+	  trunk/src/business/business-core/gncVendor.c,
+	  trunk/src/business/business-gnome/business-gnome-utils.c,
+	  trunk/src/business/business-gnome/dialog-billterms.c,
+	  trunk/src/business/business-gnome/dialog-customer.c,
+	  trunk/src/business/business-gnome/dialog-employee.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-job.c,
+	  trunk/src/business/business-gnome/dialog-order.c,
+	  trunk/src/business/business-gnome/dialog-payment.c,
+	  trunk/src/business/business-gnome/dialog-vendor.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerDisplay.c,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/FreqSpec.c,
+	  trunk/src/engine/Group.c, trunk/src/engine/Period.c,
+	  trunk/src/engine/SchedXaction.c, trunk/src/engine/Split.c,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/gnc-budget.c,
+	  trunk/src/engine/gnc-commodity.c, trunk/src/engine/gnc-lot.c,
+	  trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/engine/test/test-book-merge.c,
+	  trunk/src/engine/test/test-recursive.c,
+	  trunk/src/gnome-search/dialog-search.c,
+	  trunk/src/gnome-search/gnc-general-search.c,
+	  trunk/src/gnome-utils/account-quickfill.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-query-list.c,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-query-list.c,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c,
+	  trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome/dialog-tax-info.c,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/lot-viewer.c,
+	  trunk/src/gnome/window-reconcile.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c: Remove more
+	  functions to be deprecated in libqof2. (Pass Two - more trivial
+	  substitutions, some simple translations.)
+
+2006-03-09 03:33  warlord
+
+	* [r13546] trunk/ChangeLog, trunk/lib/libqof/qof/qofevent.c,
+	  trunk/lib/libqof/qof/qofevent.h: Fix the definition of
+	  QOF_EVENT_BASE; use QOF_EVENT__LAST for tests.
+
+2006-03-09 02:29  hampton
+
+	* [r13545] trunk/ChangeLog,
+	  trunk/src/app-utils/gnc-component-manager.c,
+	  trunk/src/backend/file/test/test-xml-pricedb.c,
+	  trunk/src/backend/postgres/PostgresBackend.c,
+	  trunk/src/backend/postgres/account.c,
+	  trunk/src/backend/postgres/price.c,
+	  trunk/src/backend/postgres/test/test-db.c,
+	  trunk/src/backend/postgres/test/test-period.c,
+	  trunk/src/backend/postgres/txn.c,
+	  trunk/src/backend/postgres/txnmass.c,
+	  trunk/src/bin/gnucash-bin.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/test/test-period.c,
+	  trunk/src/gnome-utils/account-quickfill.c,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c,
+	  trunk/src/gnome/dialog-chart-export.c,
+	  trunk/src/gnome/druid-acct-period.c,
+	  trunk/src/gnome/druid-merge.c,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/lot-viewer.c,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Remove
+	  functions to be deprecated in libqof2. (Pass One - trivial
+	  substitutions)
+
+2006-03-09 00:49  hampton
+
+	* [r13544] trunk/ChangeLog, trunk/src/engine/Account.c,
+	  trunk/src/engine/Group.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: Remove extra
+	  events added in r13483. This leaves the REMOVE event as the only
+	  changed event.
+
+2006-03-08 21:22  warlord
+
+	* [r13543] trunk/ChangeLog, trunk/src/engine/gnc-filepath-utils.c:
+	  gstdio.h and g_mkdir are in glib-2.6 -- use old APIs with
+	  glib-2.4.
+
+2006-03-08 16:00  cstim
+
+	* [r13542] trunk/ChangeLog, trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/gnc-module/gnc-module.c: Replace setenv() by g_setenv
+	  for increased cross-platform compatibility.
+
+2006-03-08 15:59  cstim
+
+	* [r13541] trunk/src/engine/gnc-filepath-utils.c: Replace mkdir by
+	  g_mkdir for increased cross-platform compatibility.
+
+2006-03-08 15:52  cstim
+
+	* [r13540] trunk/ChangeLog, trunk/src/app-utils/file-utils.c,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/business/business-gnome/business-urls.c,
+	  trunk/src/core-utils/gnc-gconf-utils.c,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/dialog-reset-warnings.c,
+	  trunk/src/gnome-utils/gnc-currency-edit.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-plugin-file-history.c,
+	  trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome/window-reconcile.c: Replace index(3) by
+	  strchr(3) and rindex(3) by strrchr(3) because the latter is more
+	  widely available.
+
+2006-03-08 06:13  hampton
+
+	* [r13539] trunk/ChangeLog, trunk/src/gnome-utils/gnc-splash.c:
+	  Use a font size of "smaller" when printing to the splash screen.
+	  Should solve 104436 except for people running with huge system
+	  fonts.
+
+2006-03-08 05:47  chris
+
+	* [r13538] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register.c: More
+	  line-wraps, cleanups, factoring new function:
+	  xaccTransGetSplitIndex().
+
+2006-03-08 05:16  hampton
+
+	* [r13537] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.h: Relabel column
+	  titles from "XXX (Report)" to a label that includes the currency
+	  mnemonic (e.g. "Total (EUR)").
+
+2006-03-08 05:14  hampton
+
+	* [r13536] trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/engine/gnc-hooks.c, trunk/src/engine/gnc-hooks.h:
+	  Cache the result of a gconf lookup for a currency choice. Add a
+	  new callback hook for when a user changes a currency setting
+	  (default account or report).
+
+2006-03-08 04:48  chris
+
+	* [r13535]
+	  trunk/src/register/ledger-core/split-register-model-save.c,
+	  trunk/src/register/ledger-core/split-register-model.c,
+	  trunk/src/register/ledger-core/split-register-util.c: More
+	  line-wraps, cleanups and factoring.
+
+2006-03-08 04:48  hampton
+
+	* [r13534] trunk/src/gnome/druid-acct-period.c: More references to
+	  "Next" that should now say "Forward".
+
+2006-03-08 04:05  hampton
+
+	* [r13533] trunk/src/gnome/glade/sched-xact.glade: Change a
+	  reference to the Next button to now refer to the Forward button.
+
+2006-03-08 03:06  hampton
+
+	* [r13532] trunk/ChangeLog,
+	  trunk/src/gnome-utils/account-quickfill.c,
+	  trunk/src/gnome-utils/account-quickfill.h,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register.h,
+	  trunk/src/register/register-core/combocell.h,
+	  trunk/src/register/register-gnome/combocell-gnome.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.h,
+	  trunk/src/register/register-gnome/gnucash-item-list.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.h: The
+	  account quickfill has multiple components to it, only one of
+	  which was shared. Build and use a shared list store used by the
+	  gnucash_item_edit widget (which is updated by signals sent when
+	  accounts are added/deleted/modified.) With this in place, its
+	  not necessary to rebuild two account quickfills for each open
+	  register window when a gnc_gui_resume_refresh is called which
+	  eliminates an O(2n) slowdown. This seems sufficient to close
+	  120028.
+
+2006-03-08 02:26  hampton
+
+	* [r13531] trunk/ChangeLog, trunk/src/gnc-ui.h,
+	  trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/gnome/dialog-price-edit-db.c,
+	  trunk/src/gnome/dialog-price-editor.c,
+	  trunk/src/gnome/top-level.c: Remove all usage of
+	  gnc_get_current_session / book / whatever except at the very top
+	  level when the dialog is originally created. Tell the component
+	  manager to delete the dialog when the session is destroyed.
+	  Remove support for an old url-that-generates-a-price-edit-window
+	  trick.
+	* [r13530] trunk/src/gnome-utils/gnc-file.c: Add a couple of calls
+	  to the component manager when closing the current session.
+
+2006-03-08 02:20  chris
+
+	* [r13529]
+	  trunk/src/register/ledger-core/split-register-control.c: Minor
+	  line wraps and factoring.
+
+2006-03-08 00:06  hampton
+
+	* [r13528] trunk/ChangeLog, trunk/src/engine/gnc-pricedb.c: Use
+	  the pointer to the commodity as a hash key instead of looking up
+	  the commodity string and then hashing that. Fixes 332678.
+
+2006-03-07 23:15  andi5
+
+	* [r13527] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/qof/guid.c: Add configure test for sys/times.h
+	  and corrected guid.c to check for that.
+
+2006-03-07 22:12  codehelp
+
+	* [r13526] trunk/po/en_GB.po: fix plural message error that msgfmt
+	  -c and KBabel missed
+
+2006-03-07 22:01  cstim
+
+	* [r13525] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/qof/guid.c: Make seed collection parts that
+	  depend on particular functions #ifdef'd on that to enable easier
+	  windows/mingw32 porting.
+
+2006-03-07 22:00  cstim
+
+	* [r13524] trunk/lib/libc/localtime_r.c, trunk/lib/libc/setenv.c,
+	  trunk/lib/libc/setenv.h: Fix old libc substitution files, now
+	  needed for windows/mingw32 porting.
+
+2006-03-07 21:59  cstim
+
+	* [r13523] trunk/lib/libqof/qof/qofbackend.c,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/src/engine/gnc-engine.c,
+	  trunk/src/gnome-utils/dialog-commodity.h,
+	  trunk/src/gnome-utils/dialog-utils.h,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/report/report-gnome/dialog-column-view.c,
+	  trunk/src/report/report-gnome/dialog-column-view.h: Minor header
+	  include cleanups to enable easier windows/mingw32 porting
+
+2006-03-07 21:29  codehelp
+
+	* [r13522] trunk/po/en_GB.po: updated en_GB translation, 3724
+	  translated
+
+2006-03-07 21:27  cstim
+
+	* [r13521] trunk/po/nb.po: Updated Norwegian translation; 2234 out
+	  of 3724 done.
+
+2006-03-07 20:50  cstim
+
+	* [r13520] trunk/ChangeLog, trunk/Makefile.am: Add po/gnucash.pot
+	  to EXTRA_DIST because the translation template is needed in the
+	  tarball for translators.
+
+2006-03-07 20:44  cstim
+
+	* [r13519] trunk/po/de.po: Updated German translation - 3627 out
+	  of 3724 done.
+
+2006-03-07 20:43  cstim
+
+	* [r13518] trunk/src/gnome-utils/dialog-preferences.c: Improve
+	  i18n string for separator character sample
+
+2006-03-07 20:42  cstim
+
+	* [r13517] trunk/lib/goffice-0.0.4/tests: Update svn:ignore
+	  property
+
+2006-03-07 20:41  cstim
+
+	* [r13516] trunk/lib/libgsf-1.12.3/tests: Update svn:ifnore
+	  property
+
+2006-03-07 19:36  andi5
+
+	* [r13515] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Disable sensitivity
+	  of style radio actions for registers with ledger_type different
+	  from LD_SINGLE, e.g. search registers and general ledgers.
+
+2006-03-07 15:19  warlord
+
+	* [r13514] trunk/ChangeLog,
+	  trunk/lib/libgsf-1.12.3/tests/test-msole1.c: properly ignore the
+	  return value of fgets(). Fixes an FC4 error.
+
+2006-03-07 05:31  chris
+
+	* [r13513] trunk/src/backend/file/io-gncbin-r.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Account.h,
+	  trunk/src/engine/gnc-associate-account.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-split-reg.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c,
+	  trunk/src/register/ledger-core/split-register-model.c,
+	  trunk/src/register/ledger-core/split-register.c: Factor out and
+	  create new function: xaccAccountIsPriced() that does the common
+	  STOCK, MUTUAL or CURRENCY check.
+
+2006-03-07 04:45  chris
+
+	* [r13512] trunk/src/gnome-utils/gnc-gnome-utils.c: When
+	  periodically checking for ui events, avoid creating a QofSession
+	  if we don't already have one.
+
+2006-03-07 04:24  jsled
+
+	* [r13511] trunk/ChangeLog,
+	  trunk/src/gnome/glade/sched-xact.glade: Fix initial SX perf
+	  sensitivity.
+
+2006-03-07 03:41  chris
+
+	* [r13510] trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/register-core/table-allgui.c,
+	  trunk/src/register/register-core/table-allgui.h,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c: Minor
+	  code factoring, line-wraps, control-flow simplifications, etc.
+	  centered around split-register-load.c.
+
+2006-03-07 03:40  jsled
+
+	* [r13509] trunk/ChangeLog, trunk/src/gnome/dialog-sxsincelast.c:
+	  Bug#333532: Add multi-commodity SX support.
+
+2006-03-07 03:07  chris
+
+	* [r13508] trunk/src/register/ledger-core/split-register-load.c:
+	  Factor out one small piece of the huge gnc_split_register_load()
+	  into new static function add_quickfill_completions().
+
+2006-03-07 02:42  chris
+
+	* [r13507] trunk/src/engine/Scrub.c,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h,
+	  trunk/src/register/ledger-core/split-register-load.c: Factor out
+	  and create new function: gnc_commodity_is_currency().
+
+2006-03-07 00:39  jsled
+
+	* [r13506] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild:
+	  Mods for ebuild to be used as an SVN ebuild.
+
+2006-03-07 00:27  chris
+
+	* [r13505] trunk/src/engine/Account.c: Move both old an new-style
+	  Account MODIFY events into the "on_done" case of
+	  qof_commit_edit_part2().
+
+2006-03-06 21:52  andi5
+
+	* [r13504] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c,
+	  trunk/src/gnome-utils/gnc-html.c,
+	  trunk/src/gnome-utils/gnc-html.h,
+	  trunk/src/gnome-utils/print-session.c,
+	  trunk/src/gnome-utils/print-session.h: Add printing support to
+	  graphs (depends on #332884). Remove paper from PrintSession.
+
+2006-03-06 21:35  cstim
+
+	* [r13503] trunk/ChangeLog,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c: Fix OFX import
+	  problem with some dividends transactions. Patch by David Reiser.
+	  #164645.
+
+2006-03-06 21:31  cstim
+
+	* [r13502] trunk/ChangeLog,
+	  trunk/src/import-export/import-backend.c: Fix crash when "clear"
+	  is chosen but no matching transaction is selected. Now those
+	  imported transactions will silently be ignored. #317917.
+
+2006-03-06 21:01  cstim
+
+	* [r13501] trunk/po/de.po: Updated German translation - 3609 out
+	  of 3724 done.
+
+2006-03-06 01:45  wilddev
+
+	* [r13500] tags/1.9.2: Tagging the 1.9.2 release of GnuCash
+
+2006-03-06 01:44  wilddev
+
+	* [r13499] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.2
+
+2006-03-05 23:46  chris
+
+	* [r13498] trunk/src/engine/Split.c: Don't force a resort of
+	  Account's split lists during xaccTransCommitEdit(). This happens
+	  already in xaccAccountCommitEdit() and if the Account isn't
+	  being edited, then we inserted the Split in sorted order anyway.
+
+2006-03-05 21:14  hampton
+
+	* [r13497] trunk/ChangeLog, trunk/src/engine/Split.c,
+	  trunk/src/engine/Transaction.c: Use utf8 collation routines when
+	  sorting splits in a register. Also, only sort on the date of
+	  transactions (not date and time) since gnucash doesn't allow
+	  times to be input. Fixes #127809.
+
+2006-03-05 20:24  warlord
+
+	* [r13496] trunk/autogen.sh: Don't suggest that users use
+	  --enable-error-on-warning We turn it on by default, and the
+	  auto-check is "better".
+
+2006-03-05 19:57  warlord
+
+	* [r13495] trunk/configure.in: A different tact to test
+	  enable-error-on-warning.
+
+2006-03-05 19:47  chris
+
+	* [r13494] trunk/ChangeLog: ChangeLog updates from 'svn log -v'
+
+2006-03-05 19:33  warlord
+
+	* [r13493] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  change the g-wrap 1.3 + GCC4 behavior. only warn the user (not
+	  blow out) if they explicitly request --enable-error-on-warning.
+	  But still blow out if they didn't specifically request it and we
+	  turned it on by default.
+
+2006-03-05 18:51  jsled
+
+	* [r13492] trunk/ChangeLog: fill-paragraph
+
+2006-03-05 18:50  jsled
+
+	* [r13491] trunk/ChangeLog, trunk/packaging/gnucash-1.9.x.ebuild:
+	  Add checks for libgsf and goffice being built_with_use gnome.
+	  Add code to shutdown any user-level gconfd's running. Add note
+	  about broken make_desktop_entry. Expand range of README installs.
+
+2006-03-05 18:33  jsled
+
+	* [r13490] trunk/ChangeLog,
+	  trunk/src/app-utils/test/test-exp-parser.c,
+	  trunk/src/calculation/expression_parser.c: Fix test errors, then
+	  failures.
+
+2006-03-05 15:40  warlord
+
+	* [r13489] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register.c: Fix a compiler
+	  warning so the code builds properly: - warning: suggest
+	  parentheses around assignment used as truth value
+
+2006-03-05 10:34  cstim
+
+	* [r13488] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c: Fix missing
+	  variable initialization in Chris' changes. Fixes the register
+	  quickfill issue in Basic Ledger view mode.
+
+2006-03-05 04:14  chris
+
+	* [r13487] trunk/src/engine/Scrub.c, trunk/src/engine/Split.c,
+	  trunk/src/engine/Transaction.c,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register.c: Convert
+	  xaccTransGetSplit() and xaccTransCountSplits() to return the
+	  index and count reflective of any in-progress edit. Convert some
+	  split iterators from directly using the GList of Splits to using
+	  xaccTransGetSplit().
+
+2006-03-05 01:29  hampton
+
+	* [r13486] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.c,
+	  trunk/src/register/ledger-core/gnc-ledger-display.h,
+	  trunk/src/register/ledger-core/split-register.c: Move/fix the
+	  callbacks function that kills any open registers for an account
+	  that has had "extreme" changes made to it in the "edit account"
+	  dialog. Fixes 331415.
+
+2006-03-05 00:55  hampton
+
+	* [r13485] trunk/ChangeLog, trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-dir.h.in,
+	  trunk/src/gnome-utils/gnc-icons.c,
+	  trunk/src/gnome-utils/gnc-icons.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/ui/Makefile.am,
+	  trunk/src/gnome/ui/icon-split.png,
+	  trunk/src/gnome/ui/icon-transfer.png,
+	  trunk/src/pixmaps/Makefile.am,
+	  trunk/src/pixmaps/split-transaction-16.png,
+	  trunk/src/pixmaps/split-transaction.png,
+	  trunk/src/pixmaps/transfer-16.png,
+	  trunk/src/pixmaps/transfer.png: Consolidate the new icons with
+	  the existing set of icons.
+
+2006-03-04 23:24  hampton
+
+	* [r13484] trunk/ChangeLog: Fix typo in commit message.
+
+2006-03-04 23:07  hampton
+
+	* [r13483] trunk/ChangeLog, trunk/src/engine/Account.c,
+	  trunk/src/engine/Group.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: Rework the
+	  events generated by the account/group files and consumed by the
+	  GncTreeModelAccount. Should eliminate all g_value_inset and
+	  g_object_set_property warnings related to changes in the account
+	  tree.
+
+2006-03-04 23:06  hampton
+
+	* [r13482] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/gnc-event.h: Rename a data structure field.
+
+2006-03-04 23:05  jsled
+
+	* [r13481] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/schemas/Makefile.am,
+	  trunk/src/gnome-utils/schemas/Makefile.am,
+	  trunk/src/gnome/schemas/Makefile.am,
+	  trunk/src/import-export/hbci/schemas/Makefile.am,
+	  trunk/src/import-export/schemas/Makefile.am: Modify schema
+	  mkdirs by DESTDIR for packaging.
+
+2006-03-04 23:00  hampton
+
+	* [r13480] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: Fix duplicate account
+	  name checking bug that prevented editing account info.
+
+2006-03-04 21:44  andi5
+
+	* [r13479] trunk/ChangeLog, trunk/glade-fixup,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/budget.glade,
+	  trunk/src/gnome/glade/price.glade,
+	  trunk/src/gnome/glade/print.glade: Remove add_tearoffs from
+	  glade files; some automatic scrollbars
+
+2006-03-04 19:09  hampton
+
+	* [r13477] trunk/ChangeLog, trunk/lib/glib26/gkeyfile.c,
+	  trunk/lib/glib26/gutils26.c, trunk/lib/glib26/gutils26.h,
+	  trunk/src/gnome-utils/dialog-account.c: Make g_strv_length
+	  available outside of the gkeyfile compatability library.
+
+2006-03-04 18:12  chris
+
+	* [r13476] trunk/src/engine/engine-interface.scm: Use for-each,
+	  lambda expressions for iterating over split lists. In contrast
+	  to the previous looping construct, this will work even if the
+	  split operations don't have side-effects on the split lists.
+
+2006-03-04 16:28  jsled
+
+	* [r13475] trunk/ChangeLog,
+	  trunk/src/gnome/glade/sched-xact.glade: Fix selection mode for
+	  SX lists.
+	* [r13474] trunk/src/gnome/dialog-sxsincelast.c: whitespace
+
+2006-03-04 15:51  jsled
+
+	* [r13473] trunk/ChangeLog, trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-dir.h.in,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/ui/Makefile.am,
+	  trunk/src/gnome/ui/icon-split.png,
+	  trunk/src/gnome/ui/icon-transfer.png: Add, register, use Split
+	  and Transfer icons provided by Andrew Duggan. Bug#327647.
+
+2006-03-04 15:50  jsled
+
+	* [r13472] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-menu-extensions.c: Fixes to memory
+	  deallocation suggested by Phil Longstaff.
+
+2006-03-04 06:56  chris
+
+	* [r13471] trunk/src/engine/Transaction.c: When the book is
+	  shutting down, don't be so eager to destroy the whole
+	  transaction. This makes it easier to safely iterate over a split
+	  list.
+
+2006-03-04 06:49  hampton
+
+	* [r13470] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/engine/Account.c,
+	  trunk/src/gnome-utils/dialog-preferences.c,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in: Update
+	  the preferences dialog to allow any unicode character as the
+	  separator.
+
+2006-03-04 05:10  chris
+
+	* [r13469] trunk/src/engine/Transaction.c: Destroy Transactions
+	  without rebalancing when shutting down the book.
+
+2006-03-04 03:21  chris
+
+	* [r13468] trunk/src/engine/Makefile.am,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/gnc-event.h:
+	  Generate REMOVE events when a Split is removed from a
+	  Transaction. Pass the *old* parent transaction (since the Split
+	  may be moving into a new transaction) and the old index of the
+	  Split in the old Transaction's list of Splits.
+
+2006-03-04 03:04  hampton
+
+	* [r13467] trunk/ChangeLog, trunk/src/app-utils/gnc-helpers.c,
+	  trunk/src/app-utils/gnc-helpers.h,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/engine/Account.c, trunk/src/engine/Account.h,
+	  trunk/src/engine/Group.c, trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/import-export/qif-import/dialog-account-picker.c,
+	  trunk/src/import-export/qif-import/qif-dialog-utils.scm,
+	  trunk/src/import-export/qif-import/qif-guess-map.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/register/register-core/combocell.h,
+	  trunk/src/register/register-gnome/combocell-gnome.c,
+	  trunk/src/report/standard-reports/budget.scm,
+	  trunk/src/report/standard-reports/cash-flow.scm: Convert the
+	  account separator from a single character to a character string.
+	  This allows multibyte unicode characters to be the account
+	  separator character. Fixes 333061. Reworked a couple of routines
+	  that pull account names into their component parts. Also fixed a
+	  bug in the new account dialog when creating multiple accounts at
+	  once.
+
+2006-03-04 02:42  chris
+
+	* [r13466] trunk/src/engine/Scrub.c: Look for orphan Splits even
+	  when there is no Transaction imbalance.
+
+2006-03-04 00:27  chris
+
+	* [r13465] trunk/src/gnome-utils/dialog-exchange.h: Delete unused
+	  dialog-exchange.h
+
+2006-03-04 00:23  chris
+
+	* [r13464]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c: Remove an
+	  unnecessary Account edit-block. Minor control-flow
+	  simplification.
+
+2006-03-04 00:13  chris
+
+	* [r13463] trunk/src/register/ledger-core/split-register-load.c:
+	  Bits to let the register see the in-progress Transaction edit.
+
+2006-03-04 00:11  chris
+
+	* [r13462] trunk/src/engine/Account.c, trunk/src/engine/Account.h,
+	  trunk/src/engine/AccountP.h: Remove xaccAccountRemoveSplit, and
+	  xaccAccountInsertSplit. (Actually, xaccAccountInsertSplit is
+	  #def'd to xaccSplitSetAccount().) Accounts no longer manage
+	  their Split lists. The Account split lists should only ever be
+	  modified from within xaccTransCommitEdit(). This simplifies some
+	  of the operations on Accounts, since they can now be expressed
+	  in terms of operations on Splits. Also, the consolidation of two
+	  operations (RemoveSplit and InsertSplit) into one operation
+	  (xaccSplitSetAccount) means that it's no longer possible to
+	  orphan a Split. Incidental: Fix a leak of a KVP frame. Don't
+	  recompute the account balance if we're shutting down.
+	* [r13461] trunk/src/engine/Transaction.c: The
+	  xaccTransRollbackEdit() part of the Begin/Commit edit-block
+	  rewrite. Broken out just for clarity. Note: There's one piece
+	  that I didn't change that I think is conceptually awkward. It
+	  has to do with how/when we would discover that another user has
+	  deleted the transaction we're currently editing. I think it
+	  makes more sense to detect and handle this case in
+	  xaccTransCommitEdit() instead of xaccTransRollbackEdit(),
+	  because (a) we don't actually have to do the rollback if we just
+	  destroy the trans, (b) some rollbacks are not backend- induced,
+	  but rather voluntary, (c) we need a generalized mechanism anyway
+	  for detecting and handling deleted transactions even when we're
+	  not editing them.
+
+2006-03-04 00:10  chris
+
+	* [r13460] trunk/src/engine/Scrub.c: Move one data-validation
+	  function from Scrub.c into Transaction.c One simplification in
+	  xaccTransScrubImbalance() to always find the root AccountGroup
+	  from the Transaction's book.
+	* [r13459] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h: A good bit of notes about how
+	  the Transaction Begin/Commit edit-blocks should work, and why.
+	  Converts the very important xaccTransCommitEdit function to use
+	  the qof_commit_edit_part2() function instead of something that
+	  is 90% similar. Transactions have a Split list that keeps track
+	  of Splits during the edit. During edits, this list only grows
+	  and never shrinks. Splits that have been destroyed or reparented
+	  to other transactions remain in the list, along with pre-edit
+	  Splits and newly added Splits. Only after a successful commit
+	  does the Split list drop reparented or destroyed Splits. A
+	  couple out-of-engine users (mainly the register) call
+	  xaccTransGetSplitList() an work from the Transaction's split
+	  list, but they expect to be working with only the Splits that
+	  would still be in the Transaction if the in-progress edit would
+	  be committed. So, we provide the function
+	  xaccTransStillHasSplit(t, s) to allow users to query the in-edit
+	  state of the Transaction's Split list. xaccTransRemoveSplit()
+	  and xaccTransInsertSplit() have been replaced by
+	  xaccSplitSetParent(). The new xaccTransCommitEdit tries to take
+	  a more conservative approach to event generation, too. Instead
+	  of generating every possible event for any commit, it should
+	  generate only events that indicate a change to an engine object
+	  or relation. Move some of the financial-constraint-enforcing
+	  functions closer to the relevant data-structures. (from Scrub.c)
+
+2006-03-04 00:09  chris
+
+	* [r13458] trunk/src/engine/test-core/test-engine-stuff.c,
+	  trunk/src/engine/test/test-period.c,
+	  trunk/src/engine/test/test-split-vs-account.c: Remove some
+	  testing of an engine API that has been removed. The engine used
+	  to have functions that made it possible to orphan a Split. As
+	  this is no longer possible, we can't test anymore. Incidental:
+	  Fix three or four small leaks in the test functions. Allow
+	  test-period to be randomized based on optional command-line arg.
+	* [r13457] trunk/src/engine/Split.c, trunk/src/engine/Split.h,
+	  trunk/src/engine/SplitP.h: Splits can now keep track of their
+	  own rollback state. The Split <-> Account and Split <->
+	  Transaction relationships are now treated as properties of the
+	  Split. In terms of the BeginEdit/CommitEdit block, Splits are
+	  subordinate to Transactions. There is no public
+	  BeginEdit/CommitEdit block for Splits; changes to Splits should
+	  be wrapped in their Transaction's Edit-block. In the case of the
+	  Split <-> Account relationship, the call to
+	  xaccSplitSetAccount() will be immediately visible from
+	  xaccSplitGetAccount(), but the Account does not learn about the
+	  Split until and if the edit is committed. In the case of the
+	  Split <-> Transaction relationship, calling xaccSplitSetParent()
+	  will immediately add the Split to the Transactions split list.
+	  This is because the Split's Transaction owns the reference to
+	  the Split. However, see the Transaction.c patch for how to
+	  distinguish pre-edit state from in-edit state. In both cases,
+	  events are not generated until the edits are committed. Most of
+	  this new logic is in an engine-private helper
+	  xaccSplitCommitEdit(), which is called from
+	  xaccTransCommitEdit(). Incidental: Increased error-checking in
+	  xaccSplitSetValue(). Internalize a Transaction Begin/Commit
+	  edit-block in every setter func.
+
+2006-03-04 00:08  chris
+
+	* [r13456] trunk/src/engine/engine-utilities.scm,
+	  trunk/src/engine/engine.scm,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/report/report-system/report-utilities.scm: Remove two
+	  slightly different definitions of gnc:transaction-map-splits,
+	  both unused. Remove g-wrapped versions of functions being
+	  removed: gnc:account-fix-split-date-order,
+	  gnc:trans-fix-split-date-order
+
+2006-03-03 15:57  warlord
+
+	* [r13454] trunk/ChangeLog, trunk/configure.in: error out on
+	  g-wrap-1.3, gcc4, and error-on-warning. Fixes #330615.
+
+2006-03-03 01:54  jsled
+
+	* [r13446] trunk/ChangeLog, trunk/src/gnc-ui.h: Fix SXEDITOR help
+	  target.
+
+2006-03-02 22:04  cstim
+
+	* [r13444] trunk/ChangeLog,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c: Finally,
+	  successfully implemented mt940 import. Completed #325170.
+
+2006-03-02 21:59  cstim
+
+	* [r13442] trunk/src/app-utils/gnc-ui-util.h: Add clarifying
+	  comment to weird directory function, better to be replaced by
+	  the appropriate glib function.
+
+2006-03-02 21:51  cstim
+
+	* [r13440] trunk/ChangeLog,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c: More work on
+	  mt940 import, #325170. Unfortunately not yet error-free.
+
+2006-03-02 20:55  cstim
+
+	* [r13437] trunk/ChangeLog,
+	  trunk/accounts/el_GR/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/el_GR/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/el_GR/acctchrt_common.gnucash-xea: Greek account
+	  templates converted to UTF-8, by Nikos Charonitakis
+	  <nikosx at gmail.com>.
+
+2006-03-02 07:20  hampton
+
+	* [r13435] trunk/ChangeLog,
+	  trunk/src/app-utils/gnc-account-merge.c,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h,
+	  trunk/src/business/business-core/gncTaxTable.c,
+	  trunk/src/business/business-gnome/business-gnome-utils.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-payment.c,
+	  trunk/src/business/business-ledger/gncEntryLedger.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerModel.c,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Account.h,
+	  trunk/src/engine/Group.c, trunk/src/engine/Group.h,
+	  trunk/src/engine/Split.c, trunk/src/engine/Split.h,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/Transaction.h,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome-utils/account-quickfill.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-transfer.c,
+	  trunk/src/gnome-utils/gnc-account-sel.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/top-level.c, trunk/src/gnome/window-reconcile.c,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/import-main-matcher.c,
+	  trunk/src/import-export/import-match-map.c,
+	  trunk/src/import-export/qif-import/qif-merge-groups.scm,
+	  trunk/src/import-export/qif-import/qif-to-gnc.scm,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register-model.c,
+	  trunk/src/register/ledger-core/split-register.c,
+	  trunk/src/report/report-system/report-utilities.scm: Move the
+	  storage for the account separator character into Account.c
+	  (default ':') and set it with an accessor function at startup
+	  and when it is changed in the preferences/gconf. Eliminate
+	  unnecessary passing around of the account separator character.
+
+2006-03-02 00:24  hampton
+
+	* [r13434] trunk/ChangeLog, trunk/src/app-utils/gnc-exp-parser.c,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h,
+	  trunk/src/calculation/expression_parser.c,
+	  trunk/src/calculation/fin_spl_protos.h,
+	  trunk/src/register/register-core/formulacell.c,
+	  trunk/src/register/register-core/pricecell.c: Convert all
+	  locations that parse input using the locale thousands/decimal
+	  point characters to use unicode functions. This should allow
+	  multi-byte unicode characters to work as these separators on
+	  input.
+
+2006-03-01 23:01  hampton
+
+	* [r13433] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c:
+	  Rework of Sylvain Defresne's patch to support multi-byte unicode
+	  thousands separator and decimal point characters when printing
+	  numbers.
+
+2006-03-01 20:01  cstim
+
+	* [r13432] trunk/po/fr.po: Updated French translation by Didier
+	  Vidal
+
+2006-03-01 19:14  warlord
+
+	* [r13431] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/transaction.scm: Andrew
+	  Sackville-West's patch to add transaction links.
+
+2006-03-01 06:18  warlord
+
+	* [r13430] trunk/src/gnome-utils/Makefile.am: Bill Nottingham's
+	  spelling fix.
+
+2006-03-01 03:54  hampton
+
+	* [r13429] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c: Collapse the common
+	  parts of the "new account" and "edit account" dialog validation
+	  code into a single routine. Fixes 117812.
+
+2006-03-01 03:28  hampton
+
+	* [r13428] trunk/ChangeLog, trunk/src/app-utils/options.scm:
+	  Andreas Köhler's patch to correctly build a html color value.
+	  Fixes 328933.
+
+2006-02-28 23:13  jsled
+
+	* [r13427] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c: Terminate
+	  GOptionEntry array, preventing warnings and/or errors parsing
+	  command-line options.
+
+2006-02-28 19:57  chris
+
+	* [r13426]
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-model-save.c,
+	  trunk/src/register/ledger-core/split-register-model.c,
+	  trunk/src/register/ledger-core/split-register-p.h: Make register
+	  use engine-provided xaccTransGetAccountConvRate() instead of
+	  writing its own.
+
+2006-02-28 19:46  chris
+
+	* [r13425] trunk/src/register/ledger-core/split-register-model.c:
+	  Make register use engine-provided xaccTransGetAccountBalance()
+	  instead of writing its own.
+
+2006-02-28 19:38  chris
+
+	* [r13424] trunk/src/register/ledger-core/split-register-model.c:
+	  Make register use engine-provided xaccTransGetAccountAmount()
+	  instead of writing its own.
+
+2006-02-28 19:34  chris
+
+	* [r13423]
+	  trunk/src/register/ledger-core/split-register-control.c: Make
+	  register use engine-provided xaccTransHasReconciledSplits()
+	  instead of writing it's own.
+
+2006-02-28 16:16  hampton
+
+	* [r13422] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/gnome-utils/dialog-options.c: Set the
+	  GNOME_DISABLE_DEPRECATED flag for gnome versions up to 2.13.7.
+
+2006-02-28 11:51  codehelp
+
+	* [r13421] trunk/po/en_GB.po: undoing kbabel changes to po header
+
+2006-02-28 11:40  codehelp
+
+	* [r13420] trunk/po/en_GB.po: updated en_GB translation, 3725
+	  messages translated
+
+2006-02-28 05:18  hampton
+
+	* [r13419] trunk/ChangeLog, trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/dialog-utils.h: Remove a unused function
+	  that calls deprecated gnome routines.
+
+2006-02-28 02:45  hampton
+
+	* [r13418] trunk/ChangeLog, trunk/src/gnome/ui/Makefile.am,
+	  trunk/src/gnome/ui/gnc-reconcile-window-ui.xml,
+	  trunk/src/gnome/window-reconcile.c: Convert the reconcile window
+	  from the old GnomeUIInfo menu/toolbar widgets to the newer
+	  GtkAction based widgets.
+
+2006-02-28 02:27  jsled
+
+	* [r13417] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/gnc-backend-file.h,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c: Bug#332802: fix
+	  Export Accounts; remove `price_lookup` and `export` functions
+	  from GncFileBackend.
+
+2006-02-28 01:26  jsled
+
+	* [r13416] trunk/ChangeLog,
+	  trunk/src/calculation/expression_parser.c: Bug#332804: fix
+	  infinite loop in parsing malformed functions (e.g. "ipmt(1:2:)").
+
+2006-02-28 01:01  jsled
+
+	* [r13415] trunk/ChangeLog, trunk/src/app-utils/gnc-exp-parser.c:
+	  Bug#137885: prevent crash on invalid function formula.
+
+2006-02-27 23:57  hampton
+
+	* [r13414] trunk/ChangeLog, trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h, trunk/src/engine/Account.c,
+	  trunk/src/engine/Account.h, trunk/src/engine/gnc-pricedb-p.h,
+	  trunk/src/engine/gnc-pricedb.c, trunk/src/engine/gnc-pricedb.h:
+	  Add 'const' qualifiers to various functions.
+
+2006-02-27 16:08  hampton
+
+	* [r13413] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Check for the existence
+	  of a page before dereferencing it. Fixes 332680.
+
+2006-02-27 15:16  warlord
+
+	* [r13412] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/glade/billterms.glade,
+	  trunk/src/business/business-gnome/glade/customer.glade,
+	  trunk/src/business/business-gnome/glade/invoice.glade,
+	  trunk/src/business/business-gnome/glade/job.glade,
+	  trunk/src/business/business-gnome/glade/order.glade,
+	  trunk/src/business/business-gnome/glade/payment.glade,
+	  trunk/src/business/business-gnome/glade/vendor.glade: Don't need
+	  to translate placeholder labels.
+
+2006-02-27 05:42  warlord
+
+	* [r13411] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncInvoice.h,
+	  trunk/src/business/business-gnome/business-gnome-utils.c,
+	  trunk/src/business/business-gnome/business-gnome-utils.h,
+	  trunk/src/business/business-gnome/business-options-gnome.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-payment.c,
+	  trunk/src/business/business-gnome/dialog-payment.h,
+	  trunk/src/business/business-gnome/glade/payment.glade: Rework of
+	  Titi Ala'ilima's patch to apply payments directly to invoices.
+	  (#121420) Apply a re-work of Titi Ala'ilima's patch to apply
+	  payments directly to invoices. This fixes bug #121420. *
+	  src/business/business-core/gncInvoice.[ch]: Add argument to the
+	  ProcessPayment API to allow the caller to specify an invoice to
+	  post to first. *
+	  src/business/business-gnome/business-gnome-utils.[ch]: Create an
+	  invoice-select API that lets you select an invoice based on an
+	  owner (or not). I.e., you can limit the invoice search based on
+	  a selected owner. If you change the owner it invalidates the
+	  invoice search. *
+	  src/business/business-gnome/dialog-payment.[ch]: Change the API
+	  from ..new_with_value() to ..new_with_invoice(). Pull the
+	  default amount from the invoice (if one exists). Allow the user
+	  to select an invoice and apply payments there. If the user
+	  changes the owner, invalidate the invoice. *
+	  src/business/business-gnome/business-options-gnome.c: use the
+	  new invoice-select API instead of calling general_search API
+	  directly. * src/business/business-gnome/dialog-invoice.c: call
+	  the new dialog-payment API. No need to compute the initial value
+	  here; the payment dialog will compute it from the invoice
+	  (instead of computing it from the invoice here). *
+	  src/business/business-gnome/glade/payment.glade: Add
+	  invoice-selector label and box.
+
+2006-02-26 22:19  hampton
+
+	* [r13410] trunk/src/gnome-utils/gnc-main-window.c: Fix format
+	  character for a size argument.
+
+2006-02-26 21:42  jsled
+
+	* [r13409] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c: Andreas Kohler's
+	  patch for barchart improvements: segment color setting, axis
+	  rotation and formatting.
+
+2006-02-26 21:15  hampton
+
+	* [r13408] trunk/packaging/Makefile.am: Add the ebuild script to
+	  the tarball.
+	* [r13407] trunk/configure.in: Fix configure for the new packaging
+	  directory.
+
+2006-02-26 21:10  hampton
+
+	* [r13406] trunk/debian, trunk/gentoo: Remove old distro specific
+	  directories.
+
+2006-02-26 21:08  hampton
+
+	* [r13405] trunk/gentoo/gnucash-1.9.x.ebuild,
+	  trunk/packaging/README, trunk/packaging/README.RPM,
+	  trunk/packaging/gnucash-1.9.x.ebuild: Move a couple of ditro
+	  specific files.
+
+2006-02-26 21:05  hampton
+
+	* [r13404] trunk/ChangeLog, trunk/Makefile.am, trunk/packaging,
+	  trunk/rpm: Create a consolidated directory for distribution
+	  specific scripts.
+
+2006-02-26 20:50  jsled
+
+	* [r13403] trunk/src/gnome/dialog-scheduledxaction.c: fix
+	  signature for qof changes I missed.
+
+2006-02-26 20:10  hampton
+
+	* [r13402] trunk/ChangeLog, trunk/src/app-utils/option-util.c,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/dialog-utils.h: Restore GtkOptionMenu
+	  support because the newer GtkComboBox doesn't support per item
+	  tooltips. Fixes bug 332569.
+
+2006-02-26 20:06  hampton
+
+	* [r13401] trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h: Mark a couple of function
+	  arguments as const.
+
+2006-02-26 19:55  jsled
+
+	* [r13400] trunk/ChangeLog, trunk/src/engine/SX-book.c,
+	  trunk/src/engine/SX-book.h,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/glade/sched-xact.glade: Add account-deletion
+	  handling for SXes. Bug#312730.
+
+2006-02-26 19:44  jsled
+
+	* [r13399] trunk/configure.in: Update gwrap details, URL.
+	* [r13398] trunk/src/engine/SchedXaction.c: formatting
+
+2006-02-26 19:03  codehelp
+
+	* [r13397] trunk/lib/libqof/qof/qofevent.c,
+	  trunk/lib/libqof/qof/qofevent.h: simplify creation of new
+	  application events
+
+2006-02-26 18:59  codehelp
+
+	* [r13396] trunk/ChangeLog, trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/qofbook.c,
+	  trunk/lib/libqof/qof/qofevent-p.h,
+	  trunk/lib/libqof/qof/qofevent.c,
+	  trunk/lib/libqof/qof/qofevent.h: using new events with object
+	  argument
+
+2006-02-26 18:36  chris
+
+	* [r13395] trunk/src/business/business-core/gncBillTerm.c,
+	  trunk/src/business/business-core/gncCustomer.c,
+	  trunk/src/business/business-core/gncEmployee.c,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncJob.c,
+	  trunk/src/business/business-core/gncOrder.c,
+	  trunk/src/business/business-core/gncTaxTable.c,
+	  trunk/src/business/business-core/gncVendor.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/gnc-pricedb.c: Use
+	  function version of QOF_COMMIT_EDIT_PART2.
+
+2006-02-26 18:06  codehelp
+
+	* [r13394] trunk/lib/libqof/qof/qof-be-utils.h: replacing the
+	  macro to restore programme flow
+
+2006-02-26 15:18  jsled
+
+	* [r13393] trunk/src/engine/SX-book.h: consistent whitespace.
+
+2006-02-26 14:53  jsled
+
+	* [r13392] trunk/ChangeLog, trunk/doc/tip_of_the_day.list.in,
+	  trunk/src/report/utility-reports/Makefile.am,
+	  trunk/src/report/utility-reports/iframe-url.scm,
+	  trunk/src/report/utility-reports/utility-reports.scm: Remove web
+	  browser "report".
+
+2006-02-26 05:00  chris
+
+	* [r13391] trunk/lib/libqof/qof/guid.c: Keep track of exactly how
+	  many bytes we've sent to md5_process_bytes().
+
+2006-02-26 04:56  chris
+
+	* [r13390] trunk/lib/libqof/qof/qof-be-utils.h,
+	  trunk/lib/libqof/qof/qofbackend.c: Implement
+	  QOF_COMMIT_EDIT_PART2 as a function instead of a macro. Any of
+	  the callbacks passed to this function may be NULL to decline the
+	  use of that callback. Also, the three callbacks are now called
+	  in three mutually exclusive cases, corresponding to: 1) a failed
+	  commit, ('on_error') 2) a successful commit where the object
+	  remains valid, ('on_done'), and 3) a successful commit where the
+	  object has been destroyed, ('on_free').
+
+2006-02-26 03:30  jsled
+
+	* [r13389] trunk/README.dependencies: remove cairo as a dep.
+
+2006-02-25 18:06  cstim
+
+	* [r13388] trunk/src/import-export/mt940/gnc-mt940-import.c:
+	  Remove unknown typedefs with older aqbanking
+
+2006-02-25 09:59  cstim
+
+	* [r13387] trunk/po/de.po: Updated German translation - 3617 out
+	  of 3737 done.
+
+2006-02-25 09:23  cstim
+
+	* [r13386] trunk/configure.in,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c:
+	  Aqbanking-1.3.0 (released 2005-08-11) is sufficient for MT940
+	  import.
+
+2006-02-25 08:18  hampton
+
+	* [r13385] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Remember the order in
+	  which the notebook tabs are referenced. When closing a tab,
+	  switch to the tab that was previously in front, not the first
+	  tab in the notebook.
+
+2006-02-24 23:17  hampton
+
+	* [r13384] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.h,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.h,
+	  trunk/src/register/register-gnome/gnucash-sheet.c,
+	  trunk/src/register/register-gnome/gnucash-sheet.h: Provide the
+	  right edit menu sensitivity for the register page.
+
+2006-02-24 22:58  hampton
+
+	* [r13383] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/ui/gnc-main-window-ui.xml: Remove
+	  unnecessary menu item. The same functionality exists in the
+	  "Menus & Toolbars" preference panel.
+
+2006-02-24 22:22  cstim
+
+	* [r13382] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/import-account-matcher.c,
+	  trunk/src/import-export/import-account-matcher.h,
+	  trunk/src/import-export/import-main-matcher.c,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c: Let the account
+	  matcher accept a parent widget to avoid windows that are lost
+	  behind other windows. Adapt importer modules accordingly.
+
+2006-02-24 22:09  cstim
+
+	* [r13381] trunk/ChangeLog,
+	  trunk/src/import-export/import-account-matcher.c: Don't allow
+	  placeholder be selected for importing transactions. Fixes
+	  bug#327891.
+
+2006-02-24 21:59  cstim
+
+	* [r13380] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/import-export/mt940/Makefile.am,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c,
+	  trunk/src/import-export/mt940/gnc-plugin-mt940.c,
+	  trunk/src/import-export/mt940/gncmod-mt940-import.c: Get MT940
+	  importer compile again (experimental; requires aqbanking-1.9.7).
+	  It is not yet tested with actual files. Bug#325170.
+
+2006-02-24 21:43  cstim
+
+	* [r13379] trunk/ChangeLog,
+	  trunk/src/import-export/import-account-matcher.c,
+	  trunk/src/import-export/import-account-matcher.h: Make gchar
+	  argument const because it is only used as a const.
+
+2006-02-24 05:53  chris
+
+	* [r13378] trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/engine/gnc-session.c, trunk/src/engine/gnc-session.h,
+	  trunk/src/gnome-utils/gnc-file.c: Since QOF no longer keeps
+	  track of the "current" session, qof_session_destroy() no longer
+	  clears the current session when we destroy it. Therefore,
+	  explicitly call gnc_clear_current_session() when we want to
+	  destroy the current session. Also, avoid accidentally creating a
+	  new book and session if there is no open book/current session
+	  when we run the bill reminder.
+
+2006-02-24 05:13  hampton
+
+	* [r13377] trunk/ChangeLog,
+	  trunk/src/report/report-system/html-utilities.scm: Andrew
+	  Sackville-West's to pass the rignt number of arguments to
+	  gnc:register-guid.
+
+2006-02-24 04:55  hampton
+
+	* [r13376] trunk/src/gnome/dialog-sxsincelast.c: Fix a misspelled
+	  word.
+
+2006-02-24 04:50  hampton
+
+	* [r13375] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-plugin-file-history.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.h,
+	  trunk/src/gnome-utils/gnc-recurrence.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Minor
+	  code cleanup and consolidations.
+
+2006-02-24 02:57  jsled
+
+	* [r13374] trunk/ChangeLog, trunk/gentoo,
+	  trunk/gentoo/gnucash-1.9.x.ebuild: Add ebuild for gnucash
+	  1.9/2.0 series.
+
+2006-02-24 02:54  jsled
+
+	* [r13373] trunk/ChangeLog, trunk/src/gnome-utils/dialog-totd.c:
+	  Increment TOTD index on dialog init.
+
+2006-02-24 02:47  jsled
+
+	* [r13372] trunk/ChangeLog: note bug
+
+2006-02-24 01:22  jsled
+
+	* [r13371] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c: Bug#332359: use
+	  correct labels for x-axis.
+
+2006-02-23 22:25  hampton
+
+	* [r13370] trunk/doc/Makefile.am: Add the example
+	  gtkrc-2.0.gnucash file to the tarball.
+
+2006-02-23 20:11  chris
+
+	* [r13369] trunk/src/gnome/dialog-sxsincelast.c,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c: When we malloc a
+	  Transaction, then TransBeginEdit, then want to abort, just call
+	  xaccTransDestroy(), xaccTransCommitEdit(). No rollback needed.
+
+2006-02-23 17:44  chris
+
+	* [r13368] trunk/src/engine/Split.c, trunk/src/engine/Split.h,
+	  trunk/src/engine/SplitP.h: Dirty Splits when they change. Add
+	  const to Split where appropriate. Fix GCache crash cause by
+	  using non-cached value in cached 'action' field from the
+	  qsf-backend.
+
+2006-02-23 17:16  warlord
+
+	* [r13367] trunk/ChangeLog,
+	  trunk/src/import-export/qif-import/test/Makefile.am: add
+	  QOF_LIBS to link line because debian libtool is broken.
+
+2006-02-23 01:39  warlord
+
+	* [r13366] trunk/ChangeLog, trunk/src/gnome-utils/Makefile.am:
+	  force a build from svn to have access to svn version info. this
+	  might break the broken ebuild that forcibly removes the .svn
+	  directories, but the ebuild is broken and shouldn't do that.
+
+2006-02-23 01:35  warlord
+
+	* [r13365] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: include gtk-compat.h
+	  so we build against gtk-2.4.
+
+2006-02-22 22:35  hampton
+
+	* [r13364] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gtk-compat.h: Cleanup patch from Andreas Köhler.
+
+2006-02-22 21:52  chris
+
+	* [r13363] trunk/src/engine/Makefile.am, trunk/src/engine/Split.c,
+	  trunk/src/engine/Split.h, trunk/src/engine/SplitP.h,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/Transaction.h,
+	  trunk/src/engine/TransactionP.h: Separate the Split functions
+	  from Transaction.c into Split.c. Introduce xaccSplitVoid() and
+	  xaccSplitUnvoid() to aid the separation.
+
+2006-02-22 17:41  chris
+
+	* [r13362] trunk/src/engine/Transaction.c: Add some comments,
+	  error checks, ENTER/LEAVE balances and a special-case
+	  early-return for the conversion-rate calculation.
+
+2006-02-22 15:41  hampton
+
+	* [r13361] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c,
+	  trunk/src/register/ledger-core/split-register.h: Provide a
+	  callback whereby the core register code can tell the upper
+	  layers that it has moved from an expanded transaction to a
+	  collapsed transaction. This lets the upper layer adjust the
+	  "split" transaction toolbar button properly. Fixes 332165.
+
+2006-02-22 14:22  chris
+
+	* [r13360] trunk/src/engine/gnc-lot.c: Use correct function name
+	  qof_instance_set_dirty. Comment on current state of Lot behavior.
+
+2006-02-22 06:01  chris
+
+	* [r13359] trunk/src/engine/Period.c,
+	  trunk/src/engine/Transaction.c, trunk/src/engine/gnc-lot-p.h,
+	  trunk/src/engine/gnc-lot.c: Convert Lots from a QofEntity to a
+	  QofInstance. They now store their own dirty state.
+
+2006-02-22 03:30  chris
+
+	* [r13358] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome-utils/gnc-file.c: No need to run the BOOK_OPENED
+	  hook twice when open a book. And no need to run it at all when
+	  we fail to open a book. Also, require HAVE_GTK26 before using
+	  gtk_get_option_group().
+
+2006-02-22 03:05  chris
+
+	* [r13357] trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-main-window.c: Avoid instantiating the
+	  current session until we're actually opening a file.
+
+2006-02-22 02:43  chris
+
+	* [r13356] trunk/src/gnome/dialog-chart-export.c,
+	  trunk/src/gnome/druid-acct-period.c,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Files accidentally
+	  left out of previous commit (r13355).
+
+2006-02-22 02:39  chris
+
+	* [r13355] trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/gnc-plugin-business.c,
+	  trunk/src/engine/Makefile.am, trunk/src/engine/gnc-session.c,
+	  trunk/src/engine/gnc-session.h,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c: Remove uses of
+	  deprecated qof_session_get_current_session() and
+	  qof_session_set_current_session(). GnuCash now manages its own
+	  current session. New function: gnc_current_session_exist() to
+	  test whether there is a current session.
+
+2006-02-22 01:38  hampton
+
+	* [r13354] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Fix from Andreas
+	  Köhler to deactivate the toolbar split button in an auto-split
+	  register. Fixes 330621.
+
+2006-02-21 23:58  hampton
+
+	* [r13353] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c: Two fixes from
+	  Andreas Köhler. One fixes 331183, the problem where editing a
+	  top-level account doesn't set the current parent.
+
+2006-02-21 23:10  jsled
+
+	* [r13352] trunk/ChangeLog, trunk/lib/libqof/qof/qofevent.c,
+	  trunk/lib/libqof/qof/qofevent.h: Fix "default limit" QOF
+	  eventing stuff; thanks Andi.
+
+2006-02-21 21:46  chris
+
+	* [r13351] trunk/lib/libqof/qof/qofid.c: Mark the QofCollection as
+	  dirty when a new QofEntity is added or removed.
+
+2006-02-21 21:44  chris
+
+	* [r13350] trunk/src/engine/gnc-lot.c: Mark the GNC_LOT
+	  QofCollection dirty whenever a Lot changes. This includes when
+	  the KVP is changed via the setters.
+
+2006-02-21 20:55  cstim
+
+	* [r13349] trunk/po/de.po: Updated German translation - 3568 out
+	  of 3738 done.
+
+2006-02-21 20:44  cstim
+
+	* [r13348] trunk/src/gnome/glade/sched-xact.glade: Fix typos
+
+2006-02-21 20:27  chris
+
+	* [r13347] trunk/src/engine/Account.c: Avoid qof-dirtying Accounts
+	  when Splits or Lots are inserted or removed.
+
+2006-02-21 19:48  cstim
+
+	* [r13346] trunk/po/fr.po: Updated French translation by Didier
+	  Vidal
+
+2006-02-21 19:43  chris
+
+	* [r13345] trunk/src/engine/test-core/test-engine-stuff.c: Move
+	  the code that (usually) ensures value/amount consistency for
+	  Splits from add_random_splits() to get_random_split(). Avoid
+	  numeric overflow when creating split values.
+
+2006-02-21 19:30  jsled
+
+	* [r13344] trunk/ChangeLog: remove dup ChangeLog entry.
+
+2006-02-21 18:40  jsled
+
+	* [r13343] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/ledger-core/split-register-p.h,
+	  trunk/src/register/ledger-core/split-register.c: A different
+	  approach to ensuring that a (unique) relevent split from the
+	  currently-pending transaction is always in the split list before
+	  we load it.
+
+2006-02-21 15:42  jsled
+
+	* [r13342] trunk/lib/libqof/qof/qofevent.h: slightly better values.
+
+2006-02-21 15:37  jsled
+
+	* [r13341] trunk/ChangeLog, trunk/lib/libqof/qof/qofevent.h: Fix
+	  GNC_EVENT_* values.
+
+2006-02-21 05:14  hampton
+
+	* [r13340] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-date-picker.c: Andreas
+	  Köhler's patch to prevent a crash in the register date picker
+	  widget when using gtk 2.8.
+
+2006-02-21 03:44  hampton
+
+	* [r13339] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome/dialog-price-edit-db.c: Disable quote related
+	  functionality when F::Q isn't installed.
+
+2006-02-21 01:24  chris
+
+	* [r13338] trunk/src/gnome-utils/gtktreedatalist.c: Use glib's
+	  slice allocator in favor of GMemChunks for glib >= 2.9. Patch by
+	  Andreas Köhler <andi5.py at gmx.net>.
+
+2006-02-21 00:14  hampton
+
+	* [r13337] trunk/ChangeLog, trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-file.h,
+	  trunk/src/gnome-utils/gnc-main-window.c: Catch and defer the
+	  quit command if a file save is in progress.
+
+2006-02-20 22:37  hampton
+
+	* [r13336] trunk/src/quotes, trunk/src/scm/gnumeric,
+	  trunk/src/scm/printing: Ignore some files.
+
+2006-02-20 22:29  codehelp
+
+	* [r13335] trunk/lib/libqof/qof/qofevent.c: moderating the
+	  deprecated handler log entry
+
+2006-02-20 22:02  hampton
+
+	* [r13334] trunk/ChangeLog, trunk/rpm/README,
+	  trunk/rpm/gnucash.spec.in: Update spec file from RH8 to FC4.
+
+2006-02-20 22:00  hampton
+
+	* [r13333] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libgsf-1.12.3/gsf/gsf-output-stdio.c,
+	  trunk/lib/libgsf-1.12.3/gsf/gsf-utils.c,
+	  trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/backend/postgres/test/test-db.c,
+	  trunk/src/calculation/fin.c,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c,
+	  trunk/src/gnome-utils/gnc-html.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Compile
+	  cleanly with when _FORTIFY_SOURCE is defined. This definition is
+	  forced when building RPMs on FC4.
+
+2006-02-20 21:45  warlord
+
+	* [r13332] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  fix the qof configure test for OSX.
+
+2006-02-20 21:06  hampton
+
+	* [r13331] trunk/ChangeLog, trunk/lib/libqof/qof/guid.c: Don't
+	  reference uninitialized memory.
+
+2006-02-20 20:47  chris
+
+	* [r13330] trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnctreemodelsort.c,
+	  trunk/src/gnome-utils/gnctreemodelsort.h,
+	  trunk/src/gnome-utils/gtktreedatalist.c,
+	  trunk/src/gnome-utils/gtktreedatalist.h: Add a local copy of
+	  GtkTreeModelSort from gtk 2.8.12. Our local copy is called
+	  GncTreeModelSort. This newer version of GtkTreeModelSort fixes
+	  at least one observed bug with our use of sorted models. The
+	  gtktreedatalist.[ch] files are used by GtkTreeModelSort and are
+	  directly from gtk 2.8.12 without any renames because they aren't
+	  exported by gtk.
+
+2006-02-20 20:22  chris
+
+	* [r13329] trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/dialog-utils.h,
+	  trunk/src/gnome-utils/gnc-main-window.c: Explictly require
+	  gtk2.6 for conditionally compiled code that needs it.
+
+2006-02-20 20:09  chris
+
+	* [r13328] trunk/src/gtk-compat.h,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c: Factor
+	  out a compat definition of
+	  GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID into gtk-compat.h.
+
+2006-02-20 19:55  codehelp
+
+	* [r13327] trunk/ChangeLog: ChangeLog entries
+	* [r13326] trunk/configure.in: prepare for QOF 0.6.2 release
+
+2006-02-20 19:54  codehelp
+
+	* [r13325] trunk/lib/libqof/qof/Makefile.am,
+	  trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/gnc-event-p.h,
+	  trunk/lib/libqof/qof/gnc-event.c,
+	  trunk/lib/libqof/qof/gnc-event.h, trunk/lib/libqof/qof/qof.h,
+	  trunk/lib/libqof/qof/qofbook.c,
+	  trunk/lib/libqof/qof/qofevent-p.h,
+	  trunk/lib/libqof/qof/qofevent.c,
+	  trunk/lib/libqof/qof/qofevent.h: replacing gnc-event with
+	  qofevent
+
+2006-02-20 19:50  hampton
+
+	* [r13324] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/glade/sched-xact.glade: Use a spin_box instead
+	  of an entry for the 'occurrences' and 'remaining' numeric fields.
+
+2006-02-20 19:40  hampton
+
+	* [r13323] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/dialog-scheduledxaction.h,
+	  trunk/src/gnome/glade/sched-xact.glade: HIGify the scheduled
+	  transaction dialogs.
+
+2006-02-20 19:09  codehelp
+
+	* [r13322] trunk/src/gnome/lot-viewer.c: removing more unneeded
+	  headers with move pending
+
+2006-02-20 18:49  codehelp
+
+	* [r13321] trunk/src/gnome-utils/gnc-file.c: remove unnecessary
+	  (and soon to be moved) header file
+
+2006-02-20 16:11  hampton
+
+	* [r13320] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Remove forced screen
+	  updates that are no longer necessary.
+
+2006-02-20 16:02  hampton
+
+	* [r13319] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: If the number
+	  of "visible to the user" lines in the register has shrunk, force
+	  the parent widget to redraw. This fixes #328787.
+
+2006-02-20 04:40  warlord
+
+	* [r13316] trunk/ChangeLog, trunk/src/engine/Transaction.c: Allow
+	  nested begin/commit in xaccTransSetTxnType(). Fixes #331771. The
+	  old code wouldn't let you set the value if you were already
+	  within a BeginEdit/CommitEdit block.
+
+2006-02-20 03:19  wilddev
+
+	* [r13315] tags/1.9.1: Tagging the 1.9.1 release of GnuCash
+
+2006-02-20 03:16  wilddev
+
+	* [r13314] trunk/ChangeLog, trunk/NEWS, trunk/configure.in: update
+	  to release 1.9.1
+
+2006-02-20 02:58  chris
+
+	* [r13313] trunk/src/engine/test-core/test-engine-stuff.c: Fix for
+	  'use of uninitialized' warning.
+
+2006-02-20 02:16  hampton
+
+	* [r13312] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/pricecell-gnome.c: Take the
+	  selection into account when handling the keypad decimal point
+	  key. Fixes 314775.
+
+2006-02-20 00:02  hampton
+
+	* [r13311] trunk/src/gnome-utils/QuickFill.c: Remove unused debug
+	  code.
+
+2006-02-20 00:01  hampton
+
+	* [r13310] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/combocell-gnome.c: When
+	  looking for an matching account name, start at the beginning of
+	  the selected region, not the end. Problem created when the code
+	  stopped adding placeholder accounts to the quickfill. Fixes
+	  328893.
+
+2006-02-19 23:41  warlord
+
+	* [r13309] trunk/ChangeLog, trunk/lib/libqof/qof/guid.c,
+	  trunk/lib/libqof/qof/guid.h: Phil Longstaff's patch to make the
+	  GUID length a magic number.
+
+2006-02-19 22:55  codehelp
+
+	* [r13308] trunk/ChangeLog: ChangeLog for reference and recursive
+	  QOF changes
+	* [r13307] trunk/src/engine/test/test-recursive.c: updated test
+	  routine for new recursive code in libqof
+
+2006-02-19 22:54  codehelp
+
+	* [r13306] trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/qof/Makefile.am, trunk/lib/libqof/qof/qof.h,
+	  trunk/lib/libqof/qof/qofchoice.h, trunk/lib/libqof/qof/qoflog.h,
+	  trunk/lib/libqof/qof/qofreference.c,
+	  trunk/lib/libqof/qof/qofreference.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/lib/libqof/qof/qofsession.h: Improved reference handling
+	  for recursive copying of entities - relocate disparate functions
+	  to a single new file
+
+2006-02-19 22:53  codehelp
+
+	* [r13305] trunk/po: ignore generated po/stamp-it file
+
+2006-02-19 22:43  warlord
+
+	* [r13304] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-invoice.c: Don't let
+	  users post negative invoices. (#166864) Pop up an error dialog
+	  and prevent the post.
+
+2006-02-19 22:16  hampton
+
+	* [r13303] trunk/ChangeLog,
+	  trunk/src/core-utils/gw-core-utils-spec.scm,
+	  trunk/src/quotes/Makefile.am, trunk/src/quotes/README,
+	  trunk/src/quotes/dump-finance-quote,
+	  trunk/src/quotes/finance-quote-check.in,
+	  trunk/src/quotes/finance-quote-helper.in,
+	  trunk/src/quotes/gnc-fq-check.in, trunk/src/quotes/gnc-fq-dump,
+	  trunk/src/quotes/gnc-fq-helper.in,
+	  trunk/src/quotes/gnc-fq-update.in, trunk/src/quotes/gnc-prices,
+	  trunk/src/quotes/gnc-value-portfolio,
+	  trunk/src/quotes/update-finance-quote.in,
+	  trunk/src/quotes/value_portfolio,
+	  trunk/src/scm/price-quotes.scm: Regularize the naming of the
+	  Finance::Quote auxiliary scripts. Remove the obsolete gnc-prices
+	  script. Move the to the bin directory the scripts that weren't
+	  already there.
+
+2006-02-19 20:52  jsled
+
+	* [r13302] trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/glade/account.glade: Build fix; finish removing
+	  obsolete merge "error" check.
+
+2006-02-19 20:48  cstim
+
+	* [r13301] trunk/src/engine/test-core/test-engine-stuff.c: Fix
+	  uninitialized variable warning
+
+2006-02-19 19:29  warlord
+
+	* [r13300] trunk/ChangeLog,
+	  trunk/src/engine/test-core/test-engine-stuff.c: A few tests to
+	  improve get_random_query() and fix a couple test bugs. - Prefer
+	  QUERY_AND and QUERY_OR over NAND, NOR, XOR - Don't randomly
+	  generate a gnc_numeric with a 0 denominator.
+
+2006-02-19 19:28  warlord
+
+	* [r13299] trunk/ChangeLog,
+	  trunk/lib/goffice-0.0.4/goffice/cut-n-paste/foocanvas/foo-canvas-i18n.h:
+	  Use glib's gi18n.h instead of redefining gettext.
+
+2006-02-19 18:20  warlord
+
+	* [r13298] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncOwner.c,
+	  trunk/src/business/business-core/gncOwner.h,
+	  trunk/src/business/business-gnome/dialog-payment.c: Remember the
+	  last-used account when processing payment (#329725) *
+	  src/business/business-core/gncOwner.[ch]: Add api to get owner
+	  kvp-slots abstractly. *
+	  src/business/business-gnome/dialog-payment.c: Load/save the
+	  last-used transfer account whenever the owner changes or the
+	  dialog completes. Fixes #329725.
+
+2006-02-19 16:36  jsled
+
+	* [r13297] trunk/ChangeLog,
+	  trunk/src/app-utils/gnc-account-merge.c,
+	  trunk/src/app-utils/gnc-account-merge.h,
+	  trunk/src/gnome/druid-hierarchy.c: Implement new-hierarchy-druid
+	  placeholder-value merge policy as discussed on -devel.
+
+2006-02-19 16:32  warlord
+
+	* [r13296] trunk/ChangeLog,
+	  trunk/src/business/business-reports/fancy-invoice.scm: Brian's
+	  patch to add company-id to the company address.
+
+2006-02-19 16:22  warlord
+
+	* [r13295] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-payment.c: Pop up a
+	  warning dialog if the user has no valid post-to accounts. Fixes
+	  #331730.
+
+2006-02-19 15:23  warlord
+
+	* [r13294] trunk/ChangeLog, trunk/src/engine/TransLog.c,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c: Make sure
+	  we use tabs, not spaces, in the transaction log (#331620) *
+	  src/engine/TransLog.c: use TABS not SPACES for column separators
+	  * src/import-export/log-replay/gnc-log-replay.c: use printf so
+	  we don't have a tab->space conversion problem like we did in
+	  TransLog.c Fixes #331620.
+
+2006-02-18 16:53  warlord
+
+	* [r13293] trunk/src/import-export/log-replay/gnc-log-replay.c:
+	  Also report an error dialog if the fopen() fails.
+
+2006-02-18 16:45  warlord
+
+	* [r13292] trunk/ChangeLog,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c: display an
+	  error dialog when we fail to parse a log file due to EOF or a
+	  bad header parsing. Fixes #331620 based on the test-case.
+
+2006-02-18 14:39  warlord
+
+	* [r13291] trunk/ChangeLog, trunk/intl-scm/Makefile.am,
+	  trunk/intl-scm/xgettext.scm: * intl-scm/xgettext.scm: remove the
+	  absolute path from filenames * intl-scm/Makefile.am: pass the
+	  absolute path to xgettext.scm
+
+2006-02-18 10:08  cstim
+
+	* [r13290] trunk/intl-scm/xgettext.scm: Fix old truncation of
+	  filename prefix that is no longer valid
+
+2006-02-18 10:01  cstim
+
+	* [r13289] trunk/po/ca.po, trunk/po/cs.po, trunk/po/da.po,
+	  trunk/po/de.po, trunk/po/el.po, trunk/po/en_GB.po,
+	  trunk/po/es.po, trunk/po/es_NI.po, trunk/po/eu.po,
+	  trunk/po/fr.po, trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po,
+	  trunk/po/nb.po, trunk/po/ne.po, trunk/po/nl.po, trunk/po/pl.po,
+	  trunk/po/pt.po, trunk/po/pt_BR.po, trunk/po/ru.po,
+	  trunk/po/rw.po, trunk/po/sk.po, trunk/po/sv.po, trunk/po/ta.po,
+	  trunk/po/tr.po, trunk/po/uk.po, trunk/po/zh_CN.po,
+	  trunk/po/zh_TW.po: Make update-po because of recent massive
+	  string changes
+
+2006-02-18 05:18  hampton
+
+	* [r13288] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.h,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: Remove all
+	  explicit claiming of the selection in these files. The GtkEntry
+	  they use already performs claims, and the additional just mess
+	  things up. Fixes #330153.
+
+2006-02-18 03:02  hampton
+
+	* [r13287] trunk/ChangeLog,
+	  trunk/lib/goffice-0.0.4/goffice/graph/gog-guru.c,
+	  trunk/lib/goffice-0.0.4/goffice/gtk/go-format-sel.c,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-budget.c,
+	  trunk/src/gnome-utils/gnc-tree-model-budget.h,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c: Prepare for
+	  gtk change that will issue warnings if the return value of the
+	  gtk_tree_model iter functions are not used.
+
+2006-02-18 02:49  warlord
+
+	* [r13286] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  autodetect OFX and use it if we find it. the
+	  --enable/disable-ofx will make the check fatal on failure or
+	  skip it altogether if you want to ignore an existing libofx.
+
+2006-02-17 23:32  warlord
+
+	* [r13285] trunk/ChangeLog, trunk/configure.in,
+	  trunk/macros/g-wrap.m4: * configure.in: remove un-needed/wanted
+	  gsf/goffice configure options * macros/g-wrap.m4: fix the help
+	  text spacing.
+
+2006-02-17 23:31  warlord
+
+	* [r13284] trunk/src/report/report-system/Makefile.am: Fix a
+	  double-set of CLEANFILES.
+
+2006-02-17 21:47  warlord
+
+	* [r13283] trunk/ChangeLog,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c: scrub the
+	  transaction for a currency after we replay. (#143720).
+
+2006-02-17 21:31  warlord
+
+	* [r13282] trunk/ChangeLog,
+	  trunk/src/import-export/log-replay/gnc-log-replay.c: Don't pass
+	  NULL to ferror() (from bug #143720).
+
+2006-02-17 20:22  warlord
+
+	* [r13281] trunk/ChangeLog, trunk/intl-scm/Makefile.am,
+	  trunk/lib/guile-www/Makefile.am,
+	  trunk/src/app-utils/Makefile.am,
+	  trunk/src/business/business-core/Makefile.am,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-reports/Makefile.am,
+	  trunk/src/business/business-utils/Makefile.am,
+	  trunk/src/business/dialog-tax-table/Makefile.am,
+	  trunk/src/core-utils/Makefile.am, trunk/src/engine/Makefile.am,
+	  trunk/src/gnc-module/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/import-export/Makefile.am,
+	  trunk/src/import-export/hbci/Makefile.am,
+	  trunk/src/import-export/qif-import/Makefile.am,
+	  trunk/src/import-export/qif-io-core/Makefile.am,
+	  trunk/src/register/register-core/Makefile.am,
+	  trunk/src/report/locale-specific/us/Makefile.am,
+	  trunk/src/report/report-gnome/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/standard-reports/Makefile.am,
+	  trunk/src/report/stylesheets/Makefile.am,
+	  trunk/src/report/utility-reports/Makefile.am,
+	  trunk/src/scm/Makefile.am, trunk/src/scm/gnumeric/Makefile.am,
+	  trunk/src/scm/printing/Makefile.am,
+	  trunk/src/tax/us/Makefile.am: Make the build work if the build
+	  directory is not the source directory. Also symlink .scm files
+	  into the build directory so it's possible to run from it. Also
+	  fix "fin.scm installed twice", bug #168629.
+
+2006-02-17 15:03  chris
+
+	* [r13280] trunk/src/gnome-utils/dialog-account.c: Use
+	  GPOINTER_TO_INT to avoid casting pointer to integer of different
+	  size.
+
+2006-02-16 06:07  warlord
+
+	* [r13279] trunk/ChangeLog, trunk/lib/libqof/qof/Makefile.am: *
+	  lib/libqof/qof/Makefile.am: add qofla-dir.h to DISTCLEANFILES
+
+2006-02-16 06:06  warlord
+
+	* [r13278] trunk/ChangeLog,
+	  trunk/src/backend/file/test/test-load-xml2.c: need g_type_init()
+	  because we don't actually "load" the file backend.
+
+2006-02-16 04:50  warlord
+
+	* [r13277] trunk/ChangeLog,
+	  trunk/src/backend/file/gncmod-backend-file.c,
+	  trunk/src/backend/file/test/test-load-xml2.c: move jsled's
+	  g-type initialization into the module init this way we don't
+	  need to worry about it in every test app.
+
+2006-02-16 04:31  warlord
+
+	* [r13276] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libgsf-1.12.3/tests/Makefile.am,
+	  trunk/src/backend/file/Makefile.am,
+	  trunk/src/backend/file/test/Makefile.am,
+	  trunk/src/business/business-core/file/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am: combine XML_{CFLAGS,LIBS}
+	  into LIBXML2_{CLFLAGS,LIBS}
+
+2006-02-16 04:07  warlord
+
+	* [r13275] trunk/ChangeLog, trunk/configure.in: get --disable-gui
+	  configure switch to actually do what we want. - Move a bunch of
+	  configure code around in the file. - Don't look for goffice/gsf
+	  if we ask for --disable-gui - add a few more comments - no need
+	  to check for libxml2 twice (more work to do here).
+
+2006-02-16 03:56  jsled
+
+	* [r13274] trunk/ChangeLog, trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/glade/account.glade: Andreas Kohler's patch to
+	  not scroll the tree view headers in the new-account hierarchy
+	  druid. Bug#330850.
+
+2006-02-16 03:34  jsled
+
+	* [r13273] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/test/test-load-xml2.c: Fix test (init)
+	  failure.
+
+2006-02-15 23:20  codehelp
+
+	* [r13272] branches/cashutil/ChangeLog,
+	  branches/cashutil/autogen.sh, branches/cashutil/configure.ac:
+	  Halting the cashutil branch until further notice - development
+	  continues outside svn
+
+2006-02-15 22:06  chris
+
+	* [r13271] trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.h: Convert
+	  the AccountType selection functions to work with
+	  GtkTreeSelections from views using the filtered
+	  GncTreeModelAccountTypes. Privatize the unfiltered
+	  GncTreeModelAccountTypes - now, every accessible account-types
+	  TreeModel is a new GtkTreeModelFilter, and their ref-counting is
+	  always the same. Add some tweaks to
+	  gnc-tree-model-account-types.[ch] from Andreas Köhler
+	  <andi5.py at gmx.net>, plus the conversion of the Account Dialog's
+	  account-types field to use the filtered GncTreeModelAccountTypes
+	  instead of a GtkListStore, but simplified to use the AccountType
+	  selection functions.
+
+2006-02-15 16:42  warlord
+
+	* [r13270] trunk/ChangeLog,
+	  trunk/src/business/business-reports/owner-report.scm: set the
+	  document title properly.
+
+2006-02-15 16:19  warlord
+
+	* [r13269] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/qof/Makefile.am: Small QOF build fix for dist
+	  and non-srcdir builds: * lib/libqof/qof/Makefile.am: keep
+	  qofla-dir.h out of the dist * configure.in: look in builddir for
+	  qof includes.
+
+2006-02-15 15:16  warlord
+
+	* [r13268] trunk/ChangeLog,
+	  trunk/src/business/business-core/business-core.scm: Fix a typo;
+	  forgot one procedure name-change instance.
+
+2006-02-15 14:58  chris
+
+	* [r13267] trunk/configure.in: Remove --enable-opt-style-install
+	  configure option. That's one less thing to test.
+
+2006-02-15 01:52  chris
+
+	* [r13266] trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/report-system/report-utilities.scm,
+	  trunk/src/report/standard-reports/balance-sheet.scm,
+	  trunk/src/report/standard-reports/equity-statement.scm,
+	  trunk/src/report/standard-reports/income-statement.scm: Changed
+	  balance calculations in three reports from using local copies of
+	  buggy accountlist-get-comm-balance-at-date to using a new
+	  gnc:accountlist-get-comm-balance-interval provided by
+	  report-utilities.scm. For the affected calculations, the
+	  balances no longer exclude transactions on the first day of the
+	  reporting period. This fixes
+	  http://bugzilla.gnome.org/show_bug.cgi?id=331005. Changed
+	  calculations: Income Statement: Total Expenses, Total Revenues
+	  Balance Sheet: Retained Earnings (*) Equity Statement: Retained
+	  Earnings (*), Net Income (*) The Retained Earning calculations
+	  use a start-date of "forever-ago" so they are not affected, but
+	  still converted to the new function.
+
+2006-02-15 01:33  warlord
+
+	* [r13265] trunk/configure.in: Mention libtool-ltdl-devel for FC4
+	  if ltdl.h is missing.
+
+2006-02-14 23:48  warlord
+
+	* [r13264] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm: Andrew
+	  Sackville-West's patch to add display options and fix the
+	  multicurrency patch. Fixes #314554 and #330577.
+
+2006-02-14 21:16  cstim
+
+	* [r13263] trunk/po/de.po: Updated German translation - 3524 out
+	  of 3716 done.
+
+2006-02-14 21:03  cstim
+
+	* [r13262] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in,
+	  trunk/src/gnome-utils/schemas/apps_gnucash_history.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_commodities.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_common.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_prices.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_reconcile.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_totd.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_register.schemas.in,
+	  trunk/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in,
+	  trunk/src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in:
+	  Make the gconf key wordings consistent across all of our schemas
+	  files, as discussed and prepared on
+	  http://wiki.gnucash.org/wiki/GConf_Wording .
+
+2006-02-14 19:58  cstim
+
+	* [r13261] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-getbalance.c,
+	  trunk/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c: For latest
+	  aqbanking changes, define AQBANKING_NOWARN_DEPRECATED to disable
+	  aqbanking compiler warnings because we will still use those
+	  functions for some time to come.
+
+2006-02-14 19:41  cstim
+
+	* [r13260] trunk/po/fr.po: Updated French translation by Didier
+	  Vidal <didier-devel at 9online.fr>
+
+2006-02-13 23:45  hampton
+
+	* [r13259] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome/glade/account.glade: Andreas Köhler's patch to
+	  convert the account types list in the account edit dialog to a
+	  GtkTreeView/GtkListStore.
+
+2006-02-13 23:21  hampton
+
+	* [r13258] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Andreas Köhler's
+	  patch to prevent crash when voiding a transaction.
+
+2006-02-13 16:23  warlord
+
+	* [r13257] trunk/ChangeLog, trunk/src/backend/postgres/table.m4:
+	  use glib macro instead of cast to convert pointer to int. Fixes
+	  #330581.
+
+2006-02-13 15:42  hampton
+
+	* [r13256] trunk/ChangeLog, trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/sched-xact.glade: Andreas Köhler's patch
+	  to wrap label text in a couple of dialogs.
+
+2006-02-13 14:06  codehelp
+
+	* [r13255] trunk/src/calculation/fin.c: correcting the logic in
+	  the error state
+
+2006-02-13 11:22  codehelp
+
+	* [r13254] trunk/src/calculation/fin.c: make it clearer that the
+	  return value of 0.0 is an error by using g_return_val_if_fail -
+	  cannot use assert as return value needs to be modified.
+
+2006-02-13 09:02  codehelp
+
+	* [r13253] trunk/src/calculation/fin.c: preventing data loss in
+	  normal use - retain unsigned int check for zero as a special
+	  case error state indicating immediate abort.
+
+2006-02-13 05:05  warlord
+
+	* [r13252] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm: Revert
+	  advanced-portfolio.scm r13244 because it breaks the report. *
+	  src/report/standard-reports/advanced-portfolio.scm: revert
+	  r13244 in this file because it's badly formed and breaks the
+	  report. Reopened bug #314554.
+
+2006-02-13 03:32  warlord
+
+	* [r13251] trunk/autogen.sh: Error out of autogen if one of the
+	  programs fails.
+
+2006-02-13 03:28  warlord
+
+	* [r13250] trunk/autogen.sh: depend on autoconf 2.59 and automake
+	  1.9
+
+2006-02-13 00:15  codehelp
+
+	* [r13249] trunk/ChangeLog: ChangeLog entry for bug 107876 fix in
+	  fin.c
+
+2006-02-13 00:12  codehelp
+
+	* [r13248] trunk/src/calculation/fin.c: Fix Bug 107876 - financial
+	  calculator would call exit(1) if calculation resulted in an
+	  interest rate of zero.
+
+2006-02-12 23:13  chris
+
+	* [r13247] trunk/ChangeLog: Copy 'svn log -v' output from past 20
+	  days to ChangeLog.
+
+2006-02-12 22:19  warlord
+
+	* [r13246] trunk/ChangeLog, trunk/src/gnome/Makefile.am,
+	  trunk/src/gnome/gnucash.desktop.in: Christian Neumair's desktop
+	  patch (#145545) * src/gnome/gnucash.desktop.in *
+	  src/gnome/Makefile.am Make the desktop more HIG-compliant.
+
+2006-02-12 22:09  warlord
+
+	* [r13245] trunk/ChangeLog, trunk/src/gnome/reconcile-list.c,
+	  trunk/src/gnome/reconcile-list.h,
+	  trunk/src/gnome/window-reconcile.c: Mike Alexander's reconcile
+	  preselection patch (#112653). * src/gnome/window-reconcile.c
+	  (gnc_reconcile_window_create_list_box): *
+	  src/gnome/reconcile-list.c (gnc_reconcile_list_new): *
+	  src/gnome/reconcile-list.h (gnc_reconcile_list_new): Don't
+	  pre-select the reconciled status for transactions after the
+	  statement date. Fixes #112653.
+
+2006-02-12 21:46  warlord
+
+	* [r13244] trunk/ChangeLog,
+	  trunk/src/report/report-system/commodity-utilities.scm,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm,
+	  trunk/src/report/standard-reports/cash-flow.scm,
+	  trunk/src/report/standard-reports/portfolio.scm,
+	  trunk/src/report/standard-reports/transaction.scm: Mike
+	  Alexander's patch to handle multiple currencies in reports.
+	  (#314554) * src/report/standard-reports/portfolio.scm: *
+	  src/report/standard-reports/advanced-portfolio.scm: Report
+	  currency option Sort accounts Handle "nearest price" option
+	  better * src/report/standard-reports/cash-flow.scm: Handle
+	  multiple currencies better *
+	  src/report/standard-reports/transaction.scm: Add common currency
+	  option. Handle "nearest price" option better. *
+	  src/report/report-system/commodity-utilities.scm
+	  (gnc:exchange-by-pricedb-nearest): Use price nearest to noon on
+	  the day specified. Fixes bug #314554.
+
+2006-02-12 20:31  chris
+
+	* [r13243] trunk/src/calculation/expression_parser.c: Don't
+	  continue to parse the expression if we've already reached the
+	  end. Fixes http://bugzilla.gnome.org/show_bug.cgi?id=166840.
+
+2006-02-12 20:29  warlord
+
+	* [r13242] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm: Boris
+	  Zbarsky's advanced-portfolio patch. (#311549) *
+	  src/report/standard-reports/advanced-portfolio.scm: Apply
+	  dividend and brokerage to moneyin and moneyout to more
+	  accurately reflect account activity. Fixes bug #311549.
+
+2006-02-12 20:03  warlord
+
+	* [r13241] trunk/ChangeLog, trunk/src/engine/Scrub.c,
+	  trunk/src/engine/Scrub.h: Mike Alexander's Currency Scrub patch.
+	  * src/engine/Scrub.c: * src/engine/Scrub.h: Try to fix
+	  transactions that have no currency, perhaps because of a log
+	  replay. Workaround for bug #143720.
+
+2006-02-12 19:32  warlord
+
+	* [r13240] trunk/ChangeLog,
+	  trunk/src/report/stylesheets/stylesheet-fancy.scm: Des Dougan's
+	  patch to let the user choose the fancy-stylesheet image
+	  alignment. Fixes #314048.
+
+2006-02-12 18:56  codehelp
+
+	* [r13239] trunk/ChangeLog: ChangeLog for my commits today
+
+2006-02-12 18:55  codehelp
+
+	* [r13238] trunk/src/test-core/test-stuff.c: Ensuring
+	  get_random_double returns at least some decimal places more
+	  often than not.
+
+2006-02-12 18:31  warlord
+
+	* [r13237] trunk/ChangeLog,
+	  trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/business/business-utils/business-prefs.scm,
+	  trunk/src/business/business-utils/business-utils.scm: Brian's
+	  patch to fancy-invoice to parameterize everything. *
+	  src/business/business-utils/business-prefs.scm: *
+	  src/business/business-utils/business-utils.scm: Add a bunch of
+	  new File -> Properties to describe the business. *
+	  src/business/business-reports/fancy-invoice.scm: Parameterize
+	  all the various settings in the report so they can all be set
+	  through the options or file->properties settings. Patch by
+	  "Brian", but slightly modified to not hard-code some strings.
+
+2006-02-12 18:28  codehelp
+
+	* [r13236] trunk/lib/libqof/qof/qofsession.c: Improve
+	  QOF_TYPE_COLLECT handling and recursive copies
+
+2006-02-12 18:25  codehelp
+
+	* [r13235] trunk/lib/libqof/backend/file/qsf-backend.c: Check that
+	  files can be opened before trying to work out their type. Use
+	  new QofBackendError value
+
+2006-02-12 18:24  codehelp
+
+	* [r13234] trunk/lib/libqof/qof/qofbackend.h: New QofBackendError
+	  code if files cannot be read
+
+2006-02-12 16:16  warlord
+
+	* [r13233] trunk/ChangeLog,
+	  trunk/src/business/business-core/business-core.scm,
+	  trunk/src/business/business-reports/fancy-invoice.scm: Rework
+	  some APIs for the fancy-invoice set the client name font.
+	  #327545. * src/business/business-core/business-core.scm: add
+	  gnc:owner-get-name-dep and gnc:owner-get-address-dep APIs *
+	  src/business/business-reports/fancy-invoice.scm: Change the font
+	  of the client company name to match the owner company name.
+	  Fixes #327545.
+
+2006-02-12 15:28  warlord
+
+	* [r13232] trunk/ChangeLog,
+	  trunk/src/business/business-core/business-core.scm,
+	  trunk/src/business/business-reports/easy-invoice.scm,
+	  trunk/src/business/business-reports/fancy-invoice.scm,
+	  trunk/src/business/business-reports/invoice.scm,
+	  trunk/src/business/business-reports/owner-report.scm: rename
+	  gnc:owner-get-address-dep to gnc:owner-get-name-and-address-dep
+	  in preparation of some other patches.
+
+2006-02-12 11:13  cstim
+
+	* [r13231] trunk/po/de.po: Updated German translation - 3500 out
+	  of 3657 done.
+
+2006-02-12 11:10  cstim
+
+	* [r13230] trunk/src/gnome/druid-merge.c: String cleanup; fix
+	  manual emulation of ngettext; fix some memory leaks due to
+	  g_strconcat, but not yet all
+
+2006-02-12 05:21  chris
+
+	* [r13229] trunk/src/gnome-utils/window-main-summarybar.c: Use the
+	  price nearest to midday to get the value in the default
+	  currency. Patch by Mike Alexander <mta.umich.edu>, closes bug
+	  #330361
+
+2006-02-12 04:13  chris
+
+	* [r13228] trunk/src/report/report-gnome/gnc-plugin-page-report.c:
+	  Take #2: Fixups for two botched gnc-plugin-page-report.c commits
+	  tonight. 1) Correctly handle gc protection for non-boolean
+	  'edited_reports' field. 2) Pass list argument instead of
+	  immediate to gfec_apply.
+
+2006-02-12 02:40  chris
+
+	* [r13227] trunk/src/report/report-gnome/gnc-plugin-page-report.c:
+	  Gracefully handle errors in report options. This prevents the
+	  whole program from crashing when unrecognized report options are
+	  used.
+
+2006-02-12 01:59  warlord
+
+	* [r13226] trunk/configure.in: Um, quote the sed script so it
+	  actually works right. Oops.
+
+2006-02-11 23:24  warlord
+
+	* [r13225] trunk/ChangeLog, trunk/configure.in: rework the
+	  initialization to require autoconf-2.59 and automake-1.9 parse
+	  the version out of the AC_PACKAGE_VERSION macro, so we still
+	  only need to set it in one place. This should solve a number of
+	  old-automake related problems people have seen.
+
+2006-02-11 22:50  warlord
+
+	* [r13224] trunk/ChangeLog,
+	  trunk/src/business/business-reports/owner-report.scm: set the
+	  document title properly AFTER type-str is set.
+
+2006-02-11 21:07  chris
+
+	* [r13223] trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/report-system/gnc-report.c: gc_protect SCM
+	  reports while they are in the GHashTable. Also, use gfec to be a
+	  bit more defensive about potential errors while running a report.
+
+2006-02-11 20:22  warlord
+
+	* [r13219] trunk/ChangeLog,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: don't
+	  need to scm_gc_{un,}protect_object on SCM_BOOL_F.
+
+2006-02-11 20:08  hampton
+
+	* [r13218] trunk/ChangeLog, trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/acctperiod.glade,
+	  trunk/src/gnome/glade/sched-xact.glade: Patch from Tommi
+	  Vainikainen <tvainika at niksula.hut.fi> to remove extraneous line
+	  breaks.
+
+2006-02-11 20:00  hampton
+
+	* [r13213] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-commodity-xml-v2.c,
+	  trunk/src/backend/file/test/test-xml-commodity.c,
+	  trunk/src/backend/postgres/table.m4,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/engine/test-core/test-engine-stuff.c,
+	  trunk/src/engine/test/test-commodities.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/dialog-commodity.h,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.h,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c,
+	  trunk/src/import-export/import-commodity-matcher.c,
+	  trunk/src/import-export/import-commodity-matcher.h,
+	  trunk/src/import-export/ofx/gnc-ofx-import.c: Globally replace
+	  the words "exchange_code" with cusip in the source. No user
+	  visible changes.
+
+2006-02-11 11:14  cstim
+
+	* [r13206] trunk/src/app-utils/gnc-gettext-util.c,
+	  trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome/window-reconcile.c,
+	  trunk/src/report/report-gnome/window-report.c: When translation
+	  potentially empty strings, check always for nonemptyness. Should
+	  avoid #330179 in the rest of the code as well.
+
+2006-02-11 10:55  cstim
+
+	* [r13205] trunk/ChangeLog, trunk/po/Makevars,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c: Add
+	  --keyword=Q_ to xgettext arguments so that translations with
+	  context prefix/disambiguation prefix are included as well.
+
+2006-02-11 10:29  cstim
+
+	* [r13204] trunk/po/de.po: Updated German translation - 3485 out
+	  of 3656 done.
+
+2006-02-11 10:18  cstim
+
+	* [r13203] trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Fix duplicate menu
+	  item shortcut. Fixes #330671.
+
+2006-02-11 10:14  cstim
+
+	* [r13202] trunk/src/gnome/gnc-plugin-page-register.c: Fix
+	  duplicate menu item shortcut. Fixes #330672.
+
+2006-02-11 10:04  cstim
+
+	* [r13201] trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c: String cleanup.
+	  Remove erroneous underscore. Fixes #330769.
+
+2006-02-11 05:23  chris
+
+	* [r13200] trunk/src/gnome-utils/glade/preferences.glade: Tweak
+	  the preferences labels for accounting periods.
+
+2006-02-11 05:14  chris
+
+	* [r13199] trunk/src/app-utils/app-utils.scm,
+	  trunk/src/app-utils/date-utilities.scm,
+	  trunk/src/app-utils/gnc-accounting-period.h,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/app-utils/options.scm: Change the reports from using a
+	  hard-coded fiscal year to using the global accounting period set
+	  in the preferences. Both the start date and the end date are
+	  used, so the user is free to choose any arbitrary period.
+
+2006-02-11 05:00  chris
+
+	* [r13198] trunk/src/app-utils/gnc-accounting-period.c,
+	  trunk/src/app-utils/gnc-accounting-period.h,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome-utils/window-main-summarybar.h: Move the
+	  accounting period preference functions from
+	  window-main-summarybar to gnc-accounting-period.
+
+2006-02-11 03:54  hampton
+
+	* [r13197] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Correctly open
+	  an account and its sub-accounts. Fixes 330745.
+
+2006-02-10 22:43  warlord
+
+	* [r13196] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-event.c:
+	  Better handling of event removal. This allows us to actually
+	  clean up, but also makes sure we don't destroy the handler list
+	  out from under us as we're processing events.
+
+2006-02-10 15:32  warlord
+
+	* [r13195] trunk/ChangeLog, trunk/configure.in: check that we can
+	  find g-wrap-wct.h. detects that we're running on a "broken"
+	  system like Ubuntu. This is in response to #330539.
+
+2006-02-10 15:04  warlord
+
+	* [r13194] trunk/ChangeLog, trunk/Makefile.am: added
+	  README.dependencies to the dist. Fixes #330614.
+
+2006-02-10 15:00  warlord
+
+	* [r13193] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-options.c: Test for an empty string
+	  when translating. (Fixes #330179)
+
+2006-02-10 05:44  hampton
+
+	* [r13192] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c: Pass argc
+	  by reference instead of value so g_option_parse_context can
+	  update it.
+
+2006-02-10 04:17  hampton
+
+	* [r13191] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c: Don't
+	  initialize the display at option parsing time. This way
+	  --add-price-quotes can run from a cron job.
+
+2006-02-10 02:13  hampton
+
+	* [r13190] trunk/ChangeLog, trunk/src/engine/gnc-commodity.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/glade/commodity.glade: Update for known
+	  F::Q 1.11 quote sources.
+
+2006-02-10 02:12  hampton
+
+	* [r13189] trunk/src/quotes/finance-quote-check.in,
+	  trunk/src/scm/price-quotes.scm: Print out the installed F::Q
+	  version at startup.
+
+2006-02-09 19:46  warlord
+
+	* [r13175] trunk/src/engine/Transaction.c: Use
+	  xaccTrans{Begin,Commit}Edit in xaccTransDestroy()
+
+2006-02-09 16:28  warlord
+
+	* [r13174] trunk/ChangeLog, trunk/macros/legacy_macros.m4: Print
+	  more debugging when the guile version check fails. *
+	  macros/legacy_macros.m4: when the guile version check fails,
+	  print out the version of guile that we found in order to aid
+	  debugging.
+
+2006-02-09 07:26  hampton
+
+	* [r13173] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-control.c: Better
+	  fix for the code that updates the buy/sell action based on the
+	  number of shares entered in a transaction.
+
+2006-02-09 07:24  hampton
+
+	* [r13172] trunk/src/gnome-utils/gnc-tree-view-account.c: Remove
+	  forgotten unused variable.
+
+2006-02-09 06:17  hampton
+
+	* [r13171] trunk/src/gnome/glade/reconcile.glade: Set the default
+	  button.
+
+2006-02-09 05:58  warlord
+
+	* [r13170] tags/1-9-0, tags/1.9.0: renaming 1-9-0 tag to 1.9.0
+
+2006-02-09 05:56  warlord
+
+	* [r13169] tags/gnucash-1-9-0: removing broken 1.9.0 release tag
+
+2006-02-09 05:41  wilddev
+
+	* [r13168] tags/1-9-0: Tagging the 1.9.0 release of GnuCash
+
+2006-02-09 05:23  chris
+
+	* [r13167] trunk/src/gnome-utils/gnc-tree-view-account.c: Remove
+	  forgotten unused variable.
+
+2006-02-09 05:03  hampton
+
+	* [r13166] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-control.c: Fix the
+	  code that updates the buy/sell action based on the number of
+	  shares entered in a transaction.
+
+2006-02-09 04:53  chris
+
+	* [r13165] trunk/src/gnome-utils/gnc-tree-view-account.c: Add two
+	  columns to the Accounts page: "Total (Period)" & "Balance
+	  (Period)" These are the recursive and non-recursive,
+	  respectively, period balances, where the accounting period is
+	  specified in the preferences.
+
+2006-02-09 04:41  hampton
+
+	* [r13164] trunk/src/gnome-utils/window-main-summarybar.c: Call
+	  existing function to find the end of the day.
+
+2006-02-09 04:37  hampton
+
+	* [r13163] trunk/ChangeLog, trunk/src/engine/gnc-pricedb.c,
+	  trunk/src/gnome/dialog-price-edit-db.c: A couple of performance
+	  enhancements.
+
+2006-02-09 04:35  hampton
+
+	* [r13162] trunk/src/gnome/gnc-plugin-basic-commands.c: Set the
+	  busy cursor while the dialogs are being generated.
+
+2006-02-09 04:34  hampton
+
+	* [r13161] trunk/src/gnome/glade/commodities.glade,
+	  trunk/src/gnome/glade/price.glade: Set the window type hint to
+	  normal.
+
+2006-02-09 04:33  hampton
+
+	* [r13160] trunk/src/gnome-utils/glade/commodity.glade: Fix a
+	  duplicate accelerator key.
+
+2006-02-09 04:27  wilddev
+
+	* [r13159] tags/gnucash-1-9-0: Tagging the 1.9.0 release of GnuCash
+
+2006-02-09 04:17  chris
+
+	* [r13158] trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome-utils/window-main-summarybar.h: Fix an
+	  off-by-one (day) error in the dates used by the summarybar.
+	  Factor out and publicize functions to get the start and end of
+	  the accounting period in the preferences. Mark one comment as
+	  probably obsolete.
+
+2006-02-09 04:16  wilddev
+
+	* [r13157] trunk/ChangeLog, trunk/NEWS: update to release 1.9.0
+
+2006-02-09 01:47  chris
+
+	* [r13156] trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome-utils/gnc-tree-view.h: Factor out an "approved"
+	  method for getting the GtkCellRenderer from a GtkTreeViewColumn
+	  that's been added to a GncTreeView with one of the convenience
+	  functions.
+
+2006-02-09 01:24  chris
+
+	* [r13155] trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/window-main-summarybar.c,
+	  trunk/src/gnome-utils/window-main-summarybar.h,
+	  trunk/src/gnome/Makefile.am,
+	  trunk/src/gnome/window-main-summarybar.c,
+	  trunk/src/gnome/window-main-summarybar.h: Move
+	  window-main-summarybar.[ch] from gnome/ to gnome-utils/. It
+	  doesn't depend on anything in gnome/.
+
+2006-02-08 15:05  chris
+
+	* [r13154] trunk/src/gnome/gnc-plugin-page-register.c: Change name
+	  of SplitRegister variable name to 'reg' for consistency.
+
+2006-02-08 15:00  chris
+
+	* [r13153] trunk/src/report/report-system/html-document.scm: A
+	  little error checking for report titles.
+
+2006-02-08 06:04  chris
+
+	* [r13152] trunk/lib/libqof/qof/gnc-event.c: Don't allow the event
+	  handler list to shrink while we're traversing it. This change
+	  isn't ideal in the sense that the handler list is now a
+	  monotonically increasing resource, but it's better than crashing
+	  when the handler in node N+1 happens to be deleted while
+	  servicing the handler in node N.
+
+2006-02-08 06:00  hampton
+
+	* [r13151] trunk/ChangeLog, trunk/src/gnome-search/search.glade:
+	  Set the default button.
+
+2006-02-08 05:55  chris
+
+	* [r13150] trunk/src/gnome-utils/gnc-tree-model-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c,
+	  trunk/src/gnome-utils/gnc-tree-model.c,
+	  trunk/src/gnome-utils/gnc-tree-model.h,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-view-price.c,
+	  trunk/src/gnome-utils/gnc-tree-view.c: Convert GncTreeModel from
+	  a GtkObject to a GObject. Replace gtk_object_sink calls on the
+	  models with g_object_unref calls. Correctly increase the
+	  refcount of "remembered" models when we return them.
+
+2006-02-08 02:23  chris
+
+	* [r13149] trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c: Convert
+	  GncTreeModelPrice and GncTreeModelCommodity to use GObject
+	  dispose path instead of GtkObject destroy path.
+
+2006-02-08 01:55  chris
+
+	* [r13148] trunk/src/gnome-utils/gnc-tree-model-account.c: Convert
+	  GncTreeModelAccount to use the GObject dispose path instead of
+	  the GtkObject destroy path. Also, remove the gconf callback
+	  during dispose.
+
+2006-02-07 22:01  cstim
+
+	* [r13147] trunk/po/de.po: Updated German translation
+
+2006-02-07 21:07  cstim
+
+	* [r13146] trunk/configure.in: Improve check for aqbanking by
+	  looking for the pkg-config file first and using the old method
+	  as a fallback
+
+2006-02-07 21:06  cstim
+
+	* [r13145] trunk/ChangeLog, trunk/po/glossary/de.po,
+	  trunk/po/glossary/gnc-glossary.txt: Update glossary
+
+2006-02-07 21:05  cstim
+
+	* [r13144] trunk/src/business/business-gnome/dialog-invoice.c:
+	  String cleanup; add translator comments
+
+2006-02-07 21:04  cstim
+
+	* [r13143] trunk/src/business/business-reports/owner-report.scm:
+	  String cleanup: Remove formatting from translations
+
+2006-02-07 20:23  cstim
+
+	* [r13142] trunk/po/fr.po: Updated French translation by Didier
+	  Vidal
+
+2006-02-07 20:22  cstim
+
+	* [r13141] trunk/po/nb.po: Update Norwegian translation by Tor
+	  Harald Thorland
+
+2006-02-07 19:52  chris
+
+	* [r13140] trunk/src/bin/gnucash-bin.c: Recompute argc after argv
+	  may have changed.
+
+2006-02-07 04:47  hampton
+
+	* [r13139] trunk/ChangeLog, trunk/glade-fixup,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/budget.glade,
+	  trunk/src/gnome/glade/tax.glade,
+	  trunk/src/import-export/hbci/glade/hbci.glade,
+	  trunk/src/report/report-gnome/report.glade: Filter out more post
+	  gtk2.4 properties.
+
+2006-02-07 03:59  hampton
+
+	* [r13138] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c: Fix some
+	  issues when invoking from a non-utf8, non latin1 locale. Use
+	  g_print to print to the console. Convert from popt to g_options
+	  for glib >= 2.6.
+
+2006-02-07 01:56  hampton
+
+	* [r13137] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-grid.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c: Scott
+	  Oonk' patch to fix a couple of problems with right justified
+	  cells in the register.
+
+2006-02-06 22:09  codehelp
+
+	* [r13136] trunk/src/business/business-core/gncInvoice.c: omitting
+	  collect type from invoice object until fix is ready in libqof -
+	  allows QSF Invoice export to work
+
+2006-02-06 20:45  codehelp
+
+	* [r13135] trunk/src/backend/postgres/PostgresBackend.c,
+	  trunk/src/backend/postgres/txn.c,
+	  trunk/src/backend/postgres/txnmass.c: more inst.kvp_data changes
+	  to get Postgres backend to compile
+
+2006-02-06 20:41  chris
+
+	* [r13134] trunk/src/engine/Transaction.c: Fix two places where we
+	  were letting the split values become incoherent with account
+	  balances. Comment two possible bugs related to capgains and
+	  dirtying (or not) Splits.
+
+2006-02-06 18:31  chris
+
+	* [r13133] trunk/src/backend/file/io-gncxml-v1.c: Fix breakage
+	  from missed case in Split QofEntity->QofInstance conversion.
+
+2006-02-06 17:57  chris
+
+	* [r13132] trunk/src/engine/Transaction.c: Keep QOF aware of the
+	  dirty-state of Transactions. Also, dirty transactions upon
+	  changing due date and read-only status, which didn't used to
+	  happen.
+
+2006-02-06 17:12  chris
+
+	* [r13131] trunk/src/backend/postgres/txn.c,
+	  trunk/src/engine/Account.c, trunk/src/engine/Period.c,
+	  trunk/src/engine/Scrub2.c, trunk/src/engine/Transaction.c,
+	  trunk/src/engine/TransactionP.h, trunk/src/engine/cap-gains.c:
+	  Convert Split from QofEntity to QofInstance. Let QofInstance
+	  manage the book pointer and kvp frame instead of Split managing
+	  its own.
+
+2006-02-06 16:18  chris
+
+	* [r13130] trunk/src/engine/Transaction.c: Replace check_open() in
+	  setter API with internal qof_{begin,commit}_edit().
+
+2006-02-06 06:45  warlord
+
+	* [r13129] trunk/src/engine/Transaction.c: Revert Chris' change in
+	  r13128. Keep in the error check for db-transactional data
+	  storage until the objects can be modified to support
+	  db-transactional autocommit (by calling BeginEdit/CommitEdit
+	  internally instead of checking that the caller did so). But
+	  revert for now to make sure a caller has called BeginEdit in
+	  order to make sure the data gets "saved" (assuming a SQLish
+	  backend).
+
+2006-02-06 04:50  chris
+
+	* [r13128] trunk/src/engine/Transaction.c: Remove check_open()
+	  calls from Transaction setters. These calls were probably a
+	  copied idiom from the Split setters in this same file, but Split
+	  and Transaction use completely different mechanisms for managing
+	  dirty state. Transactions inherit from QofInstance and so use
+	  the .dirty field. Splits inherit from QofEntity, so their
+	  check_open(split->parent) calls are their way of letting someone
+	  know they've changed.
+
+2006-02-05 21:10  warlord
+
+	* [r13127] trunk/ChangeLog,
+	  trunk/src/engine/test-core/test-engine-stuff.c: - better fix for
+	  #accounts - don't g_list_free the account_list
+
+2006-02-05 21:05  codehelp
+
+	* [r13126] trunk/po/en_GB.po: remove obsolete strings at end of po
+	  file
+
+2006-02-05 20:59  codehelp
+
+	* [r13125] trunk/configure.in: Allowing gnucash to build on a
+	  vanilla FC3 install
+
+2006-02-05 20:38  warlord
+
+	* [r13124] trunk/ChangeLog,
+	  trunk/src/engine/test-core/test-engine-stuff.c: A few test
+	  changes to make sure we don't fail when we're very unlucky. -
+	  make sure a random group always has at least two accounts - fix
+	  "make random transaction" to tell us when we don't have at least
+	  two accounts. - free the results of xaccGroupGetSubAccounts().
+
+2006-02-05 20:00  warlord
+
+	* [r13123] trunk/ChangeLog, trunk/src/backend/file/Makefile.am: *
+	  src/backend/file/Makefile.am: link against libcore-utils.
+
+2006-02-05 19:58  warlord
+
+	* [r13122] trunk/ChangeLog,
+	  trunk/src/app-utils/test/test-scm-query-string.c: use g_strdup
+	  -- cannot feed SCM_STRING_CHARS() back into guile. (fixes a
+	  weird test-case failure in some cases).
+
+2006-02-05 19:06  codehelp
+
+	* [r13121] trunk/po/en_GB.po: updating for latest merge, 3662
+	  translated
+
+2006-02-05 17:50  warlord
+
+	* [r13120] trunk/po/ca.po, trunk/po/cs.po, trunk/po/da.po,
+	  trunk/po/de.po, trunk/po/el.po, trunk/po/en_GB.po,
+	  trunk/po/es.po, trunk/po/es_NI.po, trunk/po/eu.po,
+	  trunk/po/fr.po, trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po,
+	  trunk/po/nb.po, trunk/po/ne.po, trunk/po/nl.po, trunk/po/pl.po,
+	  trunk/po/pt.po, trunk/po/pt_BR.po, trunk/po/ru.po,
+	  trunk/po/rw.po, trunk/po/sk.po, trunk/po/sv.po, trunk/po/ta.po,
+	  trunk/po/tr.po, trunk/po/uk.po, trunk/po/zh_CN.po,
+	  trunk/po/zh_TW.po: Commit msgmerge prior to 1.9.0 release.
+
+2006-02-05 17:00  codehelp
+
+	* [r13119] trunk/src/engine/test/test-recursive.c: removing
+	  unneeded headers and tidying up debug code
+
+2006-02-05 16:58  warlord
+
+	* [r13118] trunk/ChangeLog,
+	  trunk/src/backend/file/test/Makefile.am: *
+	  src/backend/file/test/Makefile.am: link against libcore-utils.
+
+2006-02-05 12:25  codehelp
+
+	* [r13117] trunk/ChangeLog, trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/qoflog.c, trunk/lib/libqof/qof/qoflog.h:
+	  Deprecating qof_log_set_level_global in favour of
+	  qof_log_set_level_registered.
+
+2006-02-05 10:58  codehelp
+
+	* [r13116] trunk/ChangeLog, trunk/lib/libqof/qof/qofbackend-p.h,
+	  trunk/lib/libqof/qof/qofbackend.h: Improve documentation of
+	  QofBackendProvider
+	* [r13115] trunk/lib/libqof/qof/qofchoice.c,
+	  trunk/lib/libqof/qof/qofchoice.h, trunk/lib/libqof/qof/qoflog.c:
+	  support logging of qofchoice by default
+
+2006-02-05 10:57  codehelp
+
+	* [r13114] trunk/lib/libqof/qof/gnc-engine-util.h: line-wrapping
+	  tweak
+
+2006-02-05 10:51  codehelp
+
+	* [r13113] trunk/src/report/report-system: ignoring generated
+	  symlink 'g-wrapped' in svn
+
+2006-02-05 10:48  codehelp
+
+	* [r13112] trunk/lib/libqof/qof/qofsession.c: reverting change to
+	  qofsession.c from r13084, already replaced in r13097
+
+2006-02-05 10:13  codehelp
+
+	* [r13111] trunk/src/engine/test,
+	  trunk/src/engine/test/Makefile.am,
+	  trunk/src/engine/test/test-recursive.c: New test for recursive
+	  copying of entities between sessions
+
+2006-02-05 10:12  codehelp
+
+	* [r13110] trunk/src/engine/test/test-numeric.c: typos
+
+2006-02-05 03:17  hampton
+
+	* [r13108] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/register/ledger-core/split-register.c: Get gnucash to
+	  compile with gcc4.1.
+
+2006-02-05 01:41  warlord
+
+	* [r13107] trunk/ChangeLog, trunk/lib/libqof/qof/gnc-numeric.c:
+	  Some gnc-numeric fixes (more to come). - Fixes for handling
+	  reciprocal values. - Mark a lot of places where potential
+	  overflow bugs are not handled.
+
+2006-02-05 00:16  jsled
+
+	* [r13106] trunk/src/doc/xml/gnucash-v2.rnc: fix gnc:numeric
+	  lexical range.
+
+2006-02-04 23:56  jsled
+
+	* [r13105] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c,
+	  trunk/src/doc/xml/gnucash-v2.rnc: Emit all used namespaces; add
+	  XML datafile schema.
+
+2006-02-04 22:44  hampton
+
+	* [r13104] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/schemas/Makefile.am,
+	  trunk/src/gnome-utils/schemas/Makefile.am,
+	  trunk/src/gnome/schemas/Makefile.am,
+	  trunk/src/import-export/hbci/schemas/Makefile.am,
+	  trunk/src/import-export/schemas/Makefile.am: Don't just install
+	  the schema files, also install the gconf objects into the
+	  database. Reverts accidental change made as part of r12863.
+
+2006-02-04 22:41  hampton
+
+	* [r13103] trunk/src/business/business-reports/owner-report.scm:
+	  Remove extra close parenthesis.
+
+2006-02-04 20:49  jsled
+
+	* [r13102] trunk/ChangeLog,
+	  trunk/src/business/business-reports/aging.scm,
+	  trunk/src/business/business-reports/owner-report.scm,
+	  trunk/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  trunk/src/report/locale-specific/us/taxtxf.scm,
+	  trunk/src/report/report-system/html-document.scm,
+	  trunk/src/report/report-system/html-style-sheet.scm,
+	  trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/stylesheets/stylesheet-easy.scm,
+	  trunk/src/report/stylesheets/stylesheet-fancy.scm,
+	  trunk/src/report/stylesheets/stylesheet-plain.scm: Seperate
+	  report titles from headlines; leave title as a string, use
+	  headline for richer markup. Related to Bug#329369.
+
+2006-02-04 20:46  hampton
+
+	* [r13101] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c: Add
+	  disambiguating prefix to the single letter column titles.
+
+2006-02-04 20:36  hampton
+
+	* [r13100] trunk/ChangeLog,
+	  trunk/src/report/stylesheets/stylesheet-easy.scm,
+	  trunk/src/report/stylesheets/stylesheet-fancy.scm: Dave Herman's
+	  patch to fix #327630 by copying missing "function"
+	  (gnc:html-document-set-style!) from the plain to both the
+	  "fancy" and "easy" stylesheets.
+
+2006-02-04 20:22  hampton
+
+	* [r13099] trunk/src/gnome-utils/gnc-tree-view.h: Fix a couple of
+	  comments.
+	* [r13098] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-view-price.c,
+	  trunk/src/gnome-utils/gnc-tree-view.c: Andreas Köhler's patch to
+	  perform the i18n on column headers before calling the generic
+	  tree view code instead of performing it a couple steps removed.
+	  It also introduces the translatable strings "P" (placeholder)
+	  and "Q" (quotes) used in toggle column headers.
+
+2006-02-04 17:56  jsled
+
+	* [r13097] trunk/ChangeLog,
+	  trunk/src/backend/file/gnc-backend-file.c,
+	  trunk/src/backend/file/gnc-backend-file.h,
+	  trunk/src/gnome-utils/glade/preferences.glade: Fix file-backend
+	  options; respect runtime value changes. Fix file-compression
+	  option name in prefs dialog. 2006-02-04 Joshua Sled
+	  <jsled at asynchronous.org> *
+	  src/gnome-utils/glade/preferences.glade: Fix name of
+	  file-compression option. * src/backend/file/gnc-backend-file.c
+	  (gnc_backend_new): Setup option initial values; register
+	  configuration-change notification. (retain_changed_cb,
+	  compression_changed_cb): Add. *
+	  src/backend/file/gnc-backend-file.h (struct FileBackend_struct):
+	  Move backend options into backend struct.
+
+2006-02-04 16:34  chris
+
+	* [r13096] trunk/src/gnome/gnc-plugin-page-budget.c: Hook-up the
+	  new budget value estimation dialog.
+
+2006-02-04 16:32  chris
+
+	* [r13095] trunk/src/gnome/glade/budget.glade: New dialog for
+	  estimating budget values from past transactions. Minor string
+	  and glade tweaks.
+
+2006-02-04 16:29  chris
+
+	* [r13094] trunk/src/gnome-utils/gnc-date-edit.c,
+	  trunk/src/gnome-utils/gnc-date-edit.h:
+	  gnc_date_edit_set_gdate(): A GDate setter for GNCDateEdit is
+	  useful, too.
+
+2006-02-04 15:17  chris
+
+	* [r13093] trunk/src/gnome-utils/gnc-date-edit.c,
+	  trunk/src/gnome-utils/gnc-date-edit.h: Add getter
+	  gnc_date_edit_get_gdate() for getting the value of a GNCDateEdit
+	  widget as a GDate.
+
+2006-02-04 15:12  chris
+
+	* [r13092] trunk/src/engine/Recurrence.c,
+	  trunk/src/engine/Recurrence.h, trunk/src/engine/gnc-budget.c:
+	  Factor out some code from gnc-budget into Recurrence so that the
+	  budget estimation code can use stand-alone recurrences to
+	  estimate budget values. Also, tweak the initial budget so that
+	  it begins at the beginning of the current month.
+
+2006-02-04 15:06  chris
+
+	* [r13091] trunk/src/app-utils/gnc-ui-util.c: Teach
+	  PrintAmountInternal() to correctly handle a reciprocal
+	  denominator.
+
+2006-02-04 05:37  chris
+
+	* [r13090] trunk/src/engine/test/test-numeric.c: Add some
+	  test-cases for gnc_numerics using the reciprocal denominator.
+	  Even though we don't explicitly ask for this representation,
+	  certain calculations (e.g. those involving GNC_HOW_DENOM_SIGFIGS
+	  in the loan druid and soon in budgets) will return numbers using
+	  this representation. Unfortunately, these numbers aren't handled
+	  correctly by most of the gnc_numeric functions, like the ones
+	  for comparison, equality testing, arithmetic and conversion.
+
+2006-02-03 21:29  chris
+
+	* [r13089] trunk/src/engine/gnc-budget.c: Use the string cache for
+	  budget name and description. Dirty the book when the budget
+	  changes. Remove some obsolete budget code.
+
+2006-02-03 14:45  hampton
+
+	* [r13088] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-customer.c,
+	  trunk/src/business/business-gnome/dialog-employee.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-job.c,
+	  trunk/src/business/business-gnome/dialog-order.c,
+	  trunk/src/business/business-gnome/dialog-vendor.c,
+	  trunk/src/gnome-search/dialog-search.c,
+	  trunk/src/gnome-search/dialog-search.h,
+	  trunk/src/gnome-search/search.glade,
+	  trunk/src/gnome/dialog-find-transactions.c: Re-title the search
+	  dialog based upon the menu used to invoke it.
+
+2006-02-03 07:19  hampton
+
+	* [r13087] trunk/glade-fixup, trunk/src/gnome/glade/merge.glade:
+	  Filter out another post gtk2.4 property.
+
+2006-02-03 06:26  hampton
+
+	* [r13086] trunk/ChangeLog, trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome-utils/gnc-tree-view.h,
+	  trunk/src/gnome/glade/account.glade: Andreas Köhler's patch to
+	  allow explicit specification of which columns in a tree view
+	  expand. Updated to automatically mark a column as expandable if
+	  it is the only visible column.
+
+2006-02-03 04:38  hampton
+
+	* [r13085] trunk/ChangeLog,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome/dialog-tax-info.c,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Change the
+	  default visibilities of the GncTreeViewAccount widget to only
+	  show the account name column. This is the most commonly used
+	  case for this widget.
+
+2006-02-03 02:09  jsled
+
+	* [r13084] trunk/ChangeLog, trunk/lib/libqof/qof/qofsession.c,
+	  trunk/src/backend/file/gnc-backend-file.c: Fix overall and
+	  ".log"-specific file-retention issues: Bug#329670 (++).
+
+2006-02-03 00:47  hampton
+
+	* [r13083] trunk/ChangeLog,
+	  trunk/src/register/register-core/numcell.c: Don't call
+	  g_utf8_strlen with a NULL pointer.
+
+2006-02-03 00:31  hampton
+
+	* [r13082] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-model-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c,
+	  trunk/src/gnome-utils/gnc-tree-model-price.c: Better handling in
+	  the model event handling functions. Noticeable in the commodity
+	  and price trees when adding/deleting the first/last item.
+
+2006-02-03 00:28  hampton
+
+	* [r13081] trunk/src/gnome/dialog-commodities.c: Fix a crash when
+	  manipulating commodities before crating the first account.
+
+2006-02-03 00:24  hampton
+
+	* [r13080] trunk/ChangeLog, trunk/src/gnome-utils/gnc-file.c:
+	  Re-enable events before processing the book-opened hook. Solves
+	  some strange problems in the account
+
+2006-02-02 18:47  chris
+
+	* [r13079] trunk/Makefile.am, trunk/make-gnucash-potfiles.in:
+	  Allow make-gnucash-potfiles to run from directories other than
+	  srcdir. Better documentation of exactly what m-g-potfiles
+	  excludes, and a general clean-up of the script.
+
+2006-02-02 15:55  warlord
+
+	* [r13078] trunk/ChangeLog, trunk/src/backend/file/io-gncxml-v2.c:
+	  Specify the output xml encoding as utf8.
+
+2006-02-02 14:39  warlord
+
+	* [r13077] trunk/src/import-export/mt940/Makefile.am: Copy the
+	  mt940 UI Data into the dist tarball.
+
+2006-02-02 14:35  warlord
+
+	* [r13076] trunk/src/import-export/hbci/Makefile.am: Copy the HBCI
+	  UI Data into the dist tarball.
+
+2006-02-02 14:34  warlord
+
+	* [r13075] trunk/src/import-export/ofx/Makefile.am: Copy the OFX
+	  UI Data into the dist tarball.
+
+2006-02-02 04:12  warlord
+
+	* [r13074] trunk/lib/Makefile.am: No need for the blank SUBDIRS +=
+
+2006-02-02 01:22  warlord
+
+	* [r13073] trunk/src/import-export/qif/Makefile.am: Disable
+	  testing of the (not finished) qif import re-write. (the tests
+	  fail on amd64). Since this code isn't used, yet, there's no need
+	  to actually run these tests. But let's distribute the code
+	  anyways....
+
+2006-02-02 00:07  chris
+
+	* [r13072] trunk/Makefile.am, trunk/po/POTFILES.skip: Check for
+	  any accidentally-distributed files not marked for translation.
+
+2006-02-01 22:57  warlord
+
+	* [r13071] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-customer.c,
+	  trunk/src/business/business-gnome/dialog-employee.c,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-job.c,
+	  trunk/src/business/business-gnome/dialog-order.c,
+	  trunk/src/business/business-gnome/dialog-vendor.c,
+	  trunk/src/gnome-search/dialog-search.c,
+	  trunk/src/gnome-search/dialog-search.h,
+	  trunk/src/gnome/dialog-find-transactions.c: Allow specification
+	  of invoice sub-type when creating search dialog (#117354) *
+	  src/gnome-search/dialog-search.c: *
+	  src/gnome-search/dialog-search.h: Modify the
+	  gnc_search_dialog_create() API to add an optional "type label"
+	  parameter, so you can manually set the string presented to the
+	  user for what they are searching for... *
+	  src/business/business-gnome/dialog-order.c: *
+	  src/business/business-gnome/dialog-vendor.c: *
+	  src/business/business-gnome/dialog-customer.c: *
+	  src/business/business-gnome/dialog-job.c: *
+	  src/business/business-gnome/dialog-employee.c: *
+	  src/gnome/dialog-find-transactions.c: Pass NULL into new search
+	  API parameter * src/business/business-gnome/dialog-invoice.c:
+	  Modify how we call the search dialog. Send in different sets of
+	  parameters depending on whether we're searching for a Customer
+	  Invoice, Vendor Bill, or Employee Expense Voucher. Pass in a
+	  type_label as well so the dialog can properly label the "new"
+	  button. This fixes the UI Bug #117354.
+
+2006-02-01 22:38  chris
+
+	* [r13070] trunk/Makefile.am: Add POTFILES.skip to EXTRA_DIST.
+
+2006-02-01 21:49  warlord
+
+	* [r13069] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncEntry.c,
+	  trunk/src/business/business-core/gncInvoice.c,
+	  trunk/src/business/business-core/gncInvoice.h: Re-sort an
+	  invoice entry list when an entry date changes (#320566) *
+	  src/business/business-core/gncInvoice.[ch]: Add new API:
+	  gncInvoiceSortEntries() * src/business/business-core/gncEntry.c:
+	  re-sort the parent when the entry date changes. Only re-sort
+	  when the existing date is non-zero (i.e. don't re-sort on the
+	  initial setting of the date). Fixes #320566.
+
+2006-02-01 21:23  warlord
+
+	* [r13068] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncInvoice.c: Need to put the
+	  new split into the txn as well as the acct before we call
+	  xaccSplitSetBaseValue(). Fixes #325890.
+
+2006-02-01 20:33  chris
+
+	* [r13067] trunk/po/POTFILES.skip: Don't translate obsolete files.
+
+2006-02-01 20:32  chris
+
+	* [r13066] trunk/make-gnucash-potfiles.in: When generating
+	  POTFILES.in, don't include files we don't want to translate.
+
+2006-02-01 20:30  chris
+
+	* [r13065] trunk/Makefile.am: Fail 'make distcheck' if POTFILES.in
+	  contains undistributed files. The failure will also helpfully
+	  explain which files are the problem.
+
+2006-01-31 21:04  cstim
+
+	* [r13064] trunk/po/de.po: Update German translation
+	* [r13063] trunk/src/gnome-utils/gnc-file.c: String improvements:
+	  Add missing whitespace
+
+2006-01-31 20:47  cstim
+
+	* [r13062]
+	  trunk/src/register/ledger-core/split-register-control.c: String
+	  improvements: Make question a bit clearer, hopefully
+
+2006-01-31 20:45  cstim
+
+	* [r13061] trunk/src/gnome-utils/gnc-file.c: String improvements:
+	  Add missing whitespace
+
+2006-01-31 20:27  cstim
+
+	* [r13060] trunk/src/gnome/dialog-price-edit-db.c: Revert
+	  erroneous ngettext change; ngettext changes the text, but not
+	  the format arguments
+
+2006-01-31 19:52  cstim
+
+	* [r13059] trunk/po/el.po: Updated Greek translation by Nikos
+	  Charonitakis <nikosx at gmail.com>
+
+2006-01-31 16:29  warlord
+
+	* [r13058] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/libqof/qof/Makefile.am: Get libqof to link against
+	  glib and gmodule. * configure.in: include gmodule in GLIB_LIBS *
+	  lib/libqof/qof/Makefile.am: link libqof against glib.
+
+2006-01-31 13:16  jsled
+
+	* [r13057] trunk/src/gnome-utils/gnc-html-graph-gog.c: fix
+	  compilation breakage; comment tyop.
+
+2006-01-31 03:41  chris
+
+	* [r13056] trunk/src/report/locale-specific/us/taxtxf-de_DE.scm,
+	  trunk/src/report/locale-specific/us/taxtxf.scm: Don't add markup
+	  to tax report titles.
+
+2006-01-31 03:34  jsled
+
+	* [r13055] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-html-graph-gog.c: Do the
+	  Locale-two-step to fix graphs in non-C-locales. Bug#328773.
+
+2006-01-30 21:01  cstim
+
+	* [r13054] trunk/po/de.po: Update German translation
+
+2006-01-30 17:17  warlord
+
+	* [r13053] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncInvoice.c: Need to insert
+	  splits into accounts before called xaccSplitSetBaseValue(). *
+	  src/business/business-core/gncInvoice.c: Make sure to insert new
+	  splits into an account before we set the Base Value.. Otherwise
+	  it will fail to set the value properly. Closer to fixing 325890,
+	  but it's still not completely fixed.
+
+2006-01-30 16:40  codehelp
+
+	* [r13052] trunk/po/en_GB.po: en_GB update, 3645 of 3645 translated
+
+2006-01-30 14:47  jsled
+
+	* [r13051] trunk/ChangeLog, trunk/src/gnome/glade/print.glade,
+	  trunk/src/gnome/glade/sched-xact.glade: Change since-last-run
+	  final-page text from "apply" to "Apply". Bug#329125. Incidental
+	  ./glade-fixup changes to print.glade.
+
+2006-01-30 06:43  warlord
+
+	* [r13050]
+	  trunk/src/business/business-core/file/gnc-bill-term-xml-v2.c,
+	  trunk/src/business/business-core/gncBillTerm.c: Um, there is no
+	  "PDEBUG()", only "DEBUG()". Oops.
+
+2006-01-30 05:57  warlord
+
+	* [r13049] trunk/ChangeLog,
+	  trunk/src/business/business-core/file/gnc-bill-term-xml-v2.c,
+	  trunk/src/business/business-core/file/gnc-bill-term-xml-v2.h,
+	  trunk/src/business/business-core/file/gnc-customer-xml-v2.c,
+	  trunk/src/business/business-core/file/gnc-invoice-xml-v2.c,
+	  trunk/src/business/business-core/file/gnc-vendor-xml-v2.c,
+	  trunk/src/business/business-core/gncBillTerm.c,
+	  trunk/src/business/business-core/gncBillTerm.h: Clear up the
+	  billterm data lossage (due to a broken enum definition). *
+	  src/business/business-core/file/gnc-bill-term-xml-v2.c: *
+	  src/business/business-core/file/gnc-bill-term-xml-v2.h: Add a
+	  new API to "find-or-create" a billterm so all the code is
+	  collated in one location. Add more debugging during the scrub
+	  phases. * src/business/business-core/file/gnc-invoice-xml-v2.c:
+	  * src/business/business-core/file/gnc-vendor-xml-v2.c: *
+	  src/business/business-core/file/gnc-customer-xml-v2.c: Use the
+	  new bill-term find-or-create API *
+	  src/business/business-core/gncBillTerm.c: add some additional
+	  debugging * src/business/business-core/gncBillTerm.h: The
+	  Billterm Type ENUM must start at 1, not zero. The data file now
+	  appears to properly save itself without destroying data. Fixes
+	  rest of #328790.
+
+2006-01-30 04:57  hampton
+
+	* [r13048] trunk/ChangeLog, trunk/src/Makefile.am,
+	  trunk/src/gnome-utils/gnc-main-window.c, trunk/src/gtk-compat.h:
+	  Make the cut/paste change compile on gtk 2.4 systems.
+
+2006-01-30 03:53  chris
+
+	* [r13047] trunk/src/gnome-utils/gnc-tree-view.c,
+	  trunk/src/gnome-utils/gnc-tree-view.h: New function:
+	  gnc_tree_view_add_combo_column(). This function is only compiled
+	  when HAVE_GTK26 because it uses GtkCellRendererCombo.
+
+2006-01-30 03:13  hampton
+
+	* [r13046] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-billterms.c,
+	  trunk/src/business/business-gnome/dialog-customer.c,
+	  trunk/src/business/business-gnome/dialog-order.c,
+	  trunk/src/business/business-gnome/dialog-vendor.c,
+	  trunk/src/business/business-ledger/gncEntryLedger.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerControl.c,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/engine/cap-gains.c,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/dialog-transfer.c,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-html.c,
+	  trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/dialog-sx-from-trans.c,
+	  trunk/src/gnome/dialog-sxsincelast.c,
+	  trunk/src/gnome/druid-acct-period.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/gnome/window-reconcile.c,
+	  trunk/src/import-export/binary-import/druid-commodity.c,
+	  trunk/src/import-export/hbci/druid-hbci-utils.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c,
+	  trunk/src/import-export/import-commodity-matcher.c,
+	  trunk/src/import-export/qif-import/druid-qif-import.c,
+	  trunk/src/register/ledger-core/split-register.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Remove
+	  extraneous carriage returns from text that will be put into a
+	  GtkLabel (since labels know how to wrap text).
+
+2006-01-30 02:59  chris
+
+	* [r13045] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h, trunk/src/engine/TransactionP.h:
+	  Add some convenience functions for getting values from various
+	  combinations of Accounts, Transactions, and Splits.
+
+2006-01-30 01:56  hampton
+
+	* [r13044] trunk/ChangeLog,
+	  trunk/src/report/stylesheets/stylesheet-fancy.scm: Dave Herman's
+	  patch to suppresses extraneous entries table entries in reports
+	  when there are no files specified for the "logo pix" file or the
+	  "header pix" file.
+
+2006-01-30 01:49  hampton
+
+	* [r13043] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Eskil Bylund's patch
+	  from Epiphany to enable cut/paste. Extended to support
+	  GtkTextView widgets as well as GtkEditable widgets.
+
+2006-01-30 01:45  hampton
+
+	* [r13042] trunk/src/business/business-gnome/dialog-invoice.c: Fix
+	  another focus out event handlers
+
+2006-01-30 01:04  hampton
+
+	* [r13041] trunk/src/business/business-gnome/dialog-invoice.c:
+	  Focus out event handlers should return FALSE.
+
+2006-01-30 00:59  chris
+
+	* [r13040] trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.h: Convert account
+	  types filter dialog to use checkboxes for selection. Patch by
+	  Eskil Bylund <eskil.bylund at gmail.com>
+
+2006-01-29 23:19  hampton
+
+	* [r13039] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Andreas Köhler's patch
+	  to fix a problem where switching windows repeatedly confusing
+	  the Windows menu.
+
+2006-01-29 23:01  codehelp
+
+	* [r13038] trunk/doc/build-osx.txt: hint for osx packagers re:
+	  automake1.4 - still a problem
+
+2006-01-29 22:50  hampton
+
+	* [r13037] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-model-commodity.c: Andreas
+	  Köhler's patch to fix commodity editor warnings/crash.
+
+2006-01-29 19:32  jsled
+
+	* [r13035] trunk/ChangeLog, trunk/src/gnome/dialog-sxsincelast.c,
+	  trunk/src/report/report-gnome/report-gnome.scm,
+	  trunk/src/report/utility-reports/welcome-to-gnucash.scm: SX
+	  Since-Last-Run now reports transaction-creation errors to the
+	  user, degrades (somewhat) gracefully; report cleanup. 2006-01-29
+	  Joshua Sled <jsled at asynchronous.org> *
+	  src/report/utility-reports/welcome-to-gnucash.scm: register menu
+	  item for self. * src/report/report-gnome/report-gnome.scm
+	  (gnc:report-menu-setup): Remove report menu-item creation. *
+	  src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
+	  Degrade more gracefully in the face of errors during
+	  scheduled-transaction creation; record errors in-band rather
+	  than simply to the log, and display them to the user. Resolves
+	  bugs: 151157, 167858, 151487.
+
+2006-01-29 19:23  hampton
+
+	* [r13034] trunk/ChangeLog, trunk/src/gnc-ui.h,
+	  trunk/src/gnome-utils/gnc-gui-query.c,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: HIG
+	  changes for the "radio option" query dialog.
+
+2006-01-29 19:21  hampton
+
+	* [r13033] trunk/src/engine/gnc-engine.c: Restore reasonable
+	  default logging levels.
+
+2006-01-29 18:21  hampton
+
+	* [r13029] trunk/ChangeLog, trunk/README: Michael Wahlbrink's cvs
+	  to svn changes.
+
+2006-01-29 17:49  codehelp
+
+	* [r13027] trunk/lib/libqof/qof/qoflog.c,
+	  trunk/src/bin/gnucash-bin.c, trunk/src/engine/gnc-engine.c,
+	  trunk/src/engine/gnc-engine.h: reverting r12999 and implementing
+	  a set of default log modules
+
+2006-01-29 16:08  hampton
+
+	* [r13021] trunk/ChangeLog,
+	  trunk/src/gnome-search/search-string.c,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  trunk/src/import-export/hbci/hbci-interaction.c,
+	  trunk/src/import-export/qif-import/dialog-account-picker.c,
+	  trunk/src/report/report-gnome/window-report.c: Use a format
+	  string of "%s" when building a message dialog from a single
+	  string.
+
+2006-01-29 16:06  hampton
+
+	* [r13020] trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/gnome/dialog-price-edit-db.c,
+	  trunk/src/gnome/gnc-split-reg.c: Use the gtk2.6 secondary
+	  message text function now that there is a 2.4 emulation routine
+	  available.
+
+2006-01-29 14:53  hampton
+
+	* [r13019] trunk/ChangeLog, trunk/src/app-utils/Makefile.am,
+	  trunk/src/app-utils/gnc-err-popup.c,
+	  trunk/src/app-utils/gnc-err-popup.h,
+	  trunk/src/app-utils/option-util.c,
+	  trunk/src/business/business-gnome/gnc-plugin-business.c,
+	  trunk/src/business/business-ledger/gncEntryLedger.c,
+	  trunk/src/business/business-ledger/gncEntryLedgerControl.c,
+	  trunk/src/gnc-ui.h, trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/dialog-utils.h,
+	  trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/gnome-utils/gnc-file.h,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome-utils/gnc-gui-query.c,
+	  trunk/src/gnome-utils/gnc-gui-query.h,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gncmod-gnome-utils.c,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome/dialog-chart-export.c,
+	  trunk/src/gnome/dialog-commodities.c,
+	  trunk/src/gnome/dialog-price-edit-db.c,
+	  trunk/src/gnome/gnc-split-reg.c,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas.in,
+	  trunk/src/import-export/hbci/dialog-pass.c,
+	  trunk/src/register/ledger-core/split-register-control.c,
+	  trunk/src/register/ledger-core/split-register-model.c,
+	  trunk/src/register/ledger-core/split-register.c: HIG rework.
+	  Remove newlines from dialog message strings. Give some dialogs
+	  more descriptive button labels. Clean up the code around the
+	  file save query dialog.
+
+2006-01-29 14:48  jsled
+
+	* [r13018] trunk/src/report/report-gnome/report-gnome.scm: remove
+	  debugging leftovers.
+
+2006-01-29 11:12  cstim
+
+	* [r13017] trunk/Makefile.am: Distribute also some of the older
+	  ChangeLogs
+
+2006-01-29 00:19  jsled
+
+	* [r13016] trunk/ChangeLog,
+	  trunk/src/report/report-system/html-style-sheet.scm: Maintain
+	  the html-document title while rendering so the progress bar is
+	  setup with the right name. Bug#327650.
+
+2006-01-29 00:18  jsled
+
+	* [r13015] trunk/src/gnome-utils/gnc-html.c: Pointer to the
+	  pathetic gtkhtml docs. :p
+
+2006-01-28 23:31  jsled
+
+	* [r13014] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/dialog-sxsincelast.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/gnc-plugin-page-register.h,
+	  trunk/src/gnome/gnc-split-reg.c,
+	  trunk/src/gnome/gnc-split-reg.h: Remove gnc-split-reg "create"
+	  and "capabilities" flags and dead code. 2006-01-28 Joshua Sled
+	  <jsled at asynchronous.org> * src/gnome/gnc-split-reg.c: Remove a
+	  lot of dead code. (gnc_split_reg_new): Remove create-flags and
+	  disallowed-cap[abilitie]s; add simple "read-only" flag. *
+	  src/gnome/gnc-plugin-page-register.c
+	  (gnc_plugin_page_register_actions): remove stock-missing icon
+	  for "edit exchange rate" action. (GncPluginPageRegisterPrivate,
+	  gnc_plugin_page_register_init)
+	  (gnc_plugin_page_register_create_widget): Replace "disallow
+	  cap[abilitie]s" with specific read-only flag. *
+	  src/gnome/dialog-scheduledxaction.c
+	  (schedXact_editor_create_ledger): *
+	  src/gnome/dialog-sxsincelast.c (create_to_create_ledger)
+	  (create_autoCreate_ledger, create_created_ledger): Set read-only
+	  flag on register.
+
+2006-01-28 23:22  hampton
+
+	* [r13013] trunk/ChangeLog, trunk/src/gnome-utils/print-session.h:
+	  Add an include so gnucash compiles on gnome2.13 again.
+
+2006-01-28 22:42  jsled
+
+	* [r13012] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c: Be a bit more
+	  defensive about the plugin page's window being a GncWindow, not
+	  necessarily a GtkWindow. 2006-01-28 Joshua Sled
+	  <jsled at asynchronous.org> * src/gnome/gnc-plugin-page-register.c
+	  (gnc_plugin_page_register_cmd_reverse_transaction)
+	  (gnc_plugin_page_register_cmd_view_sort_by)
+	  (gnc_plugin_page_register_cmd_view_filter_by)
+	  (gnc_plugin_page_register_cmd_transfer)
+	  (gnc_plugin_page_register_cmd_reconcile)
+	  (gnc_plugin_page_register_cmd_jump): Treat
+	  GNC_PLUGIN_PAGE(page)->window as a GncWindow, not necessarily
+	  and immediately a GtkWindow; fixes issues with GTK cast warnings
+	  on GncEmbeddedWindow usages of the register.
+
+2006-01-28 21:44  jsled
+
+	* [r13011] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-scheduledxaction.c,
+	  trunk/src/gnome/dialog-sxsincelast.c,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/gnome/ui/Makefile.am,
+	  trunk/src/gnome/ui/gnc-plugin-page-sxregister-ui.xml,
+	  trunk/src/gnome/ui/gnc-sxed-to-create-window-ui.xml,
+	  trunk/src/gnome/ui/gnc-sxed-window-ui-full.xml,
+	  trunk/src/gnome/ui/gnc-sxed-window-ui.xml: Fix UI of SX-related
+	  registers. 2006-01-28 Joshua Sled <jsled at asynchronous.org> *
+	  src/gnome/ui/gnc-sxed-window-ui-full.xml: Add. *
+	  src/gnome/dialog-scheduledxaction.c (gnc_sxed_menu_entries)
+	  (schedXact_editor_create_ledger) *
+	  src/gnome/dialog-sxsincelast.c (create_autoCreate_ledger)
+	  (create_created_ledger, create_to_create_ledger)
+	  (gnc_sxsld_menu_entries): Setup SX-related registers to only
+	  display and allow relevant register functionality. Bug#327642. *
+	  src/gnome/gnc-plugin-page-register.c
+	  (gnc_plugin_page_register_actions): Change stock icons for
+	  BlankTransaction and ScheduleTransaction Actions.
+
+2006-01-28 20:30  chris
+
+	* [r13010] trunk/src/gnome/gnc-plugin-page-register.c:
+	  Automatically close registers whose accounts are deleted. We use
+	  the component manager to watch for the destruction of the
+	  account. Previously, having an account's register open while
+	  deleting it would just crash.
+
+2006-01-28 19:54  cstim
+
+	* [r13009] trunk, trunk/src/report/report-system: update svn:ignore
+
+2006-01-28 19:07  cstim
+
+	* [r13008] trunk/po/es.po: Fix shortcut in spanish menu entries;
+	  fixes bug 167626
+
+2006-01-28 19:04  cstim
+
+	* [r13007] trunk/ChangeLog.2003, trunk/ChangeLog.2004: Fix old
+	  Changelogs from HEAD/gnome2 parallelity; entries are now in
+	  correct year
+
+2006-01-28 19:02  cstim
+
+	* [r13006] trunk/po/de.po: Updated German translation
+
+2006-01-28 18:58  cstim
+
+	* [r13005] trunk/src/engine/test/Makefile.am: Use rule clean-local
+	  for extra cleaning rules instead of default rule clean.
+
+2006-01-28 18:57  cstim
+
+	* [r13004] trunk/src/bin/gnucash-bin.c: I18n string cleanup; add
+	  explanations for translators
+
+2006-01-28 18:57  jsled
+
+	* [r13003] trunk/ChangeLog, trunk/configure.in,
+	  trunk/lib/goffice-0.0.4/goffice/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/gsf-gnome/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/gsf/Makefile.am: Change libgsf/goffice
+	  libraries and paths to be gnucash-specific.
+
+2006-01-28 18:45  jsled
+
+	* [r13002] trunk/ChangeLog,
+	  trunk/src/gnome/glade/sched-xact.glade: Bugs 327775, 327641:
+	  minor scheduled-transaction fixes. 2006-01-25 Joshua Sled
+	  <jsled at asynchronous.org> * src/gnome/glade/sched-xact.glade:
+	  Bug#327775: consistency in case of dialog title. Bug#327641: fix
+	  glade-spec'ed response-codes for OK/Cancel buttons, thus letting
+	  logic work again.
+
+2006-01-28 18:00  cstim
+
+	* [r13001] trunk/ChangeLog, trunk/configure.in: Revert r12998 --
+	  we only require aqbanking-1.0.0
+
+2006-01-28 17:23  warlord
+
+	* [r13000] trunk/ChangeLog,
+	  trunk/src/business/business-core/file/gnc-owner-xml-v2.c:
+	  Properly save the guid of owners (partial fix for 328790). *
+	  src/business/business-core/file/gnc-owner-xml-v2.c: GncOwner is
+	  not a QOF_INSTANCE. Get the GUID correctly. Fixes part of
+	  #328790 (but not all of it).
+
+2006-01-28 17:17  chris
+
+	* [r12999] trunk/lib/libqof/qof/qoflog.c: Re-enable logging for
+	  GnuCash modules that haven't explicitly set their own levels.
+
+2006-01-28 12:30  cstim
+
+	* [r12998] trunk/ChangeLog, trunk/configure.in: Require
+	  aqbanking-1.3.0 for HBCI.
+
+2006-01-28 06:05  chris
+
+	* [r12997] trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c: Remove obsolete code
+	  to handle account-types filtering for budgets. Really remove
+	  treeviewcolumns when we're done with them.
+
+2006-01-28 05:01  hampton
+
+	* [r12996] trunk/ChangeLog, trunk/src/gnome/dialog-print-check.c,
+	  trunk/src/gnome/glade/print.glade,
+	  trunk/src/scm/printing/print-check.scm: Add translation and
+	  rotation to the custom printing page. Modify the code so that
+	  only the custom widgets that have an effect for the current
+	  setting are sensitive.
+
+2006-01-28 04:14  chris
+
+	* [r12995] trunk/src/report/standard-reports/budget.scm: Better
+	  default account selection when opening the budget report.
+
+2006-01-28 02:23  chris
+
+	* [r12994] trunk/gnucash.m4: Remove traces of old
+	  gnucash-run-script from gnucash.m4.
+
+2006-01-27 23:03  chris
+
+	* [r12993] trunk/src/report/report-gnome/gnc-plugin-page-report.c,
+	  trunk/src/report/report-system/gnc-report.c,
+	  trunk/src/report/report-system/gnc-report.h,
+	  trunk/src/report/report-system/gw-report-system-spec.scm,
+	  trunk/src/report/report-system/report.scm: Move generation of
+	  report serial ids from guile to C. Try to gracefully handle more
+	  errors during report loading.
+
+2006-01-27 21:49  warlord
+
+	* [r12992] trunk/ChangeLog, trunk/Makefile.am, trunk/configure.in,
+	  trunk/lib/Makefile.am, trunk/lib/goffice-0.0.4/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/tests/Makefile.am,
+	  trunk/src/bin/Makefile.am,
+	  trunk/src/import-export/test/Makefile.am,
+	  trunk/src/report/report-system/Makefile.am: Get "make distcheck"
+	  to work.... * src/import-export/test/Makefile.am: Added src/scm
+	  directory to test environment * lib/goffice-0.0.4/Makefile.am:
+	  Don't install libgoffice-1.pc, but distribute it *
+	  lib/libgsf-1.12.3/tests/Makefile.am: Link to the proper location
+	  of libgsf-1.la * lib/libgsf-1.12.3/Makefile.am: Don't install
+	  the gsf .pc files, but distribute them. * lib/Makefile.am: Use
+	  DIST_SUBDIRS to distribute qof, gsf, and goffice * configure.in:
+	  fix QOF_LIBS to use builddir, not srcdir * Makefile.am: add
+	  po/POTFILES.in to the dist link gsf into the srcdir, not the
+	  builddir * src/report/report-system/Makefile.am: make sure we
+	  distribute gw-report-system.h * src/bin/Makefile.am: clean
+	  i18n.h in distclean
+
+2006-01-27 18:09  warlord
+
+	* [r12991] trunk/po/ca.po, trunk/po/cs.po, trunk/po/da.po,
+	  trunk/po/de.po, trunk/po/el.po, trunk/po/en_GB.po,
+	  trunk/po/es.po, trunk/po/es_NI.po, trunk/po/eu.po,
+	  trunk/po/fr.po, trunk/po/hu.po, trunk/po/it.po, trunk/po/ja.po,
+	  trunk/po/nb.po, trunk/po/ne.po, trunk/po/nl.po, trunk/po/pl.po,
+	  trunk/po/pt.po, trunk/po/pt_BR.po, trunk/po/ru.po,
+	  trunk/po/rw.po, trunk/po/sk.po, trunk/po/sv.po, trunk/po/ta.po,
+	  trunk/po/tr.po, trunk/po/uk.po, trunk/po/zh_CN.po,
+	  trunk/po/zh_TW.po: Commit the msgmerge to reduce the time a
+	  clean-checkout "distcheck" takes.
+
+2006-01-27 07:03  hampton
+
+	* [r12990] trunk/ChangeLog, trunk/configure.in: Default the
+	  --enable-compile-warnings argument to yes.
+
+2006-01-27 06:15  chris
+
+	* [r12989] trunk/src/report/report-gnome/window-report.c,
+	  trunk/src/report/report-system/report.scm: Check for invalid
+	  options tables when loading reports. Also, plug memory leak in
+	  my last commit.
+
+2006-01-27 05:27  chris
+
+	* [r12988] trunk/src/report/report-gnome/gnc-plugin-page-report.c,
+	  trunk/src/report/report-gnome/window-report.c: Avoid showing any
+	  invalid reports.
+
+2006-01-27 05:13  hampton
+
+	* [r12987] trunk/ChangeLog, trunk/src/gnome/dialog-tax-info.c,
+	  trunk/src/gnome/glade/reconcile.glade,
+	  trunk/src/gnome/glade/tax.glade,
+	  trunk/src/gnome/window-reconcile.c: More HIG changes.
+
+2006-01-27 05:03  hampton
+
+	* [r12986] trunk/ChangeLog, trunk/src/gnome/top-level.c,
+	  trunk/src/report/report-gnome/window-report.c,
+	  trunk/src/report/report-gnome/window-report.h,
+	  trunk/src/report/report-system/gnc-report.c,
+	  trunk/src/report/report-system/gnc-report.h: Fix compilation
+	  warnings.
+
+2006-01-27 04:38  chris
+
+	* [r12985] trunk/src/gnome-utils/gnc-main-window.c: Avoid saving
+	  invalid pages.
+
+2006-01-27 02:12  chris
+
+	* [r12984] trunk/src/gnome/top-level.c,
+	  trunk/src/report/report-gnome/dialog-column-view.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c,
+	  trunk/src/report/report-gnome/window-report.c,
+	  trunk/src/report/report-gnome/window-report.h,
+	  trunk/src/report/report-system/Makefile.am,
+	  trunk/src/report/report-system/gnc-report.c,
+	  trunk/src/report/report-system/gnc-report.h,
+	  trunk/src/report/report-system/gw-report-system-spec.scm,
+	  trunk/src/report/report-system/html-style-sheet.scm,
+	  trunk/src/report/report-system/report-system.scm,
+	  trunk/src/report/report-system/report.scm,
+	  trunk/src/report/utility-reports/view-column.scm,
+	  trunk/src/report/utility-reports/welcome-to-gnucash.scm,
+	  trunk/src/scm/main-window.scm, trunk/src/scm/main.scm: Move the
+	  global report hash-table from guile to C. Move the
+	  book-open/close hooks from guile to C. There are several places
+	  where we do report-management from C already. Those places no
+	  longer use libguile to access the hash-table of reports - they
+	  can just call C functions. For now, there's still some
+	  report-management happening in guile so guile can access the
+	  global state through g-wrapped functions. Eventually, all
+	  report-management should be in C and guile can just provide
+	  single reports one-at-a-time.
+
+2006-01-26 19:01  warlord
+
+	* [r12983] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  fail if we find libgsf >= 1.12.2 but not libgsf-gnome. This is
+	  instead of configure succeeding and then failing the build later.
+
+2006-01-26 17:38  chris
+
+	* [r12982] trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome/top-level.c: Register book open/close callbacks
+	  during gui init. Split handling of persistent application state
+	  into book-level data and window-level data.
+
+2006-01-26 14:25  hampton
+
+	* [r12981] trunk/src/gnome-utils/glade/Makefile.am,
+	  trunk/src/gnome-utils/glade/totd.glade,
+	  trunk/src/gnome/glade/Makefile.am,
+	  trunk/src/gnome/glade/totd.glade: Move the totd glade file to
+	  the gnome-utils subdirectory too.
+
+2006-01-26 04:02  chris
+
+	* [r12980] trunk/src/bin/Makefile.am,
+	  trunk/src/bin/overrides/Makefile.am,
+	  trunk/src/bin/overrides/gnucash-run-script,
+	  trunk/src/bin/test/Makefile.am,
+	  trunk/src/bin/test/test-run-script, trunk/src/scm/main.scm:
+	  Remove the obsolete gnucash-run-script and its test. Also, the
+	  (gnucash main) module no longer depends on (gnucash
+	  price-quotes).
+
+2006-01-26 03:07  chris
+
+	* [r12979] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/dialog-totd.c,
+	  trunk/src/gnome-utils/dialog-totd.h,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome/Makefile.am, trunk/src/gnome/dialog-totd.c,
+	  trunk/src/gnome/dialog-totd.h, trunk/src/gnome/top-level.c: Move
+	  dialog-totd from gnome to gnome-utils. Do low-level application
+	  initialization even before booting guile. This means the splash
+	  and totd come up almost instantly.
+
+2006-01-25 04:54  chris
+
+	* [r12978] trunk/src/bin/gnucash-bin.c, trunk/src/scm/main.scm,
+	  trunk/src/scm/price-quotes.scm: Install price quote sources
+	  without calling main.scm. This makes the startup sequence a
+	  little clearer.
+
+2006-01-25 04:32  chris
+
+	* [r12977] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/report/report-gnome/report-gnome.scm,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/doc.scm,
+	  trunk/src/scm/main.scm: Re-enable report menu setup. The report
+	  menu setup is pretty fragile - it has to be done in a pretty
+	  specific order, so I pulled it out of (gnc:main) and call it
+	  independently. Also, move more bits of gnc:main into the modules
+	  where the bits are used.
+
+2006-01-25 02:06  chris
+
+	* [r12976] trunk/src/app-utils/app-utils.scm,
+	  trunk/src/core-utils/gw-core-utils-spec.scm,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/gnome-utils/gnc-menu-extensions.scm,
+	  trunk/src/gnome-utils/gnome-utils.scm,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/main.scm: Export
+	  debugging state from C to guile. Remove obsolete guile command
+	  line options. Remove guile setting of add-extension hooks that
+	  were apparently obsoleted by C code a while ago. Remove guile's
+	  access to application lifecycle function hooks.
+
+2006-01-25 01:36  chris
+
+	* [r12975] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/business/business-gnome/business-gnome.scm,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.h,
+	  trunk/src/gnome-utils/gnc-splash.c,
+	  trunk/src/gnome-utils/gnc-splash.h,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome/gw-gnc-spec.scm, trunk/src/gnome/top-level.c,
+	  trunk/src/gnome/top-level.h, trunk/src/scm/command-line.scm,
+	  trunk/src/scm/main.scm, trunk/src/scm/price-quotes.scm:
+	  Consolidate application lifecycle functions into
+	  src/gnome-utils, leaving only the highest level of gui
+	  initialization in /gnome/top-level.c Process --loglevel
+	  command-line option from C. Move the running of the startup hook
+	  from guile to C. Distrubute bits of scheme from main.scm to the
+	  modules they're used in. Remove more obsoleted scheme.
+
+2006-01-25 01:21  chris
+
+	* [r12974] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/core-utils/gnc-main.c,
+	  trunk/src/core-utils/gnc-main.h,
+	  trunk/src/gnome-utils/gnc-main-window.c: Process --debug
+	  command-line option from C instead of guile. This re-enables the
+	  debugging "extensions" menu.
+
+2006-01-24 21:26  cstim
+
+	* [r12973] trunk/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  trunk/src/import-export/hbci/gnc-hbci-gettrans.h,
+	  trunk/src/import-export/mt940/Makefile.am,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c: More proposed
+	  work on mt940 importer. More refactoring of HBCI functions.
+
+2006-01-24 20:43  cstim
+
+	* [r12972] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  trunk/src/import-export/hbci/gnc-hbci-gettrans.h,
+	  trunk/src/import-export/hbci/gnc-hbci-transfer.c: Factor out
+	  importing functions that might be useful for mt940 importer.
+	  2006-01-24 Christian Stimming <stimming at tuhh.de> *
+	  src/import-export/hbci/gnc-hbci-gettrans.h: Factor out importing
+	  functions that might be useful for mt940 importer. *
+	  src/import-export/hbci/gnc-hbci-transfer.c: Fix wrong amount
+	  sign.
+
+2006-01-24 01:20  warlord
+
+	* [r12971] trunk/ChangeLog, trunk/src/engine/test/Makefile.am: *
+	  src/engine/test/Makefile.am: add explicit libdep on
+	  libcore-utils.la
+
+2006-01-23 21:26  cstim
+
+	* [r12968]
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in:
+	  fix typos in strings
+
+2006-01-23 21:25  chris
+
+	* [r12967] trunk/ChangeLog: ChangeLog entries copied from 'svn log
+	  -v'
+
+2006-01-23 21:22  cstim
+
+	* [r12966] trunk/po/de.po: Improved German translation. 3370 out
+	  of 3589 done.
+
+2006-01-23 19:33  codehelp
+
+	* [r12965] trunk/src/gnome/druid-hierarchy.c: Expand on the error
+	  message
+
+2006-01-23 19:29  chris
+
+	* [r12964] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c:
+	  Avoid GUI initialization durring --add-price-quotes, fixes
+	  #327670 BTW, it turns out that we don't need to call gtk_init().
+	  It's called during the LIBGNOMEUI_MODULE initializtion from
+	  gnome_program_init().
+
+2006-01-23 19:01  codehelp
+
+	* [r12963] trunk/configure.in: Increase QOF dependency to the next
+	  release to ensure compatibility.
+
+2006-01-23 19:00  codehelp
+
+	* [r12962] trunk/src/app-utils/gnc-account-merge.c: Expand on the
+	  error message
+	* [r12961] trunk/ChangeLog, trunk/src/gnome/druid-merge.c,
+	  trunk/src/gnome/druid-merge.h,
+	  trunk/src/gnome/glade/merge.glade: Fix QSF import and merge,
+	  closes [Bug 327640]. r12961.
+
+2006-01-23 18:59  codehelp
+
+	* [r12960] trunk/src/gnome/glade/chart-export.glade: glade-fixup
+	  change
+	* [r12959] trunk/src/engine/Transaction.c: Let QOF backends work
+	  with splits without checking for the parent Trans
+
+2006-01-23 17:38  chris
+
+	* [r12956] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome/Makefile.am, trunk/src/gnome/gw-gnc-spec.scm,
+	  trunk/src/gnome/top-level.c, trunk/src/gnome/top-level.h,
+	  trunk/src/scm/Makefile.am, trunk/src/scm/build-config.scm.in,
+	  trunk/src/scm/main-window.scm, trunk/src/scm/main.scm: Major
+	  step in extraction of application startup from guile. Details:
+	  Remove the last bits of libguile from top-level.[ch]. Change the
+	  gui initialization funtions so they can be called from C. Drop
+	  some gwrappers for gui initialization functions. Process the
+	  --nofile and filename command-line options from C. Drastic
+	  simpilification of main.scm. Initialize the gui and enter the
+	  gtk event-loop from C. Even though there's some more clean-up to
+	  do, this patch does mark a certain milestone: A developer
+	  seeking to understand and/or modify GnuCash's startup process
+	  can now essentially ignore the guile portion. Most parts of our
+	  startup now look pretty typical for a gnome-2 app. The parts
+	  that remain firmly in guile are initialization of the report
+	  menus and the installation of price-quote sources. Caveat: We
+	  have multiple mechanisms for handling the filename argument
+	  string -- some in guile and some in C. The C-side mechanisms (in
+	  engine/gnc-filepath-utils.c) seem a little nicer than the guile
+	  ones (in main.scm). They have slightly different behavior (e.g.
+	  which paths they'll search for data files.) They both handle
+	  URIs and making absolute paths out of relative ones. This patch
+	  switches from using the guile functions to the C function. I've
+	  tested that the common cases are handled the same way, but it
+	  wouldn't surprise me if some corner-cases are not.
+
+2006-01-23 14:30  codehelp
+
+	* [r12955] trunk/ChangeLog,
+	  trunk/lib/libqof/backend/file/qsf-backend.c: bug fix: prevent
+	  bad time values from being passed to entity - already in QOF CVS
+
+2006-01-23 14:24  codehelp
+
+	* [r12954] trunk/lib/libqof/qof/qof_book_merge.c,
+	  trunk/lib/libqof/qof/qof_book_merge.h: bug fix: book merge
+	  handling of QOF_TYPE_CHAR - already in QOF CVS
+
+2006-01-23 06:38  hampton
+
+	* [r12953] trunk/src/business/business-core/gncOwner.c,
+	  trunk/src/business/business-core/gncOwner.h,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-invoice.h,
+	  trunk/src/business/business-gnome/gnc-plugin-page-invoice.c,
+	  trunk/src/business/business-gnome/gnc-plugin-page-invoice.h,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/core-utils/gnc-gconf-utils.c,
+	  trunk/src/core-utils/gnc-gconf-utils.h,
+	  trunk/src/engine/Transaction.c,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.h,
+	  trunk/src/gnome/dialog-fincalc.c,
+	  trunk/src/gnome/dialog-price-editor.c,
+	  trunk/src/gnome/dialog-totd.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.h,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.h,
+	  trunk/src/import-export/hbci/gnc-hbci-transfer.c,
+	  trunk/src/register/register-gnome/combocell-gnome.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c:
+	  Add/update copyright on files modified since the start of the
+	  year.
+
+2006-01-23 05:53  hampton
+
+	* [r12952] trunk/ChangeLog, trunk/src/gnome/dialog-chart-export.c,
+	  trunk/src/gnome/glade/chart-export.glade: More HIG changes.
+
+2006-01-23 05:42  hampton
+
+	* [r12951] trunk/ChangeLog, trunk/src/gnome-utils/gnc-file.c: Add
+	  an icon to the export button in the generic filename dialog.
+
+2006-01-23 04:36  hampton
+
+	* [r12950] trunk/ChangeLog,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome/dialog-price-edit-db.c,
+	  trunk/src/gnome/dialog-price-editor.c,
+	  trunk/src/gnome/glade/price.glade,
+	  trunk/src/gnome/glade/progress.glade: More HIG changes.
+
+2006-01-23 04:34  hampton
+
+	* [r12949] trunk/ChangeLog, trunk/src/gnome/dialog-print-check.c,
+	  trunk/src/gnome/dialog-print-check.h,
+	  trunk/src/gnome/glade/print.glade,
+	  trunk/src/gnome/schemas/Makefile.am,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_common.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in,
+	  trunk/src/scm/printing/print-check.scm: Overhaul the print check
+	  dialog. Make HIG changes, and make the dialog remember its state
+	  across invocations (including all the custom values). Fix a
+	  crash when canceling printing.
+
+2006-01-23 03:56  chris
+
+	* [r12948] trunk/src/scm/main.scm: Remove "batch-mode" processing
+	  from main.scm. It's no longer needed.
+
+2006-01-23 03:43  chris
+
+	* [r12947] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/main.scm: Remove
+	  --devel option, which aparently doesn't do anything. Also remove
+	  now unused guile portion of --add-price-quote option.
+
+2006-01-23 03:26  chris
+
+	* [r12946] trunk/src/bin/gnucash-bin.c, trunk/src/scm/main.scm,
+	  trunk/src/scm/price-quotes.scm: Process the --add-price-quotes
+	  command-line option from C. This is done by booting guile with a
+	  custom inner_main. Much of the work is still handled by
+	  price-quotes.scm, which is now a true stand-alone guile module
+	  without the circular dependency on the (gnucash main) module.
+	  One caveat: Since the initialization of guile-side debugging
+	  variables is in main.scm, and since main.scm is no longer
+	  executed when running --add-price-quotes, the guile code that
+	  runs during --add-price-quote isn't affected by the --debug
+	  option. A work-around is to use the GNC_DEBUG environment
+	  variable: $ GNC_DEBUG=yes gnucash --add-price-quote myfile In
+	  the longer term, we'll either move the debugging aids to a
+	  common place where it can be used by both main.scm and
+	  price-quotes.scm, or we'll get the debugging state from the
+	  C-side via gwrap.
+
+2006-01-23 03:12  chris
+
+	* [r12945] trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.h,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm: Introduced
+	  gwrapped gnc_gnome_locate_data_file().= This was supposed to go
+	  with r12942.
+
+2006-01-23 00:47  chris
+
+	* [r12944] trunk/src/bin/gnucash-bin.c: Process gnome command-line
+	  arguments after our own, so we can provide our own AUTOHELP.
+
+2006-01-23 00:46  chris
+
+	* [r12943] trunk/src/scm/command-line.scm, trunk/src/scm/main.scm,
+	  trunk/src/scm/price-quotes.scm: Remove processing of share-path
+	  from guile. This is now handled by Gnome's
+	  gnome_program_locate_file() function.
+
+2006-01-22 23:12  chris
+
+	* [r12942] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.h,
+	  trunk/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  trunk/src/gnome/top-level.c: Initialize Gnome libraries before
+	  booting guile.
+
+2006-01-22 18:57  hampton
+
+	* [r12941] trunk/src/gnome/glade/register.glade: Clean the file of
+	  post gtk2.4 properties.
+
+2006-01-22 18:56  hampton
+
+	* [r12940] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-account.c,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome-utils/glade/exchange-dialog.glade,
+	  trunk/src/gnome/dialog-totd.c,
+	  trunk/src/gnome/druid-stock-split.c,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/glade/budget.glade,
+	  trunk/src/gnome/glade/register.glade,
+	  trunk/src/gnome/glade/stocks.glade,
+	  trunk/src/gnome/glade/totd.glade,
+	  trunk/src/register/ledger-core/dialog-dup-trans.c: More HIG
+	  changes.
+
+2006-01-22 18:54  hampton
+
+	* [r12939] trunk/src/gnome-utils/gnc-date-edit.c,
+	  trunk/src/gnome-utils/gnc-date-edit.h,
+	  trunk/src/gnome-utils/gnc-general-select.c,
+	  trunk/src/gnome-utils/gnc-general-select.h: Add support for
+	  setting these widgets as the target of a GtkLabel access key.
+
+2006-01-22 07:57  hampton
+
+	* [r12931] trunk/src/gnome/glade/fincalc.glade: Clean the file of
+	  post gtk2.4 properties.
+
+2006-01-22 03:50  hampton
+
+	* [r12930] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-amount-edit.c,
+	  trunk/src/gnome/dialog-fincalc.c,
+	  trunk/src/gnome/glade/fincalc.glade: Overhaul the financial
+	  calculator dialog. Comments on the new layout are welcome.
+
+2006-01-22 00:32  warlord
+
+	* [r12929] trunk/ChangeLog, trunk/src/bin/test/Makefile.am: Need
+	  to add a PATH for the tests to succeed.
+
+2006-01-22 00:27  warlord
+
+	* [r12928] trunk/ChangeLog, trunk/doc/Makefile.am,
+	  trunk/lib/libqof/qof/gnc-date.c,
+	  trunk/lib/libqof/qof/gnc-engine-util.c,
+	  trunk/lib/libqof/qof/gnc-engine-util.h,
+	  trunk/lib/libqof/qof/guid.c, trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h,
+	  trunk/src/backend/file/io-example-account.c,
+	  trunk/src/backend/file/sixtp-utils.c,
+	  trunk/src/backend/file/sixtp.c,
+	  trunk/src/calculation/expression_parser.c,
+	  trunk/src/gnome-utils/gnc-date-edit.c,
+	  trunk/src/gnome-utils/gnc-menu-extensions.c: Thomas Klausner's
+	  NetBSD patch.
+
+2006-01-21 21:23  warlord
+
+	* [r12927] trunk/src/app-utils/app-utils.scm: And don't forget to
+	  export the API.
+
+2006-01-21 21:20  warlord
+
+	* [r12926] trunk/ChangeLog, trunk/src/app-utils/prefs.scm: Replace
+	  missing API for config-file loading. * src/app-utils/prefs.scm:
+	  replace an API needed by old scheme config files. It was removed
+	  in r11565. Replace it now.
+
+2006-01-21 19:57  warlord
+
+	* [r12925] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c: *
+	  src/bin/gnucash-bin.c: update splash screen while loading
+	  modules. Granted, this has no effect because the splash screen
+	  isn't /UP/ when we're loading the modules. But still, once we
+	  initialize the gnome application earlier this will let us update
+	  the splash screen.
+
+2006-01-21 18:10  hampton
+
+	* [r12924] trunk, trunk/src/business/business-gnome/schemas,
+	  trunk/src/gnome-utils/schemas, trunk/src/gnome/schemas,
+	  trunk/src/import-export/hbci/schemas,
+	  trunk/src/import-export/schemas: Update ignore properties.
+
+2006-01-21 17:56  hampton
+
+	* [r12923] trunk/ChangeLog, trunk/configure.in,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/commodity.glade,
+	  trunk/src/gnome-utils/dialog-query-list.glade,
+	  trunk/src/gnome-utils/dialog-reset-warnings.glade,
+	  trunk/src/gnome-utils/druid-gconf-setup.glade,
+	  trunk/src/gnome-utils/druid-provider-multifile.glade,
+	  trunk/src/gnome-utils/exchange-dialog.glade,
+	  trunk/src/gnome-utils/glade,
+	  trunk/src/gnome-utils/glade/Makefile.am,
+	  trunk/src/gnome-utils/glade/commodity.glade,
+	  trunk/src/gnome-utils/glade/dialog-query-list.glade,
+	  trunk/src/gnome-utils/glade/dialog-reset-warnings.glade,
+	  trunk/src/gnome-utils/glade/druid-gconf-setup.glade,
+	  trunk/src/gnome-utils/glade/druid-provider-multifile.glade,
+	  trunk/src/gnome-utils/glade/exchange-dialog.glade,
+	  trunk/src/gnome-utils/glade/gnc-date-format.glade,
+	  trunk/src/gnome-utils/glade/gnc-gui-query.glade,
+	  trunk/src/gnome-utils/glade/preferences.glade,
+	  trunk/src/gnome-utils/glade/transfer.glade,
+	  trunk/src/gnome-utils/gnc-date-format.glade,
+	  trunk/src/gnome-utils/gnc-gui-query.glade,
+	  trunk/src/gnome-utils/preferences.glade,
+	  trunk/src/gnome-utils/transfer.glade: Move glade files to a new
+	  subdirectory.
+
+2006-01-21 16:49  hampton
+
+	* [r12922] trunk/ChangeLog, trunk/src/gnome-utils/commodity.glade,
+	  trunk/src/gnome-utils/dialog-commodity.c,
+	  trunk/src/gnome-utils/druid-provider-multifile.glade,
+	  trunk/src/gnome-utils/exchange-dialog.glade,
+	  trunk/src/gnome/glade/commodities.glade: HIG rework
+
+2006-01-21 16:35  hampton
+
+	* [r12921] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/glade/billterms.glade,
+	  trunk/src/business/dialog-tax-table/dialog-tax-table.c,
+	  trunk/src/business/dialog-tax-table/tax-tables.glade: HIG rework
+	  on a couple of dialogs.
+
+2006-01-21 16:30  hampton
+
+	* [r12920]
+	  trunk/src/import-export/binary-import/binary-import.glade,
+	  trunk/src/import-export/hbci/glade/hbci.glade,
+	  trunk/src/import-export/import-provider-format.glade,
+	  trunk/src/import-export/qif-import/qif.glade: Do some HIG
+	  cleanup. Remove extraneous newline characters from strings.
+
+2006-01-21 14:54  cstim
+
+	* [r12919]
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_prices.schemas.in:
+	  I18n cleanup; unify meaningless additional strings
+
+2006-01-21 14:50  cstim
+
+	* [r12918] trunk/po/de.po: Updated German translation; 3429 out of
+	  3574 done.
+
+2006-01-21 14:49  cstim
+
+	* [r12917]
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_commodities.schemas.in:
+	  I18n cleanup; unify meaningless additional strings
+
+2006-01-21 14:38  cstim
+
+	* [r12916] trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/import-export/hbci/druid-hbci-initial.c,
+	  trunk/src/import-export/hbci/gnc-hbci-getbalance.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c,
+	  trunk/src/import-export/hbci/hbci-interaction.c: String cleanup:
+	  remove unnecessary linefeeds. Remove old unused code.
+
+2006-01-21 14:19  cstim
+
+	* [r12915] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/glade/hbci.glade: Add field length
+	  limits again to avoid data loss on text entry.
+
+2006-01-21 04:45  hampton
+
+	* [r12914] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-item-list.c: Glib 2.9
+	  requires GdkEvents to be marked as BOXED instead of POINTER.
+	  Fixes #326056.
+
+2006-01-21 04:12  warlord
+
+	* [r12913] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/scm/Makefile.am: Continue to load config.auto even if
+	  we find config.user. * src/bin/gnucash-bin.c: Load config.auto
+	  AND config.user files. Load the .user file first, and then load
+	  the .auto. * src/scm/Makefile.am: paths.scm was removed.
+
+2006-01-21 03:59  chris
+
+	* [r12912] trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/report/report-system/html-style-sheet.scm,
+	  trunk/src/report/report-system/report.scm,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/main.scm,
+	  trunk/src/scm/path.scm: Guile-side clean-up for --namespace
+	  option. Also one bit of uncommitted code from gwrap change.
+
+2006-01-21 03:50  chris
+
+	* [r12911] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/core-utils/Makefile.am,
+	  trunk/src/core-utils/gnc-main.c,
+	  trunk/src/core-utils/gnc-main.h, trunk/src/engine/Makefile.am,
+	  trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h,
+	  trunk/src/engine/gw-engine-spec.scm,
+	  trunk/src/scm/price-quotes.scm: Process the --namespace
+	  command-line option from C, not guile.
+
+2006-01-20 14:52  chris
+
+	* [r12910] trunk/src/gnome-utils/test/Makefile.am: Fix linking for
+	  src/gnome-utils/test/
+
+2006-01-20 05:19  chris
+
+	* [r12909] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/main.scm,
+	  trunk/src/scm/path.scm: Move the loading of user and system
+	  config files from guile to C. Remove the "load config" command
+	  line options, since they weren't doing anything different than
+	  the default.
+
+2006-01-20 04:18  hampton
+
+	* [r12908] trunk/src/report/standard-reports/transaction.scm:
+	  Remove noise.
+
+2006-01-20 04:13  hampton
+
+	* [r12907] trunk/src/report/standard-reports/transaction.scm:
+	  Whitespace changes.
+
+2006-01-20 01:38  hampton
+
+	* [r12906] trunk/ChangeLog, trunk/src/app-utils/file-utils.c,
+	  trunk/src/app-utils/gnc-exp-parser.c,
+	  trunk/src/core-utils/gnc-gkeyfile-utils.c,
+	  trunk/src/core-utils/gnc-gkeyfile-utils.h: Provide better
+	  arguments for specifying what to do when a key_file doesn't
+	  exist.
+
+2006-01-20 01:02  hampton
+
+	* [r12905] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-main-window.c: Check for bogus window
+	  structures (i.e. empty) when reading/writing the state file.
+
+2006-01-20 00:38  hampton
+
+	* [r12904] trunk/src/app-utils/gw-app-utils-spec.scm: Remove
+	  unused functions.
+
+2006-01-19 19:34  warlord
+
+	* [r12903] trunk/src/gnome-utils/gnc-main-window.c: Fix a
+	  fencepost error. Fixes a crash trying to reload a file with
+	  empty windows. (there's still another bug which is that we
+	  should ignore empty windows)
+
+2006-01-19 18:43  chris
+
+	* [r12902] trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome/top-level.h: Remove "reverse_balance" fucntions
+	  from top-level.h. Add another #include for gnucash-bin.c
+
+2006-01-19 18:02  chris
+
+	* [r12900] trunk/AUTHORS, trunk/src/engine/Account.c,
+	  trunk/src/engine/Account.h,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.c,
+	  trunk/src/gnome-utils/gnc-tree-model-account-types.h: Filter out
+	  deprecated account types from the account types treemodel. Patch
+	  by Eskil Bylund <eskil.bylund at gmail.com>
+
+2006-01-19 17:58  chris
+
+	* [r12899] trunk/src/app-utils/gncmod-app-utils.c,
+	  trunk/src/bin/gnucash-bin.c: Add hooks just once in app_utils
+	  module init. Also don't try to load imaginary module.
+
+2006-01-19 17:15  warlord
+
+	* [r12896] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/Makefile.am,
+	  trunk/src/business/business-gnome/dialog-invoice.c: Get the code
+	  to compile against glib-2.4 again. *
+	  src/business/business-gnome/dialog-invoice.c: need to #include
+	  gkeyfile.h for glib24 systems *
+	  src/business/business-gnome/Makefile.am: link against glib26
+	  compatibility library.
+
+2006-01-19 14:16  chris
+
+	* [r12886] trunk/src/gnome/top-level.h: add missing #include
+
+2006-01-19 06:02  hampton
+
+	* [r12884] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-invoice.c: Delete the
+	  invoice page completely when closing it. Prevents a crash when
+	  trying to open a different data file is there is an invoice page
+	  in the window.
+
+2006-01-19 06:01  hampton
+
+	* [r12883] trunk/ChangeLog,
+	  trunk/src/gnome-search/gnc-general-search.c: Finish the job.
+	  Make sure this component isn't unregistered multiple times.
+
+2006-01-19 05:54  chris
+
+	* [r12882] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/scm/main.scm: Exit gnucash from C, not guile.
+
+2006-01-19 05:18  chris
+
+	* [r12881] trunk/src/app-utils/app-utils.scm,
+	  trunk/src/app-utils/gncmod-app-utils.c: move some app-util
+	  function hooks from guile to C
+
+2006-01-19 04:54  warlord
+
+	* [r12880] trunk/ChangeLog, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-splash.c: Print SVN version
+	  information more often. * src/bin/gnucash-bin.c: *
+	  src/gnome-utils/gnc-splash.c: Always print the SVN version and
+	  build date. Make "development version" based on GNUCASH_SVN *
+	  src/gnome-utils/Makefile.am: Define GNUCASH_SVN whenever the
+	  source is not a dist tarball.
+
+2006-01-19 04:29  chris
+
+	* [r12879] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/scm/command-line.scm, trunk/src/scm/main.scm: Move
+	  "unstable development version" message from guile to C. Remove
+	  crufty guile command-line options.
+
+2006-01-19 04:09  hampton
+
+	* [r12878] trunk/ChangeLog,
+	  trunk/src/business/business-core/gncOwner.c,
+	  trunk/src/business/business-core/gncOwner.h,
+	  trunk/src/business/business-gnome/dialog-invoice.c,
+	  trunk/src/business/business-gnome/dialog-invoice.h,
+	  trunk/src/business/business-gnome/gnc-plugin-page-invoice.c:
+	  Save/restore business invoice pages.
+
+2006-01-19 04:06  hampton
+
+	* [r12877] trunk/ChangeLog,
+	  trunk/src/app-utils/gnc-component-manager.c: Tweak a debugging
+	  statement.
+
+2006-01-19 04:04  hampton
+
+	* [r12876] trunk/ChangeLog,
+	  trunk/src/gnome-search/gnc-general-search.c: Unregister this
+	  component properly when destroying it.
+
+2006-01-19 04:02  hampton
+
+	* [r12875] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-query-list.c: The GtkObject destroy
+	  function can be called multiple times. Protect from
+	  unregistering the component multiple times.
+
+2006-01-19 02:34  chris
+
+	* [r12874] trunk/src/bin/gnucash-bin.c, trunk/src/scm/main.scm:
+	  dlopen() modules from C, instead of from guile
+
+2006-01-19 02:00  chris
+
+	* [r12873] trunk/src/scm/main.scm: The Parenthesis! My favorite
+	  punctuation.
+
+2006-01-19 01:33  chris
+
+	* [r12872] trunk/src/scm/command-line.scm, trunk/src/scm/main.scm,
+	  trunk/src/scm/path.scm: Minor scheme cleanup. Move one function
+	  from path.scm to command-line.scm. Remove processing of
+	  arguments now handled in C.
+
+2006-01-19 01:29  jsled
+
+	* [r12871] trunk/GNOME2_STATUS: Migrate content to bugzilla.
+	* [r12870] trunk/ChangeLog,
+	  trunk/src/app-utils/gnc-account-merge.c,
+	  trunk/src/app-utils/gnc-account-merge.h: C-style comment
+	  conventions; rename identifiers that are C++ keywords.
+
+2006-01-19 01:27  jsled
+
+	* [r12869] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Remove
+	  name-editing setup from account tree plugin page.
+
+2006-01-19 01:26  chris
+
+	* [r12868] trunk/src/bin/gnucash-bin.c: Use popt to automatically
+	  generate pretty --usage and --help.
+
+2006-01-19 00:41  hampton
+
+	* [r12864]
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in:
+	  Fix a string.
+
+2006-01-19 00:40  hampton
+
+	* [r12863] trunk/ChangeLog, trunk/make-gnucash-potfiles.in,
+	  trunk/src/business/business-gnome/schemas/Makefile.am,
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas,
+	  trunk/src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in,
+	  trunk/src/gnome-utils/schemas/Makefile.am,
+	  trunk/src/gnome-utils/schemas/apps_gnucash_history.schemas,
+	  trunk/src/gnome-utils/schemas/apps_gnucash_history.schemas.in,
+	  trunk/src/gnome/schemas/Makefile.am,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_commodities.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_commodities.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_common.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_common.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_prices.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_prices.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_reconcile.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_reconcile.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_totd.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_dialog_totd.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_general.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_warnings.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas.in,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_register.schemas,
+	  trunk/src/gnome/schemas/apps_gnucash_window_pages_register.schemas.in,
+	  trunk/src/import-export/hbci/schemas/Makefile.am,
+	  trunk/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas,
+	  trunk/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in,
+	  trunk/src/import-export/schemas/Makefile.am,
+	  trunk/src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas,
+	  trunk/src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in:
+	  Rework schema infrastructure so that all schema strings will
+	  appear for translation, and the translations will be
+	  incorporated back into the schema files. Fixed bugs #327507 and
+	  #327353.
+
+2006-01-18 18:01  jsled
+
+	* [r12841] trunk/ChangeLog,
+	  trunk/src/gnome/dialog-sx-from-trans.c: Propgate bi-weekly
+	  ui-frequency in transition from "schedule transaction" dialog to
+	  "Advanced..." (Scheduled Transaction Editor). 2006-01-18 Joshua
+	  Sled <jsled at asynchronous.org> * src/gnome/dialog-sx-from-trans.c
+	  (sxftd_update_fs): Propgate bi-weekly ui-frequency in transition
+	  from "schedule transaction" dialog to "Advanced..." (Scheduled
+	  Transaction Editor). Patch from Robert Zaleski
+	  <rzaleski81 at yahoo.com>.
+	  <http://bugzilla.gnome.org/show_bug.cgi?id=327547>.
+
+2006-01-18 15:57  warlord
+
+	* [r12840] trunk/src/bin/gnucash-bin.c: Get gnucash-bin to
+	  compile... - Need to #include "config.h" first. - Need to make
+	  gnucash_command_line static.
+
+2006-01-18 15:49  warlord
+
+	* [r12839] trunk/ChangeLog, trunk/src/Makefile.am,
+	  trunk/src/bin/Makefile.am: Fix the build so Chris' command-line
+	  processing works. * src/bin/Makefile.am: Fix some
+	  srcdir/builddir issues with #includes and libraries. *
+	  src/Makefile.am: Move 'bin' last so that it's built after
+	  gnome-utils so Chris' change works.
+
+2006-01-18 03:46  chris
+
+	* [r12838] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c:
+	  Catch --version argument before booting Guile. Also show svn
+	  revision info if binary was built from svn.
+
+2006-01-17 21:26  cstim
+
+	* [r12835] trunk/ChangeLog,
+	  trunk/src/import-export/mt940/gnc-mt940-import.c: Add initial
+	  work on upgrading the old non-compilable mt940-importer code by
+	  F. Steinel. Code still non-compilable, see
+	  http://bugzilla.gnome.org/show_bug.cgi?id=325170
+
+2006-01-17 17:56  codehelp
+
+	* [r12829] trunk/ChangeLog, trunk/src/engine/gnc-engine.c:
+	  Removing .la suffix on backend GModule name
+
+2006-01-17 14:24  codehelp
+
+	* [r12821] trunk/configure.in: allowing external QOF to work when
+	  specifically enabled for testing
+
+2006-01-17 11:14  codehelp
+
+	* [r12819] trunk/po/en_GB.po: Completing en_GB translation for
+	  svn. 3395 translated
+
+2006-01-17 02:28  chris
+
+	* [r12817] trunk/src/engine/test/test-lots.c: sane indenting
+
+2006-01-17 02:26  chris
+
+	* [r12816] trunk/src/bin/gnucash-bin.c, trunk/src/scm/main.scm:
+	  Pull the C inner_main into the environment of the guile (gnucash
+	  main) module. Strangely, symbols that are resolved during a
+	  dlopen() *before* calling scm_set_current_module() are not
+	  resolvable from guile code that is inside a module. In order for
+	  code in a guile module to see symbols from dlopen'ed libraries,
+	  they must be dlopen'ed *while* that guile module is current. I
+	  imagine this is because the process of changing the current
+	  guile module purposely hides all symbols in the current symbol
+	  table - to create an illusion of an empty table. Kinda
+	  interesting... kinda scary...
+
+2006-01-17 01:42  chris
+
+	* [r12815] trunk/src/bin/overrides/Makefile.am: Don't distribute
+	  non-existant 'gnucash'
+
+2006-01-16 20:30  jsled
+
+	* [r12374] trunk/ChangeLog, trunk/lib/libgsf-1.12.3/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/thumbnailer: Remove unused 'thumbnailer'
+	  directory.
+	* [r12373] trunk/ChangeLog,
+	  trunk/src/register/register-gnome/gnucash-sheet.c: Compatibility
+	  with gtk 2.8, as well, for selection of the auto-completed
+	  region.
+
+2006-01-16 20:30  chris
+
+	* [r12372] trunk/GNOME2_STATUS: update budget-related status
+
+2006-01-16 19:21  cstim
+
+	* [r12371] trunk/po/glossary/gnc-glossary.txt: Improve explanation
+	  of glossary
+
+2006-01-16 19:19  cstim
+
+	* [r12370] trunk/po/el.po: Updated Greek translation by Nikos
+	  Charonitakis
+
+2006-01-16 16:50  warlord
+
+	* [r12369] trunk/ChangeLog, trunk/configure.in: * configure.in: us
+	  AM_PATH_GWRAP properly. Exit configure on failure.
+
+2006-01-16 16:30  chris
+
+	* [r12368] trunk/src/gnc-module/gnc-module.c,
+	  trunk/src/gnc-module/gnc-module.h,
+	  trunk/src/gnc-module/gnc-module.scm,
+	  trunk/src/gnc-module/gw-gnc-module-spec.scm,
+	  trunk/src/gnc-module/test/test-load-c.c: Slight contraction of
+	  gnc-module API. Privatize structures that aren't used
+	  externally. Remove unused functions.
+
+2006-01-16 14:42  chris
+
+	* [r12367] trunk/src/business/business-core/test/test-customer.c:
+	  Register business objects before testing them.
+
+2006-01-16 14:24  chris
+
+	* [r12366] trunk/lib/libgsf-1.12.3/tests/test-cp-zip.c: Allow a
+	  libgsf test to pass even with glib 2.4.
+
+2006-01-16 05:30  chris
+
+	* [r12365] trunk/src/bin/test/Makefile.am: Remove unneeded testing
+	  environments.
+
+2006-01-16 05:22  chris
+
+	* [r12364] trunk/src/bin/test/Makefile.am,
+	  trunk/src/bin/test/fake-guile,
+	  trunk/src/bin/test/test-guile-env-override: Remove obsolete test
+	  for starting GnuCash with a different guile.
+
+2006-01-16 03:23  chris
+
+	* [r12363] trunk/src/bin/test/test-version: Fix
+	  src/bin/test/test-version for new gnucash executable.
+
+2006-01-16 02:43  chris
+
+	* [r12362] trunk/lib/libqof/backend/file/Makefile.am: Specify that
+	  LIBADD libraries are for libqof_backend_qsf.la. Solves:
+	  libqof-backend-qsf.so: undefined symbol: xmlNodeGetContent error
+	  during `make check'
+
+2006-01-16 00:24  warlord
+
+	* [r12361] trunk/ChangeLog, trunk/src/gnome/dialog-new-user.c: *
+	  src/gnome/dialog-new-user.c: some fixes to get file to compile.
+
+2006-01-15 23:08  jsled
+
+	* [r12360] trunk, trunk/intl-scm, trunk/lib, trunk/lib/glib26,
+	  trunk/lib/goffice-0.0.4, trunk/lib/goffice-0.0.4/goffice,
+	  trunk/lib/goffice-0.0.4/goffice/app,
+	  trunk/lib/goffice-0.0.4/goffice/cut-n-paste,
+	  trunk/lib/goffice-0.0.4/goffice/cut-n-paste/foocanvas,
+	  trunk/lib/goffice-0.0.4/goffice/cut-n-paste/pcre,
+	  trunk/lib/goffice-0.0.4/goffice/data,
+	  trunk/lib/goffice-0.0.4/goffice/drawing,
+	  trunk/lib/goffice-0.0.4/goffice/graph,
+	  trunk/lib/goffice-0.0.4/goffice/gtk,
+	  trunk/lib/goffice-0.0.4/goffice/ms-compat,
+	  trunk/lib/goffice-0.0.4/goffice/utils,
+	  trunk/lib/goffice-0.0.4/plugins,
+	  trunk/lib/goffice-0.0.4/plugins/plot_barcol,
+	  trunk/lib/goffice-0.0.4/plugins/plot_boxes,
+	  trunk/lib/goffice-0.0.4/plugins/plot_pie,
+	  trunk/lib/goffice-0.0.4/plugins/plot_radar,
+	  trunk/lib/goffice-0.0.4/plugins/plot_surface,
+	  trunk/lib/goffice-0.0.4/plugins/plot_xy,
+	  trunk/lib/goffice-0.0.4/plugins/reg_linear,
+	  trunk/lib/goffice-0.0.4/tests, trunk/lib/libc,
+	  trunk/lib/libgsf-1.12.3, trunk/lib/libgsf-1.12.3/gsf,
+	  trunk/lib/libgsf-1.12.3/gsf-gnome,
+	  trunk/lib/libgsf-1.12.3/gsf-win32,
+	  trunk/lib/libgsf-1.12.3/tests, trunk/lib/libqof,
+	  trunk/lib/libqof/backend, trunk/lib/libqof/backend/file,
+	  trunk/lib/libqof/qof, trunk/src, trunk/src/app-utils,
+	  trunk/src/app-utils/test, trunk/src/backend,
+	  trunk/src/backend/file, trunk/src/backend/file/test,
+	  trunk/src/bin, trunk/src/business,
+	  trunk/src/business/business-core,
+	  trunk/src/business/business-core/file,
+	  trunk/src/business/business-core/test,
+	  trunk/src/business/business-gnome,
+	  trunk/src/business/business-ledger,
+	  trunk/src/business/business-utils,
+	  trunk/src/business/dialog-tax-table, trunk/src/calculation,
+	  trunk/src/calculation/test, trunk/src/core-utils,
+	  trunk/src/engine, trunk/src/engine/test,
+	  trunk/src/engine/test-core, trunk/src/gnc-module,
+	  trunk/src/gnc-module/test, trunk/src/gnc-module/test/misc-mods,
+	  trunk/src/gnc-module/test/mod-bar,
+	  trunk/src/gnc-module/test/mod-baz,
+	  trunk/src/gnc-module/test/mod-foo, trunk/src/gnome,
+	  trunk/src/gnome-search, trunk/src/gnome-utils,
+	  trunk/src/gnome-utils/test, trunk/src/import-export,
+	  trunk/src/import-export/binary-import,
+	  trunk/src/import-export/binary-import/test,
+	  trunk/src/import-export/log-replay, trunk/src/import-export/qif,
+	  trunk/src/import-export/qif-import,
+	  trunk/src/import-export/qif-import/test,
+	  trunk/src/import-export/qif/test, trunk/src/import-export/test,
+	  trunk/src/network-utils, trunk/src/network-utils/test,
+	  trunk/src/register, trunk/src/register/ledger-core,
+	  trunk/src/register/ledger-core/test,
+	  trunk/src/register/register-core,
+	  trunk/src/register/register-core/test,
+	  trunk/src/register/register-gnome,
+	  trunk/src/register/register-gnome/test, trunk/src/report,
+	  trunk/src/report/locale-specific,
+	  trunk/src/report/locale-specific/us,
+	  trunk/src/report/locale-specific/us/test,
+	  trunk/src/report/report-gnome, trunk/src/report/report-system,
+	  trunk/src/report/report-system/test,
+	  trunk/src/report/standard-reports, trunk/src/report/stylesheets,
+	  trunk/src/report/utility-reports, trunk/src/tax,
+	  trunk/src/tax/us, trunk/src/tax/us/test, trunk/src/test-core:
+	  Add TAGS to svn:ignores.
+
+2006-01-15 23:07  jsled
+
+	* [r12359] trunk/ChangeLog: forgot ChangeLog for account-example
+	  changes.
+
+2006-01-15 23:05  jsled
+
+	* [r12358] trunk/GNOME2_STATUS,
+	  trunk/accounts/C/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/C/acctchrt_business.gnucash-xea,
+	  trunk/accounts/C/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/C/acctchrt_cdmoneymkt.gnucash-xea,
+	  trunk/accounts/C/acctchrt_checkbook.gnucash-xea,
+	  trunk/accounts/C/acctchrt_childcare.gnucash-xea,
+	  trunk/accounts/C/acctchrt_common.gnucash-xea,
+	  trunk/accounts/C/acctchrt_eduloan.gnucash-xea,
+	  trunk/accounts/C/acctchrt_fixedassets.gnucash-xea,
+	  trunk/accounts/C/acctchrt_full.gnucash-xea,
+	  trunk/accounts/C/acctchrt_homeloan.gnucash-xea,
+	  trunk/accounts/C/acctchrt_homeown.gnucash-xea,
+	  trunk/accounts/C/acctchrt_otherloan.gnucash-xea,
+	  trunk/accounts/C/acctchrt_renter.gnucash-xea,
+	  trunk/accounts/C/acctchrt_retiremt.gnucash-xea,
+	  trunk/accounts/C/acctchrt_spouseinc.gnucash-xea,
+	  trunk/accounts/C/acctchrt_spouseretire.gnucash-xea: Add
+	  placeholder flags for relevant accounts.
+
+2006-01-15 23:04  jsled
+
+	* [r12357] trunk/ChangeLog, trunk/GNOME2_STATUS,
+	  trunk/src/app-utils/Makefile.am,
+	  trunk/src/app-utils/gnc-account-merge.c,
+	  trunk/src/app-utils/gnc-account-merge.h,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome-utils/gnc-tree-view-account.h,
+	  trunk/src/gnome/dialog-new-user.c,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/druid-hierarchy.h,
+	  trunk/src/gnome/druid-merge.c, trunk/src/gnome/druid-merge.h,
+	  trunk/src/gnome/glade/account.glade,
+	  trunk/src/gnome/gnc-plugin-page-account-tree.c: Add
+	  account-tree-view editing for name,code,desc,notes; refactor
+	  new-account-heirarchy druid for merging accounts into an
+	  existing book.
+
+2006-01-15 22:19  jsled
+
+	* [r12356] trunk/HACKING: Updates for new program invocation
+	  method, path conventions.
+
+2006-01-14 11:32  cstim
+
+	* [r12354] trunk/src/bin: Add svn:ignore
+
+2006-01-14 11:27  cstim
+
+	* [r12353] trunk/accounts/nb/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_business.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_cdmoneymkt.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_checkbook.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_childcare.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_common.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_eduloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_fixedassets.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_full.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_homeloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_homeown.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_otherloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_renter.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_retiremt.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_spouseinc.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_spouseretire.gnucash-xea: Updated
+	  Norwegian account templates by Tor Harald Thorland
+
+2006-01-14 11:25  cstim
+
+	* [r12352] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland
+
+2006-01-14 05:47  chris
+
+	* [r12351] trunk/src/business/dialog-tax-table/Makefile.am:
+	  Declare library dependency for dialog-tax-table. libtool 1.5.16
+	  seems to not mind the dependency being undeclared but libtool
+	  1.5.6 on FC3 won't lt_dlopen() the .la file without it.
+
+2006-01-14 03:56  chris
+
+	* [r12350] trunk/configure.in, trunk/doc/Makefile.am,
+	  trunk/lib/libc/Makefile.am,
+	  trunk/lib/libqof/backend/file/Makefile.am,
+	  trunk/src/bin/Makefile.am, trunk/src/bin/overrides/Makefile.am,
+	  trunk/src/gnome-utils/Makefile.am, trunk/src/gnome/Makefile.am,
+	  trunk/src/quotes/Makefile.am: Add 'Makefile' as a dependency for
+	  targets that are generated from scriptlets in Makefile. That
+	  way, if the generating scriptlet is changed, (or the Makefile is
+	  regenerated) the target will also be remade.
+
+2006-01-14 02:01  warlord
+
+	* [r12349] trunk/ChangeLog, trunk/lib/libqof/qof/Makefile.am: *
+	  lib/libqof/qof/Makefile.am: qofla-dir.h depends on Makefile.
+	  Make sure you rebuild qofla-dir.h when the Makefile changes,
+	  which would imply re-configuration. You never know, the user
+	  might have changed --prefix which means you want to rebuild the
+	  header.
+
+2006-01-14 01:53  warlord
+
+	* [r12348] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  Properly set QOF_LIB_DIR et. al. for internal qof.
+
+2006-01-13 23:57  warlord
+
+	* [r12347] trunk/ChangeLog,
+	  trunk/lib/goffice-0.0.4/goffice/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/app/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/cut-n-paste/foocanvas/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/cut-n-paste/pcre/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/data/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/drawing/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/graph/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/gtk/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/ms-compat/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/utils/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/gsf-gnome/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/gsf-win32/Makefile.am,
+	  trunk/lib/libgsf-1.12.3/gsf/Makefile.am: Don't install goffice
+	  and gsf headers. * goffice/*/Makefile.am: *
+	  libgsf/*/Makefile.am: don't install goffice and gsf headers.
+
+2006-01-13 22:18  warlord
+
+	* [r12346] trunk/src/gnome-utils/Makefile.am: Fix a typo. Need a
+	  backslash.
+
+2006-01-13 21:57  warlord
+
+	* [r12345] trunk/ChangeLog, trunk/src/bin/overrides/Makefile.am,
+	  trunk/src/bin/overrides/gnucash,
+	  trunk/src/bin/overrides/gnucash-valgrind: Remove old gnucash and
+	  gnucash-valgrind override scripts. * src/bin/overrides/gnucash *
+	  src/bin/overrides/gnucash-valgrind *
+	  src/bin/overrides/Makefile.am: remove unnecessary override files
+	  that are no longer useful.
+
+2006-01-13 21:50  warlord
+
+	* [r12344] trunk/ChangeLog, trunk/src/gnome-utils/Makefile.am:
+	  Revert 12296 -- provide a better fix for gentoo ebuild. *
+	  src/gnome-utils/Makefile.am: revert 12296 and handle the case of
+	  an svn checkout without .svn subdirs (gentoo ebuild). In
+	  particular, we want to use $(srcdir)/gnc-svninfo.h so that a
+	  build from a dist tarball has the svn version.
+
+2006-01-13 21:19  cstim
+
+	* [r12343] trunk/src/bin/gnucash-bin.c: Add comment about why
+	  there is no setlocale in main.
+
+2006-01-13 19:15  codehelp
+
+	* [r12342] trunk/src/bin/test/test-version: silencing guile for
+	  test-version
+
+2006-01-13 19:12  codehelp
+
+	* [r12341] trunk/ChangeLog, trunk/src/bin/test/test-version: Using
+	  Derek's build-from-tree fix to fix the test-version check
+
+2006-01-13 17:41  warlord
+
+	* [r12340] trunk/ChangeLog,
+	  trunk/src/bin/overrides/gnucash-build-env.in: Get GnuCash to run
+	  out of the build tree again. At least, --version works now. *
+	  src/bin/overrides/gnucash-build-env.in: Change core-utils to a
+	  gnc-module-dir so it loads both the .scm and the .so properly.
+
+2006-01-13 05:13  chris
+
+	* [r12339] trunk/Makefile.am, trunk/configure.in,
+	  trunk/lib/libqof/qof/Makefile.am, trunk/src/Makefile.am,
+	  trunk/src/bin/Makefile.am: Various fixes to allow `make dist`
+	  and building from tarball.
+
+2006-01-13 02:05  chris
+
+	* [r12338] trunk/ChangeLog, trunk/ChangeLog.2005: ChangeLog
+	  entries from svn for past 12 days. Hmm... A commit message for
+	  my commit messages... what to write? Using this, format which is
+	  much closer to svn log, saved some time. This commit took about
+	  10 min to prepare, and I estimate it would have taken another 20
+	  to format like my last entries. The main effort is moving the
+	  messages off of column 0. I suspect that the non-uniform entry
+	  style might start to bother me enough to look at the xslt again.
+	  We'll see.
+
+2006-01-13 01:25  chris
+
+	* [r12337] trunk/src/app-utils/Makefile.am,
+	  trunk/src/app-utils/gnc-gettext-util.c,
+	  trunk/src/app-utils/gnc-gettext-util.h,
+	  trunk/src/app-utils/gw-app-utils-spec.scm,
+	  trunk/src/app-utils/i18n.h.in, trunk/src/bin/Makefile.am,
+	  trunk/src/bin/gnucash-bin.c, trunk/src/bin/i18n.h.in,
+	  trunk/src/scm/main.scm: Move gnu-module init and gettext init
+	  from scm to C. Move i18n.h.in from src/app-utils to src/bin,
+	  where it is used. Remove unneeded gettext init code in
+	  src/app-utils
+
+2006-01-13 00:41  hampton
+
+	* [r12336] trunk/GNOME2_STATUS: Remove fixed item that was
+	  restored by accident.
+
+2006-01-13 00:34  hampton
+
+	* [r12335] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c: Remove the
+	  unnecessary explicit removal of the tree model and let the core
+	  GtkTreeView code do its thing. Prevents a weird crash when
+	  canceling the transfer code.
+
+2006-01-12 23:40  jsled
+
+	* [r12334] trunk/configure.in,
+	  trunk/lib/goffice-0.0.4/goffice/graph/Makefile.am,
+	  trunk/lib/goffice-0.0.4/goffice/graph/gog-renderer-cairo.c:
+	  Remove (b0rk) cairo support
+
+2006-01-12 23:34  jsled
+
+	* [r12333] trunk/GNOME2_STATUS: Add notes from -devel, #gnucash
+
+2006-01-12 22:47  warlord
+
+	* [r12332] trunk/ChangeLog, trunk/configure.in,
+	  trunk/macros/pkg.m4: * configure.in: fixes to make configure
+	  more quiet - move PKG_CONFIG check early in the process - use
+	  --silence-errors more * macros/pkg.m4: work around a pkg-config
+	  bug that outputs errors to stderr even when you tell it to
+	  output to stdout.
+
+2006-01-12 21:44  warlord
+
+	* [r12331] trunk/ChangeLog, trunk/configure.in: * configure.in:
+	  add --enable-qof so build defaults to internal qof.
+
+2006-01-12 21:26  chris
+
+	* [r12330] trunk/src/backend/file/gnc-account-xml-v2.c,
+	  trunk/src/backend/file/test/test-real-data.sh,
+	  trunk/src/backend/file/test/test-xml-account.c: Don't let
+	  deprecated tags overwrite data from newer tags. Avoid testing
+	  for match of deprecated tags. Warn about deprecated tags not
+	  being preserved. Plug another leak in test case. Make successful
+	  test-xml-account less verbose.
+
+2006-01-12 21:22  chris
+
+	* [r12329] trunk/src/backend/file/test/test-file-stuff.c: Avoid
+	  creating new xml parser for each test file. This plugs a mem
+	  leak in the test case.
+
+2006-01-12 15:52  cstim
+
+	* [r12328] trunk/configure.in: Revert not-yet-agreed change in QOF
+	  variables by myself that accidentally slipped in.
+
+2006-01-11 23:07  codehelp
+
+	* [r12327] branches/cashutil/ChangeLog,
+	  branches/cashutil/src/bin/gnucash2.c,
+	  branches/cashutil/src/gnc-module/gnc-module.c,
+	  branches/cashutil/src/gnome-utils: silencing g_messages in
+	  favour of logfile
+
+2006-01-11 22:05  codehelp
+
+	* [r12326]
+	  branches/cashutil/src/backend/file/gncmod-backend-file.c,
+	  branches/cashutil/src/bin/gnucash2.c,
+	  branches/cashutil/src/business/business-core/file/gncmod-business-backend-file.c,
+	  branches/cashutil/src/engine/gncmod-engine.c,
+	  branches/cashutil/src/import-export/qif-io-core/gncmod-qifiocore.c:
+	  one more step to loading main window in C
+
+2006-01-11 18:46  codehelp
+
+	* [r12325] branches/cashutil/cashutil/src/Makefile.am,
+	  branches/cashutil/cashutil/src/cashutil.c,
+	  branches/cashutil/configure.ac,
+	  branches/cashutil/src/Makefile.am,
+	  branches/cashutil/src/app-utils/Makefile.am,
+	  branches/cashutil/src/app-utils/gncmod-app-utils.c,
+	  branches/cashutil/src/bin/gnucash2.c,
+	  branches/cashutil/src/engine/Makefile.am,
+	  branches/cashutil/src/engine/test/Makefile.am,
+	  branches/cashutil/src/gnc-module/Makefile.am,
+	  branches/cashutil/src/gnc-module/gnc-module.c,
+	  branches/cashutil/src/gnc-module/gnc-module.h,
+	  branches/cashutil/src/gnome-search/gncmod-gnome-search.c,
+	  branches/cashutil/src/gnome-utils/gncmod-gnome-utils.c,
+	  branches/cashutil/src/gnome/gncmod-budget.c,
+	  branches/cashutil/src/import-export/binary-import/gncmod-binary-import.c,
+	  branches/cashutil/src/import-export/gncmod-generic-import.c,
+	  branches/cashutil/src/import-export/hbci/gncmod-hbci.c,
+	  branches/cashutil/src/import-export/log-replay/gncmod-log-replay.c,
+	  branches/cashutil/src/import-export/mt940/gncmod-mt940-import.c,
+	  branches/cashutil/src/import-export/ofx/gncmod-ofx-import.c,
+	  branches/cashutil/src/import-export/qif-import/gncmod-qif-import.c,
+	  branches/cashutil/src/register/ledger-core/gncmod-ledger-core.c,
+	  branches/cashutil/src/register/register-core/gncmod-register-core.c,
+	  branches/cashutil/src/report/report-system/gncmod-report-system.c:
+	  removing engine module and improving splash screen load
+
+2006-01-11 13:26  codehelp
+
+	* [r12324] trunk/src/gnome-utils/gnc-tree-model-budget.c: doxygen
+	  tweak
+
+2006-01-11 13:06  codehelp
+
+	* [r12323] trunk/src/engine/gnc-budget.h,
+	  trunk/src/gnome-utils/gnc-tree-model-budget.h: doxygen tweak
+
+2006-01-11 04:39  chris
+
+	* [r12322] trunk/src/engine/Account.c: Factor-out cut-n-paste job
+	  from xaccCloneAccount{Simple}.
+
+2006-01-11 04:30  chris
+
+	* [r12321] trunk/src/engine/Account.c: Convert account name, code
+	  and description to use string cache. Plus minor comments and
+	  tweaks.
+
+2006-01-11 04:29  hampton
+
+	* [r12320] trunk/ChangeLog, trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/gnc-gnome-utils.c: A couple of simple
+	  substitutions for deprecated functions.
+
+2006-01-11 04:27  chris
+
+	* [r12319] trunk/lib/libqof/qof/gnc-engine-util.h: Add
+	  CACHE_REPLACE(dst, src) macro for common case in string setters.
+
+2006-01-11 04:25  hampton
+
+	* [r12318] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-options.c: Use newer function for
+	  setting the width of a GtkSpinButton.
+
+2006-01-11 03:08  hampton
+
+	* [r12317] trunk/ChangeLog, trunk/src/gnome-utils/gnc-html.c,
+	  trunk/src/gnome/top-level.c,
+	  trunk/src/network-utils/Makefile.am: The gnucash gpg networking
+	  code isn't called from anywhere. No need to compile it as part
+	  of the build.
+
+2006-01-11 02:58  chris
+
+	* [r12316] trunk/src/engine/gnc-commodity.c: Convert gnc-commodity
+	  to use vanilla string cache macros.
+
+2006-01-11 02:56  chris
+
+	* [r12315] trunk/lib/libqof/qof/gnc-engine-util.c,
+	  trunk/lib/libqof/qof/gnc-engine-util.h: Add const to
+	  gnc_string_cache_insert argument. Handle NULL values gracefully.
+
+2006-01-11 02:41  hampton
+
+	* [r12314] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-options.c,
+	  trunk/src/gnome-utils/dialog-utils.c,
+	  trunk/src/gnome-utils/gnc-dense-cal.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/register/register-gnome/gnucash-cursor.c,
+	  trunk/src/register/register-gnome/gnucash-grid.c,
+	  trunk/src/register/register-gnome/gnucash-header.c,
+	  trunk/src/register/register-gnome/gnucash-item-edit.c: Replace
+	  deprecated functions with their current equivalent.
+
+2006-01-11 02:19  chris
+
+	* [r12313] trunk/src/engine/test/test-date.c: Add commented-out
+	  test case demonstrating lack of year 2038 support.
+
+2006-01-10 22:10  warlord
+
+	* [r12312] trunk/ChangeLog, trunk/make-gnucash-potfiles.in: ignore
+	  dangling symlinks when building po/POTFILES.in *
+	  make-gnucash-potfiles.in: ignore dangling symlinks when building
+	  po/POTFILES.in
+
+2006-01-10 21:42  chris
+
+	* [r12311] trunk/src/engine/gnc-commodity.c: Plug memory leak of
+	  gnc_commodity_namespace->QofInstance; found w/ valgrind.
+
+2006-01-10 20:13  cstim
+
+	* [r12310] trunk/ChangeLog, trunk/accounts/Makefile.am,
+	  trunk/accounts/nb, trunk/accounts/nb/Makefile.am,
+	  trunk/accounts/nb/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_business.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_cdmoneymkt.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_checkbook.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_childcare.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_common.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_eduloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_fixedassets.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_full.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_homeloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_homeown.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_otherloan.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_renter.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_retiremt.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_spouseinc.gnucash-xea,
+	  trunk/accounts/nb/acctchrt_spouseretire.gnucash-xea,
+	  trunk/configure.in: Add account templates for Norwegian (Bokmal)
+	  language; by Tor Harald Thorland <linux at strigen.com>; not fully
+	  functional so far.
+
+2006-01-10 19:58  cstim
+
+	* [r12309] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland
+
+2006-01-09 21:06  chris
+
+	* [r12308] trunk/src/engine/test/test-date.c: Avoid testing dates
+	  near or after 2038, because the qof parsing functions fail.
+
+2006-01-09 12:58  hampton
+
+	* [r12307] trunk/src/gnome-utils/dialog-options.c: Add tooltip for
+	  new button.
+
+2006-01-09 03:33  chris
+
+	* [r12306] trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/test/test-print-parse-amount.c: Don't test
+	  numeric parsing for numbers that overflow, we'd fail.
+
+2006-01-08 22:39  hampton
+
+	* [r12305] trunk/ChangeLog,
+	  trunk/src/gnome-utils/dialog-options.c: Add a button to clear
+	  the name of the currently selected file in a file chooser.
+
+2006-01-08 22:34  hampton
+
+	* [r12304] trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c: The
+	  GTK2.4 headers are missing a named constant.
+
+2006-01-08 22:31  hampton
+
+	* [r12303] trunk/lib/goffice-0.0.4/goffice/glib24_26-compat.c: Fix
+	  a couple of compiler version issues.
+
+2006-01-08 22:29  warlord
+
+	* [r12302] trunk/ChangeLog, trunk/Makefile.am: * Makefile.am: fix
+	  the dist-hook macro for po/POTFILES.in
+
+2006-01-08 21:41  cstim
+
+	* [r12301] trunk/po/de.po: Updated German translation. 3414 done.
+
+2006-01-08 21:37  cstim
+
+	* [r12300] trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome/glade/register.glade: Add more tooltips to main
+	  window buttons. i18n improvements.
+
+2006-01-08 17:51  codehelp
+
+	* [r12299] trunk/configure.in,
+	  trunk/lib/libqof/backend/file/pilot-qsf-GnuCashInvoice.xml,
+	  trunk/lib/libqof/backend/file/qof-backend-qsf.h,
+	  trunk/lib/libqof/backend/file/qsf-backend.c,
+	  trunk/lib/libqof/backend/file/qsf-xml-map.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.c,
+	  trunk/lib/libqof/backend/file/qsf-xml.h,
+	  trunk/lib/libqof/qof/Makefile.am,
+	  trunk/lib/libqof/qof/deprecated.c,
+	  trunk/lib/libqof/qof/deprecated.h,
+	  trunk/lib/libqof/qof/gnc-date.c,
+	  trunk/lib/libqof/qof/gnc-date.h,
+	  trunk/lib/libqof/qof/gnc-engine-util.h,
+	  trunk/lib/libqof/qof/gnc-event-p.h,
+	  trunk/lib/libqof/qof/gnc-event.c,
+	  trunk/lib/libqof/qof/gnc-event.h,
+	  trunk/lib/libqof/qof/gnc-numeric.c,
+	  trunk/lib/libqof/qof/gnc-numeric.h,
+	  trunk/lib/libqof/qof/gnc-trace.c,
+	  trunk/lib/libqof/qof/gnc-trace.h, trunk/lib/libqof/qof/guid.c,
+	  trunk/lib/libqof/qof/guid.h, trunk/lib/libqof/qof/kvp-util.h,
+	  trunk/lib/libqof/qof/kvp_frame.c,
+	  trunk/lib/libqof/qof/kvp_frame.h,
+	  trunk/lib/libqof/qof/qof-be-utils.h, trunk/lib/libqof/qof/qof.h,
+	  trunk/lib/libqof/qof/qof_book_merge.c,
+	  trunk/lib/libqof/qof/qof_book_merge.h,
+	  trunk/lib/libqof/qof/qofbackend-p.h,
+	  trunk/lib/libqof/qof/qofbackend.c,
+	  trunk/lib/libqof/qof/qofbook-p.h,
+	  trunk/lib/libqof/qof/qofbook.c, trunk/lib/libqof/qof/qofbook.h,
+	  trunk/lib/libqof/qof/qofchoice.c,
+	  trunk/lib/libqof/qof/qofchoice.h,
+	  trunk/lib/libqof/qof/qofclass-p.h,
+	  trunk/lib/libqof/qof/qofclass.c, trunk/lib/libqof/qof/qofgobj.c,
+	  trunk/lib/libqof/qof/qofgobj.h, trunk/lib/libqof/qof/qofid-p.h,
+	  trunk/lib/libqof/qof/qofid.c, trunk/lib/libqof/qof/qofid.h,
+	  trunk/lib/libqof/qof/qofinstance-p.h,
+	  trunk/lib/libqof/qof/qofinstance.c,
+	  trunk/lib/libqof/qof/qoflog.c, trunk/lib/libqof/qof/qoflog.h,
+	  trunk/lib/libqof/qof/qofobject-p.h,
+	  trunk/lib/libqof/qof/qofobject.c,
+	  trunk/lib/libqof/qof/qofquery-deserial.c,
+	  trunk/lib/libqof/qof/qofquery-deserial.h,
+	  trunk/lib/libqof/qof/qofquery-serialize.c,
+	  trunk/lib/libqof/qof/qofquery-serialize.h,
+	  trunk/lib/libqof/qof/qofquery.c,
+	  trunk/lib/libqof/qof/qofquery.h,
+	  trunk/lib/libqof/qof/qofquerycore.c,
+	  trunk/lib/libqof/qof/qofquerycore.h,
+	  trunk/lib/libqof/qof/qofsession.c,
+	  trunk/lib/libqof/qof/qofsession.h,
+	  trunk/lib/libqof/qof/qofsql.c, trunk/lib/libqof/qof/qofsql.h:
+	  QOF 0.6.1 release update
+
+2006-01-08 14:57  codehelp
+
+	* [r12298] trunk, trunk/ChangeLog, trunk/po/en_GB.po,
+	  trunk/src/gnome-utils,
+	  trunk/src/import-export/qif-import/test/Makefile.am: updated
+	  en_GB translation (92fuzzy remaining) in association with Nigel
+	  Titley and the translation project
+
+2006-01-08 14:45  codehelp
+
+	* [r12297] trunk/ChangeLog, trunk/src/engine/Transaction.c,
+	  trunk/src/gnome-utils/druid-gconf-setup.c,
+	  trunk/src/gnome-utils/gnc-tree-model-budget.h,
+	  trunk/src/gnome/gnc-plugin-budget.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.h: ENTER and LEAVE
+	  matching, typo and doxygen tweak
+
+2006-01-08 14:24  cstim
+
+	* [r12296] trunk/src/gnome-utils/Makefile.am: Fix gnc-svninfo.h
+	  rule for gentoo ebuild where svn is no longer available
+
+2006-01-08 14:01  cstim
+
+	* [r12295] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-embedded-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/gnc-main-window.h,
+	  trunk/src/gnome-utils/gnc-plugin-menu-additions.c,
+	  trunk/src/gnome-utils/gnc-plugin-page.c:
+	  src/gnome-utils/gnc-main-window.c: Add gnc workaround function
+	  for errorneous gtk_action_group_set_translation_domain. Fixes
+	  the statusbar-tooltip error mentioned on 2006-01-07. Filed in
+	  gtk as bug#326200.
+
+2006-01-07 19:13  hampton
+
+	* [r12294] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/account-summary.scm: Copy the
+	  table markup from an intermediate table to the final displayed
+	  table.
+
+2006-01-07 19:12  hampton
+
+	* [r12293] trunk/src/report/report-system/html-acct-table.scm:
+	  When building a html table from an account tree, apply markup to
+	  the "total" lines so that they use the right stylesheet colors.
+
+2006-01-07 18:42  hampton
+
+	* [r12292] trunk/ChangeLog,
+	  trunk/src/report/standard-reports/advanced-portfolio.scm,
+	  trunk/src/report/standard-reports/portfolio.scm: Fix the "share
+	  decimal places" option.
+
+2006-01-07 17:15  cstim
+
+	* [r12291] trunk/src/gnome-utils/gnc-main-window.c: Oops, fix
+	  unintended additional changes
+
+2006-01-07 17:13  cstim
+
+	* [r12290] trunk/po/de.po: Updated German translation
+	* [r12289] trunk/ChangeLog,
+	  trunk/src/gnome/gnc-plugin-page-register.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Add more
+	  tooltips to actions.
+	  src/report/report-gnome/gnc-plugin-page-report.c: Rename "Save
+	  report" menu item to "Add report" according to IRC discussion
+	  with warlord.
+
+2006-01-07 17:12  cstim
+
+	* [r12288] trunk/src/gnome-utils/gnc-main-window.c: Add display of
+	  a GtkAction's tooltip in the statusbar when the mouse is
+	  selection its menu item. Code copied from gtk+'s
+	  test/testmerge.c. Works fine, except that in non-C locales a
+	  tooltip of "" is errorneously passed through gettext(), which
+	  will accidentally catch a wrong string from the po files. This
+	  needs to be fixed.
+
+2006-01-07 15:48  cstim
+
+	* [r12287] trunk/src/bin/Makefile.am,
+	  trunk/src/bin/gnucash-valgrind.in: Improve valgrind script
+
+2006-01-07 15:47  cstim
+
+	* [r12286] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland
+
+2006-01-07 14:51  cstim
+
+	* [r12285] trunk/ChangeLog, trunk/Makefile.am, trunk/autogen.sh,
+	  trunk/macros/autogen.sh: Move code from macros/autogen.sh to
+	  ./autogen.sh to make it more obvious what happens. Add checks
+	  for all programs that are called, fixes bug#325721. However in
+	  principle the code wasn't changed, only cleaned up.
+
+2006-01-07 07:36  hampton
+
+	* [r12284] trunk/GNOME2_STATUS: Update for recent HBCI fixes.
+
+2006-01-07 07:28  hampton
+
+	* [r12283] trunk/src/gnome-utils/gnc-file.c,
+	  trunk/src/report/report-gnome/gnc-plugin-page-report.c: Add some
+	  access keys to menu items and buttons.
+
+2006-01-07 07:03  hampton
+
+	* [r12282] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/dialog-date-close.c,
+	  trunk/src/business/business-gnome/dialog-order.c,
+	  trunk/src/gnome-utils/gnc-druid-provider-file-gnome.c,
+	  trunk/src/gnome-utils/gnc-druid-provider-file-gnome.h: Remove
+	  some deprecated gnome functions.
+
+2006-01-07 06:18  hampton
+
+	* [r12281] trunk/ChangeLog, trunk/src/bin,
+	  trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-valgrind.in:
+	  Add a script to invoke the new gnucash.bin executable via
+	  valgrind.
+
+2006-01-07 06:00  hampton
+
+	* [r12280] trunk/ChangeLog,
+	  trunk/src/gnome/window-main-summarybar.c: Performance
+	  enhancements. Remove the model from the combo box before
+	  clearing and repopulating it.
+
+2006-01-06 22:55  jsled
+
+	* [r12279] trunk/GNOME2_STATUS: buffer-flush notes.
+
+2006-01-06 22:28  chris
+
+	* [r12278] trunk/src/app-utils/gnc-ui-util.c,
+	  trunk/src/app-utils/gnc-ui-util.h: Fix floating point exception
+	  by checking for overflow.
+
+2006-01-06 22:10  cstim
+
+	* [r12277] trunk/glade-fixup: Improve glade-fixup script so that
+	  it can be used in subdirectories, too
+
+2006-01-06 22:09  cstim
+
+	* [r12276] trunk/po/de.po: Improved German translation. 3397 out
+	  of 4005 done.
+	* [r12275] trunk/src/import-export/hbci/gnc-hbci-getbalance.c,
+	  trunk/src/import-export/hbci/gnc-hbci-transfer.c,
+	  trunk/src/import-export/hbci/gnc-hbci-utils.c: String i18n
+	  cleanup: manual linebreaks removed
+
+2006-01-06 21:55  cstim
+
+	* [r12274] trunk/src/import-export/hbci/glade/hbci.glade: String
+	  i18n cleanup; more tooltips added
+
+2006-01-06 21:31  chris
+
+	* [r12273] trunk/Makefile.am: Fixes for `make check' in toplevel
+	  Makefile.am. Conditionally add symlink from ./gsf to
+	  ./lib/libgsf-1.12.3/gsf. Also, silence warning:
+	  /usr/share/automake-1.9/am/tags.am: ctags was already defined in
+	  condition !GNC_CTAGS_FILE, which is included in condition TRUE
+	  ... Makefile.am:138: ... `ctags' previously defined here and
+	  avoid possible `make dist' failure by added po/POTFILES.in to
+	  dist-hook.
+
+2006-01-06 15:49  hampton
+
+	* [r12272] trunk/ChangeLog,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.c,
+	  trunk/src/import-export/hbci/dialog-hbcitrans.h,
+	  trunk/src/import-export/hbci/glade/hbci.glade,
+	  trunk/src/import-export/hbci/gnc-hbci-transfer.c: Make the HBCI
+	  Transfer dialog work again using a GtkListStore.
+
+2006-01-06 02:49  chris
+
+	* [r12271] trunk/Makefile.am, trunk/po/POTFILES.in: Yet more build
+	  tweaks for .pot file generation. Remove po/POTFILES.in (again)
+	  from svn. Since po/POTFILES.in is added to BUILT_SOURCES, it's
+	  auto-generated now whenever the `make all', `make check', or
+	  `make install' targets are processed, (but not recreated every
+	  time). And `make pot' forces the recreation of po/POTFILES.in.
+	  Hopefully, this will works even on OSX.
+
+2006-01-05 15:54  jsled
+
+	* [r12270] trunk/accounts/de_DE/acctchrt_auto.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_autoloan.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_common.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_houseown.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_investment.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_kids.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_otherasset.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_otherloan.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_skr04.gnucash-xea,
+	  trunk/accounts/de_DE/acctchrt_studium.gnucash-xea,
+	  trunk/accounts/fr_FR/Makefile.am,
+	  trunk/accounts/fr_FR/acctchrt_business.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_brokerage.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_carloan.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_cdmoneymkt.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_childcare.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_common.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_eduloan.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_fixedassets.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_homeloan.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_homeown.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_otherloan.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_renter.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_retiremt.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_spouseinc.gnucash-xea,
+	  trunk/accounts/pt_PT/acctchrt_spouseretire.gnucash-xea,
+	  trunk/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea: Andreas
+	  Kohler's cleanups, Bug#321405.
+
+2006-01-05 15:50  jsled
+
+	* [r12269] trunk/accounts/C/Makefile.am,
+	  trunk/accounts/de_DE/Makefile.am,
+	  trunk/accounts/de_DE/acctchrt_full.gnucash-xea: Restore
+	  de_DE/acctchrt_full.gnucash-xea, makefile rules re:acctchrt_full
+	  files.
+
+2006-01-05 06:36  hampton
+
+	* [r12268] trunk/ChangeLog: Info for last set of changes.
+
+2006-01-05 06:35  hampton
+
+	* [r12267] trunk/configure.in,
+	  trunk/src/gnome-utils/gnc-main-window.c,
+	  trunk/src/gnome-utils/ui/gnc-main-window-ui.xml: Add in some
+	  conditionally compiled hooks for turning callgrind on/off via
+	  the menus.
+
+2006-01-05 06:33  hampton
+
+	* [r12266] trunk/src/gnome/gnc-plugin-page-account-tree.c:
+	  Consolidate some common functionality.
+
+2006-01-05 06:32  hampton
+
+	* [r12265] trunk/src/register/register-gnome/gnucash-item-list.c:
+	  Remove debugging statement.
+
+2006-01-05 05:18  hampton
+
+	* [r12264] trunk/ChangeLog,
+	  trunk/src/register/ledger-core/split-register-load.c,
+	  trunk/src/register/register-core/combocell.h,
+	  trunk/src/register/register-gnome/combocell-gnome.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.c,
+	  trunk/src/register/register-gnome/gnucash-item-list.h: Load the
+	  entire data set into the combocell before enabling sorting.
+	  Saves a tremendous amount of time.
+
+2006-01-05 03:44  jsled
+
+	* [r12263] trunk/accounts/C/Makefile.am,
+	  trunk/accounts/C/acctlist_brokerage.gnucash-xea,
+	  trunk/accounts/C/acctlist_carloan.gnucash-xea,
+	  trunk/accounts/C/acctlist_cdmoneymkt.gnucash-xea,
+	  trunk/accounts/C/acctlist_childcare.gnucash-xea,
+	  trunk/accounts/C/acctlist_common.gnucash-xea,
+	  trunk/accounts/C/acctlist_eduloan.gnucash-xea,
+	  trunk/accounts/C/acctlist_fixedassets.gnucash-xea,
+	  trunk/accounts/C/acctlist_full.gnucash-xea,
+	  trunk/accounts/C/acctlist_homeloan.gnucash-xea,
+	  trunk/accounts/C/acctlist_homeown.gnucash-xea,
+	  trunk/accounts/C/acctlist_otherloan.gnucash-xea,
+	  trunk/accounts/C/acctlist_renter.gnucash-xea,
+	  trunk/accounts/C/acctlist_retiremt.gnucash-xea,
+	  trunk/accounts/C/acctlist_spouseinc.gnucash-xea,
+	  trunk/accounts/C/acctlist_spouseretire.gnucash-xea,
+	  trunk/accounts/de_DE/Makefile.am,
+	  trunk/accounts/de_DE/acctchrt_full.gnucash-xea,
+	  trunk/accounts/de_DE/acctlist_full.gnucash: Remove dead acctlist
+	  files.
+
+2006-01-05 03:11  hampton
+
+	* [r12262]
+	  trunk/src/business/business-ledger/gncEntryLedgerLoad.c: Rename
+	  function to eliminate duplicate names.
+
+2006-01-05 03:10  hampton
+
+	* [r12261] trunk/lib/libqof/qof/gnc-numeric.c,
+	  trunk/src/backend/file/gnc-transaction-xml-v2.c: A couple of
+	  performance tweaks.
+
+2006-01-05 01:38  hampton
+
+	* [r12260] trunk/src/bin/gnucash.in: Don't keep the shell around
+	  when starting gnucash.
+
+2006-01-04 21:56  cstim
+
+	* [r12259] trunk/po/de.po: Updated German translation
+
+2006-01-04 21:54  cstim
+
+	* [r12258] trunk/src/gnome/gnc-plugin-basic-commands.c,
+	  trunk/src/report/report-gnome/dialog-style-sheet.c: String i18n
+	  improvements.
+
+2006-01-04 17:25  chris
+
+	* [r12257] trunk/po/POTFILES.in: Add a stub po/POTFILES.in
+
+2006-01-04 04:56  jsled
+
+	* [r12256] trunk/ChangeLog, trunk/GNOME2_STATUS,
+	  trunk/src/gnome/dialog-sxsincelast.c,
+	  trunk/src/gnome/glade/sched-xact.glade,
+	  trunk/src/gnome/ui/gnc-plugin-page-sxregister-ui.xml,
+	  trunk/src/gnome/ui/gnc-sxed-window-ui.xml: Since-last-run dialog
+	  cleanups. * gnc-sxed-window-ui.xml: Remove unreferenced
+	  `TransactionAction`. * dialog-sxsincelast.c
+	  (sxsld_disposition_changed): change the assertion into a simple
+	  return-if-fail due to apparent change in the calling order in
+	  gtk 2.x...
+
+2006-01-04 03:58  hampton
+
+	* [r12255] trunk/ChangeLog, trunk/src/engine/Transaction.c: When
+	  setting the amount of a split, don't call gnc_numeric_convert on
+	  it if the split isn't assigned to an account. This reduces the
+	  time spent loading a data file.
+
+2006-01-04 03:13  hampton
+
+	* [r12254] trunk/ChangeLog,
+	  trunk/src/business/business-gnome/glade/invoice.glade: Couple
+	  the radio buttons in the unpost dialog.
+
+2006-01-04 01:02  hampton
+
+	* [r12253] trunk/ChangeLog, trunk/src/gnome/dialog-totd.c,
+	  trunk/src/gnome/glade/totd.glade, trunk/src/gnome/top-level.c:
+	  Revert the previous change and make the totd always float above
+	  all other GnuCash windows.
+
+2006-01-03 23:49  chris
+
+	* [r12252] trunk/src/bin/Makefile.am, trunk/src/bin/gnucash-bin.c,
+	  trunk/src/bin/gnucash.in: Invert the program entry point.
+	  'gnucash' is now a shell script that calls the executable
+	  'gnucash-bin' which uses libguile to load guile modules.
+
+2006-01-03 22:22  codehelp
+
+	* [r12251] trunk/Makefile.am: fix Mac OSX problems with buildpo
+	  target
+
+2006-01-03 22:01  codehelp
+
+	* [r12250] trunk/Makefile.am: ensure the generated file is cleaned
+	  for make distcheck
+
+2006-01-03 19:27  codehelp
+
+	* [r12249] trunk/doc/TRANSLATION_HOWTO: typos
+	* [r12248] trunk/po/POTFILES.in: automate replacing po/POTFILES.in
+	  and remove POTFILES.in from svn
+
+2006-01-03 19:26  codehelp
+
+	* [r12247] trunk/Makefile.am, trunk/po: automate replacing
+	  po/POTFILES.in and remove POTFILES.in from svn
+
+2006-01-03 18:04  codehelp
+
+	* [r12246] trunk/Makefile.am: rebuild POTFILES.in when remaking
+	  gnucash.pot
+
+2006-01-03 18:02  chris
+
+	* [r12245] trunk/po/POTFILES.in: remove a couple recently-removed
+	  files from POTFILES.in
+
+2006-01-03 17:13  hampton
+
+	* [r12244] trunk/src/business/business-core/gncEntry.c: Rename
+	  function to eliminate duplicate names.
+
+2006-01-03 09:39  codehelp
+
+	* [r12243] branches/cashutil, branches/cashutil/AUTHORS,
+	  branches/cashutil/ChangeLog, branches/cashutil/ChangeLog.1,
+	  branches/cashutil/ChangeLog.2001,
+	  branches/cashutil/ChangeLog.2002,
+	  branches/cashutil/ChangeLog.2003,
+	  branches/cashutil/ChangeLog.2004, branches/cashutil/DOCUMENTERS,
+	  branches/cashutil/GNOME2_STATUS, branches/cashutil/LICENSE,
+	  branches/cashutil/Makefile.am, branches/cashutil/README,
+	  branches/cashutil/README.dependencies,
+	  branches/cashutil/README.svn,
+	  branches/cashutil/accounts/C/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_business.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_checkbook.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_full.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/C/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_carloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_childcare.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_common.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_full.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_homeown.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_renter.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/C/acctlist_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/da/acctchrt_car.gnucash-xea,
+	  branches/cashutil/accounts/da/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/da/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/da/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/de_CH/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/de_CH/acctchrt_chkmu.gnucash-xea,
+	  branches/cashutil/accounts/de_CH/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/de_CH/acctchrt_kids.gnucash-xea,
+	  branches/cashutil/accounts/de_CH/acctchrt_otherasset.gnucash-xea,
+	  branches/cashutil/accounts/de_CH/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_auto.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_autoloan.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_full.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_houseown.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_investment.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_kids.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_otherasset.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_skr04.gnucash-xea,
+	  branches/cashutil/accounts/de_DE/acctchrt_studium.gnucash-xea,
+	  branches/cashutil/accounts/el_GR/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/el_GR/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/el_GR/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_currency.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/es_ES/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_currency.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/fr_FR/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_business.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_checkbook.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/hu_HU/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_checkbook.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/it/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/ja_JP.EUC/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_currency.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/pt_BR/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/pt_PT/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_childcare.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_currency.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_eduloan.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_homeown.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_otherloan.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_renter.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_retiremt.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_spouseinc.gnucash-xea,
+	  branches/cashutil/accounts/sk/acctchrt_spouseretire.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_brokerage.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_carloan.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_cdmoneymkt.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_checkbook.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_common.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_fixedassets.gnucash-xea,
+	  branches/cashutil/accounts/tr_TR/acctchrt_homeloan.gnucash-xea,
+	  branches/cashutil/cashutil/src/cashutil.c,
+	  branches/cashutil/cashutil/src/qof-main.c,
+	  branches/cashutil/cashutil/src/qof-main.h,
+	  branches/cashutil/cashutil/src/qof-shell.c,
+	  branches/cashutil/configure.ac,
+	  branches/cashutil/doc/Makefile.am,
+	  branches/cashutil/doc/RAW-NOTES,
+	  branches/cashutil/doc/README.build-system,
+	  branches/cashutil/doc/README.dependencies,
+	  branches/cashutil/doc/TRANSLATION_HOWTO,
+	  branches/cashutil/doc/build-osx.txt,
+	  branches/cashutil/doc/misc-notes.txt,
+	  branches/cashutil/goffice-config.h.in,
+	  branches/cashutil/goffice-features.h.in,
+	  branches/cashutil/gsf-config.h.in, branches/cashutil/lib,
+	  branches/cashutil/lib/Makefile.am, branches/cashutil/lib/README,
+	  branches/cashutil/lib/egg, branches/cashutil/lib/glib26,
+	  branches/cashutil/lib/glib26/gkeyfile.c,
+	  branches/cashutil/lib/glib26/gutils26.c,
+	  branches/cashutil/lib/goffice,
+	  branches/cashutil/lib/goffice-0.0.4,
+	  branches/cashutil/lib/goffice-0.0.4/goffice,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/app,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/cut-n-paste,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/cut-n-paste/foocanvas,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/cut-n-paste/pcre,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/data,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/drawing,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/graph,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/gtk,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/ms-compat,
+	  branches/cashutil/lib/goffice-0.0.4/goffice/utils,
+	  branches/cashutil/lib/goffice-0.0.4/pixmaps,
+	  branches/cashutil/lib/goffice-0.0.4/plugins,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/plot_barcol,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/plot_boxes,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/plot_pie,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/plot_radar,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/plot_surface,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/plot_xy,
+	  branches/cashutil/lib/goffice-0.0.4/plugins/reg_linear,
+	  branches/cashutil/lib/goffice-0.0.4/po,
+	  branches/cashutil/lib/goffice-0.0.4/tests,
+	  branches/cashutil/lib/guile-www,
+	  branches/cashutil/lib/guppi-legend.patch,
+	  branches/cashutil/lib/libc,
+	  branches/cashutil/lib/libc/scm_strptime.c,
+	  branches/cashutil/lib/libc/strptime.c,
+	  branches/cashutil/lib/libc/strptime.h,
+	  branches/cashutil/lib/libgsf-1.12.3,
+	  branches/cashutil/lib/libgsf-1.12.3/doc,
+	  branches/cashutil/lib/libgsf-1.12.3/doc/html,
+	  branches/cashutil/lib/libgsf-1.12.3/doc/tmpl,
+	  branches/cashutil/lib/libgsf-1.12.3/doc/xml,
+	  branches/cashutil/lib/libgsf-1.12.3/gsf,
+	  branches/cashutil/lib/libgsf-1.12.3/gsf-gnome,
+	  branches/cashutil/lib/libgsf-1.12.3/gsf-win32,
+	  branches/cashutil/lib/libgsf-1.12.3/po,
+	  branches/cashutil/lib/libgsf-1.12.3/python,
+	  branches/cashutil/lib/libgsf-1.12.3/tests,
+	  branches/cashutil/lib/libgsf-1.12.3/thumbnailer,
+	  branches/cashutil/lib/libqof,
+	  branches/cashutil/lib/libqof/backend,
+	  branches/cashutil/lib/libqof/backend/file,
+	  branches/cashutil/lib/libqof/qof, branches/cashutil/lib/srfi,
+	  branches/cashutil/ltmain.sh,
+	  branches/cashutil/macros/autogen.sh,
+	  branches/cashutil/macros/svn2cl.xsl,
+	  branches/cashutil/make-gnucash-potfiles.in,
+	  branches/cashutil/po/POTFILES.in, branches/cashutil/po/ca.po,
+	  branches/cashutil/po/cs.po, branches/cashutil/po/da.po,
+	  branches/cashutil/po/de.po, branches/cashutil/po/el.po,
+	  branches/cashutil/po/en_GB.po, branches/cashutil/po/es.po,
+	  branches/cashutil/po/es_NI.po, branches/cashutil/po/eu.po,
+	  branches/cashutil/po/fr.po, branches/cashutil/po/glossary/da.po,
+	  branches/cashutil/po/glossary/de.po,
+	  branches/cashutil/po/glossary/el.po,
+	  branches/cashutil/po/glossary/es.po,
+	  branches/cashutil/po/glossary/gnc-glossary.txt,
+	  branches/cashutil/po/glossary/it.po,
+	  branches/cashutil/po/glossary/nb.po,
+	  branches/cashutil/po/glossary/nl.po,
+	  branches/cashutil/po/glossary/no.po,
+	  branches/cashutil/po/glossary/pl.po,
+	  branches/cashutil/po/glossary/pt.po,
+	  branches/cashutil/po/glossary/pt_BR.po,
+	  branches/cashutil/po/glossary/rw.po,
+	  branches/cashutil/po/glossary/sk.po,
+	  branches/cashutil/po/glossary/sv.po,
+	  branches/cashutil/po/glossary/vi.po,
+	  branches/cashutil/po/glossary/zh_TW.po,
+	  branches/cashutil/po/hu.po, branches/cashutil/po/it.po,
+	  branches/cashutil/po/ja.po, branches/cashutil/po/nb.po,
+	  branches/cashutil/po/ne.po, branches/cashutil/po/nl.po,
+	  branches/cashutil/po/pl.po, branches/cashutil/po/pt.po,
+	  branches/cashutil/po/pt_BR.po, branches/cashutil/po/ru.po,
+	  branches/cashutil/po/rw.po, branches/cashutil/po/sk.po,
+	  branches/cashutil/po/sv.po, branches/cashutil/po/ta.po,
+	  branches/cashutil/po/tr.po, branches/cashutil/po/uk.po,
+	  branches/cashutil/po/zh_CN.po, branches/cashutil/po/zh_TW.po,
+	  branches/cashutil/rpm/gnucash.spec.in, branches/cashutil/src,
+	  branches/cashutil/src/Makefile.am,
+	  branches/cashutil/src/README.modules,
+	  branches/cashutil/src/app-utils,
+	  branches/cashutil/src/app-utils/Makefile.am,
+	  branches/cashutil/src/app-utils/c-interface.scm,
+	  branches/cashutil/src/app-utils/config-var.scm,
+	  branches/cashutil/src/app-utils/date-utilities.scm,
+	  branches/cashutil/src/app-utils/file-utils.c,
+	  branches/cashutil/src/app-utils/file-utils.h,
+	  branches/cashutil/src/app-utils/gnc-accounting-period.c,
+	  branches/cashutil/src/app-utils/gnc-accounting-period.h,
+	  branches/cashutil/src/app-utils/gnc-component-manager.h,
+	  branches/cashutil/src/app-utils/gnc-err-popup.c,
+	  branches/cashutil/src/app-utils/gnc-err-popup.h,
+	  branches/cashutil/src/app-utils/gnc-euro.h,
+	  branches/cashutil/src/app-utils/gnc-exp-parser.c,
+	  branches/cashutil/src/app-utils/gnc-exp-parser.h,
+	  branches/cashutil/src/app-utils/gnc-gettext-util.c,
+	  branches/cashutil/src/app-utils/gnc-helpers.c,
+	  branches/cashutil/src/app-utils/gnc-helpers.h,
+	  branches/cashutil/src/app-utils/gnc-ui-common.h,
+	  branches/cashutil/src/app-utils/gnc-ui-util.c,
+	  branches/cashutil/src/app-utils/gnc-ui-util.h,
+	  branches/cashutil/src/app-utils/guile-util.c,
+	  branches/cashutil/src/app-utils/guile-util.h,
+	  branches/cashutil/src/app-utils/hooks.scm,
+	  branches/cashutil/src/app-utils/kvp-option-registry.scm,
+	  branches/cashutil/src/app-utils/option-util.c,
+	  branches/cashutil/src/app-utils/option-util.h,
+	  branches/cashutil/src/app-utils/options.scm,
+	  branches/cashutil/src/app-utils/prefs.scm,
+	  branches/cashutil/src/app-utils/test,
+	  branches/cashutil/src/app-utils/test/Makefile.am,
+	  branches/cashutil/src/app-utils/test/test-load-module,
+	  branches/cashutil/src/backend,
+	  branches/cashutil/src/backend/Makefile.am,
+	  branches/cashutil/src/backend/dwi,
+	  branches/cashutil/src/backend/dwi/qofmap.c,
+	  branches/cashutil/src/backend/dwi/qofmap.h,
+	  branches/cashutil/src/backend/file,
+	  branches/cashutil/src/backend/file/gnc-account-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-backend-file.c,
+	  branches/cashutil/src/backend/file/gnc-backend-file.h,
+	  branches/cashutil/src/backend/file/gnc-book-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-commodity-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-freqspec-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-lot-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-pricedb-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-recurrence-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-schedxaction-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-transaction-xml-v2.c,
+	  branches/cashutil/src/backend/file/gnc-xml-helper.h,
+	  branches/cashutil/src/backend/file/gnc-xml.h,
+	  branches/cashutil/src/backend/file/io-example-account.c,
+	  branches/cashutil/src/backend/file/io-example-account.h,
+	  branches/cashutil/src/backend/file/io-gncbin-r.c,
+	  branches/cashutil/src/backend/file/io-gncbin.h,
+	  branches/cashutil/src/backend/file/io-gncxml-gen.c,
+	  branches/cashutil/src/backend/file/io-gncxml-gen.h,
+	  branches/cashutil/src/backend/file/io-gncxml-v1.c,
+	  branches/cashutil/src/backend/file/io-gncxml-v2.c,
+	  branches/cashutil/src/backend/file/io-gncxml-v2.h,
+	  branches/cashutil/src/backend/file/io-gncxml.h,
+	  branches/cashutil/src/backend/file/io-utils.c,
+	  branches/cashutil/src/backend/file/io-utils.h,
+	  branches/cashutil/src/backend/file/sixtp-dom-generators.c,
+	  branches/cashutil/src/backend/file/sixtp-dom-generators.h,
+	  branches/cashutil/src/backend/file/sixtp-dom-parsers.c,
+	  branches/cashutil/src/backend/file/sixtp-dom-parsers.h,
+	  branches/cashutil/src/backend/file/sixtp-parsers.h,
+	  branches/cashutil/src/backend/file/sixtp-stack.c,
+	  branches/cashutil/src/backend/file/sixtp-stack.h,
+	  branches/cashutil/src/backend/file/sixtp-to-dom-parser.c,
+	  branches/cashutil/src/backend/file/sixtp-utils.c,
+	  branches/cashutil/src/backend/file/sixtp-utils.h,
+	  branches/cashutil/src/backend/file/sixtp.c,
+	  branches/cashutil/src/backend/file/sixtp.h,
+	  branches/cashutil/src/backend/file/test,
+	  branches/cashutil/src/backend/file/test/test-dom-converters1.c,
+	  branches/cashutil/src/backend/file/test/test-file-stuff.c,
+	  branches/cashutil/src/backend/file/test/test-file-stuff.h,
+	  branches/cashutil/src/backend/file/test/test-files,
+	  branches/cashutil/src/backend/file/test/test-files/xml1,
+	  branches/cashutil/src/backend/file/test/test-files/xml2,
+	  branches/cashutil/src/backend/file/test/test-kvp-frames.c,
+	  branches/cashutil/src/backend/file/test/test-load-backend.c,
+	  branches/cashutil/src/backend/file/test/test-load-example-account.c,
+	  branches/cashutil/src/backend/file/test/test-load-xml2.c,
+	  branches/cashutil/src/backend/file/test/test-save-in-lang.c,
+	  branches/cashutil/src/backend/file/test/test-xml-account.c,
+	  branches/cashutil/src/backend/file/test/test-xml-commodity.c,
+	  branches/cashutil/src/backend/file/test/test-xml-pricedb.c,
+	  branches/cashutil/src/backend/file/test/test-xml-transaction.c,
+	  branches/cashutil/src/backend/gnc-backend-api.h,
+	  branches/cashutil/src/backend/net,
+	  branches/cashutil/src/backend/postgres,
+	  branches/cashutil/src/backend/postgres/PostgresBackend.c,
+	  branches/cashutil/src/backend/postgres/PostgresBackend.h,
+	  branches/cashutil/src/backend/postgres/account.c,
+	  branches/cashutil/src/backend/postgres/account.h,
+	  branches/cashutil/src/backend/postgres/book.c,
+	  branches/cashutil/src/backend/postgres/book.h,
+	  branches/cashutil/src/backend/postgres/builder.c,
+	  branches/cashutil/src/backend/postgres/builder.h,
+	  branches/cashutil/src/backend/postgres/checkpoint.c,
+	  branches/cashutil/src/backend/postgres/checkpoint.h,
+	  branches/cashutil/src/backend/postgres/escape.c,
+	  branches/cashutil/src/backend/postgres/escape.h,
+	  branches/cashutil/src/backend/postgres/events.c,
+	  branches/cashutil/src/backend/postgres/events.h,
+	  branches/cashutil/src/backend/postgres/gncquery.c,
+	  branches/cashutil/src/backend/postgres/gncquery.h,
+	  branches/cashutil/src/backend/postgres/kvp-sql.c,
+	  branches/cashutil/src/backend/postgres/kvp-sql.h,
+	  branches/cashutil/src/backend/postgres/price.c,
+	  branches/cashutil/src/backend/postgres/price.h,
+	  branches/cashutil/src/backend/postgres/putil.c,
+	  branches/cashutil/src/backend/postgres/putil.h,
+	  branches/cashutil/src/backend/postgres/test,
+	  branches/cashutil/src/backend/postgres/test/Makefile.am,
+	  branches/cashutil/src/backend/postgres/test/test-db.c,
+	  branches/cashutil/src/backend/postgres/test/test-load-backend.c,
+	  branches/cashutil/src/backend/postgres/test/test-period.c,
+	  branches/cashutil/src/backend/postgres/txn.c,
+	  branches/cashutil/src/backend/postgres/txn.h,
+	  branches/cashutil/src/backend/postgres/txnmass.c,
+	  branches/cashutil/src/backend/postgres/txnmass.h,
+	  branches/cashutil/src/backend/postgres/upgrade.c,
+	  branches/cashutil/src/backend/postgres/upgrade.h,
+	  branches/cashutil/src/backend/qsf,
+	  branches/cashutil/src/backend/rpc,
+	  branches/cashutil/src/business,
+	  branches/cashutil/src/business/business-core,
+	  branches/cashutil/src/business/business-core/Makefile.am,
+	  branches/cashutil/src/business/business-core/businessmod-core.c,
+	  branches/cashutil/src/business/business-core/file,
+	  branches/cashutil/src/business/business-core/file/gnc-address-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-address-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-bill-term-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-bill-term-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-customer-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-customer-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-employee-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-employee-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-entry-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-entry-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-invoice-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-invoice-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-job-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-job-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-order-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-order-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-owner-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-owner-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-tax-table-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-tax-table-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gnc-vendor-xml-v2.c,
+	  branches/cashutil/src/business/business-core/file/gnc-vendor-xml-v2.h,
+	  branches/cashutil/src/business/business-core/file/gncmod-business-backend-file.c,
+	  branches/cashutil/src/business/business-core/gncAddress.c,
+	  branches/cashutil/src/business/business-core/gncAddress.h,
+	  branches/cashutil/src/business/business-core/gncAddressP.h,
+	  branches/cashutil/src/business/business-core/gncBillTerm.c,
+	  branches/cashutil/src/business/business-core/gncBillTerm.h,
+	  branches/cashutil/src/business/business-core/gncBillTermP.h,
+	  branches/cashutil/src/business/business-core/gncBusGuile.c,
+	  branches/cashutil/src/business/business-core/gncBusGuile.h,
+	  branches/cashutil/src/business/business-core/gncBusiness.c,
+	  branches/cashutil/src/business/business-core/gncBusiness.h,
+	  branches/cashutil/src/business/business-core/gncBusinessP.h,
+	  branches/cashutil/src/business/business-core/gncCustomer.c,
+	  branches/cashutil/src/business/business-core/gncCustomer.h,
+	  branches/cashutil/src/business/business-core/gncCustomerP.h,
+	  branches/cashutil/src/business/business-core/gncEmployee.c,
+	  branches/cashutil/src/business/business-core/gncEmployee.h,
+	  branches/cashutil/src/business/business-core/gncEmployeeP.h,
+	  branches/cashutil/src/business/business-core/gncEntry.c,
+	  branches/cashutil/src/business/business-core/gncEntry.h,
+	  branches/cashutil/src/business/business-core/gncEntryP.h,
+	  branches/cashutil/src/business/business-core/gncInvoice.c,
+	  branches/cashutil/src/business/business-core/gncInvoice.h,
+	  branches/cashutil/src/business/business-core/gncInvoiceP.h,
+	  branches/cashutil/src/business/business-core/gncJob.c,
+	  branches/cashutil/src/business/business-core/gncJob.h,
+	  branches/cashutil/src/business/business-core/gncJobP.h,
+	  branches/cashutil/src/business/business-core/gncOrder.c,
+	  branches/cashutil/src/business/business-core/gncOrder.h,
+	  branches/cashutil/src/business/business-core/gncOrderP.h,
+	  branches/cashutil/src/business/business-core/gncOwner.c,
+	  branches/cashutil/src/business/business-core/gncOwner.h,
+	  branches/cashutil/src/business/business-core/gncOwnerP.h,
+	  branches/cashutil/src/business/business-core/gncTaxTable.c,
+	  branches/cashutil/src/business/business-core/gncTaxTable.h,
+	  branches/cashutil/src/business/business-core/gncTaxTableP.h,
+	  branches/cashutil/src/business/business-core/gncVendor.c,
+	  branches/cashutil/src/business/business-core/gncVendor.h,
+	  branches/cashutil/src/business/business-core/gncVendorP.h,
+	  branches/cashutil/src/business/business-core/test,
+	  branches/cashutil/src/business/business-core/test/Makefile.am,
+	  branches/cashutil/src/business/business-core/test/test-address.c,
+	  branches/cashutil/src/business/business-core/test/test-business.c,
+	  branches/cashutil/src/business/business-core/test/test-customer.c,
+	  branches/cashutil/src/business/business-core/test/test-employee.c,
+	  branches/cashutil/src/business/business-core/test/test-job.c,
+	  branches/cashutil/src/business/business-core/test/test-load-module.c,
+	  branches/cashutil/src/business/business-core/test/test-vendor.c,
+	  branches/cashutil/src/business/business-gnome,
+	  branches/cashutil/src/business/business-gnome/Makefile.am,
+	  branches/cashutil/src/business/business-gnome/business-gnome-utils.c,
+	  branches/cashutil/src/business/business-gnome/business-gnome-utils.h,
+	  branches/cashutil/src/business/business-gnome/business-options-gnome.c,
+	  branches/cashutil/src/business/business-gnome/business-options-gnome.h,
+	  branches/cashutil/src/business/business-gnome/business-urls.c,
+	  branches/cashutil/src/business/business-gnome/business-urls.h,
+	  branches/cashutil/src/business/business-gnome/businessmod-gnome.c,
+	  branches/cashutil/src/business/business-gnome/dialog-billterms.c,
+	  branches/cashutil/src/business/business-gnome/dialog-billterms.h,
+	  branches/cashutil/src/business/business-gnome/dialog-customer.c,
+	  branches/cashutil/src/business/business-gnome/dialog-customer.h,
+	  branches/cashutil/src/business/business-gnome/dialog-date-close.c,
+	  branches/cashutil/src/business/business-gnome/dialog-date-close.h,
+	  branches/cashutil/src/business/business-gnome/dialog-employee.c,
+	  branches/cashutil/src/business/business-gnome/dialog-employee.h,
+	  branches/cashutil/src/business/business-gnome/dialog-invoice.c,
+	  branches/cashutil/src/business/business-gnome/dialog-invoice.h,
+	  branches/cashutil/src/business/business-gnome/dialog-job.c,
+	  branches/cashutil/src/business/business-gnome/dialog-job.h,
+	  branches/cashutil/src/business/business-gnome/dialog-order.c,
+	  branches/cashutil/src/business/business-gnome/dialog-order.h,
+	  branches/cashutil/src/business/business-gnome/dialog-payment.c,
+	  branches/cashutil/src/business/business-gnome/dialog-payment.h,
+	  branches/cashutil/src/business/business-gnome/dialog-vendor.c,
+	  branches/cashutil/src/business/business-gnome/dialog-vendor.h,
+	  branches/cashutil/src/business/business-gnome/glade,
+	  branches/cashutil/src/business/business-gnome/gnc-plugin-business.c,
+	  branches/cashutil/src/business/business-gnome/gnc-plugin-business.h,
+	  branches/cashutil/src/business/business-gnome/gnc-plugin-page-invoice.c,
+	  branches/cashutil/src/business/business-gnome/gnc-plugin-page-invoice.h,
+	  branches/cashutil/src/business/business-gnome/gw-business-gnome-spec.scm,
+	  branches/cashutil/src/business/business-gnome/schemas,
+	  branches/cashutil/src/business/business-gnome/search-owner.c,
+	  branches/cashutil/src/business/business-gnome/search-owner.h,
+	  branches/cashutil/src/business/business-gnome/ui,
+	  branches/cashutil/src/business/business-ledger,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedger.c,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedger.h,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerControl.c,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerControl.h,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerDisplay.c,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerLayout.c,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerLayout.h,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerLoad.c,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerModel.c,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerModel.h,
+	  branches/cashutil/src/business/business-ledger/gncEntryLedgerP.h,
+	  branches/cashutil/src/business/business-reports,
+	  branches/cashutil/src/business/business-reports/aging.scm,
+	  branches/cashutil/src/business/business-reports/business-reports.scm,
+	  branches/cashutil/src/business/business-reports/easy-invoice.scm,
+	  branches/cashutil/src/business/business-reports/fancy-invoice.scm,
+	  branches/cashutil/src/business/business-reports/invoice.scm,
+	  branches/cashutil/src/business/business-reports/owner-report.scm,
+	  branches/cashutil/src/business/business-reports/payables.scm,
+	  branches/cashutil/src/business/business-reports/receivables.scm,
+	  branches/cashutil/src/business/business-utils,
+	  branches/cashutil/src/business/business-utils/business-options.c,
+	  branches/cashutil/src/business/business-utils/business-options.h,
+	  branches/cashutil/src/business/business-utils/business-options.scm,
+	  branches/cashutil/src/business/business-utils/business-prefs.scm,
+	  branches/cashutil/src/business/business-utils/gncmod-business-utils.c,
+	  branches/cashutil/src/business/dialog-tax-table,
+	  branches/cashutil/src/business/dialog-tax-table/Makefile.am,
+	  branches/cashutil/src/business/dialog-tax-table/dialog-tax-table.c,
+	  branches/cashutil/src/business/dialog-tax-table/dialog-tax-table.h,
+	  branches/cashutil/src/business/dialog-tax-table/gncmod-dialog-tax-table.c,
+	  branches/cashutil/src/calculation,
+	  branches/cashutil/src/calculation/test,
+	  branches/cashutil/src/core-utils,
+	  branches/cashutil/src/core-utils/Makefile.am,
+	  branches/cashutil/src/core-utils/gnc-gconf-utils.c,
+	  branches/cashutil/src/core-utils/gnc-gconf-utils.h,
+	  branches/cashutil/src/core-utils/gnc-gdate-utils.c,
+	  branches/cashutil/src/core-utils/gnc-gdate-utils.h,
+	  branches/cashutil/src/core-utils/gnc-gkeyfile-utils.c,
+	  branches/cashutil/src/core-utils/gnc-gkeyfile-utils.h,
+	  branches/cashutil/src/core-utils/gnc-gobject-utils.c,
+	  branches/cashutil/src/core-utils/gnc-gobject-utils.h,
+	  branches/cashutil/src/doc, branches/cashutil/src/doc/design,
+	  branches/cashutil/src/doc/design/fdl.texinfo,
+	  branches/cashutil/src/doc/dia,
+	  branches/cashutil/src/doc/doxygen.cfg.in,
+	  branches/cashutil/src/doc/xml, branches/cashutil/src/engine,
+	  branches/cashutil/src/engine/Account.c,
+	  branches/cashutil/src/engine/Account.h,
+	  branches/cashutil/src/engine/AccountP.h,
+	  branches/cashutil/src/engine/FreqSpec.c,
+	  branches/cashutil/src/engine/FreqSpec.h,
+	  branches/cashutil/src/engine/FreqSpecP.h,
+	  branches/cashutil/src/engine/GNCId.h,
+	  branches/cashutil/src/engine/Group.c,
+	  branches/cashutil/src/engine/Group.h,
+	  branches/cashutil/src/engine/GroupP.h,
+	  branches/cashutil/src/engine/Makefile.am,
+	  branches/cashutil/src/engine/Period.c,
+	  branches/cashutil/src/engine/Period.h,
+	  branches/cashutil/src/engine/Query.c,
+	  branches/cashutil/src/engine/Query.h,
+	  branches/cashutil/src/engine/QueryCore.h,
+	  branches/cashutil/src/engine/QueryNew.h,
+	  branches/cashutil/src/engine/QueryObject.h,
+	  branches/cashutil/src/engine/QueryP.h,
+	  branches/cashutil/src/engine/Recurrence.c,
+	  branches/cashutil/src/engine/Recurrence.h,
+	  branches/cashutil/src/engine/SX-book-p.h,
+	  branches/cashutil/src/engine/SX-book.c,
+	  branches/cashutil/src/engine/SX-book.h,
+	  branches/cashutil/src/engine/SX-ttinfo.c,
+	  branches/cashutil/src/engine/SX-ttinfo.h,
+	  branches/cashutil/src/engine/SchedXaction.c,
+	  branches/cashutil/src/engine/SchedXaction.h,
+	  branches/cashutil/src/engine/SchedXactionP.h,
+	  branches/cashutil/src/engine/Scrub.c,
+	  branches/cashutil/src/engine/Scrub.h,
+	  branches/cashutil/src/engine/Scrub2.c,
+	  branches/cashutil/src/engine/Scrub2.h,
+	  branches/cashutil/src/engine/Scrub3.c,
+	  branches/cashutil/src/engine/Scrub3.h,
+	  branches/cashutil/src/engine/ScrubP.h,
+	  branches/cashutil/src/engine/TransLog.c,
+	  branches/cashutil/src/engine/TransLog.h,
+	  branches/cashutil/src/engine/Transaction.c,
+	  branches/cashutil/src/engine/Transaction.h,
+	  branches/cashutil/src/engine/TransactionP.h,
+	  branches/cashutil/src/engine/cap-gains.c,
+	  branches/cashutil/src/engine/cap-gains.h,
+	  branches/cashutil/src/engine/cashobjects.c,
+	  branches/cashutil/src/engine/cashobjects.h,
+	  branches/cashutil/src/engine/engine-helpers.c,
+	  branches/cashutil/src/engine/engine-helpers.h,
+	  branches/cashutil/src/engine/engine-interface.scm,
+	  branches/cashutil/src/engine/engine-utilities.scm,
+	  branches/cashutil/src/engine/glib-helpers.c,
+	  branches/cashutil/src/engine/glib-helpers.h,
+	  branches/cashutil/src/engine/gnc-associate-account.c,
+	  branches/cashutil/src/engine/gnc-associate-account.h,
+	  branches/cashutil/src/engine/gnc-book.h,
+	  branches/cashutil/src/engine/gnc-budget.c,
+	  branches/cashutil/src/engine/gnc-budget.h,
+	  branches/cashutil/src/engine/gnc-commodity.c,
+	  branches/cashutil/src/engine/gnc-commodity.h,
+	  branches/cashutil/src/engine/gnc-date.c,
+	  branches/cashutil/src/engine/gnc-date.h,
+	  branches/cashutil/src/engine/gnc-engine-util.c,
+	  branches/cashutil/src/engine/gnc-engine-util.h,
+	  branches/cashutil/src/engine/gnc-engine.c,
+	  branches/cashutil/src/engine/gnc-engine.h,
+	  branches/cashutil/src/engine/gnc-event-p.h,
+	  branches/cashutil/src/engine/gnc-event.c,
+	  branches/cashutil/src/engine/gnc-event.h,
+	  branches/cashutil/src/engine/gnc-filepath-utils.c,
+	  branches/cashutil/src/engine/gnc-filepath-utils.h,
+	  branches/cashutil/src/engine/gnc-hooks-scm.h,
+	  branches/cashutil/src/engine/gnc-hooks.c,
+	  branches/cashutil/src/engine/gnc-hooks.h,
+	  branches/cashutil/src/engine/gnc-lot-p.h,
+	  branches/cashutil/src/engine/gnc-lot.c,
+	  branches/cashutil/src/engine/gnc-lot.h,
+	  branches/cashutil/src/engine/gnc-numeric.c,
+	  branches/cashutil/src/engine/gnc-numeric.h,
+	  branches/cashutil/src/engine/gnc-numeric.scm,
+	  branches/cashutil/src/engine/gnc-pricedb-p.h,
+	  branches/cashutil/src/engine/gnc-pricedb.c,
+	  branches/cashutil/src/engine/gnc-pricedb.h,
+	  branches/cashutil/src/engine/gnc-session-scm.c,
+	  branches/cashutil/src/engine/gnc-session-scm.h,
+	  branches/cashutil/src/engine/gnc-session.h,
+	  branches/cashutil/src/engine/gnc-trace.c,
+	  branches/cashutil/src/engine/gnc-trace.h,
+	  branches/cashutil/src/engine/gncObject.h,
+	  branches/cashutil/src/engine/gncla-dir.h.in,
+	  branches/cashutil/src/engine/guid.c,
+	  branches/cashutil/src/engine/guid.h,
+	  branches/cashutil/src/engine/gw-engine-spec.scm,
+	  branches/cashutil/src/engine/gw-kvp-spec.scm,
+	  branches/cashutil/src/engine/kvp-scm.h,
+	  branches/cashutil/src/engine/kvp-util-p.h,
+	  branches/cashutil/src/engine/kvp-util.c,
+	  branches/cashutil/src/engine/kvp-util.h,
+	  branches/cashutil/src/engine/kvp_frame.c,
+	  branches/cashutil/src/engine/kvp_frame.h,
+	  branches/cashutil/src/engine/md5.c,
+	  branches/cashutil/src/engine/md5.h,
+	  branches/cashutil/src/engine/messages.c,
+	  branches/cashutil/src/engine/messages.h,
+	  branches/cashutil/src/engine/policy-p.h,
+	  branches/cashutil/src/engine/policy.c,
+	  branches/cashutil/src/engine/policy.h,
+	  branches/cashutil/src/engine/qof-be-utils.h,
+	  branches/cashutil/src/engine/qof.h,
+	  branches/cashutil/src/engine/qof_book_merge.c,
+	  branches/cashutil/src/engine/qof_book_merge.h,
+	  branches/cashutil/src/engine/qofbackend-p.h,
+	  branches/cashutil/src/engine/qofbackend.c,
+	  branches/cashutil/src/engine/qofbackend.h,
+	  branches/cashutil/src/engine/qofbook-p.h,
+	  branches/cashutil/src/engine/qofbook.c,
+	  branches/cashutil/src/engine/qofbook.h,
+	  branches/cashutil/src/engine/qofchoice.c,
+	  branches/cashutil/src/engine/qofchoice.h,
+	  branches/cashutil/src/engine/qofclass-p.h,
+	  branches/cashutil/src/engine/qofclass.c,
+	  branches/cashutil/src/engine/qofclass.h,
+	  branches/cashutil/src/engine/qofgobj.c,
+	  branches/cashutil/src/engine/qofgobj.h,
+	  branches/cashutil/src/engine/qofid-p.h,
+	  branches/cashutil/src/engine/qofid.c,
+	  branches/cashutil/src/engine/qofid.h,
+	  branches/cashutil/src/engine/qofinstance-p.h,
+	  branches/cashutil/src/engine/qofinstance.c,
+	  branches/cashutil/src/engine/qofinstance.h,
+	  branches/cashutil/src/engine/qofla-dir.h.in,
+	  branches/cashutil/src/engine/qofmath128.c,
+	  branches/cashutil/src/engine/qofmath128.h,
+	  branches/cashutil/src/engine/qofobject-p.h,
+	  branches/cashutil/src/engine/qofobject.c,
+	  branches/cashutil/src/engine/qofobject.h,
+	  branches/cashutil/src/engine/qofquery-deserial.c,
+	  branches/cashutil/src/engine/qofquery-deserial.h,
+	  branches/cashutil/src/engine/qofquery-p.h,
+	  branches/cashutil/src/engine/qofquery-serialize.c,
+	  branches/cashutil/src/engine/qofquery-serialize.h,
+	  branches/cashutil/src/engine/qofquery.c,
+	  branches/cashutil/src/engine/qofquery.h,
+	  branches/cashutil/src/engine/qofquerycore-p.h,
+	  branches/cashutil/src/engine/qofquerycore.c,
+	  branches/cashutil/src/engine/qofquerycore.h,
+	  branches/cashutil/src/engine/qofsession-p.h,
+	  branches/cashutil/src/engine/qofsession.c,
+	  branches/cashutil/src/engine/qofsession.h,
+	  branches/cashutil/src/engine/qofsql.c,
+	  branches/cashutil/src/engine/qofsql.h,
+	  branches/cashutil/src/engine/test,
+	  branches/cashutil/src/engine/test-core,
+	  branches/cashutil/src/engine/test-core/test-engine-stuff.c,
+	  branches/cashutil/src/engine/test-core/test-engine-stuff.h,
+	  branches/cashutil/src/engine/test/Makefile.am,
+	  branches/cashutil/src/engine/test/test-book-merge.c,
+	  branches/cashutil/src/engine/test/test-commodities.c,
+	  branches/cashutil/src/engine/test/test-freq-spec.c,
+	  branches/cashutil/src/engine/test/test-group-vs-book.c,
+	  branches/cashutil/src/engine/test/test-guid.c,
+	  branches/cashutil/src/engine/test/test-load-engine.c,
+	  branches/cashutil/src/engine/test/test-lots.c,
+	  branches/cashutil/src/engine/test/test-numeric.c,
+	  branches/cashutil/src/engine/test/test-object.c,
+	  branches/cashutil/src/engine/test/test-period.c,
+	  branches/cashutil/src/engine/test/test-query.c,
+	  branches/cashutil/src/engine/test/test-querynew.c,
+	  branches/cashutil/src/engine/test/test-recurrence.c,
+	  branches/cashutil/src/engine/test/test-resolve-file-path.c,
+	  branches/cashutil/src/engine/test/test-split-vs-account.c,
+	  branches/cashutil/src/engine/test/test-transaction-reversal.c,
+	  branches/cashutil/src/engine/test/test-transaction-voiding.c,
+	  branches/cashutil/src/experimental,
+	  branches/cashutil/src/experimental/cbb,
+	  branches/cashutil/src/experimental/cbb/cbb-engine,
+	  branches/cashutil/src/experimental/cgi-bin,
+	  branches/cashutil/src/experimental/gg,
+	  branches/cashutil/src/experimental/ofx,
+	  branches/cashutil/src/experimental/ofx/explore,
+	  branches/cashutil/src/gnc-module,
+	  branches/cashutil/src/gnc-module/Makefile.am,
+	  branches/cashutil/src/gnc-module/doc,
+	  branches/cashutil/src/gnc-module/gnc-module-api.h,
+	  branches/cashutil/src/gnc-module/gnc-module.c,
+	  branches/cashutil/src/gnc-module/gnc-module.h,
+	  branches/cashutil/src/gnc-module/test,
+	  branches/cashutil/src/gnc-module/test/misc-mods,
+	  branches/cashutil/src/gnc-module/test/mod-bar,
+	  branches/cashutil/src/gnc-module/test/mod-bar/Makefile.am,
+	  branches/cashutil/src/gnc-module/test/mod-bar/gnucash,
+	  branches/cashutil/src/gnc-module/test/mod-baz,
+	  branches/cashutil/src/gnc-module/test/mod-baz/Makefile.am,
+	  branches/cashutil/src/gnc-module/test/mod-baz/gnucash,
+	  branches/cashutil/src/gnc-module/test/mod-foo,
+	  branches/cashutil/src/gnc-module/test/mod-foo/Makefile.am,
+	  branches/cashutil/src/gnc-module/test/mod-foo/gnucash,
+	  branches/cashutil/src/gnome, branches/cashutil/src/gnome-search,
+	  branches/cashutil/src/gnome-search/dialog-search.c,
+	  branches/cashutil/src/gnome-search/dialog-search.h,
+	  branches/cashutil/src/gnome-search/gnc-general-search.c,
+	  branches/cashutil/src/gnome-search/gnc-general-search.h,
+	  branches/cashutil/src/gnome-search/gncmod-gnome-search.c,
+	  branches/cashutil/src/gnome-search/search-account.c,
+	  branches/cashutil/src/gnome-search/search-account.h,
+	  branches/cashutil/src/gnome-search/search-boolean.c,
+	  branches/cashutil/src/gnome-search/search-boolean.h,
+	  branches/cashutil/src/gnome-search/search-core-type.c,
+	  branches/cashutil/src/gnome-search/search-core-type.h,
+	  branches/cashutil/src/gnome-search/search-date.c,
+	  branches/cashutil/src/gnome-search/search-date.h,
+	  branches/cashutil/src/gnome-search/search-double.c,
+	  branches/cashutil/src/gnome-search/search-double.h,
+	  branches/cashutil/src/gnome-search/search-int64.c,
+	  branches/cashutil/src/gnome-search/search-int64.h,
+	  branches/cashutil/src/gnome-search/search-numeric.c,
+	  branches/cashutil/src/gnome-search/search-numeric.h,
+	  branches/cashutil/src/gnome-search/search-reconciled.c,
+	  branches/cashutil/src/gnome-search/search-reconciled.h,
+	  branches/cashutil/src/gnome-search/search-string.c,
+	  branches/cashutil/src/gnome-search/search-string.h,
+	  branches/cashutil/src/gnome-utils,
+	  branches/cashutil/src/gnome-utils/Makefile.am,
+	  branches/cashutil/src/gnome-utils/QuickFill.c,
+	  branches/cashutil/src/gnome-utils/QuickFill.h,
+	  branches/cashutil/src/gnome-utils/account-quickfill.c,
+	  branches/cashutil/src/gnome-utils/account-quickfill.h,
+	  branches/cashutil/src/gnome-utils/argv-list-converters.c,
+	  branches/cashutil/src/gnome-utils/argv-list-converters.h,
+	  branches/cashutil/src/gnome-utils/commodity.glade,
+	  branches/cashutil/src/gnome-utils/cursors.c,
+	  branches/cashutil/src/gnome-utils/dialog-account.c,
+	  branches/cashutil/src/gnome-utils/dialog-account.h,
+	  branches/cashutil/src/gnome-utils/dialog-commodity.c,
+	  branches/cashutil/src/gnome-utils/dialog-commodity.h,
+	  branches/cashutil/src/gnome-utils/dialog-exchange.h,
+	  branches/cashutil/src/gnome-utils/dialog-options.c,
+	  branches/cashutil/src/gnome-utils/dialog-options.h,
+	  branches/cashutil/src/gnome-utils/dialog-preferences.c,
+	  branches/cashutil/src/gnome-utils/dialog-preferences.h,
+	  branches/cashutil/src/gnome-utils/dialog-query-list.c,
+	  branches/cashutil/src/gnome-utils/dialog-query-list.h,
+	  branches/cashutil/src/gnome-utils/dialog-reset-warnings.c,
+	  branches/cashutil/src/gnome-utils/dialog-reset-warnings.h,
+	  branches/cashutil/src/gnome-utils/dialog-transfer.c,
+	  branches/cashutil/src/gnome-utils/dialog-transfer.h,
+	  branches/cashutil/src/gnome-utils/dialog-utils.c,
+	  branches/cashutil/src/gnome-utils/dialog-utils.h,
+	  branches/cashutil/src/gnome-utils/druid-gconf-setup.c,
+	  branches/cashutil/src/gnome-utils/druid-gconf-setup.glade,
+	  branches/cashutil/src/gnome-utils/druid-gconf-setup.h,
+	  branches/cashutil/src/gnome-utils/druid-utils.c,
+	  branches/cashutil/src/gnome-utils/druid-utils.h,
+	  branches/cashutil/src/gnome-utils/gnc-account-sel.c,
+	  branches/cashutil/src/gnome-utils/gnc-account-sel.h,
+	  branches/cashutil/src/gnome-utils/gnc-amount-edit.c,
+	  branches/cashutil/src/gnome-utils/gnc-amount-edit.h,
+	  branches/cashutil/src/gnome-utils/gnc-commodity-edit.c,
+	  branches/cashutil/src/gnome-utils/gnc-commodity-edit.h,
+	  branches/cashutil/src/gnome-utils/gnc-currency-edit.c,
+	  branches/cashutil/src/gnome-utils/gnc-currency-edit.h,
+	  branches/cashutil/src/gnome-utils/gnc-date-delta.c,
+	  branches/cashutil/src/gnome-utils/gnc-date-delta.h,
+	  branches/cashutil/src/gnome-utils/gnc-date-edit.c,
+	  branches/cashutil/src/gnome-utils/gnc-date-edit.h,
+	  branches/cashutil/src/gnome-utils/gnc-date-format.c,
+	  branches/cashutil/src/gnome-utils/gnc-date-format.glade,
+	  branches/cashutil/src/gnome-utils/gnc-date-format.h,
+	  branches/cashutil/src/gnome-utils/gnc-dense-cal.c,
+	  branches/cashutil/src/gnome-utils/gnc-dense-cal.h,
+	  branches/cashutil/src/gnome-utils/gnc-dialog.c,
+	  branches/cashutil/src/gnome-utils/gnc-dir.h.in,
+	  branches/cashutil/src/gnome-utils/gnc-druid-provider-file-gnome.c,
+	  branches/cashutil/src/gnome-utils/gnc-druid-provider-multifile-gnome.c,
+	  branches/cashutil/src/gnome-utils/gnc-embedded-window.c,
+	  branches/cashutil/src/gnome-utils/gnc-embedded-window.h,
+	  branches/cashutil/src/gnome-utils/gnc-file.c,
+	  branches/cashutil/src/gnome-utils/gnc-file.h,
+	  branches/cashutil/src/gnome-utils/gnc-frequency.c,
+	  branches/cashutil/src/gnome-utils/gnc-frequency.h,
+	  branches/cashutil/src/gnome-utils/gnc-general-select.c,
+	  branches/cashutil/src/gnome-utils/gnc-general-select.h,
+	  branches/cashutil/src/gnome-utils/gnc-gnome-utils.c,
+	  branches/cashutil/src/gnome-utils/gnc-gnome-utils.h,
+	  branches/cashutil/src/gnome-utils/gnc-gui-query.c,
+	  branches/cashutil/src/gnome-utils/gnc-gui-query.glade,
+	  branches/cashutil/src/gnome-utils/gnc-gui-query.h,
+	  branches/cashutil/src/gnome-utils/gnc-html-graph-gog.c,
+	  branches/cashutil/src/gnome-utils/gnc-html-guppi.c,
+	  branches/cashutil/src/gnome-utils/gnc-html-guppi.h,
+	  branches/cashutil/src/gnome-utils/gnc-html-history.c,
+	  branches/cashutil/src/gnome-utils/gnc-html-history.h,
+	  branches/cashutil/src/gnome-utils/gnc-html.c,
+	  branches/cashutil/src/gnome-utils/gnc-html.h,
+	  branches/cashutil/src/gnome-utils/gnc-icons.c,
+	  branches/cashutil/src/gnome-utils/gnc-main-window.c,
+	  branches/cashutil/src/gnome-utils/gnc-main-window.h,
+	  branches/cashutil/src/gnome-utils/gnc-menu-extensions.c,
+	  branches/cashutil/src/gnome-utils/gnc-menu-extensions.h,
+	  branches/cashutil/src/gnome-utils/gnc-menu-extensions.scm,
+	  branches/cashutil/src/gnome-utils/gnc-period-select.c,
+	  branches/cashutil/src/gnome-utils/gnc-period-select.h,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-file-history.c,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-file-history.h,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-manager.c,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-manager.h,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-menu-additions.c,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-menu-additions.h,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-page.c,
+	  branches/cashutil/src/gnome-utils/gnc-plugin-page.h,
+	  branches/cashutil/src/gnome-utils/gnc-plugin.c,
+	  branches/cashutil/src/gnome-utils/gnc-plugin.h,
+	  branches/cashutil/src/gnome-utils/gnc-query-list.c,
+	  branches/cashutil/src/gnome-utils/gnc-query-list.h,
+	  branches/cashutil/src/gnome-utils/gnc-recurrence.c,
+	  branches/cashutil/src/gnome-utils/gnc-splash.c,
+	  branches/cashutil/src/gnome-utils/gnc-splash.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-account-types.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-account-types.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-account.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-account.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-budget.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-budget.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-commodity.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-commodity.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-example-account.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-example-account.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-price.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-price.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-selection.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model-selection.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-model.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view-account.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view-account.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view-commodity.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view-commodity.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view-price.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view-price.h,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view.c,
+	  branches/cashutil/src/gnome-utils/gnc-tree-view.h,
+	  branches/cashutil/src/gnome-utils/gnc-window.c,
+	  branches/cashutil/src/gnome-utils/gnc-window.h,
+	  branches/cashutil/src/gnome-utils/gncmod-gnome-utils.c,
+	  branches/cashutil/src/gnome-utils/gnome-utils.scm,
+	  branches/cashutil/src/gnome-utils/gw-gnome-utils-spec.scm,
+	  branches/cashutil/src/gnome-utils/misc-gnome-utils.c,
+	  branches/cashutil/src/gnome-utils/misc-gnome-utils.h,
+	  branches/cashutil/src/gnome-utils/preferences.glade,
+	  branches/cashutil/src/gnome-utils/print-session.c,
+	  branches/cashutil/src/gnome-utils/print-session.h,
+	  branches/cashutil/src/gnome-utils/schemas,
+	  branches/cashutil/src/gnome-utils/search-param.c,
+	  branches/cashutil/src/gnome-utils/search-param.h,
+	  branches/cashutil/src/gnome-utils/test,
+	  branches/cashutil/src/gnome-utils/test/Makefile.am,
+	  branches/cashutil/src/gnome-utils/test/test-gnc-dialog.c,
+	  branches/cashutil/src/gnome-utils/test/test-gnc-recurrence.c,
+	  branches/cashutil/src/gnome-utils/transfer.glade,
+	  branches/cashutil/src/gnome-utils/ui,
+	  branches/cashutil/src/gnome-utils/ui/gnc-main-window-ui.xml,
+	  branches/cashutil/src/gnome/Makefile.am,
+	  branches/cashutil/src/gnome/dialog-chart-export.c,
+	  branches/cashutil/src/gnome/dialog-chart-export.h,
+	  branches/cashutil/src/gnome/dialog-commodities.c,
+	  branches/cashutil/src/gnome/dialog-fincalc.c,
+	  branches/cashutil/src/gnome/dialog-fincalc.h,
+	  branches/cashutil/src/gnome/dialog-find-transactions.c,
+	  branches/cashutil/src/gnome/dialog-find-transactions.h,
+	  branches/cashutil/src/gnome/dialog-new-user.c,
+	  branches/cashutil/src/gnome/dialog-new-user.h,
+	  branches/cashutil/src/gnome/dialog-price-edit-db.c,
+	  branches/cashutil/src/gnome/dialog-price-editor.c,
+	  branches/cashutil/src/gnome/dialog-print-check.c,
+	  branches/cashutil/src/gnome/dialog-print-check.h,
+	  branches/cashutil/src/gnome/dialog-progress.c,
+	  branches/cashutil/src/gnome/dialog-progress.h,
+	  branches/cashutil/src/gnome/dialog-scheduledxaction.c,
+	  branches/cashutil/src/gnome/dialog-scheduledxaction.h,
+	  branches/cashutil/src/gnome/dialog-sx-from-trans.c,
+	  branches/cashutil/src/gnome/dialog-sx-from-trans.h,
+	  branches/cashutil/src/gnome/dialog-sxsincelast.c,
+	  branches/cashutil/src/gnome/dialog-sxsincelast.h,
+	  branches/cashutil/src/gnome/dialog-tax-info.c,
+	  branches/cashutil/src/gnome/dialog-totd.c,
+	  branches/cashutil/src/gnome/dialog-totd.h,
+	  branches/cashutil/src/gnome/dialog-userpass.c,
+	  branches/cashutil/src/gnome/druid-acct-period.c,
+	  branches/cashutil/src/gnome/druid-acct-period.h,
+	  branches/cashutil/src/gnome/druid-hierarchy.c,
+	  branches/cashutil/src/gnome/druid-hierarchy.h,
+	  branches/cashutil/src/gnome/druid-loan.c,
+	  branches/cashutil/src/gnome/druid-loan.h,
+	  branches/cashutil/src/gnome/druid-merge.c,
+	  branches/cashutil/src/gnome/druid-merge.h,
+	  branches/cashutil/src/gnome/druid-stock-split.c,
+	  branches/cashutil/src/gnome/druid-stock-split.h,
+	  branches/cashutil/src/gnome/glade,
+	  branches/cashutil/src/gnome/glade/account.glade,
+	  branches/cashutil/src/gnome/glade/budget.glade,
+	  branches/cashutil/src/gnome/glade/commodities.glade,
+	  branches/cashutil/src/gnome/glade/merge.glade,
+	  branches/cashutil/src/gnome/glade/price.glade,
+	  branches/cashutil/src/gnome/glade/print.glade,
+	  branches/cashutil/src/gnome/glade/reconcile.glade,
+	  branches/cashutil/src/gnome/glade/register.glade,
+	  branches/cashutil/src/gnome/glade/sched-xact.glade,
+	  branches/cashutil/src/gnome/glade/totd.glade,
+	  branches/cashutil/src/gnome/glade/userpass.glade,
+	  branches/cashutil/src/gnome/gnc-plugin-account-tree.c,
+	  branches/cashutil/src/gnome/gnc-plugin-account-tree.h,
+	  branches/cashutil/src/gnome/gnc-plugin-basic-commands.c,
+	  branches/cashutil/src/gnome/gnc-plugin-basic-commands.h,
+	  branches/cashutil/src/gnome/gnc-plugin-budget.c,
+	  branches/cashutil/src/gnome/gnc-plugin-budget.h,
+	  branches/cashutil/src/gnome/gnc-plugin-page-account-tree.c,
+	  branches/cashutil/src/gnome/gnc-plugin-page-account-tree.h,
+	  branches/cashutil/src/gnome/gnc-plugin-page-budget.c,
+	  branches/cashutil/src/gnome/gnc-plugin-page-budget.h,
+	  branches/cashutil/src/gnome/gnc-plugin-page-register.c,
+	  branches/cashutil/src/gnome/gnc-plugin-page-register.h,
+	  branches/cashutil/src/gnome/gnc-plugin-register.c,
+	  branches/cashutil/src/gnome/gnc-plugin-register.h,
+	  branches/cashutil/src/gnome/gnc-split-reg.c,
+	  branches/cashutil/src/gnome/gnc-split-reg.h,
+	  branches/cashutil/src/gnome/gw-gnc-spec.scm,
+	  branches/cashutil/src/gnome/lot-viewer.c,
+	  branches/cashutil/src/gnome/lot-viewer.h,
+	  branches/cashutil/src/gnome/reconcile-list.c,
+	  branches/cashutil/src/gnome/reconcile-list.h,
+	  branches/cashutil/src/gnome/schemas,
+	  branches/cashutil/src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas,
+	  branches/cashutil/src/gnome/top-level.c,
+	  branches/cashutil/src/gnome/top-level.h,
+	  branches/cashutil/src/gnome/ui,
+	  branches/cashutil/src/gnome/ui/gnc-plugin-basic-commands-ui.xml,
+	  branches/cashutil/src/gnome/ui/gnc-plugin-page-budget-ui.xml,
+	  branches/cashutil/src/gnome/ui/gnc-plugin-page-register-ui.xml,
+	  branches/cashutil/src/gnome/window-main-summarybar.c,
+	  branches/cashutil/src/gnome/window-main-summarybar.h,
+	  branches/cashutil/src/gnome/window-reconcile.c,
+	  branches/cashutil/src/gnome/window-reconcile.h,
+	  branches/cashutil/src/import-export,
+	  branches/cashutil/src/import-export/binary-import,
+	  branches/cashutil/src/import-export/binary-import/druid-commodity.c,
+	  branches/cashutil/src/import-export/binary-import/druid-commodity.h,
+	  branches/cashutil/src/import-export/binary-import/test,
+	  branches/cashutil/src/import-export/csv,
+	  branches/cashutil/src/import-export/csv/gnc-csv2glist.c,
+	  branches/cashutil/src/import-export/csv/gnc-csv2glist.h,
+	  branches/cashutil/src/import-export/csv/test,
+	  branches/cashutil/src/import-export/generic-import.glade,
+	  branches/cashutil/src/import-export/gnc-import-format-gnome.c,
+	  branches/cashutil/src/import-export/hbci,
+	  branches/cashutil/src/import-export/hbci/Makefile.am,
+	  branches/cashutil/src/import-export/hbci/dialog-daterange.c,
+	  branches/cashutil/src/import-export/hbci/dialog-daterange.h,
+	  branches/cashutil/src/import-export/hbci/dialog-hbcitrans.c,
+	  branches/cashutil/src/import-export/hbci/dialog-hbcitrans.h,
+	  branches/cashutil/src/import-export/hbci/dialog-pass.c,
+	  branches/cashutil/src/import-export/hbci/dialog-pass.h,
+	  branches/cashutil/src/import-export/hbci/druid-hbci-initial.c,
+	  branches/cashutil/src/import-export/hbci/druid-hbci-initial.h,
+	  branches/cashutil/src/import-export/hbci/druid-hbci-utils.c,
+	  branches/cashutil/src/import-export/hbci/druid-hbci-utils.h,
+	  branches/cashutil/src/import-export/hbci/glade,
+	  branches/cashutil/src/import-export/hbci/glade/hbci.glade,
+	  branches/cashutil/src/import-export/hbci/glade/hbcipass.glade,
+	  branches/cashutil/src/import-export/hbci/glade/hbciprefs.glade,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-actions.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-actions.h,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-getbalance.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-getbalance.h,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-gettrans.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-gettrans.h,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-kvp.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-kvp.h,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-trans-templ.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-trans-templ.h,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-transfer.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-transfer.h,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-utils.c,
+	  branches/cashutil/src/import-export/hbci/gnc-hbci-utils.h,
+	  branches/cashutil/src/import-export/hbci/gnc-plugin-hbci.c,
+	  branches/cashutil/src/import-export/hbci/gnc-plugin-hbci.h,
+	  branches/cashutil/src/import-export/hbci/gncmod-hbci.c,
+	  branches/cashutil/src/import-export/hbci/hbci-interaction.c,
+	  branches/cashutil/src/import-export/hbci/hbci-interaction.h,
+	  branches/cashutil/src/import-export/hbci/hbci-interactionP.h,
+	  branches/cashutil/src/import-export/hbci/schemas,
+	  branches/cashutil/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas,
+	  branches/cashutil/src/import-export/hbci/test,
+	  branches/cashutil/src/import-export/import-account-matcher.c,
+	  branches/cashutil/src/import-export/import-account-matcher.h,
+	  branches/cashutil/src/import-export/import-backend.c,
+	  branches/cashutil/src/import-export/import-backend.h,
+	  branches/cashutil/src/import-export/import-commodity-matcher.c,
+	  branches/cashutil/src/import-export/import-commodity-matcher.h,
+	  branches/cashutil/src/import-export/import-format-dialog.c,
+	  branches/cashutil/src/import-export/import-main-matcher.c,
+	  branches/cashutil/src/import-export/import-main-matcher.h,
+	  branches/cashutil/src/import-export/import-match-map.c,
+	  branches/cashutil/src/import-export/import-match-map.h,
+	  branches/cashutil/src/import-export/import-match-picker.c,
+	  branches/cashutil/src/import-export/import-match-picker.h,
+	  branches/cashutil/src/import-export/import-parse.c,
+	  branches/cashutil/src/import-export/import-parse.h,
+	  branches/cashutil/src/import-export/import-settings.c,
+	  branches/cashutil/src/import-export/import-settings.h,
+	  branches/cashutil/src/import-export/import-utilities.c,
+	  branches/cashutil/src/import-export/import-utilities.h,
+	  branches/cashutil/src/import-export/log-replay,
+	  branches/cashutil/src/import-export/log-replay/gnc-log-replay.c,
+	  branches/cashutil/src/import-export/log-replay/gnc-log-replay.h,
+	  branches/cashutil/src/import-export/log-replay/gnc-plugin-log-replay.c,
+	  branches/cashutil/src/import-export/log-replay/gnc-plugin-log-replay.h,
+	  branches/cashutil/src/import-export/log-replay/gncmod-log-replay.c,
+	  branches/cashutil/src/import-export/mt940,
+	  branches/cashutil/src/import-export/mt940/gnc-mt940-import.c,
+	  branches/cashutil/src/import-export/mt940/gnc-mt940-import.h,
+	  branches/cashutil/src/import-export/mt940/gnc-plugin-mt940.c,
+	  branches/cashutil/src/import-export/mt940/gnc-plugin-mt940.h,
+	  branches/cashutil/src/import-export/mt940/gncmod-mt940-import.c,
+	  branches/cashutil/src/import-export/ofx,
+	  branches/cashutil/src/import-export/ofx/Makefile.am,
+	  branches/cashutil/src/import-export/ofx/gnc-ofx-import.c,
+	  branches/cashutil/src/import-export/ofx/gnc-ofx-import.h,
+	  branches/cashutil/src/import-export/ofx/gnc-plugin-ofx.c,
+	  branches/cashutil/src/import-export/ofx/gnc-plugin-ofx.h,
+	  branches/cashutil/src/import-export/ofx/gncmod-ofx-import.c,
+	  branches/cashutil/src/import-export/ofx/test,
+	  branches/cashutil/src/import-export/qif,
+	  branches/cashutil/src/import-export/qif-import,
+	  branches/cashutil/src/import-export/qif-import/dialog-account-picker.c,
+	  branches/cashutil/src/import-export/qif-import/dialog-account-picker.h,
+	  branches/cashutil/src/import-export/qif-import/druid-qif-import.c,
+	  branches/cashutil/src/import-export/qif-import/druid-qif-import.h,
+	  branches/cashutil/src/import-export/qif-import/gnc-plugin-qif-import.c,
+	  branches/cashutil/src/import-export/qif-import/gnc-plugin-qif-import.h,
+	  branches/cashutil/src/import-export/qif-import/qif-file.scm,
+	  branches/cashutil/src/import-export/qif-import/qif-guess-map.scm,
+	  branches/cashutil/src/import-export/qif-import/qif-merge-groups.scm,
+	  branches/cashutil/src/import-export/qif-import/qif-to-gnc.scm,
+	  branches/cashutil/src/import-export/qif-import/test,
+	  branches/cashutil/src/import-export/qif-io-core,
+	  branches/cashutil/src/import-export/qif-io-core/test,
+	  branches/cashutil/src/import-export/qif-io-core/test/data,
+	  branches/cashutil/src/import-export/qif/qif-context.c,
+	  branches/cashutil/src/import-export/qif/qif-defaults.c,
+	  branches/cashutil/src/import-export/qif/qif-defaults.h,
+	  branches/cashutil/src/import-export/qif/qif-file.c,
+	  branches/cashutil/src/import-export/qif/qif-file.h,
+	  branches/cashutil/src/import-export/qif/qif-import-p.h,
+	  branches/cashutil/src/import-export/qif/qif-import.h,
+	  branches/cashutil/src/import-export/qif/qif-objects-p.h,
+	  branches/cashutil/src/import-export/qif/qif-objects.c,
+	  branches/cashutil/src/import-export/qif/qif-objects.h,
+	  branches/cashutil/src/import-export/qif/qif-parse.c,
+	  branches/cashutil/src/import-export/qif/qif-parse.h,
+	  branches/cashutil/src/import-export/qif/test,
+	  branches/cashutil/src/import-export/qif/test/Makefile.am,
+	  branches/cashutil/src/import-export/qif/test/test-files,
+	  branches/cashutil/src/import-export/qif/test/test-qif.c,
+	  branches/cashutil/src/import-export/schemas,
+	  branches/cashutil/src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas,
+	  branches/cashutil/src/import-export/test,
+	  branches/cashutil/src/import-export/test/Makefile.am,
+	  branches/cashutil/src/import-export/test/test-import-parse.c,
+	  branches/cashutil/src/network-utils,
+	  branches/cashutil/src/network-utils/gnc-gpg.c,
+	  branches/cashutil/src/network-utils/gnc-gpg.h,
+	  branches/cashutil/src/network-utils/gnc-http.c,
+	  branches/cashutil/src/network-utils/gnc-http.h,
+	  branches/cashutil/src/network-utils/test,
+	  branches/cashutil/src/optional,
+	  branches/cashutil/src/optional/swig,
+	  branches/cashutil/src/optional/swig/examples,
+	  branches/cashutil/src/pixmaps, branches/cashutil/src/quotes,
+	  branches/cashutil/src/quotes/dump-finance-quote,
+	  branches/cashutil/src/quotes/finance-quote-check.in,
+	  branches/cashutil/src/quotes/finance-quote-helper.in,
+	  branches/cashutil/src/quotes/update-finance-quote.in,
+	  branches/cashutil/src/register,
+	  branches/cashutil/src/register/ledger-core,
+	  branches/cashutil/src/register/ledger-core/dialog-dup-trans.c,
+	  branches/cashutil/src/register/ledger-core/gnc-ledger-display.c,
+	  branches/cashutil/src/register/ledger-core/split-register-control.c,
+	  branches/cashutil/src/register/ledger-core/split-register-control.h,
+	  branches/cashutil/src/register/ledger-core/split-register-layout.c,
+	  branches/cashutil/src/register/ledger-core/split-register-layout.h,
+	  branches/cashutil/src/register/ledger-core/split-register-load.c,
+	  branches/cashutil/src/register/ledger-core/split-register-model-save.c,
+	  branches/cashutil/src/register/ledger-core/split-register-model-save.h,
+	  branches/cashutil/src/register/ledger-core/split-register-model.c,
+	  branches/cashutil/src/register/ledger-core/split-register-model.h,
+	  branches/cashutil/src/register/ledger-core/split-register-p.h,
+	  branches/cashutil/src/register/ledger-core/split-register-util.c,
+	  branches/cashutil/src/register/ledger-core/split-register.c,
+	  branches/cashutil/src/register/ledger-core/split-register.h,
+	  branches/cashutil/src/register/ledger-core/test,
+	  branches/cashutil/src/register/register-core,
+	  branches/cashutil/src/register/register-core/Makefile.am,
+	  branches/cashutil/src/register/register-core/basiccell.c,
+	  branches/cashutil/src/register/register-core/basiccell.h,
+	  branches/cashutil/src/register/register-core/cell-factory.c,
+	  branches/cashutil/src/register/register-core/cell-factory.h,
+	  branches/cashutil/src/register/register-core/cellblock.c,
+	  branches/cashutil/src/register/register-core/cellblock.h,
+	  branches/cashutil/src/register/register-core/checkboxcell.c,
+	  branches/cashutil/src/register/register-core/checkboxcell.h,
+	  branches/cashutil/src/register/register-core/combocell.h,
+	  branches/cashutil/src/register/register-core/datecell.h,
+	  branches/cashutil/src/register/register-core/formulacell.c,
+	  branches/cashutil/src/register/register-core/formulacell.h,
+	  branches/cashutil/src/register/register-core/gtable.c,
+	  branches/cashutil/src/register/register-core/gtable.h,
+	  branches/cashutil/src/register/register-core/numcell.c,
+	  branches/cashutil/src/register/register-core/numcell.h,
+	  branches/cashutil/src/register/register-core/pricecell.c,
+	  branches/cashutil/src/register/register-core/pricecell.h,
+	  branches/cashutil/src/register/register-core/quickfillcell.c,
+	  branches/cashutil/src/register/register-core/quickfillcell.h,
+	  branches/cashutil/src/register/register-core/recncell.c,
+	  branches/cashutil/src/register/register-core/recncell.h,
+	  branches/cashutil/src/register/register-core/register-common.c,
+	  branches/cashutil/src/register/register-core/register-common.h,
+	  branches/cashutil/src/register/register-core/table-allgui.c,
+	  branches/cashutil/src/register/register-core/table-allgui.h,
+	  branches/cashutil/src/register/register-core/table-control.c,
+	  branches/cashutil/src/register/register-core/table-control.h,
+	  branches/cashutil/src/register/register-core/table-layout.c,
+	  branches/cashutil/src/register/register-core/table-layout.h,
+	  branches/cashutil/src/register/register-core/table-model.c,
+	  branches/cashutil/src/register/register-core/table-model.h,
+	  branches/cashutil/src/register/register-core/test,
+	  branches/cashutil/src/register/register-gnome,
+	  branches/cashutil/src/register/register-gnome/combocell-gnome.c,
+	  branches/cashutil/src/register/register-gnome/datecell-gnome.c,
+	  branches/cashutil/src/register/register-gnome/formulacell-gnome.c,
+	  branches/cashutil/src/register/register-gnome/formulacell-gnome.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-color.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-color.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-cursor.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-cursor.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-date-picker.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-date-picker.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-grid.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-grid.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-header.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-header.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-item-edit.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-item-edit.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-item-list.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-item-list.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-scrolled-window.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-scrolled-window.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-sheet.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-sheet.h,
+	  branches/cashutil/src/register/register-gnome/gnucash-style.c,
+	  branches/cashutil/src/register/register-gnome/gnucash-style.h,
+	  branches/cashutil/src/register/register-gnome/pricecell-gnome.c,
+	  branches/cashutil/src/register/register-gnome/pricecell-gnome.h,
+	  branches/cashutil/src/register/register-gnome/quickfillcell-gnome.c,
+	  branches/cashutil/src/register/register-gnome/quickfillcell-gnome.h,
+	  branches/cashutil/src/register/register-gnome/table-gnome.c,
+	  branches/cashutil/src/register/register-gnome/table-gnome.h,
+	  branches/cashutil/src/register/register-gnome/test,
+	  branches/cashutil/src/report,
+	  branches/cashutil/src/report/locale-specific,
+	  branches/cashutil/src/report/locale-specific/us,
+	  branches/cashutil/src/report/locale-specific/us/test,
+	  branches/cashutil/src/report/locale-specific/us/test/Makefile.am,
+	  branches/cashutil/src/report/report-gnome,
+	  branches/cashutil/src/report/report-gnome/Makefile.am,
+	  branches/cashutil/src/report/report-gnome/dialog-column-view.c,
+	  branches/cashutil/src/report/report-gnome/dialog-column-view.h,
+	  branches/cashutil/src/report/report-gnome/dialog-style-sheet.c,
+	  branches/cashutil/src/report/report-gnome/dialog-style-sheet.h,
+	  branches/cashutil/src/report/report-gnome/gnc-plugin-page-report-ui.xml,
+	  branches/cashutil/src/report/report-gnome/gnc-plugin-page-report.c,
+	  branches/cashutil/src/report/report-gnome/gnc-plugin-page-report.h,
+	  branches/cashutil/src/report/report-gnome/gncmod-report-gnome.c,
+	  branches/cashutil/src/report/report-gnome/gw-report-gnome-spec.scm,
+	  branches/cashutil/src/report/report-gnome/report-gnome.scm,
+	  branches/cashutil/src/report/report-gnome/report.glade,
+	  branches/cashutil/src/report/report-gnome/test,
+	  branches/cashutil/src/report/report-gnome/window-report.c,
+	  branches/cashutil/src/report/report-gnome/window-report.h,
+	  branches/cashutil/src/report/report-system,
+	  branches/cashutil/src/report/report-system/commodity-utilities.scm,
+	  branches/cashutil/src/report/report-system/doc,
+	  branches/cashutil/src/report/report-system/gnc-report.c,
+	  branches/cashutil/src/report/report-system/gnc-report.h,
+	  branches/cashutil/src/report/report-system/html-acct-table.scm,
+	  branches/cashutil/src/report/report-system/html-barchart.scm,
+	  branches/cashutil/src/report/report-system/html-document.scm,
+	  branches/cashutil/src/report/report-system/html-piechart.scm,
+	  branches/cashutil/src/report/report-system/html-scatter.scm,
+	  branches/cashutil/src/report/report-system/html-style-info.scm,
+	  branches/cashutil/src/report/report-system/html-style-sheet.scm,
+	  branches/cashutil/src/report/report-system/html-table.scm,
+	  branches/cashutil/src/report/report-system/html-text.scm,
+	  branches/cashutil/src/report/report-system/html-utilities.scm,
+	  branches/cashutil/src/report/report-system/options-utilities.scm,
+	  branches/cashutil/src/report/report-system/report-utilities.scm,
+	  branches/cashutil/src/report/report-system/report.scm,
+	  branches/cashutil/src/report/report-system/test,
+	  branches/cashutil/src/report/report-system/test/Makefile.am,
+	  branches/cashutil/src/report/standard-reports,
+	  branches/cashutil/src/report/standard-reports/account-piecharts.scm,
+	  branches/cashutil/src/report/standard-reports/account-summary.scm,
+	  branches/cashutil/src/report/standard-reports/advanced-portfolio.scm,
+	  branches/cashutil/src/report/standard-reports/balance-sheet.scm,
+	  branches/cashutil/src/report/standard-reports/cash-flow.scm,
+	  branches/cashutil/src/report/standard-reports/category-barchart.scm,
+	  branches/cashutil/src/report/standard-reports/daily-reports.scm,
+	  branches/cashutil/src/report/standard-reports/equity-statement.scm,
+	  branches/cashutil/src/report/standard-reports/general-journal.scm,
+	  branches/cashutil/src/report/standard-reports/general-ledger.scm,
+	  branches/cashutil/src/report/standard-reports/income-statement.scm,
+	  branches/cashutil/src/report/standard-reports/net-barchart.scm,
+	  branches/cashutil/src/report/standard-reports/portfolio.scm,
+	  branches/cashutil/src/report/standard-reports/price-scatter.scm,
+	  branches/cashutil/src/report/standard-reports/test,
+	  branches/cashutil/src/report/standard-reports/test/Makefile.am,
+	  branches/cashutil/src/report/standard-reports/transaction.scm,
+	  branches/cashutil/src/report/standard-reports/trial-balance.scm,
+	  branches/cashutil/src/report/stylesheets,
+	  branches/cashutil/src/report/stylesheets/gnc-plugin-stylesheets.c,
+	  branches/cashutil/src/report/stylesheets/gnc-plugin-stylesheets.h,
+	  branches/cashutil/src/report/stylesheets/gncmod-stylesheets.c,
+	  branches/cashutil/src/report/stylesheets/stylesheet-easy.scm,
+	  branches/cashutil/src/report/stylesheets/stylesheet-fancy.scm,
+	  branches/cashutil/src/report/stylesheets/stylesheet-plain.scm,
+	  branches/cashutil/src/report/stylesheets/test,
+	  branches/cashutil/src/report/stylesheets/test/Makefile.am,
+	  branches/cashutil/src/report/utility-reports,
+	  branches/cashutil/src/report/utility-reports/test,
+	  branches/cashutil/src/report/utility-reports/test/Makefile.am,
+	  branches/cashutil/src/report/utility-reports/view-column.scm,
+	  branches/cashutil/src/report/utility-reports/welcome-to-gnucash.scm,
+	  branches/cashutil/src/scm,
+	  branches/cashutil/src/scm/command-line.scm,
+	  branches/cashutil/src/scm/doc.scm,
+	  branches/cashutil/src/scm/fin.scm,
+	  branches/cashutil/src/scm/gnumeric,
+	  branches/cashutil/src/scm/main-window.scm,
+	  branches/cashutil/src/scm/main.scm,
+	  branches/cashutil/src/scm/path.scm,
+	  branches/cashutil/src/scm/price-quotes.scm,
+	  branches/cashutil/src/scm/printing,
+	  branches/cashutil/src/scm/process.scm,
+	  branches/cashutil/src/scm/xml-generator.scm,
+	  branches/cashutil/src/tax, branches/cashutil/src/tax/us,
+	  branches/cashutil/src/tax/us/test,
+	  branches/cashutil/src/test-core: merging trunk changes into
+	  cashutil branch
+
+2006-01-03 09:15  codehelp
+
+	* [r12242] branches/cashutil/src/bin,
+	  branches/cashutil/src/bin/Makefile.am,
+	  branches/cashutil/src/bin/gnucash2.c,
+	  branches/cashutil/src/bin/overrides,
+	  branches/cashutil/src/bin/qof-main.c,
+	  branches/cashutil/src/bin/qof-main.h,
+	  branches/cashutil/src/bin/test: gnucash2 - test C start-up
+	  routine
+
+2006-01-03 04:02  hampton
+
+	* [r12241] trunk/ChangeLog, trunk/src/gnome/dialog-totd.c,
+	  trunk/src/gnome/glade/totd.glade: Use the component manager to
+	  ensure there is only one totd dialog at a time. Don't mark the
+	  dialog as transient (or type GTK_WINDOW_DIALOG) so that window
+	  managers won't make it float above all other GnuCash windows.
+
+2006-01-03 02:44  hampton
+
+	* [r12240] trunk/ChangeLog, trunk/src/engine/Transaction.c: Fix
+	  test inverted by commit 12231.
+
+2006-01-03 01:08  hampton
+
+	* [r12239] trunk/ChangeLog, trunk/src/gnome-utils/Makefile.am,
+	  trunk/src/gnome-utils/gnc-tree-model-example-account.c,
+	  trunk/src/gnome-utils/gnc-tree-model-example-account.h: Remove
+	  unused files.
+
+2006-01-03 01:06  hampton
+
+	* [r12238] trunk/ChangeLog, trunk/GNOME2_STATUS,
+	  trunk/src/gnome/druid-hierarchy.c,
+	  trunk/src/gnome/glade/account.glade: Use a GtkListStore for the
+	  example account categories instead of layering a custom
+	  selection model on a custom example account model. The code is a
+	  lot simpler and has additional sorting capability. Do some
+	  rework on the druid layout.
+
+2006-01-03 01:05  hampton
+
+	* [r12237] trunk/src/gnome-utils/gnc-tree-model-selection.c,
+	  trunk/src/gnome-utils/gnc-tree-model-selection.h: Correct
+	  function name. Add a comment.
+
+2006-01-02 22:32  warlord
+
+	* [r12236] trunk/ChangeLog,
+	  trunk/src/gnome-utils/gnc-tree-view-account.c,
+	  trunk/src/gnome/gnc-plugin-page-budget.c: need to #include
+	  gkeyfile.h if we don't have glib26. *
+	  src/gnome-utils/gnc-tree-view-account.c: *
+	  src/gnome/gnc-plugin-page-budget.c: need to #include gkeyfile.h
+	  if we don't have glib26.
+
+2006-01-02 21:14  hampton
+
+	* [r12235] trunk/ChangeLog, trunk/src/gnome-utils/gnc-tree-view.c:
+	  Use the right function to hide a tree column. Update a couple of
+	  debugging messages.
+
+2006-01-02 21:11  hampton
+
+	* [r12234] trunk/ChangeLog, trunk/src/engine/gnc-commodity.c,
+	  trunk/src/engine/gnc-commodity.h,
+	  trunk/src/engine/gw-engine-spec.scm: Initialize the qof
+	  instances in commodity namespaces.
+
+2006-01-02 21:07  hampton
+
+	* [r12233] trunk/ChangeLog, trunk/ChangeLog.2005: Start new
+	  ChangeLog for 2006.
+
+2006-01-02 00:37  chris
+
+	* [r12232] trunk/src/gnome/gncmod-budget.c: Delete unused
+	  gncmod-budget.c.
+
+2006-01-01 22:26  chris
+
+	* [r12231] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h: General clean-up in
+	  Transaction.[ch]. * Regularization of 'trans' as variable name.
+	  * Whitespace and linewraps * lots of control-flow simplification
+	  * factor one chunk out into get_any_account() * Comment some
+	  things that are bogus or need improvement
+
+2006-01-01 19:56  cstim
+
+	* [r12230] trunk/po/nb.po: Updated Norwegian translation by Tor
+	  Harald Thorland
+
+2005-12-31 23:35  chris
+
+	* [r12229] trunk/src/engine/Transaction.c,
+	  trunk/src/engine/Transaction.h, trunk/src/engine/TransactionP.h,
+	  trunk/src/engine/cap-gains.c, trunk/src/engine/cap-gains.h:
+	  Constify some Split and Transaction functions.
+

Modified: gnucash/branches/gda-dev/GDA_STATUS
===================================================================
--- gnucash/branches/gda-dev/GDA_STATUS	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/GDA_STATUS	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,6 @@
 GDA backend status - Dec 9, 2006
 Based on r15090
+Merged with r15803
 
 Building:
 - I am currently building with libgda 1.99.1 installed in /opt/libgda-1.99.1.

Modified: gnucash/branches/gda-dev/HACKING
===================================================================
--- gnucash/branches/gda-dev/HACKING	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/HACKING	2007-04-07 16:05:40 UTC (rev 15847)
@@ -69,26 +69,18 @@
 Dave Peticolas <dave at krondo.com>
 August 22, 2000
 
-=====================================================================
+==============
 TIPS AND HINTS
-=====================================================================
+==============
 
-Starting Gnucash from the build tree:
--------------------------------------
-
-Getting Trace Messages From GnuCash:
+Starting GnuCash from the build tree
 ------------------------------------
-Note that piping stdout from gnucash to a file causes gnucash to crash.
-Don't know why, this is a bug that needs to be fixed.  Here's another
-way to get trace messages into a file:
+This is known to not work very well.  Instead, `--prefix` your build into /opt/gnc/svn/ (or some such).
 
--- edit src/engine/gnc-engine.c and find the call to qof_log_set_level
-   for the module you are intersted in.  Adjust the log level
-   appropriately.
--- edit the call to qof_log_file_init() in this same file to change
-   where you want messages to go to.
+Getting Trace Messages From GnuCash
+-----------------------------------
+See the doxygen comments in lib/libqof/qof/qoflog.h (and .c)
 
-
 Starting GnuCash in GDB
 -----------------------
 To run gdb on an installed version of gnucash (installed in /opt/gnc/unstable:)

Modified: gnucash/branches/gda-dev/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,17 +1,18 @@
 
-SUBDIRS = . doc lib src intl-scm packaging po accounts
+SUBDIRS = . doc lib src intl-scm packaging po accounts checks
 
 docdir = ${GNC_DOC_INSTALL_DIR}
 
 GNC_CTAGS_FILE = @GNC_CTAGS_FILE@
 GNC_ETAGS_FILE = @GNC_ETAGS_FILE@
 
-noinst_DATA = make-gnucash-patch make-gnucash-potfiles lib/.links
+noinst_DATA = make-gnucash-patch make-gnucash-potfiles
 
 dist_doc_DATA = \
   AUTHORS \
   COPYING \
   ChangeLog \
+  ChangeLog.2006 \
   ChangeLog.2005 \
   ChangeLog.2004 \
   ChangeLog.2003 \
@@ -24,9 +25,6 @@
   README.patches \
   README.dependencies
 
-m4datadir = $(datadir)/aclocal
-m4data_DATA = gnucash.m4
-
 # All the other files that go in the distribution tarfile that aren't
 # included some other way...
 
@@ -40,8 +38,6 @@
 
 EXTRA_DIST = \
   gnucash.lsm \
-  gnucash.m4 \
-  gnucash-config.in \
   make-gnucash-patch.in \
   make-gnucash-potfiles.in \
   macros/aqbanking.m4 \
@@ -79,10 +75,6 @@
   intltool-update.in \
   util/gnc-svnversion
 
-bin_SCRIPTS = gnucash-config
-
-CLEANFILES = gnucash-config
-
 ## We borrow guile's convention and use @-...-@ as the substitution
 ## brackets here, instead of the usual @... at .  This prevents autoconf
 ## from substituting the values directly into the left-hand sides of
@@ -102,21 +94,11 @@
 	chmod +x $@.tmp
 	mv $@.tmp $@
 
-lib/.links: 
-	rm -f goffice gsf
-if !HAVE_GOFFICE
-	$(LN_S) -f . goffice
-endif
-if !HAVE_LIBGSF
-	$(LN_S) -f $(srcdir)/lib/libgsf-1.12.3/gsf gsf
-endif
-	touch lib/.links
-
 DISTCLEANFILES = \
   intltool-extract intltool-update intltool-merge\
   cscope.files cscope.out etags.files make-gnucash-patch \
   make-gnucash-potfiles po/.intltool-merge-cache \
-  goffice gsf lib/.links po/POTFILES.in
+  po/POTFILES.in
 
 cscope.files:
 	find src lib -name '*.[ch]' > cscope.files

Modified: gnucash/branches/gda-dev/README
===================================================================
--- gnucash/branches/gda-dev/README	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/README	2007-04-07 16:05:40 UTC (rev 15847)
@@ -245,7 +245,7 @@
 
 GnuCash uses GNU Automake to handle the build process, so for most of
 the details, see the generic instructions in INSTALL.  (If you are
-building directory from CVS, read the README.cvs for more instructions.)
+building directory from SVN, read the README.svn for more instructions.)
 Below we detail the GnuCash specific bits.
 
 Prior to building GnuCash, you will have to obtain and install the
@@ -264,7 +264,7 @@
     (Note: g-wrap has been dropped completely in gnucash 2.2.0 and
     is no longer needed.)
 
-  texinfo: If you are building from CVS, you need the GNU texinfo
+  texinfo: If you are building from SVN, you need the GNU texinfo
            package, version 4.0 or later.
 
 What you'll need to get and install in order to make sure you have all
@@ -282,7 +282,7 @@
 
 
   SuSE:
-    see README.dependencies and doc/build-suse.txt
+    see README.dependencies
 
 GnuCash understands a few non-standard ./configure options.  You
 should run ./configure --help for the most up to date summary of the
@@ -368,7 +368,7 @@
 
   - http://www.unixrealm.com/downloads/
 
-You can get GnuCash Mandrake packages on Mandrake Cooker sites.
+You can get GnuCash Mandrake packages on Mandriva Cooker sites.
 
 
 Precompiled binaries & pre-requisite packages can be found at the
@@ -439,7 +439,7 @@
 
 Submitting a Patch:
 
-  This section has been removed to the file README.patches
+  This section has been moved to the file README.patches
 
   Please consult that file for details on using the script provided to make
   patches suitable for submitting to the GnuCash development team.

Modified: gnucash/branches/gda-dev/README.dependencies
===================================================================
--- gnucash/branches/gda-dev/README.dependencies	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/README.dependencies	2007-04-07 16:05:40 UTC (rev 15847)
@@ -53,7 +53,6 @@
 their major release[s], and the relevant library versions as part of that
 release (or an official package-upgrade path)
 
-
 Libraries/Deps
 --------------
 aqbanking
@@ -65,6 +64,7 @@
 libglade2
 libgnomeprint2.2
 libgnomeui2
+[lib]goffice
 libgsf1
 [lib]gtkhtml3
 libofx
@@ -75,7 +75,17 @@
 (Note: gwrap has been replaced by swig and dropped completely in
 SVN-trunk on 2006-10-20 and for gnucash-2.2.0.)
 
+Interesting libraries
+---------------------
 
+swig
+glib
+gtk
+cairo
+goffice, libgsf
+gtkprint
+gtkhtml
+
 libgoffice/libgsf details
 -------------------------
 
@@ -123,7 +133,38 @@
   - libgnomeui-2.0	>= 2.0.0
   - libgsf-gnome-1	>= 1.12.2
 
+Status, 2007-01-17
+------------------
 
+1. Ubuntu
+   - 2006.10 [2006/10/26]
+     - gtk+ 2.10.6
+     - swig 1.3.28-1.1ubuntu1
+   - 2006.06 [2006/06/01]
+     - gtk+ 2.8.17
+2. Mandriva Linux
+   - 2007 [2006/10/03]
+     - gtk+ 2.10.3
+   - 2006 [2005/10/06]
+     - gtk+ 2.8.3
+3. Suse
+   - 10.2 [2006/12/07]
+     - gtk+ 2.10.6
+   - 10.1 [2006/05/11]
+     - gtk+ 2.8.10
+4. Fedora Core
+   - FC6 [2006/10/24]
+     - gtk+ 2.10.4
+   - FC5 [2006/03/20]
+     - gtk+ 2.8.15
+5. Debian GNU/Linux
+   - unstable
+     - gtk+ 2.8.20
+   - testing
+     - gtk+ 2.8.20
+   - sarge [2005/06/06]
+     - gtk+ 2.6.4
+
 Status, 2005-11-06
 ------------------
 The major distributions, as defined by http://distrowatch.com/dwres.php?resource=major, are:
@@ -171,6 +212,25 @@
     - libxml-2 libxml2_2.6.17-0ubuntu1_i386.deb
     - pango libpango1.0-0_1.8.1-0ubuntu2
 - Mandriva
+  -  2007.0 = 2007-01-03
+    [from ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2007.0/i586/media/main/]
+    - aqbanking-2.2.1
+    - libcairo2-1.2.4
+    - gconf-2.14.0
+    - glib-2.12.3
+    - gtk+-2.10.3
+    - guile-1.6.8
+    - g-wrap-1.9.6
+    - libart-2.3.17
+    - libglade-2.6.0
+    - libgnomeprint-2.2-2.12.1
+    - libgnomeui-2.16.0
+    - libgsf-1.14.1
+    - libofx-0.8.0
+    - libxml-2.6.26
+    - pango-1.14.3
+    - libgtkhtml-3.8-3.12.0
+    Note: -devel packages for the libraries above must also be installed.
   -  2006 = 2005-10-06
     [from ftp://ftp.rutgers.edu/pub/Mandrakelinux/devel/2006.0/i586/media/main/]
     - aqbanking-1.2.0
@@ -208,12 +268,32 @@
     - libxml-2.6.17
     - pango-1.8.1
     - libgtkhtml-3.1.11
-- SUSE
+- SUSE / opensuse
+  -  10.2 = 2006-12-07
+    - aqbanking-2.2.3
+    - cairo-1.2.4
+    - gconf2-2.14.0
+    - glib2-2.12.4
+    - goffice-0.2.1
+    - gtk2-2.10.6
+    - gtkhtml2-3.12.2
+    - guile-1.8.1
+    - g-wrap: not included
+    - libart_lgpl-2.3.17
+    - libglade2-2.6.0
+    - libgnomeprint-2.12.1
+    - libgnomeui-2.16.1
+    - libgsf-1.14.2
+    - libofx-0.8.2
+    - libxml2-2.6.26
+    - pango-1.14.5
+    - swig-1.3.29
   -  10.1 = 2006-05-11
     - aqbanking-1.2.0 (but package is broken; needs to be replaced by >=1.3.0)
     - cairo-1.0.2
     - gconf2-2.12.1
     - glib2-2.8.5
+    - goffice-0.1.2
     - gtk2-2.8.10
     - gtkhtml2-3.10.0
     - guile-1.6.7

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have investments (stock, bond, mutual fund, index fund, interest, dividend).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -106,6 +113,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -155,6 +163,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_business.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_business.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_business.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">4f40ddce996f8f74b4e99f52e275ba14</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -147,6 +154,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -208,6 +216,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -293,6 +302,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -1354,6 +1364,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have a car loan (car loan, car loan interest).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Liabilities</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -62,6 +69,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have CDs or money market accounts (CD, CD interest, money market, money market interest).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_checkbook.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_checkbook.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_checkbook.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
      Use this if you just want to balance your checkbook.  Later on, you can start tracking income and expenses in more detail if you feel the need.
     </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">bde24bbbe01829aff3dac8d038e174cc</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -66,6 +73,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Expenses</act:name>
@@ -77,6 +85,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Equity</act:name>
@@ -88,6 +97,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have childcare expenses.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Expenses</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -85,6 +92,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -112,6 +120,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -216,6 +225,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -716,6 +726,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have an educational loan (education loan, education loan interest).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Liabilities</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -62,6 +69,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have large fixed assets (house, vehicle, vacation home, other assets).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_full.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_full.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_full.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -7,6 +7,12 @@
      Full chart of accounts contains all default accounts.
     </gnc-act:short-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">c942789c77cfdd65bc6e4c12900f0805</act:id>
   <act:type>ASSET</act:type>
@@ -15,6 +21,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -225,6 +232,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Retirement</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -290,6 +298,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Spouse Retirement</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>notes</slot:key>
@@ -366,6 +375,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -471,6 +481,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -630,6 +641,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -1328,6 +1340,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have a home loan (mortgage loan, mortgage interest).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Liabilities</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Loans</act:name>
@@ -41,6 +48,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Mortgage Loan</act:name>
@@ -68,6 +76,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Interest</act:name>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you own a home. This set provides a group of accounts to track home expenses (insurance, taxes, home repair).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Expenses</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Home Repair</act:name>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have something other than a home loan (other loan, other loan interest).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Liabilities</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Loans</act:name>
@@ -41,6 +48,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Other Loan</act:name>
@@ -68,6 +76,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Interest</act:name>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you rent a home or apartment (rent, renter's insurance).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Expenses</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Insurance</act:name>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have retirement accounts (stock, bond, mutual fund, index fund).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investments</act:name>
@@ -41,6 +48,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Retirement</act:name>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have a working spouse (salary (spouse), taxes (spouse)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Income</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Salary (Spouse)</act:name>
@@ -51,6 +58,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Taxes (Spouse)</act:name>

Modified: gnucash/branches/gda-dev/accounts/C/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/C/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/C/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have investments in a spouse's name (stock, bond, mutual fund, index fund, interest, dividend).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investments</act:name>
@@ -41,6 +48,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Spouse Retirement</act:name>

Modified: gnucash/branches/gda-dev/accounts/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/accounts/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,3 +1,3 @@
 
-SUBDIRS = C da de_AT de_CH de_DE el_GR es_ES fr_CH fr_FR hu_HU it nb pt_BR pt_PT sk tr_TR
+SUBDIRS = C da de_AT de_CH de_DE el_GR es_ES fr_CH fr_CA fr_FR hu_HU it nb pt_BR pt_PT sk tr_TR
 

Modified: gnucash/branches/gda-dev/accounts/da/acctchrt_car.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/da/acctchrt_car.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/da/acctchrt_car.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Udgifter i forbindelse med at holde bil. Vedligehold, drift og skatter.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Udgifter</act:name>
   <act:id type="new">1884bbd7394883ebafec8b9e2eb091a4</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Udgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bil</act:name>

Modified: gnucash/branches/gda-dev/accounts/da/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/da/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/da/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiver</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Aktiver</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Aktuelle aktiver</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Passiver</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Forventede udgifter</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Indtægter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -203,6 +212,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Udgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Justering</act:name>
@@ -631,6 +641,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Afstemning</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Åbningssaldi</act:name>

Modified: gnucash/branches/gda-dev/accounts/da/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/da/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/da/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil have nytte af disse konti, hvis du har et realkreditlån.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passiver</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passiver</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Lån</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Udgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Renter</act:name>

Modified: gnucash/branches/gda-dev/accounts/da/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/da/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/da/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil have nytte af disse konti, hvis du ejer en bolig. Konti til at holde øje med udgifter til boligen er medtaget (forsikring, skatter, vedligehold)
 </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Udgifter</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>DKK</cmdty:id>
   </act:currency>
   <act:description>Udgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Vedligehold af bolig</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_auto.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_auto.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_auto.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Diese Auswahl erstellt Konten, die Ausgaben für ein Auto repräsentieren.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fahrtkosten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_autoloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_autoloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_autoloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Falls Sie einen Kredit zum Autokauf besitzen, können Sie mit dieser Auswahl die passenden Konten bekommen.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passiva</act:name>
   <act:id type="new">60d5e7e410dc5fdf91cf2ecbb5b7245c</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fahrtkosten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Mit dieser Auswahl werden Konten zum Handel mit Aktien und Aktienfonds erstellt.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Geldanlagen</act:name>
@@ -107,6 +114,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dividenden</act:name>
@@ -134,6 +142,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstiges</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_business.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_business.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_business.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8b3e42f98f52f948584d9548c018561e</act:id>
   <act:type>ASSET</act:type>
@@ -26,6 +32,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>
@@ -139,6 +146,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Abschreibungen</act:name>
@@ -774,6 +782,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverbindlichkeiten</act:name>
@@ -845,6 +854,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstiges</act:name>
@@ -922,6 +932,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Anfangsbestand</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 </gnc-account-example>
 

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">f181d8f0608cbf3f18004793ebf7b514</act:id>
   <act:type>ASSET</act:type>
@@ -26,6 +32,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barvermögen</act:name>
@@ -115,6 +122,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverbindlichkeiten</act:name>
@@ -162,6 +170,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gehalt</act:name>
@@ -311,6 +320,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bildung</act:name>
@@ -922,6 +932,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Anfangsbestand</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 </gnc-account-example>
 

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_houseown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_houseown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_houseown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Konten für Hausbesitzer/innen
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>
@@ -112,6 +120,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Versicherungen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_investment.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_investment.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_investment.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Konten für Investitionen in Geldanlagen: Bausparvertrag, Lebensversicherung, Festgeld, Investmentfonds.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Geldanlagen</act:name>
@@ -101,6 +108,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Zinsen</act:name>
@@ -167,6 +175,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Versicherungen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_AT/acctchrt_kids.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_AT/acctchrt_kids.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_AT/acctchrt_kids.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Kindergeld, Kindergarten
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Erträge</act:name>
   <act:id type="new">724c2a1128e49b0b28304d372b19f5a1</act:id>
   <act:type>INCOME</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gehalt</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kindergarten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_CH/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_CH/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_CH/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Mit dieser Auswahl werden Konten zum Handel mit Aktien und Aktienfonds erstellt.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Geldanlagen</act:name>
@@ -83,6 +90,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Einkommen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dividenden</act:name>
@@ -104,6 +112,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aufwendungen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstiges</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_CH/acctchrt_chkmu.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_CH/acctchrt_chkmu.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_CH/acctchrt_chkmu.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiven</act:name>
   <act:id type="new">de55a3419ae28ee9ab7ad78bdd197fc4</act:id>
   <act:type>ASSET</act:type>
@@ -21,6 +27,7 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:code>1</act:code>
   <act:description>1</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Umlaufverm&#246;gen</act:name>
@@ -1804,6 +1811,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fremdkapital kurzfristig</act:name>
@@ -3252,6 +3260,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Produktionsertrag</act:name>
@@ -4125,6 +4134,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Materialaufwand</act:name>
@@ -5044,6 +5054,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Personalaufwand Produktion</act:name>
@@ -6055,6 +6066,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Raumaufwand</act:name>
@@ -8101,6 +8113,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Erfolg aus Nebenbetrieben</act:name>
@@ -8560,6 +8573,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ausserordentlicher Erfolg</act:name>
@@ -8996,6 +9010,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Erfolgsrechnung</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_CH/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_CH/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_CH/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverm&#246;gen</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Passiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverbindlichkeiten</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Einkommen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gehalt</act:name>
@@ -214,6 +223,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aufwendungen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bildung</act:name>
@@ -697,6 +707,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Anfangsbestand</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 </gnc-account-example>
 

Modified: gnucash/branches/gda-dev/accounts/de_CH/acctchrt_kids.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_CH/acctchrt_kids.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_CH/acctchrt_kids.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Kindergeld, Kindergarten
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Erträge</act:name>
   <act:id type="new">724c2a1128e49b0b28304d372b19f5a1</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Erträge</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gehalt</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aufwendungen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kindergarten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherasset.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherasset.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherasset.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Sonstige Sachanlagen
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_CH/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Weitere Kredite
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passiva</act:name>
   <act:id type="new">60d5e7e410dc5fdf91cf2ecbb5b7245c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Passiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_auto.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_auto.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_auto.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Diese Auswahl erstellt Konten, die Ausgaben für ein Auto repräsentieren.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fahrtkosten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_autoloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_autoloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_autoloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Falls Sie einen Kredit zum Autokauf besitzen, können Sie mit dieser Auswahl die passenden Konten bekommen.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passiva</act:name>
   <act:id type="new">60d5e7e410dc5fdf91cf2ecbb5b7245c</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fahrtkosten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Mit dieser Auswahl werden Konten zum Handel mit Aktien und Aktienfonds erstellt.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Geldanlagen</act:name>
@@ -107,6 +114,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dividenden</act:name>
@@ -134,6 +142,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstiges</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -25,6 +31,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barvermögen</act:name>
@@ -91,6 +98,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverbindlichkeiten</act:name>
@@ -135,6 +143,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gehalt</act:name>
@@ -262,6 +271,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bildung</act:name>
@@ -279,6 +289,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Abonnements</act:name>
@@ -799,6 +810,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Anfangsbestand</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 </gnc-account-example>
 

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_full.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_full.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_full.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Dies ist die komplette Liste aller vorgeschlagenen Konten.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverm&#246;gen</act:name>
@@ -226,6 +233,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Passiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Barverbindlichkeiten</act:name>
@@ -302,6 +310,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Erträge</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>BAF&#246;G</act:name>
@@ -477,6 +486,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Aufwendungen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bildung</act:name>
@@ -1136,6 +1146,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Ausgleichskonto, Eigenkapital</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Anfangsbestand</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_houseown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_houseown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_houseown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Konten für Hausbesitzer/innen
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>
@@ -112,6 +120,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Versicherungen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_investment.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_investment.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_investment.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Konten für Investitionen in Geldanlagen: Bausparvertrag, Lebensversicherung, Festgeld, Investmentfonds.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Geldanlagen</act:name>
@@ -101,6 +108,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Zinsen</act:name>
@@ -167,6 +175,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Versicherungen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_kids.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_kids.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_kids.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Kindergeld, Kindergarten
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Erträge</act:name>
   <act:id type="new">724c2a1128e49b0b28304d372b19f5a1</act:id>
   <act:type>INCOME</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gehalt</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kindergarten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherasset.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherasset.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherasset.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Sonstige Sachanlagen
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">8f1b9e7e37e9a76c2289ef4fe9adcdd9</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sachanlagen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Weitere Kredite
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passiva</act:name>
   <act:id type="new">60d5e7e410dc5fdf91cf2ecbb5b7245c</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr03.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr03.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr03.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
 <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="guid">fc3b1f110a6686f3d40bb0c41c0f8de0</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Anlage- u. Kapitalkonten 0</act:name>
@@ -320,6 +327,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Umsatzsteuer</act:name>
@@ -466,6 +474,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Erlöskonten 8</act:name>
@@ -582,6 +591,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Abschreibungen</act:name>
@@ -1196,6 +1206,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Saldenvortragskonten</act:name>
@@ -1265,6 +1276,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Privatentnahmen/-einlagen</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr04.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr04.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_skr04.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>    
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>20. Jahresüberschuss/Jahresfehlbetrag</act:name>
   <act:id type="new">00363fa6340f307005ba0d755a738cd6</act:id>
   <act:type>ASSET</act:type>
@@ -34,6 +40,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
@@ -51,6 +58,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>A. Anlagevermögen:</act:name>
@@ -2046,6 +2054,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>A. Eigenkapital</act:name>
@@ -3333,6 +3342,7 @@
       <slot:value type="integer">1</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Umsatzerlöse</act:name>
@@ -3534,6 +3544,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>- davon aus verbundenen Unternehmen</act:name>
@@ -3583,6 +3594,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>- davon aus verbundenen Unternehmen</act:name>
@@ -3654,6 +3666,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Außerordentliche Erträge</act:name>
@@ -3704,6 +3717,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bestandsveränderungen</act:name>
@@ -3750,6 +3764,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>4. sonstige betriebliche Erträge</act:name>
@@ -3774,6 +3789,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstige betriebliche Erträge</act:name>
@@ -4034,6 +4050,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>- davon aus verbundenen Unternehmen</act:name>
@@ -4105,6 +4122,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>13. Zinsen und ähnliche Aufwendungen</act:name>
@@ -4129,6 +4147,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>- davon an verbundene Unternehmen</act:name>
@@ -4246,6 +4265,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>16. außerordentliche Aufwendungen</act:name>
@@ -4270,6 +4290,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Außerordentliche Aufwendungen</act:name>
@@ -4321,6 +4342,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>18. Steuern vom Einkommen und vom Ertrag</act:name>
@@ -4345,6 +4367,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Körperschaftsteuer</act:name>
@@ -4501,6 +4524,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstige Steuern</act:name>
@@ -4591,6 +4615,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>a) Aufwendungen für Roh-, Hilfs- und Betriebsstoffe und für bezogene Waren</act:name>
@@ -4787,6 +4812,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>a) Löhne und Gehälter</act:name>
@@ -5130,6 +5156,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>a) auf immaterielle Vermögensgegenstände des Anlagevermögens und Sachanlagen</act:name>
@@ -5345,6 +5372,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sonstige betriebliche Aufwendungen</act:name>
@@ -6659,6 +6687,7 @@
       <slot:value type="frame"/>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Saldenvorträge Sachkonten</act:name>

Modified: gnucash/branches/gda-dev/accounts/de_DE/acctchrt_studium.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/de_DE/acctchrt_studium.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/de_DE/acctchrt_studium.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       BAFöG, Studiengebühren
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passiva</act:name>
   <act:id type="new">60d5e7e410dc5fdf91cf2ecbb5b7245c</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredite</act:name>
@@ -68,6 +75,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>BAFöG</act:name>
@@ -95,6 +103,7 @@
     </slot>
   </act:slots>
   <act:description>Aufwendungen</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bildung</act:name>

Modified: gnucash/branches/gda-dev/accounts/el_GR/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/el_GR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/el_GR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Θα θέλατε να επιλέξετε αυτό το σύνολο λογαριασμών αν έχετε επενδύσεις (μετοχή, ομολογία, αμοιβαίο κεφάλαιο, αμοιβαίο κεφάλαιο δείκτη, τόκοι μέρισμα).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ενεργητικό</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -18,7 +24,8 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Ενεργητικό</act:description>
- <act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
@@ -35,7 +42,7 @@
   </act:commodity>
   <act:description>Επενδύσεις</act:description>
   <act:parent type="new">52b5942b5beaec856eaca5a75ee71592</act:parent>
- <act:slots>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
@@ -106,7 +113,8 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Έσοδα</act:description>
- <act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
@@ -155,7 +163,8 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Έξοδα</act:description>
- <act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>

Modified: gnucash/branches/gda-dev/accounts/el_GR/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/el_GR/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/el_GR/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Επιλέξτε αυτούς τους λογαριασμούς αν έχετε πάρει δάνειο για αγορά αυτοκινήτου (δάνειο αυτοκινήτου, τόκοι δανείου).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Παθητικό</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -24,6 +30,7 @@
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Δάνεια</act:name>
@@ -35,7 +42,7 @@
   </act:commodity>
   <act:description>Δάνεια</act:description>
   <act:parent type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:parent>
-<act:slots>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
@@ -62,7 +69,8 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Έξοδα</act:description>
-<act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>

Modified: gnucash/branches/gda-dev/accounts/el_GR/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/el_GR/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/el_GR/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ενεργητικό</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Ενεργητικό</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -36,7 +43,7 @@
   </act:commodity>
   <act:description>Τρέχων ενεργητικό</act:description>
   <act:parent type="new">98f262dfab9a2b99ac42919dcf58d304</act:parent>
-<act:slots>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
@@ -85,7 +92,8 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Παθητικό</act:description>
- <act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
@@ -123,12 +131,13 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Έσοδα</act:description>
-<act:slots>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -227,12 +236,13 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Έξοδα</act:description>
-<act:slots>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Προσαρμογή</act:name>
@@ -727,12 +737,13 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Καθαρή Θέση</act:description>
-<act:slots>
+  <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
       <slot:value type="string">true</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Αρχικά υπόλοιπα</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
      intereses, dividendos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Inversiones</act:name>
@@ -96,6 +103,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Ingresos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ingresos por dividendos</act:name>
@@ -139,6 +147,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Comisiones</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       automóvil).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasivo</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Pasivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Préstamos</act:name>
@@ -52,6 +59,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intereses</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       mercado monetario, intereses de mercado monetario).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Activo circulante</act:name>
@@ -63,6 +70,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Ingresos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ingresos por intereses</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
       guardería.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gastos</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Guardería</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,6 +14,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -22,6 +28,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Activo circulante</act:name>
@@ -76,6 +83,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Pasivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Cuentas por pagar</act:name>
@@ -108,6 +116,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Ingresos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Pagas extra</act:name>
@@ -206,6 +215,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustes</act:name>
@@ -700,6 +710,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Resultado</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Balances de apertura</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_currency.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_currency.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_currency.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,6 +14,12 @@
   la moneda
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">b3c65be1c5d163746ddc0c506f3f4619</act:id>
   <act:type>ASSET</act:type>
@@ -22,6 +28,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Inversiones</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       para educación)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasivo</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Pasivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Préstamos</act:name>
@@ -52,6 +59,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intereses</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
       (casa, vehículo, casa de vacaciones, otros activos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Activo fijo</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
       préstamo hipotecario (préstamo hipotecario, interés hipoteca).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasivo</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Pasivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Préstamos</act:name>
@@ -51,6 +58,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intereses</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       gastos domésticos (seguro, impuestos, reparaciones).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gastos</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Reparaciones domésticas</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       otro préstamo).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasivo</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Pasivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Préstamos</act:name>
@@ -52,6 +59,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intereses</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
       apartamento (alquiler, seguro de inquilino).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gastos</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Seguros</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       índice).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Inversiones</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
       (sueldo (cónyuge), impuestos (cónyuge)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ingresos</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Ingresos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sueldo (Cónyuge)</act:name>
@@ -40,6 +47,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Gastos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Impuestos (Cónyuge)</act:name>

Modified: gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/es_ES/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
       fondos de índice, intereses, dividendos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activo</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:currency>
   <act:description>Activo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Inversiones</act:name>

Added: gnucash/branches/gda-dev/accounts/fr_CA/Makefile
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/Makefile	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/Makefile	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,547 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# accounts/fr_CA/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+srcdir = .
+top_srcdir = ../..
+
+pkgdatadir = $(datadir)/gnucash
+pkglibdir = $(libdir)/gnucash
+pkgincludedir = $(includedir)/gnucash
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-suse-linux-gnu
+host_triplet = i686-suse-linux-gnu
+subdir = accounts/fr_CA
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/macros/ac_pkg_swig.m4 \
+	$(top_srcdir)/macros/aqbanking.m4 \
+	$(top_srcdir)/macros/as-scrub-include.m4 \
+	$(top_srcdir)/macros/binreloc.m4 \
+	$(top_srcdir)/macros/gnome-guile-checks.m4 \
+	$(top_srcdir)/macros/legacy_macros.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(accountdir)"
+accountDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(account_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/phil/gnucash2/gda-dev/missing --run aclocal-1.9
+ALL_LINGUAS = ca cs da de el en_GB es_NI es eu fr hu it ja nb ne nl pl pt_BR pt ro ru rw sk sv ta tr uk zh_CN zh_TW
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/phil/gnucash2/gda-dev/missing --run tar
+AR = ar
+AUTOCONF = ${SHELL} /home/phil/gnucash2/gda-dev/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/phil/gnucash2/gda-dev/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/phil/gnucash2/gda-dev/missing --run automake-1.9
+AWK = gawk
+BINRELOC_CFLAGS = -DENABLE_BINRELOC
+BINRELOC_LIBS = -lpthread
+BUILDING_FROM_SVN_FALSE = #
+BUILDING_FROM_SVN_TRUE = 
+BUILD_GUILE = yes
+CATALOGS =  ca.gmo cs.gmo da.gmo de.gmo el.gmo en_GB.gmo es_NI.gmo es.gmo eu.gmo fr.gmo hu.gmo it.gmo ja.gmo nb.gmo ne.gmo nl.gmo pl.gmo pt_BR.gmo pt.gmo ro.gmo ru.gmo rw.gmo sk.gmo sv.gmo ta.gmo tr.gmo uk.gmo zh_CN.gmo zh_TW.gmo
+CATOBJEXT = .gmo
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS =  -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -g  -g  -Wno-unused
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DL_LIB = -ldl
+DOC_FALSE = #
+DOC_TRUE = 
+DOT = /usr/bin/dot
+DOXYGEN = /usr/bin/doxygen
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EFENCE_LIBS = 
+EGREP = /usr/bin/grep -E
+ENABLE_DOXYGEN_FALSE = 
+ENABLE_DOXYGEN_TRUE = #
+EXEEXT = 
+F77 = 
+FFLAGS = 
+GCONFTOOL = /opt/gnome/bin/gconftool-2
+GCONF_CFLAGS = -DORBIT2=1 -pthread -I/opt/gnome/include/gconf/2 -I/opt/gnome/include/orbit-2.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include  
+GCONF_LIBS = -pthread -L/opt/gnome/lib -lgconf-2 -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0  
+GCONF_SCHEMAS_INSTALL_FALSE = #
+GCONF_SCHEMAS_INSTALL_TRUE = 
+GCONF_SCHEMA_CONFIG_SOURCE = xml::${prefix}/etc/gconf/gconf.xml.defaults
+GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY = ${prefix}/etc/gconf/gconf.xml.defaults
+GCONF_SCHEMA_FILE_DIR = $(sysconfdir)/gconf/schemas
+GDA_DIR = gda
+GDK_PIXBUF_CFLAGS = -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include
+GDK_PIXBUF_LIBS = -L/opt/gnome/lib -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+GETTEXT_PACKAGE = gnucash
+GLADE_CFLAGS = -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/opt/gnome/include/libglade-2.0 -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include
+GLADE_LIBS = -L/opt/gnome/lib -lglade-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp  
+GLIB26_LIBS = 
+GLIB_CFLAGS = -pthread -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include  
+GLIB_GENMARSHAL = glib-genmarshal
+GLIB_LIBS = -pthread -Wl,--export-dynamic -L/opt/gnome/lib -lgthread-2.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+GLIB_MKENUMS = glib-mkenums
+GMOFILES =  ca.gmo cs.gmo da.gmo de.gmo el.gmo en_GB.gmo es_NI.gmo es.gmo eu.gmo fr.gmo hu.gmo it.gmo ja.gmo nb.gmo ne.gmo nl.gmo pl.gmo pt_BR.gmo pt.gmo ro.gmo ru.gmo rw.gmo sk.gmo sv.gmo ta.gmo tr.gmo uk.gmo zh_CN.gmo zh_TW.gmo
+GMSGFMT = /usr/bin/msgfmt
+GNC_ACCOUNTS_DIR = ${GNC_SHAREDIR}/accounts
+GNC_ADD_ON_SRFIS = 
+GNC_CHECKS_DIR = ${GNC_SHAREDIR}/checks
+GNC_CONFIGDIR = ${sysconfdir}/gnucash
+GNC_CTAGS_FILE = 
+GNC_CTAGS_FILE_FALSE = 
+GNC_CTAGS_FILE_TRUE = #
+GNC_DOC_INSTALL_DIR = ${pkgdatadir}/doc
+GNC_ETAGS_FILE = 
+GNC_ETAGS_FILE_FALSE = 
+GNC_ETAGS_FILE_TRUE = #
+GNC_GLADE_DIR = ${GNC_SHAREDIR}/glade
+GNC_HAVE_GUILE_WWW_FALSE = 
+GNC_HAVE_GUILE_WWW_TRUE = #
+GNC_HELPDIR = ${datadir}
+GNC_INCLUDE_DIR = ${includedir}/gnucash
+GNC_LIBEXECDIR = ${libexecdir}/gnucash
+GNC_PIXMAP_DIR = ${GNC_SHAREDIR}/pixmaps
+GNC_SCM_INSTALL_DIR = ${pkgdatadir}/scm
+GNC_SHAREDIR = ${pkgdatadir}
+GNC_SRFI_LOAD_PATH = 
+GNC_TEST_SRFI_LOAD_CMD = 
+GNC_UI_DIR = ${GNC_SHAREDIR}/ui
+GNOME_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libart-2.0 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/libxml2 -I/opt/gnome/include/libgnomeui-2.0 -I/opt/gnome/include/libgnome-2.0 -I/opt/gnome/include/libgnomecanvas-2.0 -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/include/gconf/2 -I/opt/gnome/include/libbonoboui-2.0 -I/opt/gnome/include/gnome-vfs-2.0 -I/opt/gnome/lib/gnome-vfs-2.0/include -I/opt/gnome/include/gnome-keyring-1 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include -I/opt/gnome/include/orbit-2.0 -I/opt/gnome/include/libbonobo-2.0 -I/opt/gnome/include/bonobo-activation-2.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0
+GNOME_LIBS = -pthread -L/opt/gnome/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnome-keyring -lxml2 -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lfreetype -lz -lfontconfig -lexpat -lglitz -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp -lbonobo-2 -lgnomevfs-2 -lbonobo-activation -lgconf-2 -lgobject-2.0 -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0  
+GNOME_PRINT_CFLAGS = -I/usr/include/libart-2.0 -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/opt/gnome/include/libgnomeprint-2.2 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include -I/opt/gnome/include/pango-1.0 -I/opt/gnome/include/libgnomeprintui-2.2 -I/opt/gnome/include/libgnomecanvas-2.0 -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0
+GNOME_PRINT_LIBS = -Wl,--export-dynamic -L/opt/gnome/lib -lgnomeprintui-2-2 -lgnomeprint-2-2 -lgnomecanvas-2 -lxml2 -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp  
+GNUCASH_ENABLE_GUI_FALSE = #
+GNUCASH_ENABLE_GUI_TRUE = 
+GNUCASH_MAJOR_VERSION = 2
+GNUCASH_MICRO_VERSION = 99
+GNUCASH_MINOR_VERSION = 0
+GNUCASH_SEPARATE_BUILDDIR_FALSE = 
+GNUCASH_SEPARATE_BUILDDIR_TRUE = #
+GOBJECT_QUERY = gobject-query
+GOFFICE_CFLAGS = -I/usr/include/libxml2 -I/usr/include/libart-2.0 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/opt/gnome/include/libgoffice-1 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include -I/opt/gnome/include/libgsf-1 -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/include/libglade-2.0 -I/opt/gnome/include/libgnomeprint-2.2 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/pango-1.0
+GOFFICE_LIBS = -Wl,--export-dynamic -L/opt/gnome/lib -lgoffice-1 -lgsf-1 -lglade-2.0 -lgnomeprint-2-2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lfreetype -lfontconfig -lexpat -lglitz -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp -lart_lgpl_2 -lxml2 -lz -lm -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+GREP = /usr/bin/grep
+GTKHTML_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libart-2.0 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/libxml2 -I/opt/gnome/include/libgtkhtml-3.8 -I/opt/gnome/include/libgnomeui-2.0 -I/opt/gnome/include/libgnomeprintui-2.2 -I/opt/gnome/include/libglade-2.0 -I/opt/gnome/include/libgnome-2.0 -I/opt/gnome/include/libgnomecanvas-2.0 -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/include/gconf/2 -I/opt/gnome/include/libbonoboui-2.0 -I/opt/gnome/include/gnome-vfs-2.0 -I/opt/gnome/lib/gnome-vfs-2.0/include -I/opt/gnome/include/gnome-keyring-1 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include -I/opt/gnome/include/orbit-2.0 -I/opt/gnome/include/libbonobo-2.0 -I/opt/gnome/include/bonobo-activation-2.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/libgnomeprint-2.2
+GTKHTML_LIBS = -pthread -Wl,--export-dynamic -L/opt/gnome/lib -lgtkhtml-3.8 -lgnomeui-2 -lSM -lICE -lgnomeprintui-2-2 -lglade-2.0 -lbonoboui-2 -lgnome-keyring -lgnome-2 -lpopt -lbonobo-2 -lgnomevfs-2 -lbonobo-activation -lgconf-2 -lORBit-2 -lgthread-2.0 -lgnomeprint-2-2 -lgnomecanvas-2 -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp  
+GTKHTML_USES_GTKPRINT_FALSE = 
+GTKHTML_USES_GTKPRINT_TRUE = #
+GTK_CFLAGS = -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include
+GTK_LIBS = -L/opt/gnome/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp  
+GUILE = /usr/bin/guile
+GUILE_CONFIG = /usr/bin/guile-config
+GUILE_FALSE = #
+GUILE_INCS = -pthread
+GUILE_LIBS = -pthread -lguile -lltdl  -lgmp -lcrypt -lm -lltdl
+GUILE_TOOLS = /usr/bin/guile-tools
+GUILE_TRUE = 
+HAVE_GLIB_2_8_FALSE = #
+HAVE_GLIB_2_8_TRUE = 
+HAVE_GTK_2_10_FALSE = #
+HAVE_GTK_2_10_TRUE = 
+HBCI_CFLAGS = 
+HBCI_DIR = 
+HBCI_LIBS = 
+HTMLHELP_LIBS = 
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = 
+INTLTOOL_CAVES_RULE = %.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_DESKTOP_RULE = %.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_DIRECTORY_RULE = %.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_EXTRACT = $(top_builddir)/intltool-extract
+INTLTOOL_ICONV = /usr/bin/iconv
+INTLTOOL_KBD_RULE = %.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_KEYS_RULE = %.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_MERGE = $(top_builddir)/intltool-merge
+INTLTOOL_MSGFMT = /usr/bin/msgfmt
+INTLTOOL_MSGMERGE = /usr/bin/msgmerge
+INTLTOOL_OAF_RULE = %.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@
+INTLTOOL_PERL = /usr/bin/perl
+INTLTOOL_PONG_RULE = %.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_PROP_RULE = %.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SCHEMAS_RULE = %.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SERVER_RULE = %.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SERVICE_RULE = %.service: %.service.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SHEET_RULE = %.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SOUNDLIST_RULE = %.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_THEME_RULE = %.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_UI_RULE = %.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_UPDATE = $(top_builddir)/intltool-update
+INTLTOOL_XAM_RULE = %.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_XGETTEXT = /usr/bin/xgettext
+INTLTOOL_XML_NOMERGE_RULE = %.xml:       %.xml.in       $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@
+INTLTOOL_XML_RULE = %.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+LC_MESSAGES_ENUM = LC_MESSAGES
+LDFLAGS =  -g
+LIBGDA_CFLAGS = -DGDA_DEBUG -I/opt/libgda-svn/include/libgda-3.0 -I/usr/include/libxml2 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include  
+LIBGDA_LIBS = -L/opt/libgda-svn/lib -L/opt/gnome/lib -lgda-report-3.0 -lgda-3.0 -lgdasql-3.0 -lglib-2.0 -lxml2 -lz -lm  
+LIBOBJS = 
+LIBOBJS_SEDSCRIPT = s,\.[^.]* ,&,g;s,\.[^.]*$$,&,
+LIBOFX_CFLAGS = 
+LIBOFX_LIBS =  -lofx
+LIBQOF_BACKEND_QSF_LIBRARY_VERSION = 0:3:0
+LIBQOF_LIBRARY_VERSION = 1:4:0
+LIBS = -lpopt -lm -lpthread  -lm
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBTOOL_DEPS = ./ltmain.sh
+LIBXML2_CFLAGS = -I/usr/include/libxml2
+LIBXML2_LIBS = -lxml2 -lz -lm  
+LIBXML_VERSION = 0.20
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/phil/gnucash2/gda-dev/missing --run makeinfo
+MSGFMT = /usr/bin/msgfmt
+OBJEXT = o
+OFX_DIR = ofx
+OS_WIN32_FALSE = 
+OS_WIN32_TRUE = #
+PACKAGE = gnucash
+PACKAGE_BUGREPORT = gnucash-devel at gnucash.org
+PACKAGE_NAME = gnucash
+PACKAGE_STRING = gnucash 2.0.99
+PACKAGE_TARNAME = gnucash
+PACKAGE_VERSION = 2.0.99
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PERLINCL = /usr/lib/perl5/5.8.8/i586-linux-thread-multi
+PGSQL_CFLAGS = 
+PGSQL_LIBS = 
+PKG_CONFIG = /usr/bin/pkg-config
+PLATFORM_WIN32_FALSE = 
+PLATFORM_WIN32_TRUE = #
+POFILES =  ca.po cs.po da.po de.po el.po en_GB.po es_NI.po es.po eu.po fr.po hu.po it.po ja.po nb.po ne.po nl.po pl.po pt_BR.po pt.po ro.po ru.po rw.po sk.po sv.po ta.po tr.po uk.po zh_CN.po zh_TW.po
+POSUB = po
+PO_IN_DATADIR_FALSE = 
+PO_IN_DATADIR_TRUE = 
+QOF_CFLAGS = -I${top_builddir}/lib/libqof/qof -I${top_srcdir}/lib/libqof/qof
+QOF_LIBS = ${top_builddir}/lib/libqof/qof/libgnc-qof.la
+QOF_LIB_DIR = ${pkglibdir}
+QOF_PREFIX = internal
+QOF_XML_DIR = ${pkgdatadir}/xml/qsf
+QTTHREADS_LIB = 
+RANLIB = ranlib
+READLINE_LIB = -lreadline
+REGEX_LIBS = 
+SED = /usr/bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+SQL_DIR = 
+STRIP = strip
+SWIG = /usr/bin/swig
+TERMCAP_LIB = 
+USE_LIBQOF = 
+USE_LIBQOF_FALSE = #
+USE_LIBQOF_TRUE = 
+USE_NLS = yes
+VERSION = 2.0.99
+WARN_CFLAGS = -Wall -Wmissing-prototypes 
+XGETTEXT = /usr/bin/xgettext
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+aqbanking_data = 
+aqbanking_dir = 
+aqbanking_includes = 
+aqbanking_libs = 
+aqbanking_libspp = 
+aqbanking_plugins = 
+bindir = ${exec_prefix}/bin
+build = i686-suse-linux-gnu
+build_alias = 
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = suse
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+enable_dot = yes
+enable_html_docs = yes
+enable_latex_docs = no
+exec_prefix = ${prefix}
+host = i686-suse-linux-gnu
+host_alias = 
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = suse
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = /home/phil/gnucash2/gda-dev/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /opt/gnucash2-gda
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target_alias = 
+accountdir = ${GNC_ACCOUNTS_DIR}/fr_CA
+account_DATA = \
+ acctchrt_actifsfixes.gnucash-xea \
+ acctchrt_automobile.gnucash-xea \
+ acctchrt_basecommune.gnucash-xea \
+ acctchrt_cdmarchemon.gnucash-xea \
+ acctchrt_chequier.gnucash-xea \
+ acctchrt_conjointretraite.gnucash-xea \
+ acctchrt_conjointrev.gnucash-xea \
+ acctchrt_courtage.gnucash-xea \
+ acctchrt_etudeemprunt.gnucash-xea \
+ acctchrt_garderie.gnucash-xea \
+ acctchrt_locataire.gnucash-xea \
+ acctchrt_proprietaire.gnucash-xea \
+ acctchrt_retraite.gnucash-xea \
+ acctchrt_revenus.gnucash-xea
+
+EXTRA_DIST = \
+  ${account_DATA}
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  accounts/fr_CA/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  accounts/fr_CA/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-accountDATA: $(account_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(accountdir)" || $(mkdir_p) "$(DESTDIR)$(accountdir)"
+	@list='$(account_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(accountDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(accountdir)/$$f'"; \
+	  $(accountDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(accountdir)/$$f"; \
+	done
+
+uninstall-accountDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(account_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(accountdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(accountdir)/$$f"; \
+	done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(accountdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-accountDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-accountDATA uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-accountDATA \
+	install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-accountDATA uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: gnucash/branches/gda-dev/accounts/fr_CA/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,20 @@
+accountdir = ${GNC_ACCOUNTS_DIR}/fr_CA
+
+account_DATA = \
+ acctchrt_actifsfixes.gnucash-xea \
+ acctchrt_automobile.gnucash-xea \
+ acctchrt_basecommune.gnucash-xea \
+ acctchrt_cdmarchemon.gnucash-xea \
+ acctchrt_chequier.gnucash-xea \
+ acctchrt_conjointretraite.gnucash-xea \
+ acctchrt_conjointrev.gnucash-xea \
+ acctchrt_courtage.gnucash-xea \
+ acctchrt_etudeemprunt.gnucash-xea \
+ acctchrt_garderie.gnucash-xea \
+ acctchrt_locataire.gnucash-xea \
+ acctchrt_proprietaire.gnucash-xea \
+ acctchrt_retraite.gnucash-xea \
+ acctchrt_revenus.gnucash-xea
+
+EXTRA_DIST = \
+  ${account_DATA}

Added: gnucash/branches/gda-dev/accounts/fr_CA/Makefile.in
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/Makefile.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/Makefile.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,547 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = accounts/fr_CA
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/macros/ac_pkg_swig.m4 \
+	$(top_srcdir)/macros/aqbanking.m4 \
+	$(top_srcdir)/macros/as-scrub-include.m4 \
+	$(top_srcdir)/macros/binreloc.m4 \
+	$(top_srcdir)/macros/gnome-guile-checks.m4 \
+	$(top_srcdir)/macros/legacy_macros.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(accountdir)"
+accountDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(account_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BINRELOC_CFLAGS = @BINRELOC_CFLAGS@
+BINRELOC_LIBS = @BINRELOC_LIBS@
+BUILDING_FROM_SVN_FALSE = @BUILDING_FROM_SVN_FALSE@
+BUILDING_FROM_SVN_TRUE = @BUILDING_FROM_SVN_TRUE@
+BUILD_GUILE = @BUILD_GUILE@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIB = @DL_LIB@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EFENCE_LIBS = @EFENCE_LIBS@
+EGREP = @EGREP@
+ENABLE_DOXYGEN_FALSE = @ENABLE_DOXYGEN_FALSE@
+ENABLE_DOXYGEN_TRUE = @ENABLE_DOXYGEN_TRUE@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
+GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY = @GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDA_DIR = @GDA_DIR@
+GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@
+GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_CFLAGS = @GLADE_CFLAGS@
+GLADE_LIBS = @GLADE_LIBS@
+GLIB26_LIBS = @GLIB26_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNC_ACCOUNTS_DIR = @GNC_ACCOUNTS_DIR@
+GNC_ADD_ON_SRFIS = @GNC_ADD_ON_SRFIS@
+GNC_CHECKS_DIR = @GNC_CHECKS_DIR@
+GNC_CONFIGDIR = @GNC_CONFIGDIR@
+GNC_CTAGS_FILE = @GNC_CTAGS_FILE@
+GNC_CTAGS_FILE_FALSE = @GNC_CTAGS_FILE_FALSE@
+GNC_CTAGS_FILE_TRUE = @GNC_CTAGS_FILE_TRUE@
+GNC_DOC_INSTALL_DIR = @GNC_DOC_INSTALL_DIR@
+GNC_ETAGS_FILE = @GNC_ETAGS_FILE@
+GNC_ETAGS_FILE_FALSE = @GNC_ETAGS_FILE_FALSE@
+GNC_ETAGS_FILE_TRUE = @GNC_ETAGS_FILE_TRUE@
+GNC_GLADE_DIR = @GNC_GLADE_DIR@
+GNC_HAVE_GUILE_WWW_FALSE = @GNC_HAVE_GUILE_WWW_FALSE@
+GNC_HAVE_GUILE_WWW_TRUE = @GNC_HAVE_GUILE_WWW_TRUE@
+GNC_HELPDIR = @GNC_HELPDIR@
+GNC_INCLUDE_DIR = @GNC_INCLUDE_DIR@
+GNC_LIBEXECDIR = @GNC_LIBEXECDIR@
+GNC_PIXMAP_DIR = @GNC_PIXMAP_DIR@
+GNC_SCM_INSTALL_DIR = @GNC_SCM_INSTALL_DIR@
+GNC_SHAREDIR = @GNC_SHAREDIR@
+GNC_SRFI_LOAD_PATH = @GNC_SRFI_LOAD_PATH@
+GNC_TEST_SRFI_LOAD_CMD = @GNC_TEST_SRFI_LOAD_CMD@
+GNC_UI_DIR = @GNC_UI_DIR@
+GNOME_CFLAGS = @GNOME_CFLAGS@
+GNOME_LIBS = @GNOME_LIBS@
+GNOME_PRINT_CFLAGS = @GNOME_PRINT_CFLAGS@
+GNOME_PRINT_LIBS = @GNOME_PRINT_LIBS@
+GNUCASH_ENABLE_GUI_FALSE = @GNUCASH_ENABLE_GUI_FALSE@
+GNUCASH_ENABLE_GUI_TRUE = @GNUCASH_ENABLE_GUI_TRUE@
+GNUCASH_MAJOR_VERSION = @GNUCASH_MAJOR_VERSION@
+GNUCASH_MICRO_VERSION = @GNUCASH_MICRO_VERSION@
+GNUCASH_MINOR_VERSION = @GNUCASH_MINOR_VERSION@
+GNUCASH_SEPARATE_BUILDDIR_FALSE = @GNUCASH_SEPARATE_BUILDDIR_FALSE@
+GNUCASH_SEPARATE_BUILDDIR_TRUE = @GNUCASH_SEPARATE_BUILDDIR_TRUE@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GOFFICE_CFLAGS = @GOFFICE_CFLAGS@
+GOFFICE_LIBS = @GOFFICE_LIBS@
+GREP = @GREP@
+GTKHTML_CFLAGS = @GTKHTML_CFLAGS@
+GTKHTML_LIBS = @GTKHTML_LIBS@
+GTKHTML_USES_GTKPRINT_FALSE = @GTKHTML_USES_GTKPRINT_FALSE@
+GTKHTML_USES_GTKPRINT_TRUE = @GTKHTML_USES_GTKPRINT_TRUE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GUILE = @GUILE@
+GUILE_CONFIG = @GUILE_CONFIG@
+GUILE_FALSE = @GUILE_FALSE@
+GUILE_INCS = @GUILE_INCS@
+GUILE_LIBS = @GUILE_LIBS@
+GUILE_TOOLS = @GUILE_TOOLS@
+GUILE_TRUE = @GUILE_TRUE@
+HAVE_GLIB_2_8_FALSE = @HAVE_GLIB_2_8_FALSE@
+HAVE_GLIB_2_8_TRUE = @HAVE_GLIB_2_8_TRUE@
+HAVE_GTK_2_10_FALSE = @HAVE_GTK_2_10_FALSE@
+HAVE_GTK_2_10_TRUE = @HAVE_GTK_2_10_TRUE@
+HBCI_CFLAGS = @HBCI_CFLAGS@
+HBCI_DIR = @HBCI_DIR@
+HBCI_LIBS = @HBCI_LIBS@
+HTMLHELP_LIBS = @HTMLHELP_LIBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LC_MESSAGES_ENUM = @LC_MESSAGES_ENUM@
+LDFLAGS = @LDFLAGS@
+LIBGDA_CFLAGS = @LIBGDA_CFLAGS@
+LIBGDA_LIBS = @LIBGDA_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBOBJS_SEDSCRIPT = @LIBOBJS_SEDSCRIPT@
+LIBOFX_CFLAGS = @LIBOFX_CFLAGS@
+LIBOFX_LIBS = @LIBOFX_LIBS@
+LIBQOF_BACKEND_QSF_LIBRARY_VERSION = @LIBQOF_BACKEND_QSF_LIBRARY_VERSION@
+LIBQOF_LIBRARY_VERSION = @LIBQOF_LIBRARY_VERSION@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIBXML_VERSION = @LIBXML_VERSION@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSGFMT = @MSGFMT@
+OBJEXT = @OBJEXT@
+OFX_DIR = @OFX_DIR@
+OS_WIN32_FALSE = @OS_WIN32_FALSE@
+OS_WIN32_TRUE = @OS_WIN32_TRUE@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERLINCL = @PERLINCL@
+PGSQL_CFLAGS = @PGSQL_CFLAGS@
+PGSQL_LIBS = @PGSQL_LIBS@
+PKG_CONFIG = @PKG_CONFIG@
+PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@
+PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QOF_CFLAGS = @QOF_CFLAGS@
+QOF_LIBS = @QOF_LIBS@
+QOF_LIB_DIR = @QOF_LIB_DIR@
+QOF_PREFIX = @QOF_PREFIX@
+QOF_XML_DIR = @QOF_XML_DIR@
+QTTHREADS_LIB = @QTTHREADS_LIB@
+RANLIB = @RANLIB@
+READLINE_LIB = @READLINE_LIB@
+REGEX_LIBS = @REGEX_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SQL_DIR = @SQL_DIR@
+STRIP = @STRIP@
+SWIG = @SWIG@
+TERMCAP_LIB = @TERMCAP_LIB@
+USE_LIBQOF = @USE_LIBQOF@
+USE_LIBQOF_FALSE = @USE_LIBQOF_FALSE@
+USE_LIBQOF_TRUE = @USE_LIBQOF_TRUE@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+aqbanking_data = @aqbanking_data@
+aqbanking_dir = @aqbanking_dir@
+aqbanking_includes = @aqbanking_includes@
+aqbanking_libs = @aqbanking_libs@
+aqbanking_libspp = @aqbanking_libspp@
+aqbanking_plugins = @aqbanking_plugins@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+accountdir = ${GNC_ACCOUNTS_DIR}/fr_CA
+account_DATA = \
+ acctchrt_actifsfixes.gnucash-xea \
+ acctchrt_automobile.gnucash-xea \
+ acctchrt_basecommune.gnucash-xea \
+ acctchrt_cdmarchemon.gnucash-xea \
+ acctchrt_chequier.gnucash-xea \
+ acctchrt_conjointretraite.gnucash-xea \
+ acctchrt_conjointrev.gnucash-xea \
+ acctchrt_courtage.gnucash-xea \
+ acctchrt_etudeemprunt.gnucash-xea \
+ acctchrt_garderie.gnucash-xea \
+ acctchrt_locataire.gnucash-xea \
+ acctchrt_proprietaire.gnucash-xea \
+ acctchrt_retraite.gnucash-xea \
+ acctchrt_revenus.gnucash-xea
+
+EXTRA_DIST = \
+  ${account_DATA}
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  accounts/fr_CA/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  accounts/fr_CA/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-accountDATA: $(account_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(accountdir)" || $(mkdir_p) "$(DESTDIR)$(accountdir)"
+	@list='$(account_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(accountDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(accountdir)/$$f'"; \
+	  $(accountDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(accountdir)/$$f"; \
+	done
+
+uninstall-accountDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(account_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(accountdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(accountdir)/$$f"; \
+	done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(accountdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-accountDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-accountDATA uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-accountDATA \
+	install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-accountDATA uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_actifsfixes.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_actifsfixes.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_actifsfixes.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+   Actifs fixes
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Comptes pour la gestion de vos  actifs fixes.importants. 
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Sélectionnez ce groupe de comptes si vous possédez des immobilisations ou actifs fixes importants tels que résidence, chalet, auto ou autres actifs.
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actif</act:name>
+	  <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+		  <act:name>Actifs fixes</act:name>
+		  <act:id type="guid">c888710a53770a065aceae44d8abd0dd</act:id>
+		  <act:type>ASSET</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Actifs fixes</act:description>
+		  <act:slots>
+			  <slot>
+				  <slot:key>placeholder</slot:key>
+				  <slot:value type="string">true</slot:value>
+			  </slot>
+		  </act:slots>
+		  <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Résidence</act:name>
+		  <act:id type="guid">b86ae426ae1fd7705d49ef6ae16d614a</act:id>
+		  <act:type>ASSET</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Résidence</act:description>
+		  <act:parent type="guid">c888710a53770a065aceae44d8abd0dd</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Véhicule</act:name>
+		  <act:id type="guid">66c6a566a0abd30a95e10e2a1b68bc81</act:id>
+		  <act:type>ASSET</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Véhicule</act:description>
+		  <act:parent type="guid">c888710a53770a065aceae44d8abd0dd</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Autres biens immobilisés</act:name>
+		  <act:id type="guid">420fd6fd4be88b92d648611bdcf808da</act:id>
+		  <act:type>ASSET</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Autres biens immobilisés de valeur</act:description>
+		  <act:parent type="guid">c888710a53770a065aceae44d8abd0dd</act:parent>
+	  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_automobile.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_automobile.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_automobile.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+	 Véhicule
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Frais relatifs à votre véhicule.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+	    Sélectionnez ce groupe de comptes si vous devez suivre les frais relatifs à la possession et à l'utilisation d'une auto (assurances, carburant, emprunt, intérêts, ...).
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actif</act:name>
+	  <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actifs fixes</act:name>
+	  <act:id type="guid">c888710a53770a065aceae44d8abd0dd</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actifs fixes</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Véhicule</act:name>
+	  <act:id type="guid">66c6a566a0abd30a95e10e2a1b68bc81</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Véhicule</act:description>
+	  <act:parent type="guid">c888710a53770a065aceae44d8abd0dd</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Passif</act:name>
+	  <act:id type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Passif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Emprunts</act:name>
+	  <act:id type="guid">03a161c156fdb13c85a1f84400866a29</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Emprunts</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Auto</act:name>
+	  <act:id type="guid">856bbc47d550fa0a0fb91c4c59364241</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Emprunt pour l'auto</act:description>
+	  <act:parent type="guid">03a161c156fdb13c85a1f84400866a29</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Dépenses</act:name>
+	  <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépenses</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Auto</act:name>
+	  <act:id type="guid">18afa7c0de704dc2f64c67e42b2a0d19</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Frais associés à l'auto</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Permis</act:name>
+	  <act:id type="guid">8349ba7c26f61f3aafa01ce404c4bb12</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Permis</act:description>
+	  <act:parent type="guid">18afa7c0de704dc2f64c67e42b2a0d19</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Carburant</act:name>
+	  <act:id type="guid">248a4b7dbca7ec82908c11ebc43b17af</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Carburant</act:description>
+	  <act:parent type="guid">18afa7c0de704dc2f64c67e42b2a0d19</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Parking</act:name>
+	  <act:id type="guid">0b77318da42e55a0bc1ec7e39665d53e</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Parking</act:description>
+	  <act:parent type="guid">18afa7c0de704dc2f64c67e42b2a0d19</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Entretien</act:name>
+	  <act:id type="guid">fbd078af145d7d402ec06c6393f9ad2c</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Entretien et réparation</act:description>
+	  <act:parent type="guid">18afa7c0de704dc2f64c67e42b2a0d19</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Intérêts</act:name>
+	  <act:id type="guid">6622783b69e9ca8105125c778c7b621f</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépense d'intérêts</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Auto</act:name>
+	  <act:id type="guid">6a7b42864d57258c6db94249e91d7551</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Intérêts sur emprunt pour auto</act:description>
+	  <act:parent type="guid">6622783b69e9ca8105125c778c7b621f</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Assurances</act:name>
+	  <act:id type="guid">93afcfa6113ca99a60ed52fff880904c</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Primes d'assurances</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Auto</act:name>
+	  <act:id type="guid">1e1f194ac3f0f5c4eac9bcd203c0eb7e</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Assurance automobile</act:description>
+	  <act:parent type="guid">93afcfa6113ca99a60ed52fff880904c</act:parent>
+  </gnc:account>
+</gnc-account-example>
+
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_basecommune.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_basecommune.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_basecommune.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,748 @@
+<?xml version="1.0" encoding="utf-8" ?>
+	<gnc-account-example>
+		<gnc-act:title>
+			Base de comptes communs
+		</gnc-act:title>
+		<gnc-act:short-description>
+			Ensemble des comptes de base les plus couramment utilisés	</gnc-act:short-description>
+		<gnc-act:long-description>
+			La plupart des utilisateurs sélectionneront ce groupe/hiérarchie  de comptes.  Il inclut des comptes de base couramment utilisés par les particuliers, tels que compte chèques, compte d'éargne, encaisse, carte de crédit. revenus et dépenses.
+		</gnc-act:long-description>    
+		<gnc-act:start-selected>1</gnc-act:start-selected>
+		<gnc:account version="2.0.0">
+			<act:name>Root Account</act:name>
+			<act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+			<act:type>ROOT</act:type>
+			<act:commodity-scu>0</act:commodity-scu>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Actif</act:name>
+			<act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+			<act:type>ASSET</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Actif</act:description>
+			<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Liquidités</act:name>
+			<act:id type="guid">aa06af77140bb86a516c66e2d80ca64b</act:id>
+			<act:type>ASSET</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Liquidités ou actifs liquides</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Chèques</act:name>
+			<act:id type="guid">bef57c492226d9c0fd9ded264f4b2c4c</act:id>
+			<act:type>BANK</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Compte chèques</act:description>
+			<act:parent type="guid">aa06af77140bb86a516c66e2d80ca64b</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Épargne</act:name>
+			<act:id type="guid">dc6a0693cb27eb6c2f089eec2c3e9e1f</act:id>
+			<act:type>BANK</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Compte d'épargne</act:description>
+			<act:parent type="guid">aa06af77140bb86a516c66e2d80ca64b</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Encaisse</act:name>
+			<act:id type="guid">44dc9bb70cc14da4e97e8641acaad7e7</act:id>
+			<act:type>CASH</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Encaisse en poche</act:description>
+			<act:parent type="guid">aa06af77140bb86a516c66e2d80ca64b</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Passif</act:name>
+			<act:id type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:id>
+			<act:type>LIABILITY</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Passif</act:description>
+			<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Carte de crédit</act:name>
+			<act:id type="guid">fa58416fa091b6bceb4da8f820209551</act:id>
+			<act:type>LIABILITY</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Carte de crédit</act:description>
+			<act:parent type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Marge de crédit</act:name>
+			<act:id type="guid">f7c738526594bab70cbafaaa8b92319c</act:id>
+			<act:type>LIABILITY</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Marge de crédit personnelle</act:description>
+			<act:parent type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Revenus</act:name>
+			<act:id type="guid">e5e6414e2da9abb0d11a675a1244e380</act:id>
+			<act:type>INCOME</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Revenus</act:description>
+			<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Cadeaux reçus</act:name>
+			<act:id type="guid">e9c9efe604ab92229d5749026d2644b1</act:id>
+			<act:type>INCOME</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Cadeaux reçus</act:description>
+			<act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Intérêts</act:name>
+			<act:id type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:id>
+			<act:type>INCOME</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Revenus d'intérets</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Chèques</act:name>
+			<act:id type="guid">fca6e89627ef4e3d83b1d542cfadde58</act:id>
+			<act:type>INCOME</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Intérêts sur compte chèques</act:description>
+			<act:parent type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Épargne</act:name>
+			<act:id type="guid">caec72233d38c256cef9309a79d42b33</act:id>
+			<act:type>INCOME</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Intérêts sur compte épargne</act:description>
+			<act:parent type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Autres</act:name>
+			<act:id type="guid">6e46f2486bb343c3fd5bdea7947f4845</act:id>
+			<act:type>INCOME</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Revenus autres</act:description>
+			<act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Dépenses</act:name>
+			<act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Dépenses</act:description>
+			<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Ajustements</act:name>
+			<act:id type="guid">a606921e79b77cb8277309e8dcf3694a</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Ajustement/redressement du solde</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Frais bancaires</act:name>
+			<act:id type="guid">b7dbe80f710d59727aa4e88049fb899f</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Frais bancaires</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Livres</act:name>
+			<act:id type="guid">310e217ac77ea70aefdd6e515833356e</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Livres</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Dons</act:name>
+			<act:id type="guid">85b8060da83204c62f2f09cf926353ce</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Dons de bienfaisance</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Vêtements</act:name>
+			<act:id type="guid">e2570844ac22bd5367cdc5e5e76236a6</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Vêtements</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Informatique</act:name>
+			<act:id type="guid">05249357ffd1ce89f36c21821827e42c</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Frais d'informatique</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Restaurant</act:name>
+			<act:id type="guid">326a6fa02b2f077bcbb26d843f818558</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Repas pris au restaurant </act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Formation</act:name>
+			<act:id type="guid">1b587c74f633a1c2353998c4d9bf8bf3</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Formation</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Divertissements</act:name>
+			<act:id type="guid">7e7dcb165f73edd84c074135b5618a9f</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Divertissements</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Musique/Films</act:name>
+			<act:id type="guid">894ab77da94a4a71050b8ec4a44ee54d</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Musique/Films</act:description>
+			<act:parent type="guid">7e7dcb165f73edd84c074135b5618a9f</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Loisirs</act:name>
+			<act:id type="guid">61547e69029faaf19207997f7932f275</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Loisirs</act:description>
+			<act:parent type="guid">7e7dcb165f73edd84c074135b5618a9f</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Voyages</act:name>
+			<act:id type="guid">e6b51fa168ad4bdb7483381e62e33b23</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Voyages</act:description>
+			<act:parent type="guid">7e7dcb165f73edd84c074135b5618a9f</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Passe-temps</act:name>
+			<act:id type="guid">d134af1cce0579e8082a7cbd6e439e67</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Passe-temps</act:description>
+			<act:parent type="guid">7e7dcb165f73edd84c074135b5618a9f</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Cadeaux</act:name>
+			<act:id type="guid">227f56c178b4afc1a728bae3c327ec85</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Cadeaux à des tiers</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Alimentation</act:name>
+			<act:id type="guid">3c06da71421935b544e6d13ef37d06db</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Alimentation</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Assurances</act:name>
+			<act:id type="guid">93afcfa6113ca99a60ed52fff880904c</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Assurances</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Santé</act:name>
+			<act:id type="guid">98988a2a951450a9542bd3b348900144</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Assurance santé</act:description>
+			<act:parent type="guid">93afcfa6113ca99a60ed52fff880904c</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Vie</act:name>
+			<act:id type="guid">9886b7e22cd2170174d2f45bf878af5e</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Assurance vie</act:description>
+			<act:parent type="guid">93afcfa6113ca99a60ed52fff880904c</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Buanderie</act:name>
+			<act:id type="guid">5687f94e4ccf24d07f8c7b226506b03c</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Buanderie</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Frais médicaux</act:name>
+			<act:id type="guid">5ac68aed344d6ec06db888486ac3e116</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Frais médicaux</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Divers</act:name>
+			<act:id type="guid">deff6f8a54da8d9dfdedf3072a86b5a0</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Frais divers</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Transports publics</act:name>
+			<act:id type="guid">bafe25692bedb8b31a0c24aa2d2b50a7</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Transports publics</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Abonnements</act:name>
+			<act:id type="guid">772c52100558dca09949baec5a6c6c8a</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Abonnements</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Fournitures</act:name>
+			<act:id type="guid">a9c03f2d6405fd11cc3837a16ced97e8</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Fournitures et produits ménagers</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Services</act:name>
+			<act:id type="guid">5026621c034d767f9f1e808d236bb410</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Services publics</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Électricité</act:name>
+			<act:id type="guid">a59c86576b6368365337aa4e0c688c8b</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Électricité</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Ordures</act:name>
+			<act:id type="guid">a275fefa4a245c3ec3e380a15862508c</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Collecte d'ordures</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Gaz</act:name>
+			<act:id type="guid">fc1d8057ae24c36de7a193e253e9ba98</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Gaz/Mazout</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Eau</act:name>
+			<act:id type="guid">606bdd89bcb6ea3533f6fbf9873688e8</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Eau</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Câble</act:name>
+			<act:id type="guid">385e0cac5c2026f91fee7795a2137e0b</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Câble</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Internet</act:name>
+			<act:id type="guid">4e2fbbdad8da11055424e43f9c5247e8</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Fournisseur d'accès Internet</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Téléphone</act:name>
+			<act:id type="guid">052d7537a68b5d76a045196248ae96a4</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Téléphone</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Cellulaire</act:name>
+			<act:id type="guid">4b6d8a932311409f4dc765ec33dc77a9</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Téléphone cellulaire</act:description>
+			<act:parent type="guid">5026621c034d767f9f1e808d236bb410</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Cotisations</act:name>
+			<act:id type="guid">83e9bf8770867231e66e89d582e61614</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Cotisations professionnelles et syndicales</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Intérêts</act:name>
+			<act:id type="guid">6622783b69e9ca8105125c778c7b621f</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Dépense d'intérêts</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Carte de crédit</act:name>
+			<act:id type="guid">4db6f0abce3c3d8bf4ac40f4c16bfcf3</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Intérêts sur carte de crédit</act:description>
+			<act:parent type="guid">6622783b69e9ca8105125c778c7b621f</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Marge de crédit</act:name>
+			<act:id type="guid">486b6db4709f11199c826c43132e04da</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Intérêts sur marge de crédit personnelle</act:description>
+			<act:parent type="guid">6622783b69e9ca8105125c778c7b621f</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Garderie</act:name>
+			<act:id type="guid">31c9cce0195ce43fd8a4b8fe305cb292</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Garderie</act:description>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Capitaux propres</act:name>
+			<act:id type="guid">7715b898a1079feb67f582f438c62177</act:id>
+			<act:type>EQUITY</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Capitaux propres</act:description>
+			<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Ouverture</act:name>
+			<act:id type="guid">7f794a970bc2c9c1def2d39238418718</act:id>
+			<act:type>EQUITY</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Soldes d'ouverture des nouveaux comptes</act:description>
+			<act:parent type="guid">7715b898a1079feb67f582f438c62177</act:parent>
+		</gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_cdmarchemon.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_cdmarchemon.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_cdmarchemon.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<gnc-account-example>
+    <gnc-act:title>
+      CD/CPG et marché monéraire
+    </gnc-act:title>
+    <gnc-act:short-description>
+     Comptes corrrespondant aux certificats de dépôt et au marché monétaire.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+	    Sélectionnez ce groupe de comptes (CD/CPG , marché monétaire et intérêts) si vous détenez des certificats de dépôt et d'autres titres du marché monétaire.
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actif</act:name>
+	  <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Liquidités</act:name>
+	  <act:id type="guid">aa06af77140bb86a516c66e2d80ca64b</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Liquidités ou actifs liquides</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>CD/CPG bancaires</act:name>
+	  <act:id type="guid">01b0547221e7cb52f604eeb27919da82</act:id>
+	  <act:type>BANK</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Certificats de dépôt et de placements bancaires</act:description>
+	  <act:parent type="guid">aa06af77140bb86a516c66e2d80ca64b</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Marché monétaire</act:name>
+	  <act:id type="guid">3dc58e05515a220bd6b825469f83fca1</act:id>
+	  <act:type>BANK</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Marché monétaire</act:description>
+	  <act:parent type="guid">aa06af77140bb86a516c66e2d80ca64b</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Revenus</act:name>
+	  <act:id type="guid">e5e6414e2da9abb0d11a675a1244e380</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Revenus</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Intérêts</act:name>
+	  <act:id type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Revenus d'intérets</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>CD/CPG</act:name>
+	  <act:id type="guid">2ffdc6fd290436abbbd395fc6bdd1fef</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Intérêts sur CD/CPG bancaires</act:description>
+	  <act:parent type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Marché monétaire</act:name>
+	  <act:id type="guid">2667d301e6b53d180c6e854616cdf817</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Intérêts sur marché monétaire</act:description>
+	  <act:parent type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:parent>
+  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_chequier.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_chequier.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_chequier.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+      Chéquier
+    </gnc-act:title>
+    <gnc-act:short-description>
+   Ensemble de comptes incontournables pour utiliser GnuCash.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+	    Sélectionnez ce groupe de comptes si vous ne voulez suivre que le solde de votre compte en banque.  Si le besoin s'en fait sentir plus tard, vous pourrez commencer un suivi plus serré de vos revenus et dépenses en ajoutant de nouveaux groupes de comptes.
+    </gnc-act:long-description>
+    <gnc:account version="2.0.0">
+	    <act:name>Root Account</act:name>
+	    <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	    <act:type>ROOT</act:type>
+	    <act:commodity-scu>0</act:commodity-scu>
+    </gnc:account>
+    <gnc:account version="2.0.0">
+	    <act:name>Actif</act:name>
+	    <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+	    <act:type>ASSET</act:type>
+	    <act:commodity>
+		    <cmdty:space>ISO4217</cmdty:space>
+		    <cmdty:id>CAD</cmdty:id>
+	    </act:commodity>
+	    <act:commodity-scu>100</act:commodity-scu>
+	    <act:description>Actif</act:description>
+	    <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	    <act:slots>
+		    <slot>
+			    <slot:key>placeholder</slot:key>
+			    <slot:value type="string">true</slot:value>
+		    </slot>
+	    </act:slots>
+    </gnc:account>
+    <gnc:account version="2.0.0">
+	    <act:name>Liquidités</act:name>
+	    <act:id type="guid">aa06af77140bb86a516c66e2d80ca64b</act:id>
+	    <act:type>ASSET</act:type>
+	    <act:commodity>
+		    <cmdty:space>ISO4217</cmdty:space>
+		    <cmdty:id>CAD</cmdty:id>
+	    </act:commodity>
+	    <act:commodity-scu>100</act:commodity-scu>
+	    <act:description>Liquidités ou actifs liquides</act:description>
+	    <act:slots>
+		    <slot>
+			    <slot:key>placeholder</slot:key>
+			    <slot:value type="string">true</slot:value>
+		    </slot>
+	    </act:slots>
+	    <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+    </gnc:account>
+    <gnc:account version="2.0.0">
+	    <act:name>Chèques</act:name>
+	    <act:id type="guid">bef57c492226d9c0fd9ded264f4b2c4c</act:id>
+	    <act:type>BANK</act:type>
+	    <act:commodity>
+		    <cmdty:space>ISO4217</cmdty:space>
+		    <cmdty:id>CAD</cmdty:id>
+	    </act:commodity>
+	    <act:commodity-scu>100</act:commodity-scu>
+	    <act:description>Compte chèques</act:description>
+	    <act:parent type="guid">aa06af77140bb86a516c66e2d80ca64b</act:parent>
+    </gnc:account>
+   	    <gnc:account version="2.0.0">
+		    <act:name>Capitaux propres</act:name>
+		    <act:id type="guid">7715b898a1079feb67f582f438c62177</act:id>
+		    <act:type>EQUITY</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Capitaux propres</act:description>
+		    <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+		    <act:slots>
+			    <slot>
+				    <slot:key>placeholder</slot:key>
+				    <slot:value type="string">true</slot:value>
+			    </slot>
+		    </act:slots>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Ouverture</act:name>
+		    <act:id type="guid">7f794a970bc2c9c1def2d39238418718</act:id>
+		    <act:type>EQUITY</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Soldes d'ouverture des nouveaux comptes</act:description>
+		    <act:parent type="guid">7715b898a1079feb67f582f438c62177</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Dépenses</act:name>
+		    <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+		    <act:type>EXPENSE</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Dépenses</act:description>
+		    <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Revenus</act:name>
+		    <act:id type="guid">e5e6414e2da9abb0d11a675a1244e380</act:id>
+		    <act:type>INCOME</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Revenus</act:description>
+		    <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	    </gnc:account>
+</gnc-account-example>
+
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointretraite.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointretraite.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointretraite.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+	Retraite Conjoint(e)
+    </gnc-act:title>
+    <gnc-act:short-description>
+	    Compte de placements pour retraite du (de la) conjoint(e) et autres comptes associés.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+	    Sélectionnez ce groupe si vous faites le suivi d'un compte de placements (actions, obligations, fonds communs et fonds d'indices boursiers) pour la retraite de votre conjoint(e).
+    </gnc-act:long-description>    
+	    <gnc:account version="2.0.0">
+		    <act:name>Root Account</act:name>
+		    <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+		    <act:type>ROOT</act:type>
+		    <act:commodity-scu>0</act:commodity-scu>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Actif</act:name>
+		    <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Actif</act:description>
+		    <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+		    <act:slots>
+			    <slot>
+				    <slot:key>placeholder</slot:key>
+				    <slot:value type="string">true</slot:value>
+			    </slot>
+		    </act:slots>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Placements</act:name>
+		    <act:id type="guid">3609dabb457eb4b186c4059c93d2069a</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Placements</act:description>
+		    <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Retraite - Conjoint(e)</act:name>
+		    <act:id type="guid">3b7fc349a666e9d43b12f7a7bad07a76</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Compte d'épargne retraite du (de la) conjoint(e)</act:description>
+		    <act:slots>
+			    <slot>
+				    <slot:key>placeholder</slot:key>
+				    <slot:value type="string">true</slot:value>
+			    </slot>
+		    </act:slots>
+		    <act:parent type="guid">3609dabb457eb4b186c4059c93d2069a</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Obligations</act:name>
+		    <act:id type="guid">b249603740b6486d2d63bab392c30961</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Obligations et débentures</act:description>
+		    <act:parent type="guid">3b7fc349a666e9d43b12f7a7bad07a76</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Actions</act:name>
+		    <act:id type="guid">2a739c149d1b31e085227ac0c7bc30ab</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Actions</act:description>
+		    <act:parent type="guid">3b7fc349a666e9d43b12f7a7bad07a76</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Fonds commun</act:name>
+		    <act:id type="guid">422b393ae28658f13912293e79db66bc</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Fonds commun de placements</act:description>
+		    <act:parent type="guid">3b7fc349a666e9d43b12f7a7bad07a76</act:parent>
+	    </gnc:account>
+	    <gnc:account version="2.0.0">
+		    <act:name>Fonds d'indices boursiers</act:name>
+		    <act:id type="guid">116a463642471dab7ed2a71c1ee56aa3</act:id>
+		    <act:type>ASSET</act:type>
+		    <act:commodity>
+			    <cmdty:space>ISO4217</cmdty:space>
+			    <cmdty:id>CAD</cmdty:id>
+		    </act:commodity>
+		    <act:commodity-scu>100</act:commodity-scu>
+		    <act:description>Fonds d'indices boursiers</act:description>
+		    <act:parent type="guid">3b7fc349a666e9d43b12f7a7bad07a76</act:parent>
+	    </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointrev.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointrev.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_conjointrev.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+      Revenus - Conjoint(e)
+    </gnc-act:title>
+    <gnc-act:short-description>
+     Comptes pour le suivi distinct des revenus du (de la) conjoint(e)
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Sélectionnez ce groupe de comptes si vous voulez suivre séparément les revenus et dépenses d'emploi du (de la) conjoint(e).
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Revenus</act:name>
+	  <act:id type="guid">e5e6414e2da9abb0d11a675a1244e380</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Revenus</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Emploi - Conjoint(e)</act:name>
+	  <act:id type="guid">645791ddccbe9ff1c4906b3126f458c8</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Revenus d'emploi du (de la) conjoint(e)</act:description>
+	  <act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Primes</act:name>
+	  <act:id type="guid">a374c4a7cf2411241eb6679ab5c689f7</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Primes et bonis</act:description>
+	  <act:parent type="guid">645791ddccbe9ff1c4906b3126f458c8</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Commissions</act:name>
+	  <act:id type="guid">4fa3217194f22373ecdfcfbdfffb8370</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Commissions sur ventes</act:description>
+	  <act:parent type="guid">645791ddccbe9ff1c4906b3126f458c8</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Salaire</act:name>
+	  <act:id type="guid">3c8250e8fe4c5cfd1506526c3e387a23</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Salaire brut</act:description>
+	  <act:parent type="guid">645791ddccbe9ff1c4906b3126f458c8</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Frais remboursés</act:name>
+	  <act:id type="guid">b2c01d9d1cce60e83becb7dff88f30e3</act:id>
+	  <act:type>INCOME</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Notes de frais remboursées</act:description>
+	  <act:parent type="guid">645791ddccbe9ff1c4906b3126f458c8</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Dépenses</act:name>
+	  <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépenses</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Taxes et impôts</act:name>
+	  <act:id type="guid">80e04606e5258beb9d50e264d5a40d85</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Taxes et impôts</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Emploi - Conjoint(e)</act:name>
+	  <act:id type="guid">b39178d39ea997115b592f0b8a488dee</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Taxes et impôts sur revenus d'emploi du (de la) conjoint (e)</act:description>
+	  <act:parent type="guid">80e04606e5258beb9d50e264d5a40d85</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Assurance emploi</act:name>
+	  <act:id type="guid">c95316227b45f5e5d7413296973bc97d</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Assurance emploi</act:description>
+	  <act:parent type="guid">b39178d39ea997115b592f0b8a488dee</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Fédéral</act:name>
+	  <act:id type="guid">1a2bec160b3db460d132c0ce4284fecc</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Impôt fédéral</act:description>
+	  <act:parent type="guid">b39178d39ea997115b592f0b8a488dee</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Provincial</act:name>
+	  <act:id type="guid">bfde23aefb4089a13ded6cd720cec257</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Impôt provincial</act:description>
+	  <act:parent type="guid">b39178d39ea997115b592f0b8a488dee</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>RAMQ/Medicare</act:name>
+	  <act:id type="guid">8337c159fce0eef4be0e1341b55a708f</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Régime d'assurance maladie</act:description>
+	  <act:parent type="guid">b39178d39ea997115b592f0b8a488dee</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>RRQ/RCP</act:name>
+	  <act:id type="guid">1b97e8e587751f0f88457c9fa8fb6d77</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Régime de rente d'état</act:description>
+	  <act:parent type="guid">b39178d39ea997115b592f0b8a488dee</act:parent>
+  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_courtage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_courtage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_courtage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+    Courtage et placements
+    </gnc-act:title>
+    <gnc-act:short-description>
+	    Compte de courtage et comptes de placements correspondants
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+	    Sélectionnez ce groupe de comptes si vous possédez des titres de placements (actions, obligations, fonds communs de placement, fonds d'indices boursiers).
+  </gnc-act:long-description>
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+  <act:name>Actif</act:name>
+  <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+	  <cmdty:space>ISO4217</cmdty:space>
+	  <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Actif</act:description>
+  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
+	  <slot>
+		  <slot:key>placeholder</slot:key>
+		  <slot:value type="string">true</slot:value>
+	  </slot>
+  </act:slots>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Placements</act:name>
+  <act:id type="guid">3609dabb457eb4b186c4059c93d2069a</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Placements</act:description>
+  <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Courtage</act:name>
+  <act:id type="guid">661234ad1c0ea686799ee7b7ef76aa15</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Compte de courtage</act:description>
+  <act:slots>
+    <slot>
+      <slot:key>placeholder</slot:key>
+      <slot:value type="string">true</slot:value>
+    </slot>
+  </act:slots>
+  <act:parent type="guid">3609dabb457eb4b186c4059c93d2069a</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Obligations</act:name>
+  <act:id type="guid">e4f896850957c54988809c760d8ee2d2</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Obligations</act:description>
+  <act:parent type="guid">661234ad1c0ea686799ee7b7ef76aa15</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Actions</act:name>
+  <act:id type="guid">80ea02b5f91d7b8c82009c0a303f6a2d</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Actions</act:description>
+  <act:parent type="guid">661234ad1c0ea686799ee7b7ef76aa15</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Fonds commun</act:name>
+  <act:id type="guid">426c49eeb93fa2f22740a27821bced0d</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Fonds commun de placement</act:description>
+  <act:parent type="guid">661234ad1c0ea686799ee7b7ef76aa15</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Fonds d'indices boursiers</act:name>
+  <act:id type="guid">ea7945b02259a751799f5abfa7ad63b6</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>CAD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Fonds d'indices boursiers</act:description>
+  <act:parent type="guid">661234ad1c0ea686799ee7b7ef76aa15</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+	<act:name>Dépenses</act:name>
+	<act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	<act:type>EXPENSE</act:type>
+	<act:commodity>
+		<cmdty:space>ISO4217</cmdty:space>
+		<cmdty:id>CAD</cmdty:id>
+	</act:commodity>
+	<act:commodity-scu>100</act:commodity-scu>
+	<act:description>Dépenses</act:description>
+	<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	<act:slots>
+		<slot>
+			<slot:key>placeholder</slot:key>
+			<slot:value type="string">true</slot:value>
+		</slot>
+	</act:slots>
+</gnc:account>
+<gnc:account version="2.0.0">
+	<act:name>Frais de courtage</act:name>
+	<act:id type="guid">4ad541618b3ff0cf34216ae76d699ad4</act:id>
+	<act:type>EXPENSE</act:type>
+	<act:commodity>
+		<cmdty:space>ISO4217</cmdty:space>
+		<cmdty:id>CAD</cmdty:id>
+	</act:commodity>
+	<act:commodity-scu>100</act:commodity-scu>
+	<act:description>Frais de courtage</act:description>
+	<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+	<act:name>Revenus</act:name>
+	<act:id type="guid">e5e6414e2da9abb0d11a675a1244e380</act:id>
+	<act:type>INCOME</act:type>
+	<act:commodity>
+		<cmdty:space>ISO4217</cmdty:space>
+		<cmdty:id>CAD</cmdty:id>
+	</act:commodity>
+	<act:commodity-scu>100</act:commodity-scu>
+	<act:description>Revenus</act:description>
+	<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	<act:slots>
+		<slot>
+			<slot:key>placeholder</slot:key>
+			<slot:value type="string">true</slot:value>
+		</slot>
+	</act:slots>
+</gnc:account>
+<gnc:account version="2.0.0">
+	<act:name>Intérêts</act:name>
+	<act:id type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:id>
+	<act:type>INCOME</act:type>
+	<act:commodity>
+		<cmdty:space>ISO4217</cmdty:space>
+		<cmdty:id>CAD</cmdty:id>
+	</act:commodity>
+	<act:commodity-scu>100</act:commodity-scu>
+	<act:description>Revenus d'intérets</act:description>
+	<act:slots>
+		<slot>
+			<slot:key>placeholder</slot:key>
+			<slot:value type="string">true</slot:value>
+		</slot>
+	</act:slots>
+	<act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+	<act:name>Obligations</act:name>
+	<act:id type="guid">816b1ad0d54db7e30602c0b3280b1f0f</act:id>
+	<act:type>INCOME</act:type>
+	<act:commodity>
+		<cmdty:space>ISO4217</cmdty:space>
+		<cmdty:id>CAD</cmdty:id>
+	</act:commodity>
+	<act:commodity-scu>100</act:commodity-scu>
+	<act:description>Intérêts sur obligations</act:description>
+	<act:parent type="guid">59057b71a3fd0057b2e5c2d23277ad96</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+	<act:name>Dividences</act:name>
+	<act:id type="guid">d5368bc25659df621e2b34bd1708f27a</act:id>
+	<act:type>INCOME</act:type>
+	<act:commodity>
+		<cmdty:space>ISO4217</cmdty:space>
+		<cmdty:id>CAD</cmdty:id>
+	</act:commodity>
+	<act:commodity-scu>100</act:commodity-scu>
+	<act:description>Revenus de dividendes</act:description>
+	<act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+</gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_etudeemprunt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_etudeemprunt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_etudeemprunt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<gnc-account-example>
+    <gnc-act:title>
+      Emprunt pour études
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Emprunt pour études et frais d'intérêts associés.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Selectionnez ce groupe si vous devez gérer un emprunt pour études.
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Passif</act:name>
+	  <act:id type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Passif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Emprunts</act:name>
+	  <act:id type="guid">03a161c156fdb13c85a1f84400866a29</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Emprunts</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Études</act:name>
+	  <act:id type="guid">4eb202607c3ab5f173eec32e2cb4972f</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Emprunt pour les études</act:description>
+	  <act:parent type="guid">03a161c156fdb13c85a1f84400866a29</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Dépenses</act:name>
+	  <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépenses</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Intérêts</act:name>
+	  <act:id type="guid">6622783b69e9ca8105125c778c7b621f</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépense d'intérêts</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Études</act:name>
+	  <act:id type="guid">eaafdbe8554a4e7b33ef9e93b6cb49cd</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Intérêts sur emprunt pour études</act:description>
+	  <act:parent type="guid">6622783b69e9ca8105125c778c7b621f</act:parent>
+  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_garderie.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_garderie.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_garderie.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+      Enfant à charge
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Un compte pour le suivi de vos frais pour un enfant à charge. 
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Sélectionnez ce groupe si vous avez un jeune enfant .
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Dépenses</act:name>
+	  <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépenses</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Garderie</act:name>
+	  <act:id type="guid">31c9cce0195ce43fd8a4b8fe305cb292</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Garderie</act:description>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_locataire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_locataire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_locataire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+      Location d'un logis
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Frais associés à la location d'une résidence ou d'un logis.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Sélectionnez ce groupe de compte si vous louez une résidence ou un logis (Loyer, assurances, ...).
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Dépenses</act:name>
+	  <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépenses</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Assurances</act:name>
+	  <act:id type="guid">93afcfa6113ca99a60ed52fff880904c</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Assurances</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Locataire</act:name>
+	  <act:id type="guid">d76ea87c9f5d1a844914ba7566a71212</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Assurance du locataire-résident</act:description>
+	  <act:parent type="guid">93afcfa6113ca99a60ed52fff880904c</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Loyer</act:name>
+	  <act:id type="guid">c385132651830fba73e788911aef696c</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Frais de location d'un logement</act:description>
+	  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_proprietaire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_proprietaire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_proprietaire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+     Propriétaire d'une résidence
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Dépenses du propriétaire d'une résidence.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Sélectionnez ce groupe de comptes si vous êtes propriétaire d'une résidence, et voulez en suivre les frais associés (hypothèque, intérêts, entretien et réparations, taxes, ...).
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actif</act:name>
+	  <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actifs fixes</act:name>
+	  <act:id type="guid">c888710a53770a065aceae44d8abd0dd</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actifs fixes</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Résidence</act:name>
+	  <act:id type="guid">b86ae426ae1fd7705d49ef6ae16d614a</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Résidence</act:description>
+	  <act:parent type="guid">c888710a53770a065aceae44d8abd0dd</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Passif</act:name>
+	  <act:id type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Passif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Emprunts</act:name>
+	  <act:id type="guid">03a161c156fdb13c85a1f84400866a29</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Emprunts</act:description>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+	  <act:parent type="guid">daf9ad37262c7254bbdf0be5ba26e29e</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Hypothèque</act:name>
+	  <act:id type="guid">e17068c9c1e1be7635d125ef0a073691</act:id>
+	  <act:type>LIABILITY</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Emprunt hypothécaire pour la résidence</act:description>
+	  <act:parent type="guid">03a161c156fdb13c85a1f84400866a29</act:parent>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Dépenses</act:name>
+	  <act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+	  <act:type>EXPENSE</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Dépenses</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+		  <act:name>Intérêts</act:name>
+		  <act:id type="guid">6622783b69e9ca8105125c778c7b621f</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Dépense d'intérêts</act:description>
+		  <act:slots>
+			  <slot>
+				  <slot:key>placeholder</slot:key>
+				  <slot:value type="string">true</slot:value>
+			  </slot>
+		  </act:slots>
+		  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Hypothèque</act:name>
+		  <act:id type="guid">3b3cbc695ad5a40e97e6a238cbb6e98e</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Intérêts sur emprunt hypothécaire</act:description>
+		  <act:parent type="guid">6622783b69e9ca8105125c778c7b621f</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Entretien de la résidence</act:name>
+		  <act:id type="guid">6f52398f2c8d4668e4392b8f42c228d0</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Entretien de la résidence</act:description>
+		  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Assurances</act:name>
+		  <act:id type="guid">93afcfa6113ca99a60ed52fff880904c</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Assurances</act:description>
+		  <act:slots>
+			  <slot>
+				  <slot:key>placeholder</slot:key>
+				  <slot:value type="string">true</slot:value>
+			  </slot>
+		  </act:slots>
+		  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Résidence</act:name>
+		  <act:id type="guid">b5b8a47a69567954297061b1421b783d</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Assurance de la résidence</act:description>
+		  <act:parent type="guid">93afcfa6113ca99a60ed52fff880904c</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Taxes et impôts</act:name>
+		  <act:id type="guid">80e04606e5258beb9d50e264d5a40d85</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Taxes et impôts</act:description>
+		  <act:slots>
+			  <slot>
+				  <slot:key>placeholder</slot:key>
+				  <slot:value type="string">true</slot:value>
+			  </slot>
+		  </act:slots>
+		  <act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+	  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Impôt foncier</act:name>
+		  <act:id type="guid">138dfe323ece735de3ca32486f15fa1e</act:id>
+		  <act:type>EXPENSE</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Impôt foncier</act:description>
+		  <act:parent type="guid">80e04606e5258beb9d50e264d5a40d85</act:parent>
+	  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_retraite.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_retraite.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_retraite.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+    <gnc-act:title>
+      Retraite
+    </gnc-act:title>
+    <gnc-act:short-description>
+      Compte de placements pour votre retraite et autres comptes associés.
+    </gnc-act:short-description>
+    <gnc-act:long-description>
+    Sélectionnez ce groupe de comptes si vous faites le suivi d'un compte de placements (actions, obligations, fonds communs et fonds d'indices boursiers) pour votre retraite.
+  </gnc-act:long-description>    
+  <gnc:account version="2.0.0">
+	  <act:name>Root Account</act:name>
+	  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+	  <act:type>ROOT</act:type>
+	  <act:commodity-scu>0</act:commodity-scu>
+  </gnc:account>
+  <gnc:account version="2.0.0">
+	  <act:name>Actif</act:name>
+	  <act:id type="guid">b14f810bdb0b57b77acf1a5db700068c</act:id>
+	  <act:type>ASSET</act:type>
+	  <act:commodity>
+		  <cmdty:space>ISO4217</cmdty:space>
+		  <cmdty:id>CAD</cmdty:id>
+	  </act:commodity>
+	  <act:commodity-scu>100</act:commodity-scu>
+	  <act:description>Actif</act:description>
+	  <act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+	  <act:slots>
+		  <slot>
+			  <slot:key>placeholder</slot:key>
+			  <slot:value type="string">true</slot:value>
+		  </slot>
+	  </act:slots>
+  </gnc:account>
+	  <gnc:account version="2.0.0">
+		  <act:name>Placements</act:name>
+		  <act:id type="guid">3609dabb457eb4b186c4059c93d2069a</act:id>
+		  <act:type>ASSET</act:type>
+		  <act:commodity>
+			  <cmdty:space>ISO4217</cmdty:space>
+			  <cmdty:id>CAD</cmdty:id>
+		  </act:commodity>
+		  <act:commodity-scu>100</act:commodity-scu>
+		  <act:description>Placements</act:description>
+		  <act:parent type="guid">b14f810bdb0b57b77acf1a5db700068c</act:parent>
+	  </gnc:account>
+		  <gnc:account version="2.0.0">
+			  <act:name>Retraite</act:name>
+			  <act:id type="guid">4da3426bfefc086f7922e263e8de98f7</act:id>
+			  <act:type>ASSET</act:type>
+			  <act:commodity>
+				  <cmdty:space>ISO4217</cmdty:space>
+				  <cmdty:id>CAD</cmdty:id>
+			  </act:commodity>
+			  <act:commodity-scu>100</act:commodity-scu>
+			  <act:description>Compte d'épargne retraite (RER)</act:description>
+			  <act:slots>
+				  <slot>
+					  <slot:key>placeholder</slot:key>
+					  <slot:value type="string">true</slot:value>
+				  </slot>
+			  </act:slots>
+			  <act:parent type="guid">3609dabb457eb4b186c4059c93d2069a</act:parent>
+		  </gnc:account>
+		  <gnc:account version="2.0.0">
+			  <act:name>Obligations</act:name>
+			  <act:id type="guid">5fb05abdef22b9a2b7e507f519ff0a40</act:id>
+			  <act:type>ASSET</act:type>
+			  <act:commodity>
+				  <cmdty:space>ISO4217</cmdty:space>
+				  <cmdty:id>CAD</cmdty:id>
+			  </act:commodity>
+			  <act:commodity-scu>100</act:commodity-scu>
+			  <act:description>Obligations et débentures</act:description>
+			  <act:parent type="guid">4da3426bfefc086f7922e263e8de98f7</act:parent>
+		  </gnc:account>
+		  <gnc:account version="2.0.0">
+			  <act:name>Actions</act:name>
+			  <act:id type="guid">46cda7ff6b22da72abe2a14501c6f9d7</act:id>
+			  <act:type>ASSET</act:type>
+			  <act:commodity>
+				  <cmdty:space>ISO4217</cmdty:space>
+				  <cmdty:id>CAD</cmdty:id>
+			  </act:commodity>
+			  <act:commodity-scu>100</act:commodity-scu>
+			  <act:description>Actions</act:description>
+			  <act:parent type="guid">4da3426bfefc086f7922e263e8de98f7</act:parent>
+		  </gnc:account>
+		  <gnc:account version="2.0.0">
+			  <act:name>Fonds commun</act:name>
+			  <act:id type="guid">45771eadb5d6025d28e4569b460ab1cf</act:id>
+			  <act:type>ASSET</act:type>
+			  <act:commodity>
+				  <cmdty:space>ISO4217</cmdty:space>
+				  <cmdty:id>CAD</cmdty:id>
+			  </act:commodity>
+			  <act:commodity-scu>100</act:commodity-scu>
+			  <act:description>Fonds commun de placements</act:description>
+			  <act:parent type="guid">4da3426bfefc086f7922e263e8de98f7</act:parent>
+		  </gnc:account>
+		  <gnc:account version="2.0.0">
+			  <act:name>Fonds d'indices boursiers</act:name>
+			  <act:id type="guid">20f3663bbd1635dba2f3039306ee355c</act:id>
+			  <act:type>ASSET</act:type>
+			  <act:commodity>
+				  <cmdty:space>ISO4217</cmdty:space>
+				  <cmdty:id>CAD</cmdty:id>
+			  </act:commodity>
+			  <act:commodity-scu>100</act:commodity-scu>
+			  <act:description>Fonds d'indices bourciers</act:description>
+			  <act:parent type="guid">4da3426bfefc086f7922e263e8de98f7</act:parent>
+		  </gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Added: gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_revenus.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_revenus.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CA/acctchrt_revenus.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gnc-account-example>
+	<gnc-act:title>
+		Revenus d'emploi
+	</gnc-act:title>
+	<gnc-act:short-description>
+		Comptes pour le suivi  des revenus d'emploi.
+	</gnc-act:short-description>
+	<gnc-act:long-description>
+		Sélectionnez ce groupe de comptes si vous voulez faire le suivi de vos revenus et dépenses d'emploi.
+	</gnc-act:long-description>    
+	<gnc:account version="2.0.0">
+		<act:name>Root Account</act:name>
+		<act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+		<act:type>ROOT</act:type>
+		<act:commodity-scu>0</act:commodity-scu>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+		<act:name>Revenus</act:name>
+		<act:id type="guid">e5e6414e2da9abb0d11a675a1244e380</act:id>
+		<act:type>INCOME</act:type>
+		<act:commodity>
+			<cmdty:space>ISO4217</cmdty:space>
+			<cmdty:id>CAD</cmdty:id>
+		</act:commodity>
+		<act:commodity-scu>100</act:commodity-scu>
+		<act:description>Revenus</act:description>
+		<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+		<act:slots>
+			<slot>
+				<slot:key>placeholder</slot:key>
+				<slot:value type="string">true</slot:value>
+			</slot>
+		</act:slots>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+		<act:name>Emploi</act:name>
+		<act:id type="guid">37aced4bc848665fa4f425ac1d79f0ac</act:id>
+		<act:type>INCOME</act:type>
+		<act:commodity>
+			<cmdty:space>ISO4217</cmdty:space>
+			<cmdty:id>CAD</cmdty:id>
+		</act:commodity>
+		<act:commodity-scu>100</act:commodity-scu>
+		<act:description>Revenus d'emploi</act:description>
+		<act:parent type="guid">e5e6414e2da9abb0d11a675a1244e380</act:parent>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+		<act:name>Commisssions</act:name>
+		<act:id type="guid">4dbd931cbbd8483c717a98897f00a65b</act:id>
+		<act:type>INCOME</act:type>
+		<act:commodity>
+			<cmdty:space>ISO4217</cmdty:space>
+			<cmdty:id>CAD</cmdty:id>
+		</act:commodity>
+		<act:commodity-scu>100</act:commodity-scu>
+		<act:description>Commissions sur ventes</act:description>
+		<act:parent type="guid">37aced4bc848665fa4f425ac1d79f0ac</act:parent>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+		<act:name>Primes</act:name>
+		<act:id type="guid">3f5b8f04c1402f77e7b91844ff2d64f3</act:id>
+		<act:type>INCOME</act:type>
+		<act:commodity>
+			<cmdty:space>ISO4217</cmdty:space>
+			<cmdty:id>CAD</cmdty:id>
+		</act:commodity>
+		<act:commodity-scu>100</act:commodity-scu>
+		<act:description> Primes et bonis</act:description>
+		<act:parent type="guid">37aced4bc848665fa4f425ac1d79f0ac</act:parent>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+		<act:name>Salaire</act:name>
+		<act:id type="guid">90d29b5d3b8ac90ece87e9d9af732365</act:id>
+		<act:type>INCOME</act:type>
+		<act:commodity>
+			<cmdty:space>ISO4217</cmdty:space>
+			<cmdty:id>CAD</cmdty:id>
+		</act:commodity>
+		<act:commodity-scu>100</act:commodity-scu>
+		<act:description>Salaire brut</act:description>
+		<act:parent type="guid">37aced4bc848665fa4f425ac1d79f0ac</act:parent>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+		<act:name>Frais remboursés</act:name>
+		<act:id type="guid">bb1979e6af4a44011004b0d093660db5</act:id>
+		<act:type>INCOME</act:type>
+		<act:commodity>
+			<cmdty:space>ISO4217</cmdty:space>
+			<cmdty:id>CAD</cmdty:id>
+		</act:commodity>
+		<act:commodity-scu>100</act:commodity-scu>
+		<act:description>Notes de frais rembousées</act:description>
+		<act:parent type="guid">37aced4bc848665fa4f425ac1d79f0ac</act:parent>
+	</gnc:account>
+	<gnc:account version="2.0.0">
+			<act:name>Dépenses</act:name>
+			<act:id type="guid">5882be9c31d58cc589c53f94d86f82da</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Dépenses</act:description>
+			<act:parent type="guid">1972cce2e2364f95b2b0bc014502661d</act:parent>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Taxes et impôts</act:name>
+			<act:id type="guid">80e04606e5258beb9d50e264d5a40d85</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Taxes et impôts</act:description>
+			<act:slots>
+				<slot>
+					<slot:key>placeholder</slot:key>
+					<slot:value type="string">true</slot:value>
+				</slot>
+			</act:slots>
+			<act:parent type="guid">5882be9c31d58cc589c53f94d86f82da</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Emploi</act:name>
+			<act:id type="guid">43e6d2ed9633b94707da60146f3559c4</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Taxes et impôts sur revenus d'emploi</act:description>
+			<act:parent type="guid">80e04606e5258beb9d50e264d5a40d85</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Assurance emploi</act:name>
+			<act:id type="guid">f694c908fc5a2c370876c5f0fe69ad47</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Assurance emploi</act:description>
+			<act:parent type="guid">43e6d2ed9633b94707da60146f3559c4</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Fédéral</act:name>
+			<act:id type="guid">512b9220039ee417a161fdf773d84e86</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Impôt fédéral</act:description>
+			<act:parent type="guid">43e6d2ed9633b94707da60146f3559c4</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>Provincial</act:name>
+			<act:id type="guid">a2dac67a630b55697e79cc0e4e5c4786</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Impôt provincial</act:description>
+			<act:parent type="guid">43e6d2ed9633b94707da60146f3559c4</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>RAMQ/Medicare</act:name>
+			<act:id type="guid">35e70cc110954b479ab3c634e68fb74d</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Régime d'assurance maladie</act:description>
+			<act:parent type="guid">43e6d2ed9633b94707da60146f3559c4</act:parent>
+		</gnc:account>
+		<gnc:account version="2.0.0">
+			<act:name>RRQ/RPC</act:name>
+			<act:id type="guid">8c4ad52d84f0e7615ab7db5ebc3a02e6</act:id>
+			<act:type>EXPENSE</act:type>
+			<act:commodity>
+				<cmdty:space>ISO4217</cmdty:space>
+				<cmdty:id>CAD</cmdty:id>
+			</act:commodity>
+			<act:commodity-scu>100</act:commodity-scu>
+			<act:description>Régime de rentes d'état</act:description>
+			<act:parent type="guid">43e6d2ed9633b94707da60146f3559c4</act:parent>
+		</gnc:account>
+</gnc-account-example>
+
+<!-- Local variables: -->
+<!-- mode: xml        -->
+<!-- End:             -->

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des investissements (action, obligation, fond commun, fond d'indices, intérêt, dividende).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Avoir</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>
@@ -95,6 +102,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Revenu de dividende</act:name>
@@ -138,6 +146,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Commissions</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_business.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_business.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_business.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actifs</act:name>
   <act:id type="new">4f40ddce996f8f74b4e99f52e275ba14</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Actifs</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs actuels</act:name>
@@ -135,6 +142,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Carte de crédit</act:name>
@@ -190,6 +198,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Revenus d'intérêts</act:name>
@@ -269,6 +278,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustement</act:name>
@@ -1324,6 +1334,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Solde</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Soldes initiaux</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un emprunt automobile (emprunt automobile, intérêts d'emprunt automobile).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des CDs ou comptes de marché monétaire(CD, intérêt CD, marché monétaire, intérêt du marché monétaire).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs actuels</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Revenu d'intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des dépenses de garderie.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Dépenses</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Garderie</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs actuels</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Comptes de dettes</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -203,6 +212,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustement</act:name>
@@ -697,6 +707,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Capitaux propres</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Soldes initiaux</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_currency.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_currency.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_currency.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
     Note: compte actuellement en DEM; editer le compte pour changer la monnaie.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">b3c65be1c5d163746ddc0c506f3f4619</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un emprunt étudiant (emprunt étudiant,  intérêts d'emprunt étudiant).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des actifs fixes importants (maison, véhicule, résidence secondaire, autres actifs).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs fixes</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un emprunt immobilier(Hypothèque d'un emprunt, Hypothèque sur des intérêts).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un logement. Cet ensemble fournit un groupe de comptes pour suivre les dépenses du logement (assurance, taxes, entretien du logement).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Dépenses</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Entretien logement</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez quelque chose d'autre qu'un emprunt immobilier (autre emprunt, autres intérêts d'emprunt).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous louez une maison ou un appartement (location, assurance du locataire).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Dépenses</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Assurances</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des comptes d'épargne retraite (actions, obligations, fonds communs, fonds d'indices).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez une épouse travaillant (salaire (épouse), impôts (épouse)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Revenus</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Salaire (épouse)</act:name>
@@ -39,6 +46,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Taxes (épouse)</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_CH/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des comptes d'épargne retraite de l'épouse(actions, obligations, fonds communs, fonds d'indices, intérêts, dividendes).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des investissements (action, obligation, fond commun, fond d'indices, intérêt, dividende).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Avoir</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>
@@ -95,6 +102,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Revenu de dividende</act:name>
@@ -138,6 +146,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Commissions</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_business.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_business.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_business.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actifs</act:name>
   <act:id type="new">4f40ddce996f8f74b4e99f52e275ba14</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Actifs</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs actuels</act:name>
@@ -135,6 +142,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Carte de crédit</act:name>
@@ -190,6 +198,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Revenus d'intérêts</act:name>
@@ -269,6 +278,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustement</act:name>
@@ -1324,6 +1334,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Solde</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Soldes initiaux</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un emprunt automobile (emprunt automobile, intérêts d'emprunt automobile).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des CDs ou comptes de marché monétaire(CD, intérêt CD, marché monétaire, intérêt du marché monétaire).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs actuels</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Revenu d'intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des dépenses de garderie.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Dépenses</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Garderie</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs actuels</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Comptes de dettes</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -203,6 +212,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustement</act:name>
@@ -697,6 +707,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Capitaux propres</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Soldes initiaux</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_currency.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_currency.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_currency.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
     Note: compte actuellement en DEM; editer le compte pour changer la monnaie.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">b3c65be1c5d163746ddc0c506f3f4619</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un emprunt étudiant (emprunt étudiant,  intérêts d'emprunt étudiant).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des actifs fixes importants (maison, véhicule, résidence secondaire, autres actifs).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Actifs fixes</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un emprunt immobilier(Hypothèque d'un emprunt, Hypothèque sur des intérêts).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez un logement. Cet ensemble fournit un groupe de comptes pour suivre les dépenses du logement (assurance, taxes, entretien du logement).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Dépenses</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Entretien logement</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez quelque chose d'autre qu'un emprunt immobilier (autre emprunt, autres intérêts d'emprunt).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passif</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Passif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Emprunts</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Intérêts</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous louez une maison ou un appartement (location, assurance du locataire).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Dépenses</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Assurances</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des comptes d'épargne retraite (actions, obligations, fonds communs, fonds d'indices).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez une épouse travaillant (salaire (épouse), impôts (épouse)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Revenus</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Revenus</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Salaire (épouse)</act:name>
@@ -39,6 +46,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Dépenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Taxes (épouse)</act:name>

Modified: gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/fr_FR/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Vous devriez sélectionner cet ensemble de comptes si vous avez des comptes d'épargne retraite de l'épouse(actions, obligations, fonds communs, fonds d'indices, intérêts, dividendes).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Actif</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Actif</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investissements</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Jelölje ki e számlahalmazt, ha foglalkozik befektetésekkel (részvény, kötvény, befektetési alap, hozam, kamat, osztalék)!
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Befektetések</act:name>
@@ -83,6 +90,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Bevétel</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Osztalék</act:name>
@@ -126,6 +134,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Jutalék</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_business.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_business.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_business.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">4f40ddce996f8f74b4e99f52e275ba14</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Forgóeszközök</act:name>
@@ -135,6 +142,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Kötelezettségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Hitelkártya</act:name>
@@ -190,6 +198,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Bevétel</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kamatbevétel</act:name>
@@ -269,6 +278,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kiigazítás</act:name>
@@ -1324,6 +1334,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Saját tőke</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Nyitóegyenlegek</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt kiválasztani, ha ön vásárol autót hitelre (autóhitel, autóhitelkamat).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Kötelezettségek</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Kötelezettségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Hitelek</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kamat</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes kiválasztani, ha önnek van befektetési jegye vagy pénzpiaci számlája (CD, CD-kamat, pénzpiaci, pénzpiaci kamat)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Forgóeszközök</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Bevétel</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kamatbevétel</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_checkbook.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_checkbook.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_checkbook.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
      Akkor érdemes ezt kiválasztani, ha csak a folyószámlája forgalmát kívánja ellenőrizni. Később elkezdheti a bevételei és költségei alaposabb nyomonkövetését, ha szükségét érzi.
     </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">bde24bbbe01829aff3dac8d038e174cc</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Forgóeszközök</act:name>
@@ -54,6 +61,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Bevétel</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Költségek</act:name>
@@ -65,6 +73,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -86,6 +95,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Saját tőke</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Nyitóegyenlegek</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes kiválasztani ezt ha önnek vannak gyerektartási költségei.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Költségek</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gyerektartás</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Forgóeszközök</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Kötelezettségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Hitelkártya</act:name>
@@ -94,6 +102,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Bevétel</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Jutalom</act:name>
@@ -192,6 +201,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kiigazítás</act:name>
@@ -675,6 +685,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Saját tőke</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Nyitóegyenlegek</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Annak érdemes kiválasztani ezt, aki vett fel diákhitelt (DH, DH-kamat)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Kötelezettségek</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Kötelezettségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Hitelek</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kamat</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes kiválasztani ezt, ha ön nagyobb befektetett eszközökkel rendelkezik (ház, jármű, nyaraló, más eszköz).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Befektetett eszközök</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Önnek akkor célszerű ezt választani, ha rendelkezik lakáshitellel (jelzáloghitel, kamat).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Kötelezettségek</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Kötelezettségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Hitelek</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kamat</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt választani, ha önnek van saját lakása. Ez a készlet a saját lakás költségeinek nyomonkövetésére való számlákat tartalmaz (biztosítás, adók, javítások).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Költségek</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Lakásjavítás</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt választani, ha ön vesz fel más, kisebb hiteleket.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Kötelezettségek</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Kötelezettségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Hitelek</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kamat</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt választani, ha ön bérel lakást (lakbér, lakásbiztosítás)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Költségek</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Biztosítás</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt választani, ha önnek vannak nyugdíjszámlái (részvény, kötvény, befektetési alap, nyugdíjalap)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Befektetések</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt kiválasztani, ha önnek van dolgozó hitvese (fizetés (hitves), adók (hitves)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Bevétel</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Bevétel</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fizetés (hitves)</act:name>
@@ -39,6 +46,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Költségek</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Adók (hitves)</act:name>

Modified: gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/hu_HU/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Akkor érdemes ezt kiválasztani, ha önnek vannak befektetései a hitvese nevén (részvény, kötvény, befektetési alap, kamat osztalék)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Eszközök</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Eszközök</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Befektetések</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -19,6 +19,12 @@
     investimenti (azioni, buoni, fondi comuni, fondi indicizzati, interessi, dividendi).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Attività</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -27,6 +33,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Attività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimenti</act:name>
@@ -103,6 +110,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Entrate</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Entrate dividendi</act:name>
@@ -146,6 +154,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Commissioni</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si possiede un mutuo per l'automobile (mutuo automobile, interessi sul mutuo).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passività</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Passività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Mutui</act:name>
@@ -55,6 +62,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Interessi</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_checkbook.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_checkbook.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_checkbook.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
      Utile per tenere il saldo delle proprie entrate e uscite. Successivamente, se ce ne sarà bisogno, sarà possibile incominciare a tenerne traccia in modo più dettagliato.
     </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Attività</act:name>
   <act:id type="new">bde24bbbe01829aff3dac8d038e174cc</act:id>
   <act:type>ASSET</act:type>
@@ -24,6 +30,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Attività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Attività correnti</act:name>
@@ -59,6 +66,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Entrate</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Uscite</act:name>
@@ -70,6 +78,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -91,6 +100,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Capitali</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bilanci d'apertura</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si hanno delle uscite per la baby sitter.
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Uscite</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Baby sitter</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -19,6 +19,12 @@
   </gnc-act:long-description>
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Attività</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -27,6 +33,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Attività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Attività correnti</act:name>
@@ -81,6 +88,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Passività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Carta credito</act:name>
@@ -102,6 +110,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Entrate</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Entrate extra</act:name>
@@ -200,6 +209,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Correzioni</act:name>
@@ -356,6 +366,17 @@
   <act:parent type="new">1884bbd7394883ebafec8b9e2eb091a4</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
+  <act:name>Intrattenimento</act:name>
+  <act:id type="new">0ebd1d5f40d9e9e8bb1a4bf539650dd1</act:id>
+  <act:type>EXPENSE</act:type>
+  <act:commodity>
+    <cmdty:space>ISO4217</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </act:commodity>
+  <act:description>Intrattenimento</act:description>
+  <act:parent type="new">1884bbd7394883ebafec8b9e2eb091a4</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Musica/Film</act:name>
   <act:id type="new">4570ea8f4ac5cbd7d8927c905f0978ae</act:id>
   <act:type>EXPENSE</act:type>
@@ -683,6 +704,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Capitali</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bilanci d'apertura</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si possiedono delle attività di notevole valore e durata (casa, automobile, seconda casa, altre attività).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Attività</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Attività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Attività ingenti</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si possiede un mutuo per la casa (mutuo, interessi).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passività</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Passività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Mutui</act:name>
@@ -55,6 +62,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Interessi</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si possiede una casa. L'insieme fornisce un gruppo di conti utili a tenere traccia delle spese di casa (assicurazione, imposte, riparazioni).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Uscite</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Riparazioni casa</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si possiedono altri mutui oltre a quello per la casa (altri mutui, interessi).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passività</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Passività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Mutui</act:name>
@@ -55,6 +62,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Interessi</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si ha in affitto una casa o un appartamento.
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Uscite</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Affitto</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,6 +15,12 @@
     Selezionare questo insieme di conti se si possiedono dei fondi pensione (azioni, buoni, fondi comuni, fondi indicizzati).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Attività</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -23,6 +29,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Attività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimenti</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,12 @@
     Selezionare questo insieme di conti se il coniuge lavora (stipendio ed imposte del coniuge).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Entrate</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -26,6 +32,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Entrate</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Stipendio (coniuge)</act:name>
@@ -47,6 +54,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Uscite</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Imposte (coniuge)</act:name>

Modified: gnucash/branches/gda-dev/accounts/it/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/it/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/it/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,12 @@
     Selezionare questo insieme di conti se si possiedono degli investimenti in favore del coniuge (azioni, buoni, fondi comuni, fondi indicizzati, interessi, dividendi).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Attività</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -26,6 +32,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Attività</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimenti</act:name>

Modified: gnucash/branches/gda-dev/accounts/ja_JP.EUC/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/ja_JP.EUC/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/ja_JP.EUC/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       ¤Û¤È¤ó¤É¤Î¥æ¡¼¥¶¡¼¤Ï¤³¤ÎÈñÌܤòÁª¤Ö¤Ç¤·¤ç¤¦¡£¤â¤Ã¤È¤â°ìÈÌŪ¤Ë»È¤ï¤ì¤ëÈñÌÜ (¶ä¹ÔͶ⡢¸½¶â¡¢¥¯¥ì¥¸¥Ã¥È¥«¡¼¥É¡¢½êÆÀ¡¢°ìÈÌŪ¤Ê»Ù½Ð) ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ȗȼ</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -62,6 +68,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>ÉéºÄ</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>¼Ú¶â</act:name>
@@ -94,6 +101,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>¼ýÆþ</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>¥Ü¡¼¥Ê¥¹</act:name>
@@ -181,6 +189,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>»Ù½Ð</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ä´À°</act:name>
@@ -631,6 +640,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>»ñËÜ</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>½é´ü»Ä¹â</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have investments (stock, bond, mutual fund, index fund, interest, dividend).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investments</act:name>
@@ -94,6 +101,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dividend Income</act:name>
@@ -137,6 +145,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Commissions</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_business.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_business.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_business.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     </gnc-act:long-description>
     <gnc-act:exclude-from-select-all>1</gnc-act:exclude-from-select-all>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">4f40ddce996f8f74b4e99f52e275ba14</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Nåværende Aktiva</act:name>
@@ -135,6 +142,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Gjeld</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kreditt Kort</act:name>
@@ -190,6 +198,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Inntekt</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Renteinntekt</act:name>
@@ -269,6 +278,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Justering</act:name>
@@ -1324,6 +1334,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Inngående Balanse</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil nok velge dette oppsettet dersom du har et billån.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gjeld</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Gjeld</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>LÃ¥n</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Renter</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have CDs or money market accounts (CD, CD interest, money market, money market interest).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Current Assets</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Interest Income</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_checkbook.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_checkbook.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_checkbook.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
      Use this if you just want to balance your checkbook.  Later on, you can start tracking income and expenses in more detail if you feel the need.
     </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktiva</act:name>
   <act:id type="new">bde24bbbe01829aff3dac8d038e174cc</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Aktiva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Nåværende Aktiva</act:name>
@@ -54,6 +61,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Inntekt</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Utgifter</act:name>
@@ -65,6 +73,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -86,6 +95,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Egenkapital</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Inngående Balanse</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have childcare expenses.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Expenses</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Childcare</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Current Assets</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Credit Card</act:name>
@@ -94,6 +102,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -192,6 +201,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Adjustment</act:name>
@@ -686,6 +696,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Opening Balances</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil nok velge dette oppsettet dersom du har et Studielån.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gjeld</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Gjeld</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>LÃ¥n</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Renter</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have large fixed assets (house, vehicle, vacation home, other assets).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fixed Assets</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_full.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_full.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_full.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -7,6 +7,12 @@
      Full chart of accounts contains all default accounts.
     </gnc-act:short-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">c942789c77cfdd65bc6e4c12900f0805</act:id>
   <act:type>ASSET</act:type>
@@ -15,6 +21,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Current Assets</act:name>
@@ -334,6 +341,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity
   <act:description>Liabilities</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Credit Card</act:name>
@@ -421,6 +429,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -574,6 +583,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Adjustment</act:name>
@@ -1266,6 +1276,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity
   <act:description>Equity</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Opening Balances</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil nok velge dette oppsettet dersom du har et huslån (pantegjeld, rente).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gjeld</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Gjeld</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>LÃ¥n</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Renter</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil nok velge dette oppsettet dersom du eier et hus. Det inneholder kontoer for å følgeutgifter på huset (forsikring, avgifter, hus reperasjoner).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Utgifter</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Husreperasjoner</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil nok velge dette oppsettet dersom du har et lån som ikke passer i de andre lån oppsettene.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Gjeld</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Gjeld</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>LÃ¥n</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Renter</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Du vil nok velge dette oppsettet hvis du leier et hus eller en leilighet (leie, leie forsikring).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Utgifter</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Utgifter</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Forsikring</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have retirement accounts (stock, bond, mutual fund, index fund).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investments</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have a working spouse (salary (spouse), taxes (spouse)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Income</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Income</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Salary (Spouse)</act:name>
@@ -39,6 +46,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Expenses</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Taxes (Spouse)</act:name>

Modified: gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/nb/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     You would want to select this set of accounts if you have investments in a spouse's name (stock, bond, mutual fund, index fund, interest, dividend).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Assets</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>NOK</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investments</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     Deverá selecionar este conjunto de contas caso possua investimentos (ações, obrigações, fundos de investimento, fundos de índices, juros, dividendos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>
@@ -95,6 +102,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Receita</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Receita de Dividendos</act:name>
@@ -138,6 +146,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Comissões</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha um empréstimo para automóvel (empréstimo para automóvel, juro do empréstimo).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juro</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha depósitos a prazo ou contas no mercado financeiro (DP, Juros DP, mercado monetário, juro mercado monetário).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ativos Atuais</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Receita</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juros da Receita</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha despesas com crianças.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Despesas</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Cuidados Infantís</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ativos Atuais</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Contas a Pagar</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Receitas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bônus</act:name>
@@ -203,6 +212,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustes</act:name>
@@ -675,6 +685,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Líquido</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Saldos Iniciais</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_currency.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_currency.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_currency.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
     Nota: conta encontra-se em BRL; edite a conta para alterar a moeda.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">b3c65be1c5d163746ddc0c506f3f4619</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas se possuir um crédito educativo (empréstimo para educação, juros do empréstimo para educação).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juros</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas se tiver ativos fixos (casa, automóvel, casa de férias, outros ativos).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ativos Fixos</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha contraido um empréstimo para habitação (emprétimo habitação, juro do empréstimo).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juros</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso possua uma habitação própria. Este conjunto disponibiliza um grupo de contas para acompanhar despesas da casa (seguro, impostos, reparos).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Despesas</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Reparos na Casa</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas se tiver empréstimo em geral (outro empréstimo, juros do outro empréstimo).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juro</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha uma casa alugada (renda).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Despesas</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Seguro</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha contas de aposentadoria (ações, obrigações, fundos de investimento, fundos de índices).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas caso tenha um cônjuge que tenha emprego (salário, impostos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Receita</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Receita</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Salário (Cônjuge)</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_BR/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Deverá selecionar este conjunto de contas se tiver investimentos em nome do cônjuge (ações, obrigações, fundos de investimento, fundos de índices, juros, dividendos).
   </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Ativos</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>BRL</cmdty:id>
   </act:currency>
   <act:description>Ativos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
     Você desejará seleccionar este conjunto de acções caso possua investimentos (acções, obrigações, fundos de investimento, fundos de índices, juros, dividendos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activos</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Activos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>
@@ -95,6 +102,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Receita</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Receita de Dividendos</act:name>
@@ -138,6 +146,7 @@
     <cmdty:id>EUR</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Comissões</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Você desejará seleccionar este conjunto de contas caso tenha um empréstimo para automóvel (empréstimo para automóvel, juro do empréstimo).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juro</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará utilizar este conjunto de contas caso tenha depósitos a prazo ou contas no mercado financeiro (DP, Juros DP, mercado monetário, juro mercado monetário).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activos</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Activos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Activos Actuais</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Receita</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juros da Receita</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas caso tenha despesas com crianças.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Despesas</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Cuidados Infantís</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activos</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Activos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Activos Actuais</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Contas a Pagar</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Receitas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bónus</act:name>
@@ -203,6 +212,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ajustamentos</act:name>
@@ -686,6 +696,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Resultado</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Saldos Iniciais</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas se possuir um empréstimo para educação (empréstimo para educação, juros do empréstimo para educação).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juros</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas se tiver activos fixos de grandes dimensões (casa, automóvel, casa de férias, outros activos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activos</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Activos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Activos Fixos</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas caso tenha contraido um empréstimo para habitação (emprétimo habitação, juro do empréstimo).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juros</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas caso possua uma habitação própria. Este conjunto disponibiliza um grupo de contas para acompanhar despesas da casa (seguro, impostos, reparações).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Despesas</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Reparações na Casa</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas se tiver outro empréstimo para além do crédito à habitação (outro empréstimo, juros do outro empréstimo).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Passivo</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Passivo</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Empréstimos</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Juro</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas caso tenha uma casa alugada (renda, seguro de arrendamento).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Despesas</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Seguro</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Você deverá querer seleccionar este conjunto de contas caso tenha contas de reforma (acções, obrigações, fundos de investimento, fundos de índices).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activos</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Activos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas caso tenha uma esposa que tenha emprego (salário (esposa), impostos (esposa)).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Receita</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Receita</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Salário (Esposa)</act:name>
@@ -39,6 +46,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Despesas</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Impostos (Esposa)</act:name>

Modified: gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/pt_PT/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Desejará seleccionar este conjunto de contas se tiver investimentos em nome da esposa (acções, obrigações, fundos de investimento, fundos de índices, juros, dividendos).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Activos</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>PTE</cmdty:id>
   </act:commodity>
   <act:description>Activos</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investimentos</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, vlastníte investície (akcie, dlhopisy, podielové listy).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktíva</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investície</act:name>
@@ -94,6 +101,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Príjem</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dividendový príjem</act:name>
@@ -137,6 +145,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Poplatky</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak ste si zobrali pô¾ièku na auto.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasíva</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Pasíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dlhy</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Úrok</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak vlastníte depozitné certifikáty alebo investujete na peòa¾nom trhu.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktíva</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Be¾né aktíva</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Príjem</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Úrokový príjem</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_childcare.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_childcare.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_childcare.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak máte výdavky na starostlivos» o die»a.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Výdaje</act:name>
   <act:id type="new">ee8238ee2c2ce590160761df09b99b72</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Staroslivos» o die»a</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
     <act:name>Aktíva</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
     <act:name>Aktuálne aktíva</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Pasíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Splatné úèty</act:name>
@@ -105,6 +113,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Príjem</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Bonus</act:name>
@@ -203,6 +212,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
     <act:name>Úpravy</act:name>
@@ -697,6 +707,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Majetok</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Poèiatoèný stav</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_currency.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_currency.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_currency.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,6 +12,12 @@
 	Poznámka: úèet je aktuálne v DEM; ak chcete, mo¾ete to zmeni».
     </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktíva</act:name>
   <act:id type="new">b3c65be1c5d163746ddc0c506f3f4619</act:id>
   <act:type>ASSET</act:type>
@@ -20,6 +26,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investície</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_eduloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_eduloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_eduloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak ste si zobrali pô¾ièku na ¹túdium.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasíva</act:name>
   <act:id type="new">4e7e8e39487ad4aba0b62c2232c577c5</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Pasíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dlhy</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Úrok</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak vlastníte veµké fixné aktíva (dom, dopravné prostriedky, ostatné aktíva).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktíva</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Fixné aktíva</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Zvoµte si túto sadu úètov, ak ste si zobrali úver na dom (hypoteku).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasíva</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Pasíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dlhy</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Úrok</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_homeown.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_homeown.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_homeown.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Zvoµte si túto sadu úètov, ak vlastníte dom. Táto sada poskytuje skupinu úètov na sledovanie výdajov na dom (poistenie, dane, opravy domu).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Výdaje</act:name>
   <act:id type="new">84732f5fdd27b6463d75bf958e3a4b06</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Opravy domu</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_otherloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_otherloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_otherloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak máte aj inú ne¾ hypotekárnu pô¾ièku.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Pasíva</act:name>
   <act:id type="new">8ec79e80d9abf58d78ce3129d3fe3365</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Pasíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Dlhy</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Úrok</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_renter.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_renter.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_renter.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Túto sadu úètov si zvoµte, ak si prenajímate dom alebo byt (nájomné, poistenie)
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Výdaje</act:name>
   <act:id type="new">9a2b4520f113372f4e576f5b6dc129c6</act:id>
   <act:type>EXPENSE</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Poistenie</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_retiremt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_retiremt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_retiremt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Zvoµte si túto sadu úètov, ak máte úèty, ktoré vám priná¹ajú dôchodok (akcie, dlhopisy, podielové listy, index fondov).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktíva</act:name>
   <act:id type="new">e67ef2c52a4eaf3b9d37d317848a5812</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investície</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseinc.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseinc.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Túto sadu úètov si zvoµte, ak vá¹ ¾ivotný partner pracuje.
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Príjem</act:name>
   <act:id type="new">b4fadf6188d7f1ae7e7aa4fa27f5cc95</act:id>
   <act:type>INCOME</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Príjem</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Mzda (Partnerova)</act:name>
@@ -39,6 +46,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Výdaje</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
     <act:name>Dane a poplatky (Partnerove)</act:name>

Modified: gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseretire.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/sk/acctchrt_spouseretire.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
 	Zvoµte si túto sadu úètov, ak ste investovali v partnerovom mene (akcie, dlhopisy, podielové listy). 
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Aktíva</act:name>
   <act:id type="new">96d9b17add59eb4c7edec7ed241af755</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:currency>
   <act:description>Aktíva</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Investície</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>
   <gnc-act:start-selected>0</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>100 KASA</act:name>
   <act:id type="new">d7ed89788e0d79481613caaacc07214a</act:id>
   <act:type>CASH</act:type>
@@ -30,6 +36,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>101 ALINAN &#199;EKLER</act:name>
@@ -51,6 +58,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>102 BANKALAR</act:name>
@@ -72,6 +80,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>103 VER. &#199;EKLER ve &#214;DE. EM&#221;R. (-)</act:name>
@@ -93,6 +102,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>108 D&#221;&#208;ER HAZIR DE&#208;.</act:name>
@@ -114,6 +124,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>110 H&#221;SSE SENETLER&#221;</act:name>
@@ -135,6 +146,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>111 &#214;ZEL KES. TAH. SEN. ve BONO.</act:name>
@@ -156,6 +168,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>112 KAMU KES. TAH. SEN. ve BONO.</act:name>
@@ -177,6 +190,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>118 D&#221;&#208;ER MEN. KIYMETLER</act:name>
@@ -198,6 +212,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>119 MEN. KIYM. DE&#208;. D&#220;&#222;. KAR&#222;. (-)</act:name>
@@ -219,6 +234,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>120 ALICILAR</act:name>
@@ -240,6 +256,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>121 ALACAK SENETLER&#221;</act:name>
@@ -261,6 +278,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>122 ALACAK SENETLER&#221; REES. (-)</act:name>
@@ -282,6 +300,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>126 VER. DEPOZ&#221;TO ve TEM&#221;N.</act:name>
@@ -303,6 +322,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>127 D&#221;&#208;ER T&#221;C. ALACAKLAR</act:name>
@@ -324,6 +344,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>128 &#222;&#220;P. T&#221;C. ALACAKLAR</act:name>
@@ -345,6 +366,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>129 &#222;&#220;P. T&#221;C. ALACAKLAR KAR&#222;. (-)</act:name>
@@ -366,6 +388,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>131 ORTAKL. ALACAKLAR</act:name>
@@ -387,6 +410,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>132 &#221;&#222;T&#221;RAK. ALACAKLAR</act:name>
@@ -408,6 +432,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>133 BA&#208;LI ORTAKLIK. ALACAKLAR</act:name>
@@ -429,6 +454,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>135 PERSONELDEN ALACAKLAR</act:name>
@@ -450,6 +476,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>136 D&#221;&#208;ER &#199;E&#222;. ALACAKLAR</act:name>
@@ -471,6 +498,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>137 D&#221;&#208;ER ALACAK SEN. REES. (-)</act:name>
@@ -492,6 +520,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>138 &#222;&#220;P. D&#221;&#208;ER ALACAK.</act:name>
@@ -513,6 +542,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>139 &#222;&#220;P. D&#221;&#208;ER ALACAK. KAR&#222;. (-)</act:name>
@@ -534,6 +564,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>150 &#221;LK MADDE ve MALZEME</act:name>
@@ -555,6 +586,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>151 YARI MAMUL. - &#220;RET&#221;M</act:name>
@@ -576,6 +608,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>152 MAMULLER</act:name>
@@ -597,6 +630,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>153 T&#221;CAR&#221; MALLAR</act:name>
@@ -618,6 +652,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>157 D&#221;&#208;ER STOKLAR</act:name>
@@ -639,6 +674,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>158 STOK DE&#208;. D&#220;&#222;. KAR&#222;. (-)</act:name>
@@ -660,6 +696,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>159 VER. S&#221;PAR&#221;&#222; AVANS.</act:name>
@@ -681,6 +718,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>170 Y.Y. &#221;N&#222;. ve ONAR. MAAL&#221;YET.</act:name>
@@ -702,6 +740,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>179 TA&#222;ERON. VER. AVANSLAR</act:name>
@@ -723,6 +762,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>180 GEL. AYLARA A&#221;T G&#221;DERLER</act:name>
@@ -744,6 +784,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>181 GEL&#221;R TAHAKKUKLARI</act:name>
@@ -765,6 +806,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>190 DEVREDEN KDV</act:name>
@@ -786,6 +828,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>191 &#221;ND&#221;R&#221;LECEK KDV</act:name>
@@ -807,6 +850,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>192 D&#221;&#208;ER KDV</act:name>
@@ -828,6 +872,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>193 PE&#222;. &#214;DE. VERG. ve FONLAR</act:name>
@@ -849,6 +894,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>195 &#221;&#222; AVANSLARI</act:name>
@@ -870,6 +916,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>196 PERSONEL AVANSLARI</act:name>
@@ -891,6 +938,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>197 SAYIM ve TESEL. NOKS.</act:name>
@@ -912,6 +960,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>198 D&#221;&#208;ER &#199;E&#222;. D&#214;N. VARLIK.</act:name>
@@ -933,6 +982,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>199 D&#221;&#208;ER D&#214;N. VARLIK. KAR&#222;. (-)</act:name>
@@ -954,6 +1004,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>220 ALICILAR</act:name>
@@ -975,6 +1026,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>221 ALACAK SENETLER&#221;</act:name>
@@ -996,6 +1048,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>222 ALACAK SENETLER&#221; REES. (-)</act:name>
@@ -1017,6 +1070,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>226 VER. DEPOZ&#221;TO ve TEM&#221;N.</act:name>
@@ -1038,6 +1092,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>229 &#222;&#220;P. T&#221;C. ALACAKLAR KAR&#222;. (-)</act:name>
@@ -1059,6 +1114,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>231 ORTAKL. ALACAKLAR</act:name>
@@ -1080,6 +1136,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>232 &#221;&#222;T&#221;RAKL. ALACAKLAR</act:name>
@@ -1101,6 +1158,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>233 BA&#208;LI ORTAKL. ALACAKLAR</act:name>
@@ -1122,6 +1180,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>235 PERSONELDEN ALACAKLAR</act:name>
@@ -1143,6 +1202,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>236 D&#221;&#208;ER &#199;E&#222;. ALACAKLAR</act:name>
@@ -1164,6 +1224,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>237 D&#221;&#208;ER ALACAK SEN. REES. (-)</act:name>
@@ -1185,6 +1246,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>239 &#222;&#220;P. D&#221;&#208;ER ALACAK. KAR&#222;. (-)</act:name>
@@ -1206,6 +1268,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>240 BA&#208;LI MEN. KIYMETLER</act:name>
@@ -1227,6 +1290,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>241 BA&#208;. MEN. KIYM. DE&#208;. D&#220;&#222;. KAR&#222;. (-)</act:name>
@@ -1248,6 +1312,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>242 &#221;&#222;T&#221;RAKLER</act:name>
@@ -1269,6 +1334,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>243 &#221;&#222;T&#221;RAKLERE SERMAYE TAAH. (-)</act:name>
@@ -1290,6 +1356,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>244 &#221;&#222;T. SERM. PAY. DE&#208;. D&#220;&#222;. KAR&#222;. (-)</act:name>
@@ -1311,6 +1378,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>245 BA&#208;LI ORTAKLIKLAR</act:name>
@@ -1332,6 +1400,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>246 BA&#208;. ORTAKL. SERM. TAAH. (-)</act:name>
@@ -1353,6 +1422,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>247 BA&#208;. ORT. SERM. PAY. DE&#208;. D&#220;&#222;. KAR&#222;. (-)</act:name>
@@ -1374,6 +1444,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>248 D&#221;&#208;. MAL&#221; DURAN VARLIK.</act:name>
@@ -1395,6 +1466,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>249 D&#221;&#208;. MAL&#221; DURAN VARLIK. KAR&#222;. (-)</act:name>
@@ -1416,6 +1488,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>250 ARAZ&#221; ve ARSALAR</act:name>
@@ -1437,6 +1510,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>251 YER ALTI ve YER &#220;ST&#220; D&#220;ZEN.</act:name>
@@ -1458,6 +1532,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>252 B&#221;NALAR</act:name>
@@ -1479,6 +1554,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>253 TES&#221;S, MAK. ve C&#221;HAZLAR</act:name>
@@ -1500,6 +1576,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>254 TA&#222;ITLAR</act:name>
@@ -1521,6 +1598,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>255 DEM&#221;RBA&#222;LAR</act:name>
@@ -1542,6 +1620,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>256 D&#221;&#208;. MADD&#221; DURAN VARLIK.</act:name>
@@ -1563,6 +1642,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>257 B&#221;R&#221;KM&#221;&#222; AMORT&#221;SMAN. (-)</act:name>
@@ -1584,6 +1664,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>258 YAPILM. OLAN YATIRIMLAR</act:name>
@@ -1605,6 +1686,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>259 VER&#221;LEN AVANSLAR</act:name>
@@ -1626,6 +1708,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>260 HAKLAR</act:name>
@@ -1647,6 +1730,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>261 &#222;EREF&#221;YE</act:name>
@@ -1668,6 +1752,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>262 KUR. ve &#214;RG&#220;T. G&#221;DERLER&#221;</act:name>
@@ -1689,6 +1774,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>263 ARA&#222;. ve GEL&#221;&#222;. G&#221;DERLER&#221;</act:name>
@@ -1710,6 +1796,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>264 &#214;ZEL MAL&#221;YETLER</act:name>
@@ -1731,6 +1818,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>267 D&#221;&#208;. MADD&#221; OLM. DURAN VARLIK.</act:name>
@@ -1752,6 +1840,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>268 B&#221;R&#221;KM&#221;&#222; AMORT&#221;SMAN. (-)</act:name>
@@ -1773,6 +1862,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>269 VER&#221;LEN AVANSLAR</act:name>
@@ -1794,6 +1884,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>271 ARAMA G&#221;DERLER&#221;</act:name>
@@ -1815,6 +1906,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>272 HAZ. ve GEL&#221;&#222;. G&#221;DERLER&#221;</act:name>
@@ -1836,6 +1928,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>277 D&#221;&#208;. &#214;ZEL T&#220;KEN. TAB&#221; VARLIK.</act:name>
@@ -1857,6 +1950,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>278 B&#221;R&#221;KM&#221;&#222; T&#220;KEN. PAYLARI (-)</act:name>
@@ -1878,6 +1972,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>279 VER&#221;LEN AVANSLAR</act:name>
@@ -1899,6 +1994,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>280 GEL. YILLARA A&#221;T G&#221;DERLER</act:name>
@@ -1920,6 +2016,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>281 GEL&#221;R TAHAKKUKLARI</act:name>
@@ -1941,6 +2038,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>291 GEL. YILLARDA &#221;ND. KDV</act:name>
@@ -1962,6 +2060,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>292 D&#221;&#208;ER KDV</act:name>
@@ -1983,6 +2082,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>293 GEL. YILLAR &#221;HT&#221;. STOK.</act:name>
@@ -2004,6 +2104,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>294 ELDEN &#199;IK. STOK. ve MAD. DUR. VARLIK.</act:name>
@@ -2025,6 +2126,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>295 PE&#222;&#221;N &#214;DE. VERG&#221;. ve FONLAR</act:name>
@@ -2046,6 +2148,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>297 D&#221;&#208;. &#199;E&#222;. DURAN VARLIK.</act:name>
@@ -2067,6 +2170,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>298 STOK DE&#208;. D&#220;&#222;. KAR&#222;. (-)</act:name>
@@ -2088,6 +2192,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>299 B&#221;R&#221;KM&#221;&#222; AMORT&#221;SMAN. (-)</act:name>
@@ -2109,6 +2214,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>300 BANKA KRED&#221;LER&#221;</act:name>
@@ -2130,6 +2236,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>303 UZ. VAD. KRED. ANAP. TAK. ve FA&#221;Z.</act:name>
@@ -2151,6 +2258,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>304 TAHV. ANAP. BOR&#199; TAK. ve FA&#221;Z.</act:name>
@@ -2172,6 +2280,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>305 &#199;IKA. BONO. ve SENETLER</act:name>
@@ -2193,6 +2302,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>306 &#199;IKA. D&#221;&#208;. MEN. KIYMETLER</act:name>
@@ -2214,6 +2324,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>308 MEN. KIYM. &#221;HRA&#199; FARKI (-)</act:name>
@@ -2235,6 +2346,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>309 D&#221;&#208;. MAL&#221; BOR&#199;LAR</act:name>
@@ -2256,6 +2368,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>320 SATICILAR</act:name>
@@ -2277,6 +2390,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>321 BOR&#199; SENETLER&#221;</act:name>
@@ -2298,6 +2412,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>322 BOR&#199; SENETLER&#221; REES. (-)</act:name>
@@ -2319,6 +2434,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>326 ALINAN DEPOZ&#221;TO ve TEM&#221;N.</act:name>
@@ -2340,6 +2456,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>329 D&#221;&#208;ER T&#221;C. BOR&#199;LAR</act:name>
@@ -2361,6 +2478,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>331 ORTAKL. BOR&#199;LAR</act:name>
@@ -2382,6 +2500,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>332 &#221;&#222;T&#221;RAK. BOR&#199;LAR</act:name>
@@ -2403,6 +2522,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>333 BA&#208;LI ORTAKL. BOR&#199;LAR</act:name>
@@ -2424,6 +2544,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>335 PERSONELE BOR&#199;LAR</act:name>
@@ -2445,6 +2566,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>336 D&#221;&#208;ER &#199;E&#222;. BOR&#199;LAR</act:name>
@@ -2466,6 +2588,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>337 D&#221;&#208;ER BOR&#199; SEN. REES. (-)</act:name>
@@ -2487,6 +2610,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>340 ALINAN S&#221;PAR&#221;&#222; AVANSLARI</act:name>
@@ -2508,6 +2632,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>349 ALINAN D&#221;&#208;ER AVANSLAR</act:name>
@@ -2529,6 +2654,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>350 Y.Y. &#221;N&#222;. ve ONAR. HAKED. BEDEL.</act:name>
@@ -2550,6 +2676,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>360 &#214;DENECEK VERG&#221; ve FONLAR</act:name>
@@ -2575,6 +2702,7 @@
       <slot:value type="integer">1</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>361 &#214;DENECEK SOSYAL G&#220;V.</act:name>
@@ -2600,6 +2728,7 @@
       <slot:value type="integer">1</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>368 VAD. GE&#199;. ERT. TAK. VERG&#221; ve D&#221;&#208;. Y&#220;K.</act:name>
@@ -2625,6 +2754,7 @@
       <slot:value type="integer">1</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>369 &#214;DENECEK D&#221;&#208;. Y&#220;K.</act:name>
@@ -2650,6 +2780,7 @@
       <slot:value type="integer">1</slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>370 D&#214;N. K&#194;RI VERG&#221; ve D&#221;&#208;. YAS. Y&#220;K. KAR&#222;.</act:name>
@@ -2671,6 +2802,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>371 D&#214;N. K&#194;R. PE&#222;. &#214;DE. VERG&#221; ve D&#221;&#208;. Y&#220;K.</act:name>
@@ -2692,6 +2824,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>372 KIDEM TAZM&#221;N. KAR&#222;.</act:name>
@@ -2713,6 +2846,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>373 MAL&#221;YET G&#221;DER. KAR&#222;.</act:name>
@@ -2734,6 +2868,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>379 D&#221;&#208;. BOR&#199; ve G&#221;DER KAR&#222;.</act:name>
@@ -2755,6 +2890,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>380 GEL. AYLARA A&#221;T GEL&#221;RLER</act:name>
@@ -2776,6 +2912,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>381 G&#221;DER TAHAKKULARI</act:name>
@@ -2797,6 +2934,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>391 HESAPLANAN KDV</act:name>
@@ -2818,6 +2956,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>392 D&#221;&#208;ER KDV</act:name>
@@ -2839,6 +2978,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>393 MERKEZ ve &#222;B. CAR&#221; HESABI</act:name>
@@ -2860,6 +3000,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>397 SAYIM ve TESELL&#220;M FAZLA.</act:name>
@@ -2881,6 +3022,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>399 D&#221;&#208;ER &#199;E&#222;. YAB. KAYNAKLAR</act:name>
@@ -2902,6 +3044,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>400 BANKA KRED&#221;LER&#221;</act:name>
@@ -2923,6 +3066,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>405 &#199;IKA. TAHV&#221;LLER</act:name>
@@ -2944,6 +3088,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>407 &#199;IKA. D&#221;&#208;. MEN. KIYMETLER</act:name>
@@ -2965,6 +3110,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>408 MEN. KIYM. &#221;HRA&#199; FARK. (-)</act:name>
@@ -2986,6 +3132,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>409 D&#221;&#208;. MAL&#221; BOR&#199;LAR</act:name>
@@ -3007,6 +3154,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>420 SATICILAR</act:name>
@@ -3028,6 +3176,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>421 BOR&#199; SENETLER&#221;</act:name>
@@ -3049,6 +3198,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>422 BOR&#199; SENETLER&#221; REES. (-)</act:name>
@@ -3070,6 +3220,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>426 ALINAN DEPOZ&#221;TO ve TEM&#221;N.</act:name>
@@ -3091,6 +3242,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>429 D&#221;&#208;ER T&#221;C. BOR&#199;LAR</act:name>
@@ -3112,6 +3264,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>431 ORTAKL. BOR&#199;LAR</act:name>
@@ -3133,6 +3286,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>432 &#221;&#222;T&#221;RAKL. BOR&#199;LAR</act:name>
@@ -3154,6 +3308,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>433 BA&#208;LI ORTAKLIK. BOR&#199;LAR</act:name>
@@ -3175,6 +3330,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>436 D&#221;&#208;ER &#199;E&#222;. BOR&#199;LAR</act:name>
@@ -3196,6 +3352,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>437 D&#221;&#208;ER BOR&#199; SEN. REES. (-)</act:name>
@@ -3217,6 +3374,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>438 KAMUYA OLAN ERT. TAK. BOR&#199;LAR</act:name>
@@ -3238,6 +3396,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>440 ALINAN S&#221;PAR&#221;&#222; AVANS.</act:name>
@@ -3259,6 +3418,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>449 ALINAN G&#221;DER AVANS.</act:name>
@@ -3280,6 +3440,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>472 KIDEM TAZM&#221;NATI KAR&#222;.</act:name>
@@ -3301,6 +3462,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>479 D&#221;&#208;. BOR&#199; ve G&#221;DER KAR&#222;.</act:name>
@@ -3322,6 +3484,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>480 GEL. YIL. A&#221;T GEL&#221;RLER</act:name>
@@ -3343,6 +3506,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>481 G&#221;DER TAHAKKUKLARI</act:name>
@@ -3364,6 +3528,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>492 GEL. YIL. ERT. TERK&#221;N ED&#221;L. KDV</act:name>
@@ -3385,6 +3550,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>493 TES&#221;SE KATILMA PAYLARI</act:name>
@@ -3406,6 +3572,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>499 D&#221;&#208;. &#199;E&#222;. UZUN VAD. YAB. KAYNAK.</act:name>
@@ -3427,6 +3594,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>500 SERMAYE</act:name>
@@ -3448,6 +3616,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>A&#231;&#253;l&#253;&#254; Bakiyeleri</act:name>
@@ -3491,6 +3660,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>520 H&#221;SSE SEN. &#221;HRA&#199; PR&#221;M.</act:name>
@@ -3512,6 +3682,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>521 H&#221;SSE SEN. &#221;PTAL K&#194;RLARI</act:name>
@@ -3533,6 +3704,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>522 M.D.V. YEN&#221;DEN DE&#208;ER. ARTI&#222;.</act:name>
@@ -3554,6 +3726,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>523 &#221;&#222;T&#221;RAK. YEN&#221;DEN DE&#208;ER. ARTI&#222;.</act:name>
@@ -3575,6 +3748,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>524 MAL&#221;YET ARTI&#222;. FONU</act:name>
@@ -3596,6 +3770,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>529 D&#221;&#208;ER SERMAYE YEDEK.</act:name>
@@ -3617,6 +3792,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>540 YASAL YEDEKLER</act:name>
@@ -3638,6 +3814,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>541 STAT&#220; YEDEKLER&#221;</act:name>
@@ -3659,6 +3836,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>542 OLA&#208;AN&#220;ST&#220; YEDEKLER</act:name>
@@ -3680,6 +3858,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>548 D&#221;&#208;ER K&#194;R YEDEKLER&#221;</act:name>
@@ -3701,6 +3880,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>549 &#214;ZEL FONLAR</act:name>
@@ -3722,6 +3902,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>570 GE&#199;M&#221;&#222; YILLAR K&#194;RLARI</act:name>
@@ -3743,6 +3924,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>580 GE&#199;M&#221;&#222; YILLAR ZARARLARI (-)</act:name>
@@ -3764,6 +3946,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>590 D&#214;NEM NET K&#194;RI</act:name>
@@ -3785,6 +3968,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>591 D&#214;NEM NET ZARARI (-)</act:name>
@@ -3806,6 +3990,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>600 YURT&#221;&#199;&#221; SATI&#222;LAR</act:name>
@@ -3827,6 +4012,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>601 YURTDI&#222;I SATI&#222;LAR</act:name>
@@ -3848,6 +4034,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>602 D&#221;&#208;ER GEL&#221;RLER</act:name>
@@ -3869,6 +4056,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>610 SATI&#222;TAN &#221;ADELER (-)</act:name>
@@ -3890,6 +4078,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>611 SATI&#222; &#221;SKONTOLARI (-)</act:name>
@@ -3911,6 +4100,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>612 D&#221;&#208;ER &#221;ND&#221;R&#221;MLER (-)</act:name>
@@ -3932,6 +4122,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>620 SATILAN MAMUL. MAL&#221;YET&#221; (-)</act:name>
@@ -3953,6 +4144,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>621 SATILAN T&#221;C. MAL. MAL&#221;YET&#221; (-)</act:name>
@@ -3974,6 +4166,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>622 SATILAN H&#221;ZMET MAL&#221;YET&#221; (-)</act:name>
@@ -3995,6 +4188,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>623 D&#221;&#208;ER SATI&#222;. MAL&#221;YET&#221; (-)</act:name>
@@ -4016,6 +4210,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>630 ARA&#222;. GEL&#221;&#222;. G&#221;DERLER&#221; (-)</act:name>
@@ -4037,6 +4232,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>631 PAZ. SATI&#222; DA&#208;IT. G&#221;DERLER&#221; (-)</act:name>
@@ -4058,6 +4254,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>632 GENEL Y&#214;N. G&#221;DERLER&#221; (-)</act:name>
@@ -4079,6 +4276,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>640 &#221;&#222;T&#221;RAK. TEMETT&#220; GEL&#221;RLER&#221;</act:name>
@@ -4100,6 +4298,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>641 BA&#208;LI ORTAKL. TEMETT&#220; GEL&#221;R.</act:name>
@@ -4121,6 +4320,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>642 FA&#221;Z GEL&#221;RLER&#221;</act:name>
@@ -4142,6 +4342,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>643 KOM&#221;SYON GEL&#221;RLER&#221;</act:name>
@@ -4163,6 +4364,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>644 KONUSU KALMAYAN KAR&#222;.</act:name>
@@ -4184,6 +4386,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>645 MEN. KIYM. SATI&#222; K&#194;RLARI</act:name>
@@ -4205,6 +4408,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>646 KAMB&#221;YO K&#194;RLARI</act:name>
@@ -4226,6 +4430,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>647 REES. FA&#221;Z GEL&#221;RLER&#221;</act:name>
@@ -4247,6 +4452,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>649 D&#221;&#208;. OLA&#208;AN GEL&#221;R ve K&#194;RLAR</act:name>
@@ -4268,6 +4474,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>653 KOM&#221;SYON G&#221;DERLER&#221; (-)</act:name>
@@ -4289,6 +4496,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>654 KAR&#222;ILIK G&#221;DERLER&#221; (-)</act:name>
@@ -4310,6 +4518,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>655 MEN. KIYM. SATI&#222; ZARAR. (-)</act:name>
@@ -4331,6 +4540,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>656 KAMB&#221;YO ZARARLARI (-)</act:name>
@@ -4352,6 +4562,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>657 REES. FA&#221;Z G&#221;DERLER&#221; (-)</act:name>
@@ -4373,6 +4584,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>659 D&#221;&#208;. OLA&#208;AN G&#221;DER ve ZARAR. (-)</act:name>
@@ -4394,6 +4606,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>660 KISA VADE. BOR&#199;L. G&#221;DERLER&#221; (-)</act:name>
@@ -4415,6 +4628,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>661 UZUN VADE. BOR&#199;L. G&#221;DERLER&#221; (-)</act:name>
@@ -4436,6 +4650,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>671 &#214;NC. D&#214;NEM GEL&#221;R ve K&#194;RLAR</act:name>
@@ -4457,6 +4672,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>679 D&#221;&#208;. OLA&#208;ANDI&#222;I GEL&#221;R ve K&#194;RLAR</act:name>
@@ -4478,6 +4694,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>680 &#199;ALI&#222;M. KISIM G&#221;DER ve ZARAR. (-)</act:name>
@@ -4499,6 +4716,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>681 &#214;NC. D&#214;NEM G&#221;DER ve ZARAR. (-)</act:name>
@@ -4520,6 +4738,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>689 D&#221;&#208;. OLA&#208;ANDI&#222;I G&#221;DER ve ZARAR. (-)</act:name>
@@ -4541,6 +4760,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>690 D&#214;NEM K&#194;RI veya ZARARI</act:name>
@@ -4562,6 +4782,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>691 D&#214;N. K&#194;RI VRG. D&#221;&#208;. YAS. Y&#220;K. KAR&#222;. (-)</act:name>
@@ -4583,6 +4804,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>692 D&#214;NEM NET K&#194;RI veya ZARARI</act:name>
@@ -4604,6 +4826,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>700 MAL&#221;. MUH. BA&#208;LA. HESABI</act:name>
@@ -4625,6 +4848,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>701 MAL&#221;. MUH. YANSIT. HESABI</act:name>
@@ -4646,6 +4870,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>710 D&#221;R. &#221;LK MADDE ve MALZ. G&#221;DERLER&#221;</act:name>
@@ -4667,6 +4892,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>711 D&#221;R. &#221;LK MADDE ve MALZ. YANS. HES.</act:name>
@@ -4688,6 +4914,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>712 D&#221;R. &#221;LK MADDE ve MALZ. F&#221;YAT FARKI</act:name>
@@ -4709,6 +4936,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>713 D&#221;R. &#221;LK MADDE ve MALZ. M&#221;K. FARKI</act:name>
@@ -4730,6 +4958,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>720 D&#221;R. &#221;&#222;&#199;&#221;L&#221;K G&#221;DERLER&#221;</act:name>
@@ -4751,6 +4980,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>721 D&#221;R. &#221;&#222;&#199;&#221;L&#221;K G&#221;DERLER&#221; YANS. HES.</act:name>
@@ -4772,6 +5002,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>722 D&#221;R. &#221;&#222;&#199;&#221;L&#221;K &#220;CRET FARKLARI</act:name>
@@ -4793,6 +5024,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>723 D&#221;R. &#221;&#222;&#199;&#221;L&#221;K S&#220;RE FARKLARI</act:name>
@@ -4814,6 +5046,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>730 GEN. &#220;RET&#221;M G&#221;DERLER&#221;</act:name>
@@ -4835,6 +5068,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>731 GEN. &#220;RET&#221;M G&#221;DER. YANS. HES.</act:name>
@@ -4856,6 +5090,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>732 GEN. &#220;RET&#221;M G&#221;DER. B&#220;T&#199;E FARK.</act:name>
@@ -4877,6 +5112,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>733 GEN. &#220;RET&#221;M G&#221;DER. VER&#221;ML. FARK.</act:name>
@@ -4898,6 +5134,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>734 GEN. &#220;RET&#221;M G&#221;DER. KAPAS. FARK.</act:name>
@@ -4919,6 +5156,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>740 H&#221;Z. &#220;RET&#221;M MAL&#221;YET&#221;</act:name>
@@ -4940,6 +5178,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>741 H&#221;Z. &#220;RET&#221;M MAL&#221;YET&#221; YANS. HES.</act:name>
@@ -4961,6 +5200,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>742 H&#221;Z. &#220;RET&#221;M MAL&#221;YET&#221; FARK HES.</act:name>
@@ -4982,6 +5222,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>750 ARA&#222;. GEL&#221;&#222;. G&#221;DERLER&#221;</act:name>
@@ -5003,6 +5244,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>751 ARA&#222;. GEL&#221;&#222;. G&#221;DER. YANS. HES.</act:name>
@@ -5024,6 +5266,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>752 ARA&#222;. GEL&#221;&#222;. G&#221;DER FARKLARI</act:name>
@@ -5045,6 +5288,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>760 PAZ. SAT. DA&#208;. G&#221;DERLER&#221;</act:name>
@@ -5066,6 +5310,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>761 PAZ. SAT. DA&#208;. G&#221;DER. YANS. HES.</act:name>
@@ -5087,6 +5332,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>762 PAZ. SAT. DA&#208;. G&#221;DER. FARK HES.</act:name>
@@ -5108,6 +5354,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>770 GEN. Y&#214;NET. G&#221;DERLER&#221;</act:name>
@@ -5129,6 +5376,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>771 GEN. Y&#214;NET. G&#221;DER. YANS. HES.</act:name>
@@ -5150,6 +5398,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>772 GEN. Y&#214;NET. G&#221;DER. FARK. HES.</act:name>
@@ -5171,6 +5420,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>780 F&#221;NANSMAN G&#221;DERLER&#221;</act:name>
@@ -5192,6 +5442,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>781 F&#221;NANSMAN G&#221;DER. YANS. HES.</act:name>
@@ -5213,6 +5464,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>782 F&#221;NANSMAN G&#221;DER. FARK HES.</act:name>
@@ -5234,6 +5486,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>790 &#221;LK MADDE ve MALZ. G&#221;DERLER&#221;</act:name>
@@ -5255,6 +5508,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>791 &#221;&#222;&#199;&#221; &#220;CRET ve G&#221;DERLER&#221;</act:name>
@@ -5276,6 +5530,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>792 MEMUR &#220;CRET ve G&#221;DERLER&#221;</act:name>
@@ -5297,6 +5552,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>793 DI&#222;. SA&#208;LA. FAYDA ve H&#221;Z.</act:name>
@@ -5318,6 +5574,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>794 &#199;E&#222;&#221;TL&#221; G&#221;DERLER</act:name>
@@ -5339,6 +5596,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>795 VERG&#221;, RES&#221;M ve HAR&#199;LAR</act:name>
@@ -5360,6 +5618,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>796 AMORT&#221;S. ve T&#220;KEN. PAYL.</act:name>
@@ -5381,6 +5640,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>797 F&#221;NANSMAN G&#221;DERLER&#221;</act:name>
@@ -5402,6 +5662,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>798 G&#221;DER &#199;E&#222;&#221;TLER&#221; YANS. HES.</act:name>
@@ -5423,6 +5684,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>799 &#220;RET&#221;M MAL&#221;YET HESABI</act:name>
@@ -5444,6 +5706,7 @@
       <slot:value type="string"></slot:value>
     </slot>
   </act:slots>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 </gnc-account-example>
 

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_brokerage.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_brokerage.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
       Aracý kurumlar nezdinde iþlem gören yatýrýmlarýnýzý (hisse senedi, tahvil/bono, A/B tipi yatýrým fonlarý, katýlma belgeleri, faiz, temettü) takip etmenizi saðlayan hesaplar
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Varlýklar</act:name>
   <act:id type="new">52b5942b5beaec856eaca5a75ee71592</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Varlýklar</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Yatýrýmlar</act:name>
@@ -94,6 +101,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Gelirler</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Temettü Geliri</act:name>
@@ -137,6 +145,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Giderler</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Komisyonlar</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_carloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_carloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_carloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Taþýt kredisi ve faizlerini takip etmenizi saðlayan hesaplar (taþýt kredisi, kredi faizleri).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Borçlar</act:name>
   <act:id type="new">33a326fe16ae360f777a94b3f5bdfbdc</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Borçlar</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Krediler</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Giderler</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Faiz</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_cdmoneymkt.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_cdmoneymkt.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Repo, Mevduat Sertifikasý gibi para piyasasý araçlarýnýzý takip etmenizi saðlayan hesaplar
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Varlýklar</act:name>
   <act:id type="new">7b1a39efc6234d1db148baa722c9471e</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Varlýklar</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Cari Varlýklar</act:name>
@@ -61,6 +68,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Gelir</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Faiz Geliri</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_checkbook.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_checkbook.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_checkbook.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
      Çek/maaþ hesabýnýzý takip etmek için bu planý kullanýn. Daha sonra ihtiyaç duyarsanýz, gelir ve giderlerinizi daha detaylý takip etmenizi saðlayacak bir plana geçersiniz.
     </gnc-act:long-description>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Varlýklar</act:name>
   <act:id type="new">bde24bbbe01829aff3dac8d038e174cc</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Cari Varlýklar</act:name>
@@ -54,6 +61,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Gelir</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gider</act:name>
@@ -65,6 +73,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Gider</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
   <act:slots>
     <slot>
       <slot:key>placeholder</slot:key>
@@ -86,6 +95,7 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Sermaye</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Açýlýþ Bakiyeleri</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_common.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_common.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_common.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,12 @@
   </gnc-act:long-description>    
   <gnc-act:start-selected>1</gnc-act:start-selected>
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Varlýklar</act:name>
   <act:id type="new">98f262dfab9a2b99ac42919dcf58d304</act:id>
   <act:type>ASSET</act:type>
@@ -19,6 +25,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Varlýklar</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Cari Varlýklar</act:name>
@@ -73,6 +80,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Borçlar</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Kredi Kartý</act:name>
@@ -94,6 +102,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Gelir</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ýkramiye</act:name>
@@ -192,6 +201,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Giderler</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Diðer</act:name>
@@ -686,6 +696,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Sermaye</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Açýlýþ Bakiyeleri</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_fixedassets.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_fixedassets.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Maddi duran varlýklarýnzý (ev, taþýt, yazlýk, arsa, vs) takip etmenizi saðlayan hesaplar
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Varlýklar</act:name>
   <act:id type="new">64b6276c060185131cecbd1ac6218440</act:id>
   <act:type>ASSET</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Assets</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Maddi Duran Varlýklar</act:name>

Modified: gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_homeloan.gnucash-xea
===================================================================
--- gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_homeloan.gnucash-xea	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/accounts/tr_TR/acctchrt_homeloan.gnucash-xea	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,6 +10,12 @@
     Ev kredisi ve faizlerini takip etmenizi saðlayan hesaplar (ev kredisi, kredi faizleri).
   </gnc-act:long-description>    
 <gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="new">1972cce2e2364f95b2b0bc014502661d</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity-scu>0</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
   <act:name>Borçlar</act:name>
   <act:id type="new">6664763bd1ea41462cba5ef856d9c00c</act:id>
   <act:type>LIABILITY</act:type>
@@ -18,6 +24,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Borçlar</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Krediler</act:name>
@@ -50,6 +57,7 @@
     <cmdty:id>USD</cmdty:id>
   </act:commodity>
   <act:description>Giderler</act:description>
+  <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Faiz</act:name>

Modified: gnucash/branches/gda-dev/autogen.sh
===================================================================
--- gnucash/branches/gda-dev/autogen.sh	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/autogen.sh	2007-04-07 16:05:40 UTC (rev 15847)
@@ -135,12 +135,17 @@
   DIE=1
 }
 
+# On MacOS, libtoolize is installed as glibtoolize, so handle that here.
 (${LIBTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`libtoolize' installed to compile GnuCash."
-  echo "Download the appropriate package for your distribution,"
-  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
+  LIBTOOLIZE=glibtoolize
+  (${LIBTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
+    echo
+    echo "**Error**: You must have \`libtoolize' installed to compile GnuCash."
+    echo "Could not find either \`libtoolize' or \'glibtoolize'."
+    echo "Download the appropriate package for your distribution,"
+    echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+    DIE=1
+  }
 }
 
 (${AUTOMAKE} --version) < /dev/null > /dev/null 2>&1 || {


Property changes on: gnucash/branches/gda-dev/checks
___________________________________________________________________
Name: svn:ignore
   + Makefile


Added: gnucash/branches/gda-dev/checks/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/checks/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,17 @@
+
+checksdir = ${GNC_CHECKS_DIR}
+
+if HAVE_GTK_2_10
+checks_DATA = \
+	deluxe.chk \
+	quicken.chk \
+	quicken_wallet.chk
+else
+checks_DATA = \
+	gnomeprint/deluxe.chk \
+	gnomeprint/quicken.chk \
+	gnomeprint/quicken_wallet.chk
+endif
+
+EXTRA_DIST = \
+  ${checks_DATA}

Added: gnucash/branches/gda-dev/checks/deluxe.chk
===================================================================
--- gnucash/branches/gda-dev/checks/deluxe.chk	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/deluxe.chk	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,23 @@
+[Top]
+Guid = 54a0fef9-0b7e-462b-8af3-a5f4f328f7bc
+Title = Deluxe(tm) Personal Checks US-Letter
+Rotation = -90.0
+Translation = 4;492
+Show_Grid = false
+Show_Boxes = false
+
+[Check Items]
+Type_1 = PAYEE
+Coords_1 = 126.0;85.0
+
+Type_2 = AMOUNT_WORDS
+Coords_2 = 90.0;107.0
+
+Type_3 = AMOUNT_NUMBER
+Coords_3 = 395.0;85.0
+
+Type_4 = DATE
+Coords_4 = 343.0;54.0
+
+Type_5 = NOTES
+Coords_5 = 100.0;159.0

Added: gnucash/branches/gda-dev/checks/gnomeprint/deluxe.chk
===================================================================
--- gnucash/branches/gda-dev/checks/gnomeprint/deluxe.chk	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/gnomeprint/deluxe.chk	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,23 @@
+[Top]
+Guid = 54a0fef9-0b7e-462b-8af3-a5f4f328f7bc
+Title = Deluxe(tm) Personal Checks US-Letter
+Rotation = 90
+Translation = 232;300
+Show_Grid = false
+Show_Boxes = false
+
+[Check Items]
+Type_1 = PAYEE
+Coords_1 = 126.0;147.0
+
+Type_2 = AMOUNT_WORDS
+Coords_2 = 90.0;125.0
+
+Type_3 = AMOUNT_NUMBER
+Coords_3 = 395.0;147.0
+
+Type_4 = DATE
+Coords_4 = 343.0;178.0
+
+Type_5 = NOTES
+Coords_5 = 100.0;73.0

Added: gnucash/branches/gda-dev/checks/gnomeprint/quicken.chk
===================================================================
--- gnucash/branches/gda-dev/checks/gnomeprint/quicken.chk	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/gnomeprint/quicken.chk	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,27 @@
+[Top]
+Guid = 67b144d1-96a5-48d5-9337-0e1083bbf229
+Title = Quicken/QuickBooks (tm) US-Letter
+Rotation = 0.0
+Translation = 0.0;0.0
+Show_Grid = false
+Show_Boxes = false
+
+[Check Positions]
+Height = 252.0
+Names = Top;Middle;Bottom
+
+[Check Items]
+Type_1 = PAYEE
+Coords_1 = 90.0;150.0;400.0;20.0
+
+Type_2 = AMOUNT_WORDS
+Coords_2 = 90.0;120.0
+
+Type_3 = AMOUNT_NUMBER
+Coords_3 = 500.0;150.0
+
+Type_4 = DATE
+Coords_4 = 500.0;185.0
+
+Type_5 = NOTES
+Coords_5 = 50.0;40.0

Added: gnucash/branches/gda-dev/checks/gnomeprint/quicken_wallet.chk
===================================================================
--- gnucash/branches/gda-dev/checks/gnomeprint/quicken_wallet.chk	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/gnomeprint/quicken_wallet.chk	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,39 @@
+[Top]
+Guid = 617da3b6-21d8-4340-af07-6a4f38bdeb3f
+Title = Quicken(tm) Wallet Checks w/ side stub
+Rotation = 0.0
+Translation = 0.0;0.0
+Show_Grid = false
+Show_Boxes = false
+
+[Check Positions]
+Height = 204.0
+Names = Top;Middle;Bottom
+
+[Check Items]
+Type_1 = PAYEE
+Coords_1 = 231.0;140.0
+
+Type_2 = AMOUNT_WORDS
+Coords_2 = 195.0;125.0
+
+Type_3 = AMOUNT_NUMBER
+Coords_3 = 518.0;137.0
+
+Type_4 = DATE
+Coords_4 = 504.0;151.0
+
+Type_5 = NOTES
+Coords_5 = 216.0;37.0
+
+Type_6 = DATE
+Coords_6 = 36.0;151.0
+
+Type_7 = PAYEE
+Coords_7 = 26.0;126.0
+
+Type_8 = AMOUNT_NUMBER
+Coords_8 = 50.0;90.0
+
+Type_9 = NOTES
+Coords_9 = 28.0;65.0

Added: gnucash/branches/gda-dev/checks/quicken.chk
===================================================================
--- gnucash/branches/gda-dev/checks/quicken.chk	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/quicken.chk	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,27 @@
+[Top]
+Guid = 67b144d1-96a5-48d5-9337-0e1083bbf229
+Title = Quicken/QuickBooks (tm) US-Letter
+Rotation = 0.0
+Translation = 0.0;4.0
+Show_Grid = false
+Show_Boxes = false
+
+[Check Positions]
+Height = 252.0
+Names = Top;Middle;Bottom
+
+[Check Items]
+Type_1 = PAYEE
+Coords_1 = 90.0;102.0;400.0;20.0
+
+Type_2 = AMOUNT_WORDS
+Coords_2 = 90.0;132.0
+
+Type_3 = AMOUNT_NUMBER
+Coords_3 = 500.0;102.0
+
+Type_4 = DATE
+Coords_4 = 500.0;67.0
+
+Type_5 = NOTES
+Coords_5 = 50.0;212.0

Added: gnucash/branches/gda-dev/checks/quicken_wallet.chk
===================================================================
--- gnucash/branches/gda-dev/checks/quicken_wallet.chk	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/checks/quicken_wallet.chk	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,39 @@
+[Top]
+Guid = 617da3b6-21d8-4340-af07-6a4f38bdeb3f
+Title = Quicken(tm) Wallet Checks w/ side stub
+Rotation = 0.0
+Translation = 0.0;4.0
+Show_Grid = false
+Show_Boxes = false
+
+[Check Positions]
+Height = 204.0
+Names = Top;Middle;Bottom
+
+[Check Items]
+Type_1 = PAYEE
+Coords_1 = 231.0;64.0
+
+Type_2 = AMOUNT_WORDS
+Coords_2 = 195.0;79.0
+
+Type_3 = AMOUNT_NUMBER
+Coords_3 = 518.0;67.0
+
+Type_4 = DATE
+Coords_4 = 504.0;53.0
+
+Type_5 = NOTES
+Coords_5 = 216.0;167.0
+
+Type_6 = DATE
+Coords_6 = 36.0;53.0
+
+Type_7 = PAYEE
+Coords_7 = 26.0;78.0
+
+Type_8 = AMOUNT_NUMBER
+Coords_8 = 50.0;114.0
+
+Type_9 = NOTES
+Coords_9 = 28.0;139.0

Modified: gnucash/branches/gda-dev/configure.in
===================================================================
--- gnucash/branches/gda-dev/configure.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/configure.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -24,10 +24,6 @@
 AC_CONFIG_HEADERS(config.h)
 AC_CONFIG_SRCDIR(src/engine/Transaction.h)
 
-AC_CONFIG_HEADERS(gsf-config.h)
-AC_CONFIG_HEADERS(goffice-config.h)
-AC_CONFIG_HEADERS(goffice-features.h)
-
 # Initialize automake -- make sure we have at least version 1.9
 AM_INIT_AUTOMAKE(1.9)
 
@@ -37,6 +33,15 @@
 GNUCASH_MINOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\2/' ]`
 GNUCASH_MICRO_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\3/' ]`
 
+# save any user/environment optimization flags before we muck with them in
+# --enable-debug:
+USER_OPTIMIZATION=""
+for flag in $CFLAGS; do
+  if test -z $(echo $flag | sed -e 's,-O.,,'); then
+    USER_OPTIMIZATION="$USER_OPTIMIZATION ${flag}"
+  fi
+done
+
 ##  Do this first, because the other tests depend on it:
 
 # Check for gcc and intltool (somehow breaks the suggested content
@@ -97,7 +102,7 @@
 AC_PROG_LN_S
 AC_HEADER_STDC
 
-AC_CHECK_HEADERS(limits.h sys/times.h sys/wait.h)
+AC_CHECK_HEADERS(limits.h sys/times.h)
 AC_CHECK_FUNCS(stpcpy memcpy timegm towupper)
 AC_CHECK_FUNCS(setenv,,[
   AC_CHECK_FUNCS(putenv,,[
@@ -131,6 +136,30 @@
 esac
 AC_MSG_RESULT($platform_win32)
 AM_CONDITIONAL(PLATFORM_WIN32, test "x$platform_win32" = "xyes")
+
+if test "$platform_win32" = yes; then
+  REGEX_LIBS="-lregex"
+else
+  REGEX_LIBS=""
+fi
+AC_SUBST(REGEX_LIBS)
+
+if test "x$native_win32" = "xyes" ; then
+  HTMLHELP_LIBS=
+  AC_MSG_CHECKING(for HtmlHelpW)
+  saved_LIBS="${LIBS}"
+  LIBS="${LIBS} -lhtmlhelp"
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>
+  #include <htmlhelp.h>]], [HtmlHelpW(0, (wchar_t*)"", HH_HELP_CONTEXT, 0);])], [
+    AC_MSG_RESULT(yes)
+    HTMLHELP_LIBS=-lhtmlhelp
+    AC_DEFINE(HAVE_HTMLHELPW,1,[System has HtmlHelpW])
+  ], [
+    AC_MSG_RESULT(no)
+  ])
+  LIBS="${saved_LIBS}"
+  AC_SUBST(HTMLHELP_LIBS)
+fi
 ##################################################
   
 STRUCT_TM_GMTOFF_CHECK
@@ -146,11 +175,6 @@
   fi
 fi
 
-AC_CHECK_HEADERS(ltdl.h)
-if test "x$ac_cv_header_ltdl_h" = xno; then
-  AC_MSG_ERROR([Cannot find ltdl.h -- libtool-devel (or libtool-ltdl-devel) not installed?])
-fi
-
 # test whether we are building directly from SVN/SVK
 ${srcdir}/util/gnc-svnversion ${srcdir} >/dev/null 2>&1
 if test $? = 0 ; then
@@ -161,9 +185,33 @@
   AC_PROG_SWIG(1.3.28)
 else
   BUILDING_FROM_SVN=no
+  # Make sure we've got swig-runtime.h and gnc-svninfo.h
+  AC_CHECK_FILE(${srcdir}/src/swig-runtime.h, [],
+	[AC_MSG_ERROR([
+
+It looks like you are NOT building from Subversion
+but I cannot find swig-runtime.h.  Check your PATH
+and make sure we can find svnversion in your PATH!
+Either that or contact gnucash-devel at gnucash.org because
+the tarball you downloaded is broken.
+
+	])])
+  AC_CHECK_FILE(${srcdir}/src/gnome-utils/gnc-svninfo.h, [],
+	[AC_MSG_ERROR([
+
+It looks like you are NOT building from Subversion
+but I cannot find gnc-svninfo.h.  Check your PATH
+and make sure we can find svnversion in your PATH!
+Either that or contact gnucash-devel at gnucash.org because
+the tarball you downloaded is broken.
+
+	])])
 fi
 AM_CONDITIONAL(BUILDING_FROM_SVN, test "x$BUILDING_FROM_SVN" = "xyes")
 
+# Build dir adjustments
+AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.")
+
 # These are unavailable on windows/mingw32
 AC_CHECK_HEADERS(X11/Xlib.h glob.h)
 AC_CHECK_FUNCS(chown gethostname getppid getuid gettimeofday gmtime_r)
@@ -187,8 +235,8 @@
 ### --------------------------------------------------------------------------
 ### Glib checks..
 
-AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR([
-*** GLIB >= 2.4 is required to build Gnucash; please make sure you have the
+AM_PATH_GLIB_2_0(2.6.0,,AC_MSG_ERROR([
+*** GLIB >= 2.6 is required to build Gnucash; please make sure you have the
 *** development headers installed. The latest version of GLIB is
 *** always available at ftp://ftp.gnome.org/pub/gnome/sources/glib/.]),
 	gthread gobject gmodule)
@@ -198,20 +246,24 @@
   AC_MSG_ERROR([Cannot find glib. Check config.log])
 fi
 
-AC_MSG_CHECKING(for GLIB - version >= 2.6.0)
-if $PKG_CONFIG 'glib-2.0 >= 2.6.0'
+AC_MSG_CHECKING(for GLIB - version >= 2.8.0)
+if $PKG_CONFIG 'glib-2.0 >= 2.8.0'
 then
   AC_MSG_RESULT(yes)
-  AC_DEFINE(HAVE_GLIB26,1,[System has glib 2.6.0 or better])
-  HAVE_GLIB26=yes
+  AC_DEFINE(HAVE_GLIB_2_8,1,[System has glib 2.8.0 or better])
+  HAVE_GLIB_2_8=yes
 else
-  GLIB24_LIBS="$GLIB_LIBS"
-  GLIB_LIBS="\${top_builddir}/lib/glib26/libgncglib.la $GLIB_LIBS"
-  GLIB_CFLAGS="-I\${top_srcdir}/lib/glib26 $GLIB_CFLAGS"
   AC_MSG_RESULT(no)
-  AC_SUBST(GLIB24_LIBS)
+  if test "x${native_win32}" = "xyes"; then
+    AC_MSG_ERROR([*** GLIB >= 2.8 is required to build Gnucash on Windows.])
+  else
+    GLIB26_LIBS="$GLIB_LIBS"
+    GLIB_LIBS="\${top_builddir}/lib/glib28/libgnc-glib.la $GLIB_LIBS"
+    GLIB_CFLAGS="-I\${top_srcdir}/lib/glib28 $GLIB_CFLAGS"
+    AC_SUBST(GLIB26_LIBS)
+  fi
 fi
-AM_CONDITIONAL(HAVE_GLIB26, test "x$HAVE_GLIB26" = "xyes" )
+AM_CONDITIONAL(HAVE_GLIB_2_8, test "x$HAVE_GLIB_2_8" = "xyes")
 
 AC_MSG_CHECKING(for GLIB - version >= 2.9.0)
 if $PKG_CONFIG 'glib-2.0 >= 2.9.0'
@@ -222,6 +274,18 @@
 else
   AC_MSG_RESULT(no)
 fi
+
+AC_MSG_CHECKING(for GLIB - version >= 2.12.0)
+if $PKG_CONFIG 'glib-2.0 >= 2.12.0'
+then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_GLIB_2_12,1,[System has glib 2.12.0 or better])
+  HAVE_GLIB_2_12=yes
+else
+  AC_MSG_RESULT(no)
+fi
+AM_CONDITIONAL(HAVE_GLIB_2_8, test "x$HAVE_GLIB_2_8" = "xyes")
+
 AC_MSG_CHECKING([for untested GLIB versions (glib >= 2.11.0)])
 if $PKG_CONFIG 'glib-2.0 >= 2.11.0'
 then
@@ -511,9 +575,9 @@
   AC_MSG_NOTICE([External QOF Disabled.  Using Internal QOF Code.])
 fi
 if test x$QOF_XML_DIR = x; then
-	QOF_LIB_DIR='${libdir}'
+	QOF_LIB_DIR='${pkglibdir}'
 	QOF_CFLAGS='-I${top_builddir}/lib/libqof/qof -I${top_srcdir}/lib/libqof/qof'
-	QOF_LIBS='${top_builddir}/lib/libqof/qof/libgncqof.la'
+	QOF_LIBS='${top_builddir}/lib/libqof/qof/libgnc-qof.la'
 	QOF_VERSION="internal"
 	QOF_PREFIX="internal"
 	QOF_XML_DIR='${pkgdatadir}/xml/qsf'
@@ -559,25 +623,23 @@
 GNC_CONFIGDIR='${sysconfdir}/gnucash'
 GNC_DOC_INSTALL_DIR='${pkgdatadir}/doc'
 GNC_INCLUDE_DIR='${includedir}/gnucash'
-GNC_LIBDIR='${pkglibdir}'
 GNC_SCM_INSTALL_DIR='${pkgdatadir}/scm'
 GNC_SHAREDIR='${pkgdatadir}'
 GNC_LIBEXECDIR='${libexecdir}/gnucash'
 
 GNC_ACCOUNTS_DIR='${GNC_SHAREDIR}/accounts'
+GNC_CHECKS_DIR='${GNC_SHAREDIR}/checks'
 GNC_GLADE_DIR='${GNC_SHAREDIR}/glade'
 GNC_UI_DIR='${GNC_SHAREDIR}/ui'
-GNC_MODULE_DIR='${pkglibdir}'
 GNC_PIXMAP_DIR='${GNC_SHAREDIR}/pixmaps'
 
 AC_SUBST(GNC_ACCOUNTS_DIR)
+AC_SUBST(GNC_CHECKS_DIR)
 AC_SUBST(GNC_CONFIGDIR)
 AC_SUBST(GNC_DOC_INSTALL_DIR)
 AC_SUBST(GNC_GLADE_DIR)
 AC_SUBST(GNC_UI_DIR)
 AC_SUBST(GNC_INCLUDE_DIR)
-AC_SUBST(GNC_LIBDIR)
-AC_SUBST(GNC_MODULE_DIR)
 AC_SUBST(GNC_PIXMAP_DIR)
 AC_SUBST(GNC_SCM_INSTALL_DIR)
 AC_SUBST(GNC_SHAREDIR)
@@ -585,7 +647,10 @@
 
 AC_ARG_ENABLE( debug,
   [  --enable-debug               compile with debugging flags set],
-       CFLAGS="${CFLAGS} -g"
+       # remove any optimization flags...
+       CFLAGS=$(echo $CFLAGS | sed -e 's,-O.,,g')
+       # ...except for those the user wants.
+       CFLAGS="${CFLAGS} -g ${USER_OPTIMIZATION}"
        LDFLAGS="${LDFLAGS} -g"
        AC_DEFINE(DEBUG_MEMORY,1,Enable debug memory),
        AC_DEFINE(DEBUG_MEMORY,0,Enable debug memory) )
@@ -719,39 +784,6 @@
 	LIBOFX_CFLAGS="-I${OFXPREFIX}/include"
     fi
 
-    ### Check libofx version
-    # Obtain version string
-    AC_MSG_CHECKING(for libofx version >= 0.7.0)
-    if test x${OFXPREFIX} = x ; then
-	ofx_version_output=`ofxdump --version`
-    else
-	ofx_version_output=`${OFXPREFIX}/bin/ofxdump --version`
-    fi
-    # Extract version number; output format changed from 0.6.x to 0.7.x
-    LIBOFX_VERSION=`echo ${ofx_version_output} | sed 's/\([[^0-9]]*\)\([[0-9]]*\.\)/\2/' `
-    LIBOFX_VERSION_MAJOR=`echo ${LIBOFX_VERSION} | cut -d. -f1`
-    LIBOFX_VERSION_MINOR=`echo ${LIBOFX_VERSION} | cut -d. -f2`
-    # Make sure the numbers are not empty
-    if test x${LIBOFX_VERSION_MAJOR} = x ; then
-	LIBOFX_VERSION_MAJOR=0
-    fi
-    if test x${LIBOFX_VERSION_MINOR} = x ; then
-	LIBOFX_VERSION_MINOR=0
-    fi
-    # Now check for >= 0.7.x or >= 1.x.x
-    if test "${LIBOFX_VERSION_MAJOR}" -ge 1 -o \
-	     "${LIBOFX_VERSION_MINOR}" -ge 7; then
-	# This is libofx >= 0.7.x
-	AC_MSG_RESULT([found ${LIBOFX_VERSION}])
-    else
-        if test x${want_ofx} = xyes ; then
-	    AC_MSG_ERROR([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support])
-        else
-	    AC_MSG_RESULT([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support])
-            want_ofx=no
-        fi
-    fi
-
     if test "x${want_ofx}" != xno ; then
         # Version number verified. Now check header files.
         AC_MSG_CHECKING(for libofx/libofx.h)
@@ -828,7 +860,7 @@
 then
     # Check for Aqbanking library
     # aqbanking-1.6.0 was released on 2005-09-22
-    PKG_CHECK_MODULES(HBCI, aqbanking >= "1.6.0", [], [
+    PKG_CHECK_MODULES(HBCI, aqbanking >= "1.6.0" gwenhywfar, [], [
       AC_AQBANKING(1,6,0)
       if test x${have_aqbanking} != xyes; 
       then
@@ -853,13 +885,14 @@
 ### --------------------------------------------------------------------------
 ### i18n
 
-AC_ARG_WITH( locale-dir, 
-  [  --with-locale-dir=PATH    specify where to look for locale-specific information],
-  LOCALE_DIR="$with_locale_dir",
-  LOCALE_DIR="\${prefix}/share/locale")
+# This variable is set by GLIB_WITH_NLS, called through
+# AM_GLIB_GNU_GETTEXT above. Usually it is "share", but on some
+# platforms it is "lib". Make sure it is set.
+if test "x$DATADIRNAME" = "x"; then
+  DATADIRNAME="share"
+  AC_SUBST(DATADIRNAME)
+fi
 
-AC_SUBST(LOCALE_DIR)
-
 dnl check for nl_langinfo(D_FMT) which is missing on FreeBSD
 LANGINFO_D_FMT_CHECK
 
@@ -1039,13 +1072,24 @@
     fi
     GNOME_COMPILE_WARNINGS
 
-    PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4)
+    PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6)
     AS_SCRUB_INCLUDE(GTK_CFLAGS)
     AC_SUBST(GTK_CFLAGS)
     AC_SUBST(GTK_LIBS)
     HAVE_UNTESTED_GDK=yes
     HAVE_UNTESTED_GTK=yes
 
+    AC_MSG_CHECKING(for GTK - version >= 2.10.0)
+    if $PKG_CONFIG 'gtk+-2.0 >= 2.10.0'
+    then
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_GTK_2_10,1,[System has gtk 2.10.0 or better])
+      HAVE_GTK_2_10=yes
+    else
+      AC_MSG_RESULT(no)
+    fi
+    AM_CONDITIONAL(HAVE_GTK_2_10, test "x$HAVE_GTK_2_10" = "xyes" )
+
     PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 >= 2.4)
     AS_SCRUB_INCLUDE(GNOME_CFLAGS)
     AC_SUBST(GNOME_CFLAGS)
@@ -1065,31 +1109,61 @@
     AC_SUBST(GDK_PIXBUF_CFLAGS)
     AC_SUBST(GDK_PIXBUF_LIBS)
 
-    PKG_CHECK_MODULES(GNOME_PRINT, libgnomeprint-2.2 libgnomeprintui-2.2)
-    AS_SCRUB_INCLUDE(GNOME_PRINT_CFLAGS)
-    AC_SUBST(GNOME_PRINT_CFLAGS)
-    AC_SUBST(GNOME_PRINT_LIBS)
-
     PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.4)
     AS_SCRUB_INCLUDE(GLADE_CFLAGS)
     AC_SUBST(GLADE_CFLAGS)
     AC_SUBST(GLADE_LIBS)
 
-    # check for gtkhtml 3.x versions.
+    PKG_CHECK_MODULES(GOFFICE, libgoffice-0.3 >= 0.3.0, [], [
+      PKG_CHECK_MODULES(GOFFICE, libgoffice-1 >= 0.0.4, [], [
+        AC_MSG_ERROR([Cannot find libgoffice.])
+      ])
+    ])
+    AS_SCRUB_INCLUDE(GOFFICE_CFLAGS)
+    AC_SUBST(GOFFICE_CFLAGS)
+    AC_SUBST(GOFFICE_LIBS)
+
+    saved_CPPFLAGS="${CPPFLAGS}"
+    CPPFLAGS="${GOFFICE_CFLAGS} ${CPPFLAGS}"
+    AC_CHECK_HEADER(goffice/graph/gog-renderer-cairo.h, [
+      AC_DEFINE(GOFFICE_WITH_CAIRO,1,[GOffice has been built with cairo support])
+      goffice_with_cairo=yes
+    ], [
+      goffice_with_cairo=no
+    ])
+    CPPFLAGS="${saved_CPPFLAGS}"
+
+    # check for gtkhtml >= 3.14 with gtkprint support
     gtkhtml=0
-    PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8 , [gtkhtml=1] , [gtkhtml=0])
+    PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.14, [
+      if test "x$HAVE_GTK_2_10" != "xyes"; then
+        AC_MSG_NOTICE([Found libgtkhtml-3.14, but not gtk+-2.0 >= 2.10])
+      elif test "x$goffice_with_cairo" != "xyes"; then
+        AC_MSG_NOTICE([Found libgtkhtml-3.14, but goffice lacks a cairo renderer])
+      else
+        gtkhtml=1
+        AC_DEFINE(GTKHTML_USES_GTKPRINT,1,[GtkHTML uses GtkPrint for printing operations])
+      fi
+    ], [gtkhtml=0])
+    AM_CONDITIONAL(GTKHTML_USES_GTKPRINT,test "x$gtkhtml" = "x1")
+
+    # fallback to older gtkhtml versions and gnomeprint
     if test x$gtkhtml = x0
-      then
-    	PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.6 , [gtkhtml=1] , [gtkhtml=0])
-    	if test x$gtkhtml = x0
-    	  then
-    	     PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.2 , [gtkhtml=1] , [gtkhtml=0])
-    	     if test x$gtkhtml = x0
-    	       then 
-    	          PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.1 , [gtkhtml=1],
-                                    AC_MSG_ERROR([Could not find a working gtkhtml version (need 3.1, 3.2, 3.6, or 3.8)]))
-    	    fi
-    	fi
+    then
+      PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8 , [gtkhtml=1], [
+        PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.6 , [gtkhtml=1], [
+          PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.2 , [gtkhtml=1], [
+            PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.1 , [gtkhtml=1], [
+              AC_MSG_ERROR([Could not find a working gtkhtml version (need 3.1, 3.2, 3.6, 3.8 or 3.14)])
+            ])
+          ])
+        ])
+      ])
+
+      PKG_CHECK_MODULES(GNOME_PRINT, libgnomeprint-2.2 libgnomeprintui-2.2)
+      AS_SCRUB_INCLUDE(GNOME_PRINT_CFLAGS)
+      AC_SUBST(GNOME_PRINT_CFLAGS)
+      AC_SUBST(GNOME_PRINT_LIBS)
     fi
     AS_SCRUB_INCLUDE(GTKHTML_CFLAGS)
 dnl if Mac OSX, also scrub /sw/include
@@ -1133,739 +1207,9 @@
      # We should always see these errors...
      CFLAGS="${CFLAGS} -Wall"
   fi
-fi
 
-### ------------------------------------------------------------------------
-### GOG/goffice, gsf, etc...
-### Only test this if we're building the GUI
-if test x${gnc_build_gui} = xtrue ;
-then
-  AC_MSG_CHECKING(for GTK - version >= 2.6.0)
-  if $PKG_CONFIG 'gtk+-2.0 >= 2.6.0'
-  then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_GTK26,1,[System has gtk 2.6.0 or better])
-    HAVE_GTK26=yes
-  else
-    AC_MSG_RESULT(no)
-  fi
-  AM_CONDITIONAL(HAVE_GTK26, test "x$HAVE_GTK26" = "xyes" )
-  
-  
-  AC_MSG_CHECKING(for GTK - version >= 2.10.0)
-  if $PKG_CONFIG 'gtk+-2.0 >= 2.10.0'
-  then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_GTK_2_10,1,[System has gtk 2.10.0 or better])
-    HAVE_GTK_2_10=yes
-  else
-    AC_MSG_RESULT(no)
-  fi
-  AM_CONDITIONAL(HAVE_GTK_2_10, test "x$HAVE_GTK_2_10" = "xyes" )
-  
-  
-  AC_MSG_CHECKING(for pango version >= 1.8.0)
-  if $PKG_CONFIG 'pango >= 1.8.0'
-  then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_PANGO18,1,[System has pango 1.8.0 or better])
-    HAVE_PANGO18=yes
-  else
-    AC_MSG_RESULT(no)
-  fi
-  AM_CONDITIONAL(HAVE_PANGO18, test "x$HAVE_PANGO18" = "xyes" )
-  
-  
-  dnl @@fixme 
-  dnl use both PKG_CHECK_MODULES and `$PKG_CONFIG`; the first importantly sets
-  dnl MUMBLE_{LIBS,CFLAGS}...
-  dnl Q: What does PKG_CHECK_MODULES create?
-  dnl A: Just _CFLAGS and _LIBS, apparently [pkg.m4]
-  
-  AC_MSG_CHECKING([for libgsf >= 1.12.2])
-  if $PKG_CONFIG --silence-errors 'libgsf-1 >= 1.12.2'
-  then
-    AC_MSG_RESULT(found)
-    PKG_CHECK_MODULES(GSF, libgsf-1 >= 1.12.2 libgsf-gnome-1 >= 1.12.2,,)
-    AC_DEFINE(HAVE_LIBGSF,1,[System has libgsf-1.12.2 or better])
-    HAVE_LIBGSF=yes
-  else
-    AC_MSG_RESULT(not found.  using internally-packaged libgsf)
-    GSF_CFLAGS='-I${top_srcdir}/lib/libgsf-1.12.3'
-    GSF_LIBS='${top_builddir}/lib/libgsf-1.12.3/gsf/libgsf-1.la'
-    HAVE_LIBGSF=no
-  fi
-  AM_CONDITIONAL(HAVE_LIBGSF, test "x$HAVE_LIBGSF" = "xyes")
-  AC_SUBST(GSF_CFLAGS)
-  AC_SUBST(GSF_LIBS)
-  
-  dnl $4=true => don't die if failure.
-  PKG_CHECK_MODULES(GOFFICE, libgoffice-0.3 >= 0.3.0,,true)
-  if $PKG_CONFIG --silence-errors 'libgoffice-0.3 >= 0.3.0'
-  then
-    AC_DEFINE(HAVE_GOFFICE,1,[System has goffice-0.0.4 or better])
-    HAVE_GOFFICE=yes
-  else
-    AC_MSG_RESULT(no)
-    PKG_CHECK_MODULES(GOFFICE, libgoffice-1 >= 0.0.4,,true)
-    if $PKG_CONFIG --silence-errors 'libgoffice-1 >= 0.0.4'
-    then
-      AC_DEFINE(HAVE_GOFFICE,1,[System has goffice-0.0.4 or better])
-      HAVE_GOFFICE=yes
-    else
-      AC_MSG_RESULT(using internally-packaged goffice)
-      GOFFICE_CFLAGS='-I${top_srcdir}/lib/goffice-0.0.4'
-      GOFFICE_LIBS='${top_builddir}/lib/goffice-0.0.4/goffice/libgoffice-1.la'
-      HAVE_GOFFICE=no
-    fi
-  fi
-  AM_CONDITIONAL(HAVE_GOFFICE, test "x$HAVE_GOFFICE" = "xyes")
-  AC_SUBST(GOFFICE_CFLAGS)
-  AC_SUBST(GOFFICE_LIBS)
-  
-  ##################################################
-  # regex needs its own linker flag on win32 platform
-  ##################################################
-  if test "$platform_win32" = yes; then
-    REGEX_LIBS="-lregex"
-  else
-    REGEX_LIBS=""
-  fi
-  AC_SUBST(REGEX_LIBS)
-  
-  ### ------------------------------------------------------------------------
-  ### Checks when building internal LIBGSF
-  ### +libgsf-1.12.3
-  if test "x$HAVE_LIBGSF" != xyes; then
-  AC_MSG_NOTICE('internal libgsf configuration...')
-  
-  m4_define([libgsf_version_major], [1])
-  m4_define([libgsf_version_minor], [12])
-  m4_define([libgsf_version_micro], [3])
-  m4_define([libgsf_version_extra], [])
-  m4_define([libgsf_full_version],
-      [libgsf_version_major.libgsf_version_minor.libgsf_version_micro[]libgsf_version_extra])
-  
-  dnl AC_CONFIG_SRCDIR(lib/libgsf-1.12.3/gsf/gsf.h)
-  
-  AC_SUBST(LIBGSF_MAJOR_VERSION, libgsf_version_major)
-  AC_SUBST(LIBGSF_MINOR_VERSION, libgsf_version_minor)
-  AC_SUBST(LIBGSF_MICRO_VERSION, libgsf_version_micro)
-  
-  dnl Version info for libraries = CURRENT:REVISION:AGE
-  AC_SUBST(VERSION_INFO,
-  m4_eval(libgsf_version_major + libgsf_version_minor)[]dnl
-:libgsf_version_micro:libgsf_version_minor)
-  dnl NOTE: Above line needs no leading whitespace!  --warlord
-  
-  AC_FUNC_FSEEKO
-  AC_SYS_LARGEFILE
-  
-  dnl Checks for libraries.
-  ifelse([
-    If we defined the module lists on the M4 level, we could have problems
-    with PKG_CHECK_MODULES from pkgconfig 0.16.0, which double quotes its
-    second argument (the module list).
-    As a handy workaround, we use shell variables.
-  ])
-  dnl Modules common to libgsf and libgsf-gnome
-  libgsf_reqs="
-      gobject-2.0 >= 2.4.0
-      glib-2.0 >= 2.4.0
-      libxml-2.0 >= 2.4.16
-  "
-  dnl Modules required for libgsf-gnome
-  libgsf_gnome_reqs="
-      $libgsf_reqs
-      libbonobo-2.0 >= 2.0.0
-      gnome-vfs-2.0 >= 2.2.0
-      gnome-vfs-module-2.0 >= 2.2.0
-  "
-  PKG_CHECK_MODULES(LIBGSF, $libgsf_reqs)
-  
-  AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no)
-  if test x$fdopen_works = xno ; then
-  	unset ac_cv_have_decl_fdopen
-  	CFLAGS="$CFLAGS -D_POSIX_SOURCE"
-  	AC_MSG_NOTICE([adding -D_POSIX_SOURCE to CFLAGS])
-  	AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no)
-  	if test x$fdopen_works = xno ; then
-  		AC_MSG_ERROR([fdopen is not available])
-  	fi
-  fi
-  
-  # Unfortunately, -D_POSIX_SOURCE turns off struct timeval on Solaris
-  AC_MSG_CHECKING([whether struct timeval is available])
-  for try in 1 2; do
-  	AC_COMPILE_IFELSE(
-  		[AC_LANG_PROGRAM(
-  			[[#include <sys/time.h>]],
-  			[[struct timeval tv;]])],
-  		struct_timeval_works=yes,
-  		struct_timeval_works=no)
-  	test x$struct_timeval_works = xyes && break
-  	# Try this for the second attempt:
-  	test x$try = x1 && CFLAGS="$CFLAGS -D__EXTENSIONS__"
-  done
-  AC_MSG_RESULT($struct_timeval_works)
-  if test x$struct_timeval_works = xno ; then
-  	AC_MSG_ERROR([struct timeval is not available])
-  fi
-  
-  AC_MSG_CHECKING([whether -D_BSD_SOURCE is needed for caddr_t])
-  AC_COMPILE_IFELSE(
-  	[AC_LANG_PROGRAM([[#include <sys/types.h>]], [[caddr_t ca]])],
-  	need_bsd1=no,
-  	need_bsd1=yes)
-  AC_MSG_RESULT($need_bsd1)
-  
-  AC_MSG_CHECKING([whether -D_BSD_SOURCE is needed for lstat])
-  AC_LINK_IFELSE([AC_LANG_PROGRAM(
-  [[#include <sys/types.h>
-  #include <sys/stat.h>
-  #include <unistd.h>]],
-  [[void *ptr = &lstat]])],
-  need_bsd2=no, need_bsd2=yes)
-  AC_MSG_RESULT($need_bsd2)
-  if test x$need_bsd1 = xyes -o x$need_bsd2 = xyes; then
-  	CFLAGS="$CFLAGS -D_BSD_SOURCE"
-  fi
-  
-  AC_TYPE_MODE_T
-  AC_CHECK_HEADERS(fcntl.h malloc.h unistd.h io.h)
-  AC_FUNC_MMAP
-  
-  SAVE_CFLAGS=$CFLAGS
-  SAVE_LIBS=$LIBS
-  CFLAGS="$CFLAGS $LIBGSF_CFLAGS"
-  LIBS="$LIBGSF_LIBS $LIBS"
-  AC_MSG_CHECKING([for g_chmod])
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <glib/gstdio.h>]], [[(void)g_chmod("/xxx",0777);]])],
-                 [AC_DEFINE(HAVE_G_CHMOD, 1, [Define if g_chmod is available as macro or function])
-  		AC_MSG_RESULT(yes)],
-  	       [AC_MSG_RESULT(no)])
-  AC_MSG_CHECKING([for g_access])
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <glib/gstdio.h>]], [[(void)g_access("/xxx",0777);]])],
-                 [AC_DEFINE(HAVE_G_ACCESS, 1, [Define if g_access is available as macro or function])
-  		AC_MSG_RESULT(yes)],
-  	       [AC_MSG_RESULT(no)])
-  CFLAGS=$SAVE_CFLAGS
-  LIBS=$SAVE_LIBS
-  
-  AC_MSG_CHECKING([whether macro S_ISREG is available])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-  [[#include <sys/types.h>
-  #include <sys/stat.h>]],
-  [[S_ISREG(S_IFMT);]])],
-  	[macro_s_isreg=yes],
-  	[AH_TEMPLATE([S_ISREG], [Define S_ISREG if stat.h doesn't])
-  	 AC_DEFINE([S_ISREG(m)], [(((m) & S_IFMT) == S_IFREG)])
-  	 macro_s_isreg=no])
-  AC_MSG_RESULT($macro_s_isreg)
-  
-  ##################################################
-  # Checks for gtk-doc and docbook-tools
-  ##################################################
-  # gtk_doc_installed=true
-  #ifdef([GTK_DOC_CHECK],[GTK_DOC_CHECK([1.0])],[gtk_doc_installed=false])
-  # I would have liked to conditionalize this, but 
-  # that appears to break other things http://bugzilla.gnome.org/show_bug.cgi?id=156399
-  # dnl GTK_DOC_CHECK([1.0])
-  # dnl AM_CONDITIONAL(GTK_DOC_INSTALLED, $gtk_doc_installed)
-  
-  dnl ************************************************************************
-  # Check for zlib.
-  _cppflags=$CPPFLAGS
-  _ldflags=$LDFLAGS
-  
-  Z_DIR= Z_LIBS= Z_CPPFLAGS=
-  
-  AC_ARG_WITH(zlib,
-          [[  --with-zlib=DIR       use libz in DIR]],
-          [case $withval in
-           yes|no) ;;
-           *)     Z_DIR=$withval
-                  CPPFLAGS="${CPPFLAGS} -I$withval/include"
-                  LDFLAGS="${LDFLAGS} -L$withval/lib"
-                  ;;
-           esac])
-  
-  if test "x$with_zlib" != xno; then
-          with_zlib=no
-          AC_CHECK_HEADER(zlib.h, [AC_CHECK_LIB(z, gzread, [with_zlib=yes])])
-  fi
-  if test "$with_zlib" = no; then
-          AC_MSG_ERROR([*** zlib is required])
-  fi
-  if test "x$Z_DIR" != "x"; then
-          Z_CPPFLAGS="-I$Z_DIR/include"
-          case $host in
-          *-*-solaris*)   Z_LIBS="-L$Z_DIR/lib -R$Z_DIR/lib -lz" ;;
-          *)              Z_LIBS="-L$Z_DIR/lib -lz" ;;
-          esac
-  else
-          Z_LIBS="-lz"
-  fi
-  AC_SUBST(Z_CPPFLAGS)
-  AC_SUBST(Z_LIBS)
-  
-  CPPFLAGS=${_cppflags}
-  LDFLAGS=${_ldflags}
-  
-  dnl bz2
-  dnl
-  BZ2_LIBS=
-  test_bz2=true
-  AC_ARG_WITH(bz2,
-  	[  --without-bz2   Build additional libgsf wrappers for BZ2],
-  	if test "x$withval" = xno; then
-  		test_bz2=false
-  	fi
-  )
-  
-  with_bz2=false
-  if test "x$test_bz2" = xtrue ; then
-     AC_CHECK_LIB(bz2, BZ2_bzDecompressInit, 
-  		bz2_ok=yes,
-  		bz2_ok=no
-  		AC_MSG_WARN(*** BZ2 support disabled (BZ2 library not found) ***))
-  
-     if test "$bz2_ok" = yes; then
-        AC_MSG_CHECKING([for bzlib.h])
-        AC_PREPROC_IFELSE(
-  	[AC_LANG_SOURCE(
-  	[[#include <stdio.h>
-  	#undef PACKAGE
-  	#undef VERSION
-  	#undef HAVE_STDLIB_H
-  	#include <bzlib.h>]])],
-          bz2_ok=yes,
-          bz2_ok=no)
-        AC_MSG_RESULT($bz2_ok)
-     fi
-  
-     if test "$bz2_ok" = yes; then
-  	AC_DEFINE(HAVE_BZ2, 1, [Is bzip2 available and enabled])
-  	BZ2_LIBS="-lbz2"
-     else
-  	AC_MSG_WARN(*** BZ2 support disabled (BZ2 header not found) ***)
-     fi
-  else
-     AC_MSG_WARN([BZ2 support disabled, as requested (Use --with-bz2 to enable)])
-  fi
-  
-  AC_SUBST(BZ2_LIBS)
-  
-  dnl *************************************************************************
-  
-  dnl gnome
-  dnl
-  want_gnome=yes
-  #dnl AC_ARG_WITH(gnome,
-  #dnl 	[--{with,without}-gnome   Build additional wrappers for GNOME-VFS and BONOBO],
-  #dnl	[case $withval in
-  #dnl	yes) want_gnome=yes;;
-  #dnl	no) want_gnome=no;;
-  #dnl	esac[]dnl
-  #dnl])
-  have_gnome=no
-  if test x$want_gnome = xno ; then 
-      AC_MSG_WARN([GNOME support disabled, as requested (Use --with-gnome to enable)])
-  else
-      PKG_CHECK_MODULES(LIBGSF_GNOME, $libgsf_gnome_reqs,
-  	[have_gnome=yes],
-  	[if test x$want_gnome = xyes; then
-  	    AC_MSG_ERROR([GNOME support requested, but not available.])
-  	 else
-  	    AC_MSG_WARN([GNOME support disabled, unable to find required version of VFS and/or Bonobo])
-  	 fi])
-  fi
-  AM_CONDITIONAL(WITH_LIBGSF_GNOME, test x$have_gnome = xyes)
-  
-  dnl # LDFLAGS="-no-undefined $LDFLAGS"
-  
-  # turn off unneeded python support
-  AM_CONDITIONAL(WITH_PYTHON, false)
-  
-  else
-  
-  # dnl AM_CONDITIONAL(GTK_DOC_INSTALLED, false)
-  # dnl  AM_CONDITIONAL(ENABLE_GTK_DOC, false)
-  # dnl  AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, false)
-  AM_CONDITIONAL(WITH_LIBGSF_GNOME, false)
-  # dnl AM_CONDITIONAL(WITH_GCONF, false)
-  AM_CONDITIONAL(WITH_PYTHON, false)
-  
-  fi
-  
-  ### -libgsf-1.12.3
-  ### 
-  ### ------------------------------------------------------------------------
-  ### Checks when building internal goffice
-  ### +goffice-0.0.4
-  
-  if test "x$HAVE_GOFFICE" != xyes; then
-  
-  AC_MSG_NOTICE('internal goffice configuration...')
-  
-  m4_define([goffice_version_epoch], [0])
-  m4_define([goffice_version_major], [0])
-  m4_define([goffice_version_minor], [4])
-  m4_define([goffice_version_extra], [])
-  m4_define([goffice_full_version],
-      [goffice_version_epoch.goffice_version_major.goffice_version_minor[]goffice_version_extra])
-  
-  AC_CONFIG_SRCDIR(lib/goffice-0.0.4/goffice/goffice.h)
-  
-  AC_SUBST(GOFFICE_LIB_VERSION,
-  m4_eval(goffice_version_epoch + goffice_version_major)[]dnl
-:goffice_version_minor:goffice_version_major)
-  dnl NOTE: Above line needs no leading whitespace!  --warlord
-  dnl
-  dnl Make sure these two won't clash.  Put the following to goffice-config.h:
-  AH_BOTTOM([/* Don't include goffice-features.h, it's a subset of goffice-config.h. */
-  #define GOFFICE_FEATURES_H])
-  
-  dnl We use $host_os:
-  dnl AC_CANONICAL_HOST
-  
-  AC_ISC_POSIX
-  AC_PROG_YACC
-  AM_PROG_LEX
-  AM_PROG_LIBTOOL
-  AC_STDC_HEADERS
-  AC_SYS_LARGEFILE
-  
-  dnl Propagate Gnome-specific variable ACLOCAL_FLAGS to Makefile.
-  AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
-  
-  dnl The first call to PKG_CHECK_MODULES is inside an `if.'
-  dnl We have to call PKG_PROG_PKG_CONFIG explicitly; otherwise it would
-  dnl get expanded just before the first occurence of PKG_CHECK_MODULES
-  dnl and might escape execution.
-  dnl PKG_PROG_PKG_CONFIG
-  
-  dnl *****************************
-  #	libgsf-1		>= 1.12.2
-  goffice_reqs="
-  	glib-2.0		>= 2.4.7
-  	gobject-2.0		>= 2.4.7
-  	gmodule-2.0		>= 2.4.7
-  	libxml-2.0		>= 2.4.12
-  	pango			>= 1.6.0
-  	pangoft2		>= 1.6.0
-  "
-  goffice_gtk_reqs="
-  	gtk+-2.0		>= 2.4.13
-  	libglade-2.0		>= 2.3.6
-  	libgnomeprint-2.2	>= 2.8.0
-  	libart-2.0		>= 2.3.11
-  "
-  goffice_gnome_reqs="
-  	gconf-2.0
-  	libgnomeui-2.0		>= 2.0.0
-  	libgsf-gnome-1		>= 1.12.2
-  "
-  dnl Should we use cairo ? no
-  goffice_with_cairo=false
-  cairo_msg="Disabled"
-  
-  dnl *******************
-  dnl Should we use gtk ?
-  dnl *******************
-  goffice_with_gtk=true
-  #dnl AC_ARG_WITH(gtk, [  --without-gtk           Build without UI])
-  #dnl if test "x$with_gtk" = xno; then
-  #dnl 	ui_msg="None (Gtk disabled by request)"
-  #dnl	goffice_with_gtk=false
-  #dnl else
-  	dnl We shouldn't silently default to --without-gtk.
-  	dnl If the requirements are not met, fail.
-  	ui_msg="Gtk"
-  	PKG_CHECK_MODULES(GOFFICE_GTK, [$goffice_gtk_reqs])
-  #dnl fi 
-  
-  goffice_with_gnome=$goffice_with_gtk
-  if test "x$goffice_with_gtk" = "xtrue" ; then
-  	AC_DEFINE(WITH_GTK, 1, [Define if UI is built])
-  	goffice_reqs="$goffice_reqs $goffice_gtk_reqs"
-  
-  	dnl ************************************
-  	dnl Are the GNOME extensions available ?
-  	dnl ************************************
-  
-  	goffice_with_gnome=true
-  	#dnl AC_ARG_WITH(gnome,
-  	#dnl	[  --{with,without}-gnome  Use GNOME extensions],
-  	#dnl	[if test "x$withval" = xno; then
-  	#dnl		goffice_with_gnome=false
-  	#dnl		ui_msg="Gtk+ (Gnome disabled by request)"
-  	#dnl	fi]
-  	#dnl)
-  	if test "x$goffice_with_gnome" = "xtrue"; then
-  		PKG_CHECK_MODULES(GOFFICE_GNOME, [$goffice_gnome_reqs],
-  			[ui_msg="Gnome"],
-  			[ui_msg="Gtk (missing gnome dependencies)" ; goffice_with_gnome=false])
-  	fi
-  
-  	if test "x$goffice_with_gnome" = "xtrue"; then
-  		AC_DEFINE(WITH_GNOME, 1, [Define if GNOME extensions are available])
-  		goffice_reqs="$goffice_reqs $goffice_gnome_reqs"
-  	fi
-  fi
-  AM_CONDITIONAL(WITH_CAIRO, $goffice_with_cairo)
-  AM_CONDITIONAL(WITH_GTK,   $goffice_with_gtk)
-  AM_CONDITIONAL(WITH_GNOME, $goffice_with_gnome)
-  
-  dnl ****************************
-  dnl now that we have selected out libraries the whole collection in one
-  dnl shot so that we can have a nice neat compile/link line
-  dnl ****************************
-  
-  PKG_CHECK_MODULES(GOFFICE_DEPS, $goffice_reqs)
-  
-  dnl  Checks for Xft/XRender
-  AC_CHECK_LIB(Xrender, XRenderFindFormat, 
-  	[AC_SUBST(RENDER_LIBS, "-lXrender -lXext")
-  	 AC_DEFINE(HAVE_RENDER, 1, [Define if libXrender is available.])],
-  	[AC_SUBST(RENDER_LIBS, "")],
-  	[-lXext])
-  
-  dnl *****************************
-  AC_MSG_CHECKING([for Win32 platform])
-  with_win32=no
-  case $host_os in
-    mingw* | pw32* | cygwin*)
-      with_win32=yes
-      GOFFICE_PLUGIN_LDFLAGS="-Wl,--enable-runtime-pseudo-relo,--export-all-symbols $GOFFICE_PLUGIN_LDFLAGS"
-      AC_ARG_VAR(WINDRES, [The windres executable (used by win32 builds only).])
-      AC_CHECK_TOOL(WINDRES, windres, :)
-      ;;
-  esac
-  AC_MSG_RESULT($with_win32)
-  AM_CONDITIONAL(WITH_WIN32, test x$with_win32 = xyes)
-  
-  dnl *****************************
-  dnl FIXME: perhaps declare with AC_ARG_VAR?
-  dnl	   If we use the initial value of a variable, we have to make it precious.
-  dnl
-  GOFFICE_PLUGIN_LDFLAGS="-avoid-version -no-undefined $GOFFICE_PLUGIN_LDFLAGS"
-  GOFFICE_PLUGIN_LIBADD="\$(top_builddir)/lib/goffice-0.0.4/goffice/libgoffice-1.la $GOFFICE_DEPS_LIBS $GOFFICE_PLUGIN_LIBADD"
-  AC_SUBST(GOFFICE_PLUGIN_LDFLAGS)
-  AC_SUBST(GOFFICE_PLUGIN_LIBADD)
-  
-  dnl ****************************
-  dnl prep the pixmap generator
-  dnl ****************************
-  
-  AC_ARG_VAR(GLIB_GENMARSHAL, [The glib-genmarshal executable.])
-  AC_CHECK_PROG(GLIB_GENMARSHAL, glib-genmarshal, glib-genmarshal)
-  
-  AC_ARG_VAR(GDK_PIXBUF_CSOURCE, [The gdk-pixbuf-csource executable.])
-  AC_CHECK_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, gdk-pixbuf-csource)
-  
-  dnl M_PI
-  AC_MSG_CHECKING([whether M_PI is available])
-  AC_TRY_COMPILE([#include <math.h>], [double f = M_PI], works_without_bsd_source=yes, works_without_bsd_source=no)
-  AC_MSG_RESULT($works_without_bsd_source)
-  
-  if test x$works_without_bsd_source = xno ; then
-  	CFLAGS="$CFLAGS -D_BSD_SOURCE"
-  	AC_MSG_CHECKING([whether M_PI is available with -D_BSD_SOURCE])
-  	AC_TRY_COMPILE([#include <math.h>], [double f = M_PI], m_pi_works=yes, m_pi_works=no)
-  	AC_MSG_RESULT($m_pi_works)
-  	if test x$m_pi_works = xno ; then
-  		AC_MSG_ERROR([M_PI is not available])
-  	fi
-  fi
-  
-  dnl
-  dnl On Solaris finite() needs ieeefp.h
-  dnl Either of these seem to signal IEEE754 math, see mathfunc.c
-  dnl
-  AC_CHECK_HEADERS(ieeefp.h ieee754.h)
-  
-  dnl Check for some functions
-  AC_CHECK_FUNCS(random drand48 finite memmove mkdtemp uname times sysconf)
-  
-  dnl FIXME: Does this really belong here?
-  AC_CHECK_FUNC(bind_textdomain_codeset,,[AC_CHECK_LIB(intl,bind_textdomain_codeset)])
-  
-  dnl isfinite is a macro on HPUX
-  AC_TRY_COMPILE([#include <math.h>], [int a = isfinite(0.0)],
-  	[AC_DEFINE(HAVE_ISFINITE, 1,
-  		[Define if the isfinite() macro is available]
-  	 )
-  	], [])
-  
-  dnl
-  dnl On BSD, we seem to need -lm for finite
-  dnl
-  if test x$ac_cv_func_finite = xno; then
-    AC_CHECK_LIB(m, finite,
-          [AC_DEFINE(HAVE_FINITE, 1,
-  		[Define if the finite function is available]
-  	 )
-           LIBS="$LIBS -lm"])
-  fi
-  
-  dnl check for complete locale implementation
-  AC_CHECK_HEADERS(langinfo.h)
-  
-  dnl Handle systems that have stuff in -lm.
-  AC_CHECK_FUNCS(log)
-  if test x$ac_cv_func_log = xno; then
-    AC_CHECK_LIB(m, log,
-          [AC_DEFINE(HAVE_LOG, 1,
-  		[Define if the log function is available]
-  	 )
-           LIBS="$LIBS -lm"])
-  fi
-  
-  AC_DEFUN([GOFFICE_CHECK_FUNC],
-  [AC_CHECK_FUNC([$1],
-  	[],
-  	[AC_DEFINE([GOFFICE_SUPPLIED_]AS_TR_CPP([$1]),
-  		1,
-  		[Define if G Office supplies $1.])])dnl
-  ])
-  GOFFICE_CHECK_FUNC(log1p)
-  GOFFICE_CHECK_FUNC(expm1)
-  GOFFICE_CHECK_FUNC(asinh)
-  GOFFICE_CHECK_FUNC(acosh)
-  GOFFICE_CHECK_FUNC(atanh)
-  
-  float_msg=no
-  EXTRA_LIBS= EXTRA_INCLUDES=
-  AC_C_LONG_DOUBLE
-  if test x$ac_cv_c_long_double = xyes; then
-      have_mandatory_funcs=yes
-      need_sunmath=0
-      sunmathlinkstuff='-L/opt/SUNWspro/lib -R/opt/SUNWspro/lib -lsunmath'
-      for ldfunc in fabsl logl log10l ceill floorl powl isnanl finitel; do
-  	    AC_CHECK_FUNC($ldfunc,
-  		  ,
-  		  [AC_CHECK_LIB(m,
-  		      $ldfunc,
-  		      ,
-  		      [AC_CHECK_LIB(sunmath,
-  			  $ldfunc,
-  			  [ if test x$need_sunmath = x0; then
-  				# FIXME: better idea?
-  				LDFLAGS="$LDFLAGS $sunmathlinkstuff"
-  				sunmathinclude=`ls -d /opt/SUNWspro/*/include/cc | sed '$!d'`
-  				CPPFLAGS="$CPPFLAGS -I$sunmathinclude"
-  			    fi
-  			    need_sunmath=1 ],
-  			  [have_mandatory_funcs=no],
-  			  [-L/opt/SUNWspro/lib $GOFFICE_DEPS_LIBS])])])
-      done
-      if test x$need_sunmath = x1; then
-  	EXTRA_LIBS="$EXTRA_LIBS $sunmathlinkstuff"
-  	EXTRA_INCLUDES="$EXTRA_INCLUDES -I$sunmathinclude"
-  	AC_CHECK_HEADERS([sunmath.h floatingpoint.h],
-  			 ,
-  			 [AC_MSG_WARN([Long doubles require the $ac_header header.])
-  			  have_mandatory_funcs=no])
-      fi
-      unset need_sunmath
-      unset sunmathlinkstuff
-      unset sunmathinclude
-  
-      GOFFICE_CHECK_FUNC(modfl)
-      GOFFICE_CHECK_FUNC(ldexpl)
-      GOFFICE_CHECK_FUNC(frexpl)
-  
-      AC_CHECK_FUNCS(strtold)
-      if test "$ac_cv_func_strtold" = yes; then
-  	AC_MSG_CHECKING([if we must prototype strtold ourselves])
-  	AC_TRY_RUN([#include <stdlib.h>
-  		int main ()
-  		{
-  			const char *s = "+3.1415e+0";
-  			char *theend;
-  			long double res = strtold (s, &theend);
-  			return !(*theend == 0 && finitel (res) &&
-  				 res >= 3.14 && res <= 3.15);
-  		}],
-  		[AC_MSG_RESULT(no)],
-  		[AC_MSG_RESULT(yes)
-  		 AC_DEFINE([GOFFICE_SUPPLIED_STRTOLD], 1,
-  			   [Define if G Office supplies strtold.])
-  		],
-  		[AC_MSG_RESULT(assuming not)])
-      else 
-  	AC_DEFINE([GOFFICE_SUPPLIED_STRTOLD], 1,
-  		  [Define if G Office supplies strtold.])
-  	AC_CHECK_FUNCS(string_to_decimal decimal_to_quadruple)
-  	if test "x$ac_cv_func_string_to_decimal" != "xyes" || \
-  	   test "x$ac_cv_func_decimal_to_quadruple" != "xyes" || \
-  	   test "x$ac_cv_header_floatingpoint_h" != "xyes"; then
-  		AC_MSG_WARN([You lack the strtold function -- precision will be impaired])
-  	fi
-      fi
-      if test "$have_mandatory_funcs" = yes; then
-  	float_msg=yes
-  	AC_DEFINE([GOFFICE_WITH_LONG_DOUBLE], 1,
-  		  [Define if G Office supports long double.])
-      else
-  	AC_MSG_WARN([Long double support disabled because of library problems])
-      fi
-      unset have_mandatory_funcs
-  fi
-  AC_SUBST(EXTRA_LIBS)
-  AC_SUBST(EXTRA_INCLUDES)
-  
-  dnl ******************
-  dnl * Config defaults
-  dnl ******************
-  dnl
-  dnl These are changed in goffice.c for WIN32 packages
-  AC_SUBST(goffice_datadir, '${datadir}/gnucash/goffice/${GOFFICE_VERSION}')
-  AC_SUBST(goffice_libdir, '${libdir}/gnucash/goffice/${GOFFICE_VERSION}')
-  AC_SUBST(goffice_icondir, '${datadir}/gnucash/pixmaps/goffice')
-  AC_SUBST(goffice_localedir, '${prefix}/${DATADIRNAME}/locale')
-  dnl
-  AC_SUBST(goffice_plugindir, '${goffice_libdir}/plugins')
-  AC_SUBST(goffice_gladedir, '${goffice_datadir}/glade')
-  
-  dnl Export to goffice-config.h and goffice-features.h
-  AC_DEFINE(GOFFICE_VERSION, "goffice_full_version",
-  	[The version number of this release, possibly with additional suffix])
-  AC_DEFINE(GO_VERSION_EPOCH, goffice_version_epoch,
-  	[The Epoch of this release])
-  AC_DEFINE(GO_VERSION_MAJOR, goffice_version_major,
-  	[The Major version number of this release])
-  AC_DEFINE(GO_VERSION_MINOR, goffice_version_minor,
-  	[The Minor version number of this release])
-  AC_DEFINE(GO_VERSION_EXTRA, "goffice_version_extra",
-  	[Extra, possibly empty tag for this release])
-  
-  else
-  
-  AM_CONDITIONAL(WITH_CAIRO, false)
-  AM_CONDITIONAL(WITH_GTK,   false)
-  AM_CONDITIONAL(WITH_GNOME, false)
-  AM_CONDITIONAL(WITH_WIN32, false)
-  
-  fi
-
-  ### -goffice-0.0.4
-  ### ------------------------------------------------------------------------
-else
-  ### A bunch of am conditionals that need to be set
-  AM_CONDITIONAL(HAVE_GTK26, false )
+  ### AM conditionals that need to be set
   AM_CONDITIONAL(HAVE_GTK_2_10, false)
-  AM_CONDITIONAL(HAVE_PANGO18, false )
-  AM_CONDITIONAL(HAVE_LIBGSF, false)
-  AM_CONDITIONAL(HAVE_GOFFICE, false)
-  AM_CONDITIONAL(WITH_LIBGSF_GNOME, false)
-  AM_CONDITIONAL(WITH_PYTHON, false)
-
-  AM_CONDITIONAL(WITH_CAIRO, false)
-  AM_CONDITIONAL(WITH_GTK,   false)
-  AM_CONDITIONAL(WITH_GNOME, false)
-  AM_CONDITIONAL(WITH_WIN32, false)
 fi
 ### End of gui-only checks
 
@@ -1963,47 +1307,6 @@
 fi
 AC_SUBST(LC_MESSAGES_ENUM)
 
-### --------------------------------------------------------------------------
-### GnuCash flags and libs configuration
-
-GNUCASH_ENGINE_BASE_LIBS="${GLIB_LIBS}"
-GNUCASH_ENGINE_LIBS="-L${GNC_MODULE_DIR} ${GNUCASH_ENGINE_BASE_LIBS} ${GUILE_LIBS} -lgncmod-engine -lgncmodule"
-
-GNUCASH_ENGINE_BASE_CFLAGS="-DGNUCASH ${GLIB_CFLAGS} ${GUILE_INCS}"
-GNUCASH_ENGINE_CFLAGS="${GNUCASH_ENGINE_BASE_CFLAGS}"
-
-AC_SUBST(GNUCASH_ENGINE_BASE_LIBS)
-AC_SUBST(GNUCASH_ENGINE_LIBS)
-AC_SUBST(GNUCASH_ENGINE_BASE_CFLAGS)
-AC_SUBST(GNUCASH_ENGINE_CFLAGS)
-
-GNUCASH_APP_UTILS_CFLAGS="${GNUCASH_ENGINE_CFLAGS}"
-GNUCASH_APP_UTILS_LIBS="${GNUCASH_ENGINE_LIBS} -lgncmod-calculation -lgncmod-app-utils"
-
-AC_SUBST(GNUCASH_APP_UTILS_CFLAGS)
-AC_SUBST(GNUCASH_APP_UTILS_LIBS)
-
-GNUCASH_NETWORK_UTILS_CFLAGS="${GLIB_CFLAGS} ${GHTTP_CFLAGS} ${GNOME_INCLUDEDIR}"
-GNUCASH_NETWORK_UTILS_LIBS="${GHTTP_LIBS} ${GNOME_LIBDIR} ${GNOME_LIBS} ${GNOMEUI_LIBS} -lgncmod-network-utils"
-
-AC_SUBST(GNUCASH_NETWORK_UTILS_CFLAGS)
-AC_SUBST(GNUCASH_NETWORK_UTILS_LIBS)
-
-GNUCASH_GNOME_UTILS_CFLAGS="${GNUCASH_APP_UTILS_CFLAGS} ${GNUCASH_NETWORK_UTILS_CFLAGS} ${GNOME_PRINT_CFLAGS} ${GNOME_INCLUDEDIR} ${GDK_PIXBUF_CFLAGS}"
-GNUCASH_GNOME_UTILS_LIBS="${GNUCASH_APP_UTILS_LIBS} ${GNUCASH_NETWORK_UTILS_LIBS} ${GNOME_LIBDIR} ${GNOMEUI_LIBS} ${GNOME_PRINT_LIBS} ${GTKHTML_LIBS} ${GLADE_LIBS} ${GDK_PIXBUF_LIBS} -lgncmod-gnome-utils"
-
-AC_SUBST(GNUCASH_GNOME_UTILS_CFLAGS)
-AC_SUBST(GNUCASH_GNOME_UTILS_LIBS)
-
-GNUCASH_REGISTER_CORE_CFLAGS="${GNUCASH_GNOME_UTILS_CFLAGS}"
-GNUCASH_REGISTER_CORE_LIBS="${GNUCASH_GNOME_UTILS_LIBS} -lgncmod-register-core"
-
-AC_SUBST(GNUCASH_REGISTER_CORE_CFLAGS)
-AC_SUBST(GNUCASH_REGISTER_CORE_LIBS)
-
-AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.")
-AM_CONDITIONAL(GNC_FALSE, false)
-
 ###-------------------------------------------------------------------------
 ### Additional compiler warnings (or not) if we're running GCC
 ###-------------------------------------------------------------------------
@@ -2072,8 +1375,11 @@
 fi
 AC_MSG_RESULT($warnFLAGS)
 
-# Extend LDFLAGS because libtool on Windows requires this argument
-LDFLAGS="${LDFLAGS} -no-undefined"
+# Adjust CFLAGS and LDFLAGS on Windows
+if test "x${platform_win32}" = "xyes"; then
+  CFLAGS="${CFLAGS} -mms-bitfields"
+  LDFLAGS="${LDFLAGS} -no-undefined -mwindows"
+fi
 
 ### --------------------------------------------------------------------------
 ### Adjustments -- especially executables that aren't generated via
@@ -2103,6 +1409,7 @@
           accounts/de_DE/Makefile
           accounts/el_GR/Makefile
           accounts/es_ES/Makefile
+          accounts/fr_CA/Makefile
           accounts/fr_CH/Makefile
           accounts/fr_FR/Makefile
           accounts/hu_HU/Makefile
@@ -2112,50 +1419,15 @@
           accounts/pt_PT/Makefile
           accounts/sk/Makefile
           accounts/tr_TR/Makefile
+          checks/Makefile
           doc/Makefile
           doc/examples/Makefile
           intl-scm/Makefile
           lib/Makefile
-          lib/glib26/Makefile
+          lib/glib28/Makefile
           lib/guile-www/Makefile
           lib/srfi/Makefile
           lib/libc/Makefile
-          lib/libgsf-1.12.3/Makefile
-          lib/libgsf-1.12.3/gsf/Makefile
-          lib/libgsf-1.12.3/gsf-gnome/Makefile
-          lib/libgsf-1.12.3/gsf-win32/Makefile
-          lib/libgsf-1.12.3/tests/Makefile
-          lib/libgsf-1.12.3/python/Makefile
-          lib/libgsf-1.12.3/gsf/version.c
-          lib/libgsf-1.12.3/libgsf-1.pc
-          lib/libgsf-1.12.3/libgsf-1.spec
-          lib/libgsf-1.12.3/libgsf-gnome-1.pc
-          lib/libgsf-1.12.3/libgsf-gnome-1.spec
-          lib/libgsf-1.12.3/libgsf-win32-1.pc
-          lib/libgsf-1.12.3/libgsf-zip
-          lib/goffice-0.0.4/Makefile
-          lib/goffice-0.0.4/libgoffice-1.pc
-          lib/goffice-0.0.4/goffice/Makefile
-          lib/goffice-0.0.4/goffice/app/Makefile
-          lib/goffice-0.0.4/goffice/utils/Makefile
-          lib/goffice-0.0.4/goffice/data/Makefile
-          lib/goffice-0.0.4/goffice/gtk/Makefile
-          lib/goffice-0.0.4/goffice/graph/Makefile
-          lib/goffice-0.0.4/goffice/drawing/Makefile
-          lib/goffice-0.0.4/goffice/ms-compat/Makefile
-          lib/goffice-0.0.4/goffice/cut-n-paste/Makefile
-          lib/goffice-0.0.4/goffice/cut-n-paste/foocanvas/Makefile
-          lib/goffice-0.0.4/goffice/cut-n-paste/pcre/Makefile
-          lib/goffice-0.0.4/plugins/Makefile
-          lib/goffice-0.0.4/plugins/plot_barcol/Makefile
-          lib/goffice-0.0.4/plugins/plot_pie/Makefile
-          lib/goffice-0.0.4/plugins/plot_radar/Makefile
-          lib/goffice-0.0.4/plugins/plot_xy/Makefile
-          lib/goffice-0.0.4/plugins/plot_surface/Makefile
-          lib/goffice-0.0.4/plugins/plot_boxes/Makefile
-          lib/goffice-0.0.4/plugins/reg_linear/Makefile
-          lib/goffice-0.0.4/pixmaps/Makefile
-          lib/goffice-0.0.4/tests/Makefile
           lib/libqof/Makefile
           lib/libqof/qof/Makefile
           lib/libqof/backend/Makefile
@@ -2218,8 +1490,6 @@
           src/import-export/hbci/glade/Makefile
           src/import-export/hbci/schemas/Makefile
           src/import-export/hbci/test/Makefile
-          src/network-utils/Makefile
-          src/network-utils/test/Makefile
           src/optional/Makefile
           src/optional/xsl/Makefile
           src/pixmaps/Makefile
@@ -2233,7 +1503,7 @@
           src/register/register-gnome/test/Makefile
           src/report/Makefile
           src/report/report-gnome/Makefile
-          dnl # src/report/report-gnome/test/Makefile
+          src/report/report-gnome/test/Makefile
           src/report/report-system/Makefile
           src/report/report-system/test/Makefile
           src/report/standard-reports/Makefile
@@ -2247,7 +1517,6 @@
           src/report/utility-reports/test/Makefile
           src/scm/Makefile
           src/scm/gnumeric/Makefile
-          src/scm/printing/Makefile
           src/tax/Makefile
           src/tax/us/Makefile
           src/tax/us/test/Makefile
@@ -2268,9 +1537,6 @@
           dnl # non-makefiles
           dnl # Please read doc/build-system before adding *anything* here
 
-          dnl # we configure gnucash-config here because we *don't*
-          dnl # want variables to be fully expanded
-          gnucash-config
           ,
           dnl # commands go here, but we don't have any right now
 )
@@ -2305,8 +1571,6 @@
   CFLAGS ............... : $CFLAGS
   LDFLAGS .............. : $LDFLAGS
   prefix.................: ${prefix}
-  Native libgsf..........: $HAVE_LIBGSF
-  Native goffice.........: $HAVE_GOFFICE
   QOF support ...........: $QOF_VERSION
   QOF location ..........: $output_qof_prefix
   QOF library dir .......: $output_qof_lib_dir

Modified: gnucash/branches/gda-dev/doc/README.dependencies
===================================================================
--- gnucash/branches/gda-dev/doc/README.dependencies	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/doc/README.dependencies	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,7 +15,6 @@
 	libgnomeui-devel
 	libgsf-devel
 	libjpeg-devel
-	libtool-ltdl-devel
 	openssl-devel
 
 If you are compiling with the --enable-ofx or --enable-hbci flags,

Modified: gnucash/branches/gda-dev/doc/README.francais
===================================================================
--- gnucash/branches/gda-dev/doc/README.francais	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/doc/README.francais	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,397 +1,248 @@
-#######################################################################
-          Fichier README de Gnucash 1.5.x .
+###########################################
+          GnuCash version  2.0.x
+-------------------------------------------
 
-NOTE: C'EST UNE VERSION DE DEVELOPPEMENT!!! CETTE VERSION N'A PAS
-ETE TESTEE CORRECTEMENT ET PEUT FAIRE ABSOLUMENT N'IMPORTE QUOI!  
-
-UTILISEZ LA A VOS PROPRES RISQUES (ET FAITES *BEAUCOUP* DE SAUVEGARDES)
-
-Si vous voulez quelque chose de plus testé, s'il vous plaît utilisez
-les series stables 1.4.
------------------------------------------------------------------------
-
 #########
 Sommaire:
 ---------
 
   - Vue d'ensemble
-  - Mise à jour depuis la version 1.2.x
-  - Dépendences
+  - Mise à jour depuis la version 1.8.x
+  - Dépendances
   - Mise en route
   - Internationalisation
   - Compilation et installation
-  - OS supportés
-  - Sites additionnels de téléchargement
-  - Récupérer les sources avec CVS
+  - plates-formes supportées
+  - Sites de téléchargement miroirs
+  - Récupérer les sources avec SVN
   - Développement de GnuCash
 
-###############
+
+##############
 Vue d'ensemble
----------------
+--------------
 
-GnuCash est un gestionnaire de finances personnelles.Une interface
-graphique d'enregistrement ressemblant au talon de votre chéquier
-vous permet d'entrer et de suivre vos comptes bancaires,actions,
-revenus et même les marchés des changes.  L'interface est conçu pour
-être simple et facile à utiliser, mais elle est adossée à
-des principes de comptabilité de la partie double pour
-s'assurer que les livres sont équilibrés.
+GnuCash est un gestionnaire de finances personnelles. Une interface graphique
+d'enregistrement ressemblant au talon de votre chéquier vous permet d'entrer et
+de suivre vos comptes bancaires, actions, revenus et même vos opérations
+boursières. L'interface est conçue pour être simple et facile à utiliser, mais
+elle est adossée aux principes de comptabilité de la partie double pour assurer
+l'équilibre des comptes.
 
 Quelques une de ces caractéristiques sont:
 
-  - Une interface facile à utiliser.  Si vous savez utiliser
-    le talon de votre chéquier, vous savez utiliser GnuCash.
-    Tapez directement dans le registre,
-    déplacez vous entre les champs, et utilisez quick-fill
-    (saisie rapide) pour compléter automatiquement la transaction.
-    L'interface est personalisable depuis l'application elle-même
-    (pas de fichiers de config à modifier :) ).
-  - Importation de fichiers Quicken: Importation de fichiers au format
-    QIF de Quicken.
-    Les fichiers QIF sont automatiquement fusionnés pour éliminer
-    les transactions dupliquées
-  - La fenêtre de rapprochement avec soldes actuels rapprochés et
-    pointés rend le rapprochement facile.
-  - Potefeuille d'actions/fonds de placements (SICAV et FCP en France):
-    Suivi d'actions individuellement (une par compte) ou dans un
-    portefeuille de comptes (un groupe de comptes qui peuvent
-    être affiché ensemble).
-  - Récupère les cours des actions et fonds communs (FCP et SICAV) depuis
-    différents sites web, met à jour automatiquement le porte-feuille
-    (plus de fonds étant ajouter régulièrement).
-  - Rapports: Affichent la feuille bilan , pertes et profits, évaluation du
-    portefeuille, rapports de transactions, ou suivi du solde du compte,
-    ou exportation de ceux-ci en HTML. Vous pouvez écrire votre propre
-    rapport personalisé si vous connaissez un peu Scheme. Les rapports
-    peuvent maintenant être réalisés sur une période comptable!
-  - Monnaies/devises multiples et Marché des changes:
-    De multiple monnaies sont supportées et peuvent être achetées
-    et vendus(faire du commerce avec elles). Les mouvements monétaires
-    entre comptes sont totallement équilibrés quand la partie double
-    est activée.
-    (Quelques aspects du support de multiples monnaies ne sont pas 
-    totallement implémentés.
-  - Tableau de comptes: Un compte maitre/principal peut avoir une arborescence
-    de comptes détaillés en desssous de lui. Celà permet d'avoir des types de
-    comptes similaires (par exemple Liquidités, Banque, Actions)
-    groupés dans un compte maitre (par exemple Avoirs).
-  - Transactions réparties: Une simple transaction peut être répartie
-    en plusieurs morceaux pour enregistrer les impôts, paiements, et
-    autres entrées composées.
-  - Partie double: Quand elle est activé, chaque transaction
-    doit débiter un compte et créditer un autre d'un montant équivalent.
-    Celà permet de s'assurer que les "livres sont équilibrés":
-    c'est à dire que la différence entre les revenus et les sorties est
-    exactement égale à la somme de tous les avoirs, qu'ils soit bancaire, 
-    liquidités, actions ou autre.
-  - Types de comptes Revenus/Dépenses (Catégories):  
-    Ils ne servent pas uniquement à catégoriser votre flux
-    de liquidités/argent, mais quand ils sont utilisés avec la fonction de
-    la partie double, ceux-ci peuvent fournir un état exact des pertes et
-    profits et donc du résultat de la période.
-  - Extrait de compte/grand livre: De multiples comptes peuvent être affichés
-     dans une fenêtre registre/d'enregistrement au même moment. Celà peut
-    faciliter l'ennui de la recherche/vérification des erreurs de
-    frappe/d'entrée.
-    Il fournit aussi une manière agréable de visualiser un porte-feuille de
-    beaucoup d'actions, en montrant toutes les transactions dans ce
-    portefeuille.
-  - Ecrit en C avec un support étendu de scheme via Guile.
-  - Le support de Perl est disponible en option pour les scripts fonctionnant
-    via SWIG.
-  - L'accès au fichier est verrouillé par un drapeau de sécurité réseau,
-    prévenant des dommages accidentels si plusieurs utilisateurs essaient
-    d'accéder au même fichier, même si le fichier est monté par NFS.
-  - Fournit un format de flux de données(byte-stream format), qui permet aux
-    comptes et groupes de comptes d'être transmi par d'autres processus
-    via pipes ou sockets.
-  - Chargement de la date au format européen, traductions française,
-    anglaise, allemande et suédoise.
+* Une interface facile à utiliser.  Si vous savez utiliser le talon de votre
+chéquier, vous savez utiliser GnuCash. Tapez directement dans le registre,
+déplacez vous entre les champs, et utilisez quick-fill (saisie rapide) pour
+compléter automatiquement la transaction. L'interface est personnalisable depuis
+l'application elle-même (pas de fichiers de config à modifier :) ).
+* Transactions récurrentes : GnuCash a la possibilité de générer automatiquement
+des transactions, de rappeler leur échéance, de proposer de la valider ou de la
+retarder et également de les supprimer après un certain temps.
+* Importation de fichiers OFX : GnuCash est le premier logiciel libre à
+supporter le protocole « Open Financial Exchange » qui est de plus en plus
+utilisé par les banques. Le développement du support OFX et HBCI a permis une
+amélioration du mécanisme permettant de retrouver des transactions homologues
+et les doublons.
+* Support de l'HBCI : GnuCash est le premier logiciel libre à supporter le
+protocole allemand d'opérations bancaires en ligne
+* Importation de fichiers Quicken: Importation de fichiers au format QIF de
+Quicken. Les fichiers QIF sont automatiquement fusionnés pour éliminer les
+transactions dupliquées.
+* La fenêtre de rapprochement avec les soldes actuels rapprochés et pointés rend
+le rapprochement facile.
+* Portefeuille d'actions/fonds de placements (SICAV et FCP en France): suivi
+d'actions individuellement (une par compte) ou dans un portefeuille de comptes
+(un groupe de comptes qui peuvent être affichés ensemble).
+* Récupération des cours des actions et fonds communs (FCP et SICAV) depuis
+différents sites Web, mise à jour automatique du portefeuille.
+* Rapports : affichent le bilan , les pertes et profits, évaluation du
+portefeuille, rapports de transactions, ou suivi du solde du compte, ou
+exportation de ceux-ci en HTML. Vous pouvez écrire votre propre rapport
+personnalisé si vous connaissez un peu le langage Scheme. Les rapports peuvent
+maintenant être réalisés sur une période comptable.
+* Monnaies/devises multiples et Marché des changes : de multiple monnaies sont
+supportées et peuvent être achetées et vendues (faire du commerce avec elles).
+Les mouvements monétaires entre comptes sont totalement équilibrés quand la
+partie double est activée. Les transferts en devises multiples sont supportés.
+* Tableau de comptes : un compte maître/principal peut avoir une arborescence
+de comptes détaillés en dessous de lui. Cela permet d'avoir des types de
+comptes similaires (par exemple Liquidités, Banque, Actions) groupés dans un
+compte maître (par exemple Avoirs).
+* Transactions réparties : une simple transaction peut être répartie en
+plusieurs morceaux pour enregistrer les impôts, paiements, et autres entrées
+composées.
+* Partie double: Quand elle est activée, chaque transaction doit débiter un
+compte et créditer un autre d'un montant équivalent. Cela permet de s'assurer
+que les "livres sont équilibrés" : c'est à dire que la différence entre les
+revenus et les sorties est exactement égale à la somme de tous les avoirs,
+qu'ils soient bancaire, liquidités, actions ou autre.
+* Types de comptes Revenus/Dépenses (Catégories) : ils ne servent pas uniquement
+à catégoriser votre flux de liquidités/argent, mais quand ils sont utilisés avec
+la fonction de la partie double, ceux-ci peuvent fournir un état exact des
+pertes et profits et donc du résultat de la période.
+* Extrait de compte/grand livre : de multiples comptes peuvent être affichés
+dans une fenêtre registre/d'enregistrement au même moment. Cela peut faciliter
+l'ennui de la recherche/vérification des erreurs de frappe/d'entrée. Il fournit
+aussi une manière agréable de visualiser un portefeuille de beaucoup d'actions,
+en montrant toutes les transactions dans ce portefeuille.
+* Écrit en C avec un support étendu de Scheme via Guile.
+* L'accès au fichier est verrouillé par un drapeau de sécurité réseau, prévenant
+des dommages accidentels si plusieurs utilisateurs essaient d'accéder au même
+fichier, même si le fichier est monté par NFS.
+* Fournit un format de flux de données (byte-stream format), qui permet aux
+comptes et groupes de comptes d'être transmis par d'autres processus via pipes
+ou sockets.
+* Chargement de la date au format européen, traductions diverses.
+* Nouveau manuel utilisateur : une toute nouvelle aide en ligne a été écrite :
+elle se focalise sur comment faire les actions en relation avec un tutoriel et
+un guide des concepts.
+* De nouveaux menus : les menus de GnuCash ont été revus pour se conformer aux
+principes d'interface de Gnome.
 
 
 Home Page:
 
 http://gnucash.org/ (site officiel - version anglaise)
-http://www.multimania.com/yleny/gnucash (version française)
 
 Binaires précompilés / exécutables:
 http://www.gnucash.org/pub/gnucash/
 
 Versions de développement:
-http://www.gnucash.org/source_code.php3
+http://www.gnucash.org/en/hacking.phtml
 
-
 ###################################
-Mise à jour depuis la version 1.2.x
+Mise à jour depuis la version 1.8.x
 -----------------------------------
 
-Il y a beaucoup, beaucoup de changements depuis la serie 1.2 - 
-donnez un coup d'oeil au fichier NEWS si vous voulez plus de détails.
-Toutefois, le plus important pour l'installation est que GnuCash
-maintenant requiert les librairies Gnome à la place de Motif, et guile
-est requis.  Regardez la section "dépendances" de ce fichier pour plus
-de détails. Le format de fichier n'a pas changé
-(mais faites une sauvegarde de vos données de toute façon . . . )
+Il y a beaucoup, beaucoup de changements depuis la série 1.8 -
+Jetez un coup d'oeil au fichier NEWS si vous voulez plus de détails.
 
-Nous espérons que vous vous amuserez avec toutes les nouvelles fonctionnalités!
+- GnuCash nécessite g-wrap version 1.3.4 ou supérieur. Consultez la section «
+Dépendances » pour plus de détails.
 
-############
-Dépendences
-------------
+- Les données ne sont plus accessibles à partir de la version 1.6 une fois de
+nouvelles fonctionnalités utilisées : il n'y a pas de compatibilité
+descendante. Sauvegardez vos données!!
 
-Les packages suivants sont requis et doivent être installé pour faire
-fonctionner gnucash: 
+- La documentation de GnuCash est désormais déplacée dans un package séparé
+(gnucash-docs). si vous voyez un message du type « URL non trouvée », en
+cliquant un item du menu Aide, vous devrez installer la package gnucash-docs.
 
-guile   -- Fournit l'infrastructure du langage d'extension principal.
-           Il est utilisé intensivement par gnucash pour l'initialisation
-           et le démarrage.
-           Requiert la version 1.3 ou ultérieure/plus récente.
-           Le rpm guile-1.3-7 fonctionne.
+Nous espérons que vous vous apprécierez toutes les nouvelles fonctionnalités!
 
-slib    -- librairies scheme pour guile. A besoin de slib2c4 ou ultérieure.
+############
+Dépendances
+------------
 
-libpng  -- librairie PNG(portable network graphics). N'importe quelle version.
+Les packages suivants sont requis et doivent être installés pour faire
+fonctionner GnuCash:
 
-libjpeg -- librairie de chargement d'image JPEG. N'importe quelle version.
+[Consultez le fichier README.dependencies]
 
-libz    -- librairie de compression. N'importe quelle version.
 
-xpm     -- extension Pixmap pour X. N'importe quelle version.
-
-gnome-libs: la version 1.0.40 ou ultérieure/plus récente devrait fonctionner.
-            Ces librairies requièrent des librairies supportant de nombreuses
-	      autres, tel que gtk et glib.
-
-gnome-print: N'importe quelle version récente devrait fonctionner.
-
-gdk-pixbuf: N'importe quelle version devrait fonctionner.
-
-gtkhtml:   La version 0.4 ou ultérieure/plus récente devrait fonctionner.
-             Vous pouvez obtenir la dernière version de gtkhtml depuis
-	 Helix Code. (voir site ftp Gnome: ftp.gnome.org)
-	 Noter que celà à changé depuis la 1.4, qui utilisait la vieille
-	librairie gtkxmhtml.
-            Pour compiler les sources de GtkHTML-0.4, il faut gdk-pixbuf 0.7.0
-	(ou ultérieure), Bonobo 0.15 (ou ultérieure) et gnome-print 0.16
-	(ou ultérieure).
-
-Pour avoir la possibilité d'utiliser certaines fonctionnalitées de GnuCash,
-tel que les rapports et les téléchargements de cours d'actions par le réseau,
-vous devez avoir les packages suivant ci-dessous installés
-(en plus de ceux listés ci-dessus).
-
-Les RPM pour la plupart de ceux-ci peuvent être trouvés à
-  http://rufus.w3.org/linux/
-
-perl    -- A peu près n'importe quelle version de perl5 devrait fonctionner.
-           J'utilise perl-5.004 
-
-En plus, quelques modules perl ont besoin d'être installés:
-
-perl-LWP/libwww-perl-5.36
-perl-HTML/HTML-0.6
-perl-HTML/HTML-Parser-2.20
-        -- ces modules perl sont utilisés pour récupérer les cours des
-           actions et fonds de placements à partir d'internet. Vous pouvez
-	     récupérer ces RPMS à:
-           ftp://ftp.gnucash.org/pub/gnucash/binaries/RPMS
-           http://rufus.w3.org/linux/RPM/PByName.html
-           http://linas.org/linux/gnucash (en dernier recours)
-           ou les sources à
-           http://www.cpan.org/CPAN.html
-
- Si vous souhaitez utiliser le rapport de suivi du solde et avoir de superbes
- graphiques,
- vous aurez besoin d'installer:
-
-   gnuplot:  Un programme de dessin.
-	       Les RPM et debs sont disponible depuis les distributeurs
-	       Vous pouvez récupérer les sources depuis:
-             http://www.gnuplot.vt.edu/ 
-
 #############
 Mise en route
 -------------
 
 Pour les détails d'invocation/de lancement de GnuCash, regardez les pages de
 man dans doc/gnucash.1.
-Bientôt, nous aurons aussi la possibilité de lancer gnucash --help, mais ce
-n'est pas encore fini ...
+Vous pouvez également taper gnucash --help sur la ligne de commande.
 
-Vous pouvez démarrer GnuCash en ligne de commande, avec "gnucash" ou "gnucash
-<nom du fichier>", où <nom du fichier> est un fichier de compte de GnuCash.
-Des exemples de comptes peuvent être trouvé dans le sous-répertoire "data".
-les fichiers *.dat sont les comptes de GnuCash qui peuvent être ouvert avec
-l'entrée du menu "Ouvrir fichier". Les fichiers *.qif sont des fichiers 
-au format d'importation Quicken qui peuvent être ouvert avec l'entrée du menu
-"Importer QIF".
+Vous pouvez démarrer GnuCash en ligne de commande, avec « gnucash » ou « gnucash
+<nom du fichier> », où <nom du fichier> est un fichier de données de GnuCash.
 
-GnuCash répond aux variables d'environnement suivantes:
+Des exemples de comptes peuvent être trouvés dans le sous-répertoire "data".
+Les fichiers *.xac sont les comptes de GnuCash qui peuvent être ouverts avec
+le menu « Fichier/Ouvrir ».
+Les fichiers *.qif sont des fichiers au format Quicken qui peuvent être ouverts
+par le menu « Fichier/Importer QIF ».
 
-  GNC_RUN_AS_SHELL - si activé, permet à GnuCash de s'ouvrir dans un shell
-  guile avec toutes les fonctions de gnucash chargées. Depuis là, vous pouvez
-  récupérer comportement du démarrage normal comme ceci:
+GnuCash répond aux variables d'environnement suivantes :
 
-    GNC_RUN_AS_SHELL=t ./gnucash
-    guile> (primitive-load (getenv "GNC_BOOTSTRAP_SCM"))
-    guile> (gnc:load "startup.scm")
-    guile> (gnc:main)
-
-  C'est la même chose qui se passe si vous n'utilisez pas cette variable
-  d'environnement. Celà peut être utile quand vous essayez d'écrire et tester
-  de nouveaux fichiers .scm.
-
   GNC_BOOTSTRAP_SCM - l'emplacement du code scheme initial de bootstrapping.
 
-  GNC_SCM_LOAD_PATH - une contrainte pour le chemin de chargement de scheme
-  pour GnuCash.Il devrait être une chaine représentant une liste scheme
-  appropriée. Chaque élément peut soit être une chaine représentant un
-  répertoire, soit le symbole par défaut qui s'étendra au chemin par défaut,
-  ou l'actuel qui s'étendra au chemin de chargement par défaut au moment où
-  il rencontre le symbole.
+  GUILE_LOAD_PATH - Pour surpasser le chemin de GnuCash utilisé pour le
+  chargement de fichiers Scheme. C'est une variable de la même forme que les
+  variables d'environnement PATH ou LIBRARY_PATH.
 
-  GNC_DEBUG - active la sortie de débogage. Celà vous permet d'activer
-  le débogage précédent dans le processus de démarrage que vous pouvez faire
-  avec --debug.
+  GNC_MODULE_PATH - Pour surpasser le chemin de GnuCash utilisé pour le
+  chargement de modules GnuCash. C'est une variable de la même forme que les
+  variables d'environnement PATH ou LIBRARY_PATH.
 
-Comme exemple, voici un script d'encapsulation (wrapper script) que nous
-utilisons pour vous permettre d'utiliser de lancer gnucash depuis le répertoire
-local:
+  GNC_DEBUG - active la sortie de débogage. Cela vous permet d'activer
+  le débogage dans le processus de démarrageplus rapidement qu'avec l'option
+  --debug.
 
-  #! /bin/sh
 
-  export G
-  
-  NC_BOOTSTRAP_SCM=./share/scm/bootstrap.scm
-  export GNC_SCM_LOAD_PATH='("./share/scm")'
-  export GNC_DEBUG=t
-
-  # Run whichever one was built last.
-  exec ./src/gnucash \
-    --debug \
-    --share-dir ./share \
-    --config-dir ./etc \
-    --doc-path '("./doc/html/C")' \
-    "$@"
-
-
 ###########################
 Internationalisation (i18n)
 ---------------------------
 
-Des catalogues de messages existent pour le français et l'allemand. Ceux-ci
-sont activés avec les variables d'environnement. Par example, 
+Des traductions (fichiers .po) existent pour différentes langues. Ceux-ci
+sont activés avec les variables d'environnement. Par exemple,
 
 En français, avec bash:
     export LANG=fr_FR
-    
+
 En français, avec tcsh:
     setenv LANG fr_FR
-    
+
 Pour la version allemande:
     export LANG=de_DE
-    
 
-Les autres locales qui devrait pour la plupart fonctionner, mais sont
-toujours en développement:
 
-en_US
-en_GB
-fr_CH
-de_CH
+###########################
+Compilation et installation
+---------------------------
 
-(Gnucash utilise gettext maintenant, alors il faut utiliser
-les fichiers *.po , le traduire et le compiler par msgfmt.
-exemple: msgfmt fr.po --output=./gnucash.mo en ligne de commande
-dans /gnucash/po pour le fichier pour la france et copier gnucash.mo sur une
-redhat 6.1 GPL dans /usr/share/locale/fr/LC_MESSAGES et vous aurez vos menus
-et messages en français.)
+[Pour plus de détails sur la compilation, lisez doc/README.build-system]
 
-
-############################
-Compilation et installation:
-----------------------------
-
-Ces étapes ne s'applique pas aux distributions de binaires; uniquement aux
-distributions de sources.
-
-Pour plus de détails sur le système de compilation, regardez
-doc/README.build-system.)
-
 GnuCash utilise GNU Automake pour traiter le processus de compilation, donc
 pour plus de détails, regardez les instructions générales dans INSTALL.
-(Notez que, pour avoir un ./configure fonctionnant, vous devrez lancer 
-./autogen.sh.)
-Ci-dessous nous détaillons les parties spécifiques de Gnucash.
-  
 
+Ci-dessous nous détaillons les parties spécifiques de GnuCash.
+
+
 Avant de compiler GnuCash, vous devrez obtenir et installer les packages
 suivants:
 
-libtool :  Utiliser pour compiler nos versions internes de g-wrap qui charge
-           nos encapsuleurs C avec guile.
-           Disponible à ftp://ftp.gnu.org/gnu.
-           Les RPMs et debs sont largement disponible avec la plupart des
+libtool : Disponible à ftp://ftp.gnu.org/gnu.
+          Les RPMs et debs sont largement disponibles avec la plupart des
 	     distributions.
 
-SWIG    : Utilisé pour autogénérer les encapsuleurs perl.
-           Disponible à www.swig.org
-           nécessite 1.1p5 ou ultérieure ...
-
 système de développement gnome: en-têtes (headers), librairies, etc.
-ibxml: disponible sur ftp.gnome.org
 
+libxml:   disponible sur ftp.gnome.org
+
 g-wrap  : Les RPM's, debs, et sources sont disponibles à
-	ftp://ftp.gnucash.org/pub/g-wrap.
-	Si vous utilisez guile version 1.4 ou ultérieure, vous avez besoin de
-	g-wrap 0.9.5 ou ultérieure. Si vous utilisez une précédente version
-	de guile, vous devrez utilisez g-wrap 0.9.4.
+	     http://www.gnucash.org/pub/g-wrap.
+	     vous devrez utilisez g-wrap 1.3.4 ou supérieur
 
-  texinfo: Si vous compilez le CVS, vous avez besoin du package GNU texinfo,
-	version 4.0 ou ultérieure.
+texinfo: Si vous compilez depuis svn, vous avez besoin du package GNU texinfo,
+	    version 4.0 ou ultérieure.
 
-  docbook: Pour compiler le manuel en ligne, vous aurez besoin des outils
-	docbook,  incluant jade et les feuillles de style (stylesheets) de docbook .
 
-	
-Ce que vous aurez besoin de récupérer et d'installer dans l'ordre pour être
-sûr que vous ayez tous ces éléments corectement installés pour votre
-système d'exploitation favorit en particulier variera, mais ici se trouve au
-moins une liste partielle de ce que vous aurez besoin pour les systèmes
-que nous connaissons:
+Ce que vous aurez besoin de récupérer et d'installer pour être sûr d'avoir
+tous ces éléments correctement installés dépendra de votre système
+d'exploitation , mais ici se trouve une liste partielle de ce que vous aurez
+besoin pour les systèmes que nous connaissons:
 
-  Debian/GNU/Linux:
+  Debian/GNU/Linux: (cf README.dependencies)
     actuel:
       libgnome-dev
-      libgtkhtml-dev (vous pouvez le récupérer depuis Helixcode, il n'est pas  
-      dans la Debian)
-      guile1.3
-      libguile6-dev
-      libguile6-slib
+      libgtkhtml-dev
+      guile1.4
+      libguile9-dev
+      libguile9-slib
 
-  RedHat:
-    ???
 
-GnuCash comprend quelques options de ./configure non-standard. Vous
-devriez lancer ./configure --help pour le résumé le plus à jour des options
-supportées, mais ici se trouvent quelques descriptions sétaillées de
-quelques-unes d'entre elles:
+GnuCash comprend quelques options non-standard de ./configure . Vous
+devriez lancer « ./configure --help » pour la liste la plus à jour des options
+supportées.
 
-  --enable-opt-style-install
-
-    Gnucash supporte deux types d'installation, la première est le style normal
-    /usr ou /usr/local/ , où les fichiers sont installés dans
-    /usr/bin /usr/lib, etc.  Celà se fait par défaut.
-
-    Le second style est le FSSTND, l'installation de style opt. Dans ce style,
-    tous les fichiers sont installés sous un sous-répertoire commun,souvent
-    dans /usr/local/opt, avec les exécutables allant dans
-    /usr/local/opt/foo/bin, les librairies allant dans /usr/local/opt/foo/lib,
-    etc.  Pour demander ce style d'installation, utilisez uniquement l'option 
-    --enable-opt-style-install de ./configure.
-
-Si seulement vous voulez q'une langue en particulier soit installée, vous
-pouvez mettre la variable d'environnement LINGUAS avant de lancer configure.
+Si vous voulez seulement qu'une langue en particulier soit installée, vous
+pouvez définir la variable d'environnement LINGUAS avant de lancer ./configure.
 Par exemple, pour installer seulement les traductions française, lancez
 
   $ export LINGUAS=fr
@@ -402,229 +253,122 @@
   $ unset LINGUAS
   $ ./configure
 
-La dernière version 1.2 stable de GnuCash avait une interface utilisateur basée
-sur Motif, et il y avait aussi un expérimental, mais jamais terminé interface
-en QT.
-L'ensemble de ceux-ci ont été enlevé de l'arborescence des sources durant le
-processus de migration vers automake, mais quelqu'un qui est intéressé par la
-resurrection de ces parties peut facilement les retrouver dans le CVS.
-Notez que  tandis que vous avez besoin des librairies Gnome installées, vous 
-n'avez pas besoin d'avoir le bureau/interface Gnome.  
+Bien que vous ayez besoin des librairies Gnome installées, vous n'avez pas
+besoin d'utiliser le bureau/interface Gnome.
 
-Les destinations de lancement et d'installations sont séparées.  Le --prefix
-que vous spécifiez à configure détermine où les exécutables résultant seront
-regardé pour des choses au lancement.  Normallement celà détermine où un 
-"make install" mettra tous les fichiers.  Toutefois, automake aussi supporte la
-variable.  DESTDIR est utilisé durant l'étape `make install' pour relocaliser
-les objets d'installation dans un endroit prédisposé.  Chaque objet et chemin
-est préfixé avec la valeur de `DESTDIR' avant d'être copié dans l'endroit
-d'installation.
-Voici un exemple d'usage typique de DESTDIR:
+Les chemins de lancement et d'installations sont séparées.  Le --prefix que vous
+spécifiez à ./configure détermine le chemin où les exécutables chercheront des
+fichiers à leur lancement. Normalement, cela détermine où « make install »
+installera les fichiers. Cependant, automake supporte également des variables.
+DESTDIR est utilisée pendant le processus « make install » pour installer des
+objets dans un répertoire tampon. Chaque objet et chemin est préfixé avec la
+valeur de 'DESTDIR' avant d'être copié dans les répertoires d'installation.
 
-     make DESTDIR=/tmp/staging install
+   make DESTDIR=/tmp/staging install
 
-   Celà place les objets d'installation dans une arborescence de répertoire
-  construit  sous `/tmp/staging'.  Si `/gnu/bin/foo' et
-   `/gnu/share/aclocal/foo.m4' sont à être installés,
-   la commande ci-dessous devrait installer 
-`/tmp/staging/gnu/bin/foo' et `/tmp/staging/gnu/share/aclocal/foo.m4'.
+Cela place les objets d'installation dans une arborescence de répertoire
+construit  sous `/tmp/staging'.
+Si `/gnu/bin/foo' et /gnu/share/aclocal/foo.m4' doivent être installés, la
+commande ci-dessus installera `/tmp/staging/gnu/bin/foo' et
+`/tmp/staging/gnu/share/aclocal/foo.m4'.
 
 DESTDIR peut être utile quand on essaie de construire des images d'installation
 et des packages.
 
 
-###############
-Os supportés  :
----------------
-La version 1.5.X de GnuCash est connu pour fonctionner sur les systèmes
+########################
+Plates-formes supportées
+------------------------
+
+La version 2.0.x de GnuCash est réputer fonctionner sur les systèmes
 d'exploitation suivants:
 
-GNU/Linux             -- x86, Sparc, Alpha
+GNU/Linux            -- x86, Sparc, Alpha
 Solaris		      -- Sparc
-FreeBSD               -- x86
-OpenBSD               -- x86
+FreeBSD              -- x86
+OpenBSD              -- x86
+MacOS X		      -- PPC
 
-Les précédente versions sont  connu pour fonctionner sur les
-plateformes suivantes, mais leurs états actuels sont inconnus:
+Les précédentes versions étaient réputées fonctionner sur les plateformes
+suivantes :
 
-SGI IRIX              -- MIPS 
+SGI IRIX              -- MIPS
 IBM AIX 4.1.5         -- RS/6000   http://www-frec.bull.com/
 Unixware 7            -- Intel
 SCO OpenServer 5.0.4  -- Intel
 
-regardez à ftp://ftp.gnucash.org/pub/xacc (grande-bande passante)
-ou  http://linas.org/linux/gnucash (slow-www ) 
-pour les binaires précompilés ( mais *très vieilles*) pour ces plateformes.
+GnuCash peut probablement fonctionner avec la plupart des plateformes POSIX, si
+les librairies et les outils sont disponibles.
 
-Gnucash peut probablement être fait pour fonctionner avec la plupart des
-plateformes POSIX, si les les librairies fournies et les outils sont 
-disponibles.
 
-#####################################
-Sites additionnels de téléchargement:
--------------------------------------
+###############################
+Sites de téléchargement miroirs
+-------------------------------
 
-Vous pouvez aussi télécharger gnucash à partir de:
+Vous pouvez aussi télécharger GnuCash à partir de:
 
   - http://download.sourceforge.net/gnucash
-  - ftp://ftp.krondo.com
 
+
 Vous pouvez télécharger les packages Solaris de GnuCash à partir de:
 
   - http://www.unixrealm.com/downloads/
 
-Vous pouvez récupérer les packages Mandrake de GnuCash sur les sites Cooker de 
-Mandrake.
+Vous pouvez récupérer les packages Mandriva de GnuCash sur les sites Cooker de
+Mandriva ou dans les dernières versions de la distribution)
 
-Les binaires précompilés et les packages pré-requis peuvent être trouvé sur
-les sites suivants.Les versions de Gnucash ici sont toutes *extrêmement*
-vieilles, et sont en fait de l'ancêtre de gnucash : "x-accountant ou xacc".
 
-IBM AIX 4.1.5 
-      -- SMIT-installable images
-      -- warning, this is from the 1.0 series of xacc
-      http://www.bull.de/pub/
-      see also http://www-frec.bull.com/
+#####################################
+Récupérer les sources avec Subversion
+-------------------------------------
 
-SCO OpenServer 5.0.4 
-      http://www.sco.com/skunkware/osr5/x11/apps/xacc/VOLS.tar
-      -- warning, this is from the 1.0 series of xacc
+Une version en lecture seule de l'arborescence Subversion est disponible à
+cette adresse :
 
+	http://svn.gnucash.org/repo/gnucash/
 
-Unixware 7
-      -- use pkgadd to install
-      http://www.sco.com/skunkware/uw7/x11/apps/xacc/xacc.pkg.gz
+Pour obtenir ce qui fut le CVS HEAD (et ce qui inclus maintenant ce qui était
+gnucash-gnome2-dev), vous devrez obtenir le svn TRUNK :
 
-SGI Irix
-      -- in SGI install format
-      -- warning, this is a very down-level version
-      http://linas.org/linux/xacc/xacc-1.0b7-sgi-irix.inst.tar
+	svn checkout http://svn.gnucash.org/repo/gnucash/trunk gnucash
 
-###############################
-Récupérer les sources avec CVS
--------------------------------
+L'argument « gnucash » ci dessus peut être n'importe quel nom de répertoire sur
+votre disque local, et est optionnel. Si vous l'omettez, vous aurez un
+répertoire nommé « trunk » contenant les sources.
 
-Une version en lecture-seule de l'arborescence de cvs tree est disponible
-sur le net.
-Pour y accéder, premièrement, loggger vous, comme ceci:
+Si vous voulez obtenir les derniers sources de la version 2.0.x, vous devrez
+les récupérer dans le branche 2.0, comme suit :
 
- cvs -d :pserver:cvs at cvs.gnucash.org:/home/cvs/cvsroot login
+	svn checkout http://svn.gnucash.org/repo/gnucash/branches/2.0 gnucash-2.0
 
-Le mot de passe (password)est "guest"
 
-Pour récupérer une copie des sources dans l'arborescence de développpement
-expérimental faites un
-
-cvs -z3 -d :pserver:cvs at cvs.gnucash.org:/home/cvs/cvsroot checkout -r HEAD 
-gnucash
-
-Pour récupérer une copie des sources de l'arborescence de la version de
-production stable gnucash-1.4, faites un
-
-cvs -z3 -d :pserver:cvs at cvs.gnucash.org:/home/cvs/cvsroot checkout -r
-gnucash-1-4-branch gnucash
-
 ########################
 Développement de GnuCash
 ------------------------
 Avant de démarrer à développer sur GnuCash, vous devriez faire les choses
 suivantes:
 
-1. lisez le fichier src/coding-style.txt pour apprendre les styles
-   de codage utilisés dans le code source de GnuCash.
+1. lisez le fichier src/doc/coding-style.txt pour apprendre les styles
+   de codage utilisés dans le code source de GnuCash. Lisez également
+   http://wiki.gnucash.org/wiki/Development
 
 2. Plusieurs des répertoires sous src contiennent des fichiers appellés
    design.txt qui expliquent beaucoup des aspects de la conception de GnuCash.
    Lisez les.
 
-3. Allez sur le site web de gnucash et survoler les archives de la liste de
-   courriers de développement de gnucash(development mailing list).
+3. Allez sur le site web de GnuCash et survoler les archives de la liste de
+   diffusion du développement de GnuCash (gnucash-devel).
 
-4. Rejoignez la liste de courriers de développement de gnucash(development
-   mailing list).
-   Regardez le site web de gnucash pour des détails sur comment faire celà.
+   4. Rejoignez la liste de diffusion de développement de GnuCash
+   (gnucash-devel). Regardez le site web de GnuCash pour des détails sur la
+   méthode pour y parvenir.
 
 
 Soumettre un patch
 
-Dès que vous avez fait un certain travail que vous aimeriez soumettre, vous
-avez besoin d'envoyer un patch. Il y a un script perl appelé make-gnucash-patch
-fourni avec la distribution que vous pouvez utiliser pour créer le patch.
-Ici, se trouve comment utiliser ce script perl.
+[Cette section a été transférée dans le fichier README.patches]
 
-Premièrement, configurer vos répertoires de développement comme ce qui suit:
+Lisez SVP ce fichier sur les méthodes utilisées pour transmettre un patch à
+l'équipe de développement de GnuCash.
 
-< Répertoire de développement maison (home) de GnuCash >
-    |
-    |---- < répertoire contenant les sources originales de GnuCash >
-    |
-    |---- < répertoire contenant vos sources modifiées de GnuCash >
-
-Un exemple concret de ces répertoires devrait être:
-
-/home/me/gnucash
-    |
-    |---- /home/me/gnucash/gnucash.pristine (sources originales)
-    |
-    |---- /home/me/gnucash/gnucash.mywork (sources originales + mes modifs)
-
-Copier le script make-gnucash-patch vers le répertoire de développement maison
-(/home/me/gnucash au-dessus). Maintenant metter les trois variables en haut
-de ce fichier pour refléter les noms de vos répertoires. Les noms donnés
-ci-dessous, vous devriez les utiliser
-
-  export GNC_MAKEPATCH_OLD_DIR=gnucash.pristine
-  export GNC_MAKEPATCH_NEW_DIR=gnucash.mywork
-  export GNC_MAKEPATCH_HOME_DIR=/home/me/gnucash
-
-Bien sûr avant de faire votre, soyez sûr *qu'ensemble* votre répertoire de
-travail et votre répertoire pristine sont synchroniser avec le cvs.
-Lancez 'cvs -z3 update -dP' dans l'ensemble des répertoires pour vous assurer
-que c'est le cas.
-La mise à jour depuis le cvs dans votre répertoire de travail
-peut causer les conflits dans un fichier.
-Vous devez résoudre ces conflits avant de faire un patch.
-
-
-Maintenant lancer le script. Notez que le script requiert les programmes
-'makepatch', 'gzip', 'diff', et 'uuencode' (et, bien sûr , 'perl')
-pour fonctionner. 
-
-Quand vous lancez le script, trois fichiers seront générés:
-
-  gnc.diff - Ce fichier est un fichier texte ascii contenant les différences
-             entre les sources originales et vos modifications. En bas de ce
-             fichier se trouve une liste de fichiers qui sont ajoutés,
-             changés, ou supprimés.
-
-             S'il vous plait examinez ce fichier (spéciallement la liste en 
-bas)
-             pour être sûr que tous vos changements (et pas d'autres 
-changements)
-             sont présent dans le fichier.
-
-             Ne pas soumettre ce fichier!
-
-  gnucash.diff.gz - C'est une version gzippé du fichier au-dessus.
-
-                    Ne pas soumettre ce fichier!
-
-  gnucash.diff.gz.uue - C'est une version uuencodée (ascii-encodé) 
-                        du fichier au-dessus.
-
-                        C'est le fichier à soumettre.
-
-Envoyez gnucash.diff.gz.uue à gnucash-patches at gnucash.org
-
-Merci par avance pour votre contribution!
-
-
-Traduction faite le 12/11/00 par Yannick LE NY
-Cette traduction n'est peut-etre plus à jour,
-donc référez vous au fichier README en anglais.
-Pour toutes remarques ou suggestions:
-y-le-ny at ifrance.com
-
-Local Variables:
-mode: text
-End:
+Merci,

Modified: gnucash/branches/gda-dev/doc/gnucash.1.in
===================================================================
--- gnucash/branches/gda-dev/doc/gnucash.1.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/doc/gnucash.1.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,16 +23,16 @@
 Show
 .B GnuCash
 version
-.IP --usage
-Show
-.B GnuCash
-usage information
 .IP --help
 Show this help message
 .IP --debug
-Enable debugging mode
-.IP "--loglevel LOGLEVEL"
-Set the logging level from 0 (least) to 6 (most)
+Enable debugging mode: increasing logging to provide deep detail.
+.IP --extra
+Enable extra/development/debugging features.
+.IP --log
+Log level overrides, of the form "log.ger.path={debug,info,warn,crit,error}"
+.IP --logto
+File to log into; defaults to "/tmp/gnucash.trace"; can be "stderr" or "stdout".
 .IP --nofile
 Do not load the last file opened
 .IP "--config-dir CONFIGDIR"
@@ -43,18 +43,10 @@
 Set the search path for .scm files
 .IP "--doc-path DOCPATH"
 Set the search path for documentation files
-.IP --evaluate
-Evaluate the guile command
-.IP "--load FILE"
-Load the given .scm file
 .IP "--add-price-quotes FILE"
 Add price quotes to the given data file
-.IP --load-user-config
-Load the user configuration
-.IP --load-system-config
-Load the system configuration
-.IP --rpc-server
-Run the RPC Server
+.IP --namespace=REGEXP
+Regular expression determining which namespace commodities will be retrieved.
 .SH FILES
 .I ~/.gnucash/config.auto
 .RS

Modified: gnucash/branches/gda-dev/doc/gtkrc-2.0.gnucash
===================================================================
--- gnucash/branches/gda-dev/doc/gtkrc-2.0.gnucash	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/doc/gtkrc-2.0.gnucash	2007-04-07 16:05:40 UTC (rev 15847)
@@ -169,3 +169,29 @@
 widget "GncMainWindow.*.primary_color"   style : highest "gnc-register-primary"
 widget "GncMainWindow.*.secondary_color" style : highest "gnc-register-secondary"
 widget "GncMainWindow.*.split_color"     style : highest "gnc-register-split"
+
+
+
+#
+# From: calmar <mac at calmar.ws>
+# Allow changing notebook tabs with vim next/prev keys.
+#
+binding "book" {
+    bind "<Control>k" {
+    "change-current-page" (1)
+   }
+    bind "<Control>j" {
+    "change-current-page" (-1)
+   }
+}
+class "GtkNotebook" binding "book"
+
+#
+# From: calmar <mac at calmar.ws>
+# Use larger disclosure tiangles in all tree views.
+#
+style "wide-tree"
+{
+          GtkTreeView::expander_size = 20
+}
+class "GtkTreeView" style "wide-tree"

Modified: gnucash/branches/gda-dev/lib/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/lib/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,13 +1,6 @@
-SUBDIRS = libc glib26 guile-www srfi
-DIST_SUBDIRS = libc glib26 guile-www srfi libgsf-1.12.3 goffice-0.0.4 libqof
+SUBDIRS = libc glib28 guile-www srfi
+DIST_SUBDIRS = libc glib28 guile-www srfi libqof
 
-if !HAVE_GOFFICE
-if !HAVE_LIBGSF
-SUBDIRS += libgsf-1.12.3
-endif
-SUBDIRS += goffice-0.0.4
-endif
-
 if USE_LIBQOF
 SUBDIRS += libqof
 endif

Added: gnucash/branches/gda-dev/lib/glib28/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/lib/glib28/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/glib28/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,18 @@
+noinst_LTLIBRARIES = libgnc-glib.la
+
+DUMMYSRCS = dummy.c
+REALSRCS = gfileutils-2.8.c
+REALHDRS = gfileutils-2.8.h gstdio-2.8.h
+
+if HAVE_GLIB_2_8
+libgnc_glib_la_SOURCES = ${DUMMYSRCS}
+else
+libgnc_glib_la_SOURCES = ${REALSRCS}
+noinst_HEADERS = ${REALHDRS}
+endif
+
+libgnc_glib_la_LIBADD = ${GLIB26_LIBS}
+
+AM_CFLAGS = ${GLIB_CFLAGS}
+
+EXTRA_DIST = $(DUMMYSRCS) $(REALSRCS) $(REALHDRS)

Added: gnucash/branches/gda-dev/lib/glib28/dummy.c
===================================================================
--- gnucash/branches/gda-dev/lib/glib28/dummy.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/glib28/dummy.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,6 @@
+void g_my_dummy_function (void);
+
+void
+g_my_dummy_function (void)
+{
+}

Added: gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.c
===================================================================
--- gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,434 @@
+/* gfileutils.c - File utility functions
+ *
+ *  Copyright 2000 Red Hat, Inc.
+ *
+ * GLib is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * GLib 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GLib; see the file COPYING.LIB.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ *   Boston, MA 02111-1307, USA.
+ */
+/* Contains all #includes, but otherwise only relevant differences between
+ * GLib 2.6 and GLib 2.8 */
+
+#include "config.h"
+
+#include <glib.h>
+#include "gfileutils-2.8.h"
+
+#include <sys/stat.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#ifndef G_OS_WIN32
+#include <sys/wait.h>
+#endif
+#include <fcntl.h>
+#include <stdlib.h>
+
+#ifdef G_OS_WIN32
+#include <windows.h>
+#include <io.h>
+#endif /* G_OS_WIN32 */
+
+#ifndef S_ISLNK
+#define S_ISLNK(x) 0
+#endif
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+#include <glib/gstdio.h>
+#define _(String) (String)
+
+static gboolean
+rename_file (const char *old_name,
+	     const char *new_name,
+	     GError **err)
+{
+  errno = 0;
+  if (g_rename (old_name, new_name) == -1)
+    {
+      int save_errno = errno;
+      gchar *display_old_name = g_filename_display_name (old_name);
+      gchar *display_new_name = g_filename_display_name (new_name);
+
+      g_set_error (err,
+		   G_FILE_ERROR,
+		   g_file_error_from_errno (save_errno),
+		   "Failed to rename file '%s' to '%s': g_rename() failed: %s",
+		   display_old_name,
+		   display_new_name,
+		   g_strerror (save_errno));
+
+      g_free (display_old_name);
+      g_free (display_new_name);
+      
+      return FALSE;
+    }
+  
+  return TRUE;
+}
+
+static gboolean
+set_umask_permissions (int	     fd,
+		       GError      **err)
+{
+#ifdef G_OS_WIN32
+
+  return TRUE;
+
+#else
+  /* All of this function is just to work around the fact that
+   * there is no way to get the umask without changing it.
+   *
+   * We can't just change-and-reset the umask because that would
+   * lead to a race condition if another thread tried to change
+   * the umask in between the getting and the setting of the umask.
+   * So we have to do the whole thing in a child process.
+   */
+
+  int save_errno;
+  pid_t pid;
+
+  pid = fork ();
+  
+  if (pid == -1)
+    {
+      save_errno = errno;
+      g_set_error (err,
+		   G_FILE_ERROR,
+		   g_file_error_from_errno (save_errno),
+		   _("Could not change file mode: fork() failed: %s"),
+		   g_strerror (save_errno));
+      
+      return FALSE;
+    }
+  else if (pid == 0)
+    {
+      /* child */
+      mode_t mask = umask (0666);
+
+      errno = 0;
+      if (fchmod (fd, 0666 & ~mask) == -1)
+	_exit (errno);
+      else
+	_exit (0);
+
+      return TRUE; /* To quiet gcc */
+    }
+  else
+    { 
+      /* parent */
+      int status;
+
+      errno = 0;
+      if (waitpid (pid, &status, 0) == -1)
+	{
+	  save_errno = errno;
+
+	  g_set_error (err,
+		       G_FILE_ERROR,
+		       g_file_error_from_errno (save_errno),
+		       _("Could not change file mode: waitpid() failed: %s"),
+		       g_strerror (save_errno));
+
+	  return FALSE;
+	}
+
+      if (WIFEXITED (status))
+	{
+	  save_errno = WEXITSTATUS (status);
+
+	  if (save_errno == 0)
+	    {
+	      return TRUE;
+	    }
+	  else
+	    {
+	      g_set_error (err,
+			   G_FILE_ERROR,
+			   g_file_error_from_errno (save_errno),
+			   _("Could not change file mode: chmod() failed: %s"),
+			   g_strerror (save_errno));
+      
+	      return FALSE;
+	    }
+	}
+      else if (WIFSIGNALED (status))
+	{
+	  g_set_error (err,
+		       G_FILE_ERROR,
+		       G_FILE_ERROR_FAILED,
+		       _("Could not change file mode: Child terminated by signal: %s"),
+		       g_strsignal (WTERMSIG (status)));
+		       
+	  return FALSE;
+	}
+      else
+	{
+	  /* This shouldn't happen */
+	  g_set_error (err,
+		       G_FILE_ERROR,
+		       G_FILE_ERROR_FAILED,
+		       _("Could not change file mode: Child terminated abnormally"));
+	  return FALSE;
+	}
+    }
+#endif
+}
+
+static gchar *
+write_to_temp_file (const gchar *contents,
+		    gssize length,
+		    const gchar *template,
+		    GError **err)
+{
+  gchar *tmp_name;
+  gchar *display_name;
+  gchar *retval;
+  FILE *file;
+  gint fd;
+  int save_errno;
+
+  retval = NULL;
+  
+  tmp_name = g_strdup_printf ("%s.XXXXXX", template);
+
+  errno = 0;
+  fd = g_mkstemp (tmp_name);
+  display_name = g_filename_display_name (tmp_name);
+      
+  if (fd == -1)
+    {
+      save_errno = errno;
+      g_set_error (err,
+		   G_FILE_ERROR,
+		   g_file_error_from_errno (save_errno),
+		   "Failed to create file '%s': %s",
+		   display_name, g_strerror (save_errno));
+      
+      goto out;
+    }
+
+  if (!set_umask_permissions (fd, err))
+    {
+      close (fd);
+      g_unlink (tmp_name);
+
+      goto out;
+    }
+  
+  errno = 0;
+  file = fdopen (fd, "wb");
+  if (!file)
+    {
+      save_errno = errno;
+      g_set_error (err,
+		   G_FILE_ERROR,
+		   g_file_error_from_errno (save_errno),
+		   "Failed to open file '%s' for writing: fdopen() failed: %s",
+		   display_name,
+		   g_strerror (save_errno));
+
+      close (fd);
+      g_unlink (tmp_name);
+      
+      goto out;
+    }
+
+  if (length > 0)
+    {
+      size_t n_written;
+      
+      errno = 0;
+
+      n_written = fwrite (contents, 1, length, file);
+
+      if (n_written < length)
+	{
+	  save_errno = errno;
+      
+ 	  g_set_error (err,
+		       G_FILE_ERROR,
+		       g_file_error_from_errno (save_errno),
+		       "Failed to write file '%s': fwrite() failed: %s",
+		       display_name,
+		       g_strerror (save_errno));
+
+	  fclose (file);
+	  g_unlink (tmp_name);
+	  
+	  goto out;
+	}
+    }
+   
+  errno = 0;
+  if (fclose (file) == EOF)
+    { 
+      save_errno = 0;
+      
+      g_set_error (err,
+		   G_FILE_ERROR,
+		   g_file_error_from_errno (save_errno),
+		   "Failed to close file '%s': fclose() failed: %s",
+		   display_name, 
+		   g_strerror (save_errno));
+
+      g_unlink (tmp_name);
+      
+      goto out;
+    }
+
+  retval = g_strdup (tmp_name);
+  
+ out:
+  g_free (tmp_name);
+  g_free (display_name);
+  
+  return retval;
+}
+
+/**
+ * g_file_set_contents:
+ * @filename: name of a file to write @contents to, in the GLib file name
+ *   encoding
+ * @contents: string to write to the file
+ * @length: length of @contents, or -1 if @contents is a nul-terminated string
+ * @error: return location for a #GError, or %NULL
+ *
+ * Writes all of @contents to a file named @filename, with good error checking.
+ * If a file called @filename already exists it will be overwritten.
+ *
+ * This write is atomic in the sense that it is first written to a temporary
+ * file which is then renamed to the final name. Notes:
+ * <itemizedlist>
+ * <listitem>
+ *    On Unix, if @filename already exists hard links to @filename will break.
+ *    Also since the file is recreated, existing permissions, access control
+ *    lists, metadata etc. may be lost. If @filename is a symbolic link,
+ *    the link itself will be replaced, not the linked file.
+ * </listitem>
+ * <listitem>
+ *   On Windows renaming a file will not remove an existing file with the
+ *   new name, so on Windows there is a race condition between the existing
+ *   file being removed and the temporary file being renamed.
+ * </listitem>
+ * <listitem>
+ *   On Windows there is no way to remove a file that is open to some
+ *   process, or mapped into memory. Thus, this function will fail if
+ *   @filename already exists and is open.
+ * </listitem>
+ * </itemizedlist>
+ *
+ * If the call was sucessful, it returns %TRUE. If the call was not successful,
+ * it returns %FALSE and sets @error. The error domain is #G_FILE_ERROR.
+ * Possible error codes are those in the #GFileError enumeration.
+ *
+ * Return value: %TRUE on success, %FALSE if an error occurred
+ *
+ * Since: 2.8
+ **/
+gboolean
+g_file_set_contents (const gchar *filename,
+		     const gchar *contents,
+		     gssize	     length,
+		     GError	   **error)
+{
+  gchar *tmp_filename;
+  gboolean retval;
+  GError *rename_error = NULL;
+  
+  g_return_val_if_fail (filename != NULL, FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+  g_return_val_if_fail (contents != NULL || length == 0, FALSE);
+  g_return_val_if_fail (length >= -1, FALSE);
+  
+  if (length == -1)
+    length = strlen (contents);
+
+  tmp_filename = write_to_temp_file (contents, length, filename, error);
+  
+  if (!tmp_filename)
+    {
+      retval = FALSE;
+      goto out;
+    }
+
+  if (!rename_file (tmp_filename, filename, &rename_error))
+    {
+#ifndef G_OS_WIN32
+
+      g_unlink (tmp_filename);
+      g_propagate_error (error, rename_error);
+      retval = FALSE;
+      goto out;
+
+#else /* G_OS_WIN32 */
+      
+      /* Renaming failed, but on Windows this may just mean
+       * the file already exists. So if the target file
+       * exists, try deleting it and do the rename again.
+       */
+      if (!g_file_test (filename, G_FILE_TEST_EXISTS))
+	{
+	  g_unlink (tmp_filename);
+	  g_propagate_error (error, rename_error);
+	  retval = FALSE;
+	  goto out;
+	}
+
+      g_error_free (rename_error);
+      
+      if (g_unlink (filename) == -1)
+	{
+          gchar *display_filename = g_filename_display_name (filename);
+
+	  int save_errno = errno;
+	  
+	  g_set_error (error,
+		       G_FILE_ERROR,
+		       g_file_error_from_errno (save_errno),
+		       "Existing file '%s' could not be removed: g_unlink() failed: %s",
+		       display_filename,
+		       g_strerror (save_errno));
+
+	  g_free (display_filename);
+	  g_unlink (tmp_filename);
+	  retval = FALSE;
+	  goto out;
+	}
+      
+      if (!rename_file (tmp_filename, filename, error))
+	{
+	  g_unlink (tmp_filename);
+	  retval = FALSE;
+	  goto out;
+	}
+
+#endif
+    }
+
+  retval = TRUE;
+  
+ out:
+  g_free (tmp_filename);
+  return retval;
+}

Added: gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.h
===================================================================
--- gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/glib28/gfileutils-2.8.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,34 @@
+/* gfileutils.h - File utility functions
+ *
+ *  Copyright 2000 Red Hat, Inc.
+ *
+ * GLib is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * GLib 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GLib; see the file COPYING.LIB.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/* Contains only relevant differences between GLib 2.6 and GLib 2.8 */
+
+#ifndef __G_FILEUTILS_2_8_H__
+#define __G_FILEUTILS_2_8_H__
+
+G_BEGIN_DECLS
+
+gboolean g_file_set_contents (const gchar *filename,
+			      const gchar *contents,
+			      gssize	     length,
+			      GError	   **error);
+
+G_END_DECLS
+
+#endif /* __G_FILEUTILS_2_8_H__ */

Added: gnucash/branches/gda-dev/lib/glib28/gstdio-2.8.h
===================================================================
--- gnucash/branches/gda-dev/lib/glib28/gstdio-2.8.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/glib28/gstdio-2.8.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,38 @@
+/* gstdio.h - GFilename wrappers for C library functions
+ *
+ * Copyright 2004 Tor Lillqvist
+ *
+ * GLib is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * GLib 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GLib; see the file COPYING.LIB.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/* Contains only relevant differences between GLib 2.6 and GLib 2.8 */
+
+#ifndef __G_STDIO_28_H__
+#define __G_STDIO_28_H__
+
+#ifdef G_OS_WIN32
+#error "On Windows HAVE_GLIB_2_8 must be defined and gstdio28.h not included."
+#endif
+
+G_BEGIN_DECLS
+
+#define g_access  access
+#define g_chmod   chmod
+#define g_creat   creat
+#define g_chdir   chdir
+
+G_END_DECLS
+
+#endif /* __G_STDIO_H__ */

Modified: gnucash/branches/gda-dev/lib/libc/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/lib/libc/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libc/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,7 +2,7 @@
 
 # All header files must be listed.
 noinst_HEADERS = \
-  localtime_r.h setenv.h strptime.h
+  localtime_r.h setenv.h strptime.h pow.h
 
 # No sources should be listed.
 libc_missing_la_SOURCES = libc-missing-noop.c

Added: gnucash/branches/gda-dev/lib/libc/pow.h
===================================================================
--- gnucash/branches/gda-dev/lib/libc/pow.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libc/pow.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,58 @@
+/********************************************************************\
+ * pow.h -- pow wrapper for MinGW systems                           *
+ * Copyright (C) 2007 Andreas Koehler <andi5.py at gmx.net>            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+\********************************************************************/
+
+#ifndef __POW_H__
+#define __POW_H__
+
+#include <math.h>
+
+/* From MinGW, math.h: */
+
+/* Excess precision when using a 64-bit mantissa for FPU math ops can
+ * cause unexpected results with some of the MSVCRT math functions.
+ * For example, unless the function return value is stored (truncating
+ * to 53-bit mantissa), calls to pow with both x and y as integral
+ * values sometimes produce a non-integral result. */
+
+#define __DEFINE_FLOAT_STORE_MATHFN_D1(fn1)	\
+static __inline__ double			\
+__float_store_ ## fn1 (double x)		\
+{						\
+   __volatile__ double res = (fn1) (x);		\
+  return res;					\
+}
+
+#define __DEFINE_FLOAT_STORE_MATHFN_D2(fn2)	\
+static __inline__ double			\
+__float_store_ ## fn2 (double x, double y)	\
+{						\
+  __volatile__ double res = (fn2) (x, y);	\
+  return res;					\
+}
+
+#undef pow
+
+/* Define the ___float_store_pow function and use it instead of pow(). */
+__DEFINE_FLOAT_STORE_MATHFN_D2 (pow)
+#define pow __float_store_pow
+
+#endif /* __POW_H__ */

Modified: gnucash/branches/gda-dev/lib/libqof/backend/file/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/backend/file/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/backend/file/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 SUBDIRS = . 
 
-lib_LTLIBRARIES = libgncqof-backend-qsf.la
+pkglib_LTLIBRARIES = libgncqof-backend-qsf.la
 
 AM_CFLAGS = \
   -I.. -I../.. \

Modified: gnucash/branches/gda-dev/lib/libqof/backend/file/qof-backend-qsf.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/backend/file/qof-backend-qsf.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/backend/file/qof-backend-qsf.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -61,8 +61,7 @@
 QSF itself is now being built into the QOF library for use with pilot-link to allow
 Palm objects to be described in QOF, written to XML as QSF and imported directly into 
 GnuCash and other QOF-compliant applications. As a generic format, it does not depend 
-on any pre-defined objects - as the current GnuCash XML format depends on AccountGroup. 
-Instead, QSF is a simple container for all QOF objects.
+on any pre-defined objects.  Instead, QSF is a simple container for all QOF objects.
 
 QSF grew from the qof_book_merge code base and uses the qof_book_merge code that is now 
 part of QOF. Any QofBook generated by QSF still needs to be merged into the existing 

Modified: gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-backend.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-backend.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-backend.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,6 +23,7 @@
 
 #include "config.h"
 #include <glib.h>
+#include <glib/gstdio.h>
 #include "qof.h"
 #include "qofbackend-p.h"
 #include "qof-backend-qsf.h"
@@ -187,10 +188,10 @@
 	qsf_time_now_t = time(NULL);
 	qsf_ts = g_new(Timespec, 1);
 	timespecFromTime_t(qsf_ts, qsf_time_now_t);
-	strftime(qsf_enquiry_date, QSF_DATE_LENGTH, QSF_XSD_TIME, gmtime(&qsf_time_now_t));
-	strftime(qsf_time_match, QSF_DATE_LENGTH, qsf_time_precision, gmtime(&qsf_time_now_t));
-	strftime(qsf_time_string, QSF_DATE_LENGTH, "%F", gmtime(&qsf_time_now_t));
-	strftime(qsf_time_now, QSF_DATE_LENGTH, QSF_XSD_TIME, gmtime(&qsf_time_now_t));
+	qof_strftime(qsf_enquiry_date, QSF_DATE_LENGTH, QSF_XSD_TIME, gmtime(&qsf_time_now_t));
+	qof_strftime(qsf_time_match, QSF_DATE_LENGTH, qsf_time_precision, gmtime(&qsf_time_now_t));
+	qof_strftime(qsf_time_string, QSF_DATE_LENGTH, "%F", gmtime(&qsf_time_now_t));
+	qof_strftime(qsf_time_now, QSF_DATE_LENGTH, QSF_XSD_TIME, gmtime(&qsf_time_now_t));
 	g_hash_table_insert(params->qsf_default_hash, "qsf_enquiry_date", qsf_enquiry_date);
 	g_hash_table_insert(params->qsf_default_hash, "qsf_time_now", &qsf_time_now_t);
 	g_hash_table_insert(params->qsf_default_hash, "qsf_time_string", qsf_time_string);
@@ -205,7 +206,7 @@
 
 	if (!path) { return TRUE; }
 	if (0 == safe_strcmp(path, QOF_STDOUT)) { return TRUE; }
-	if (stat(path, &sbuf) <0)    { return FALSE; }
+	if (g_stat(path, &sbuf) <0)  { return FALSE; }
 	if (sbuf.st_size == 0)       { return TRUE; }
 	if(is_our_qsf_object(path))  { return TRUE; }
 	else if(is_qsf_object(path)) { return TRUE; }
@@ -251,7 +252,7 @@
 	{
         FILE *f;
 
-        f = fopen(qsf_be->fullpath, "a+");
+        f = g_fopen(qsf_be->fullpath, "a+");
         if(f) {fclose(f); }
 		else
 		{
@@ -472,7 +473,7 @@
 	params = qsf_be->params;
 	params->book = book;
 	path = g_strdup(qsf_be->fullpath);
-	f = fopen(path, "r");
+	f = g_fopen(path, "r");
 	if(!f) { qof_backend_set_error(be, ERR_FILEIO_READ_ERROR); }
 	fclose(f);
 	params->filepath = g_strdup(path);
@@ -1287,5 +1288,6 @@
 	prov->check_data_type = qsf_determine_file_type;
 	prov->provider_free = qsf_provider_free;
 	qof_backend_register_provider (prov);
+	g_module_make_resident (module);
 	return NULL;
 }

Modified: gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-xml-map.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-xml-map.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/backend/file/qsf-xml-map.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -52,7 +52,7 @@
 	xmlNewProp(output_parent, BAD_CAST QSF_OBJECT_TYPE,
 		xmlGetProp(import_node, BAD_CAST MAP_VALUE_ATTR));
 	qsf_time = (time_t*)g_hash_table_lookup(qsf_default_hash, default_name);
-	strftime(date_as_string, QSF_DATE_LENGTH, QSF_XSD_TIME, gmtime(qsf_time));
+	qof_strftime(date_as_string, QSF_DATE_LENGTH, QSF_XSD_TIME, gmtime(qsf_time));
 	xmlNodeAddContent(output_parent, BAD_CAST date_as_string);
 }
 
@@ -569,7 +569,7 @@
 	regfree(&reg);
 	/** QSF_DATE_LENGTH preset for all internal and QSF_XSD_TIME string formats.
 	 */
-	strftime(qsf_time_now_as_string, QSF_DATE_LENGTH, (char*)format, gmtime(output));
+	qof_strftime(qsf_time_now_as_string, QSF_DATE_LENGTH, (char*)format, gmtime(output));
 	LEAVE (" ok");
 }
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
-lib_LTLIBRARIES = libgncqof.la
+lib_LTLIBRARIES = libgnc-qof.la
 
-libgncqof_la_LDFLAGS= -version-info $(LIBQOF_LIBRARY_VERSION)
-libgncqof_la_LIBADD= \
+libgnc_qof_la_LDFLAGS= -version-info $(LIBQOF_LIBRARY_VERSION)
+libgnc_qof_la_LIBADD= \
   $(GLIB_LIBS) \
   $(REGEX_LIBS) \
   $(top_builddir)/lib/libc/libc-missing.la
@@ -10,7 +10,7 @@
   $(GLIB_CFLAGS) \
   -I$(top_srcdir)/lib/libc
 
-libgncqof_la_SOURCES =  \
+libgnc_qof_la_SOURCES =  \
    deprecated.c      \
    gnc-date.c        \
    gnc-numeric.c     \
@@ -39,6 +39,7 @@
 qofinclude_HEADERS = \
    deprecated.h      \
    gnc-date.h        \
+   gnc-date-p.h      \
    gnc-numeric.h     \
    guid.h            \
    kvp_frame.h       \
@@ -82,17 +83,31 @@
    qofquerycore-p.h \
    qofsession-p.h
 
-QOFLIBdir = $(QOF_LIB_DIR)
-
 EXTRA_DIST = \
   qofla-dir.h.in \
   qofmath128.c
 
+if OS_WIN32
+libgnc_qof_la_SOURCES += qof-win32.c
+else
+EXTRA_DIST += qof-win32.c
+endif
+
 qofla-dir.h: $(srcdir)/qofla-dir.h.in Makefile
 	rm -f $@.tmp
 	sed < $< > $@.tmp \
-                -e 's#@-libdir-@#${QOFLIBdir}#g'
+                -e 's#@-libdir-@#${QOF_LIB_DIR}#g'
 	 mv $@.tmp $@
 
 BUILT_SOURCES = qofla-dir.h
 CLEANFILES = $(BUILT_SOURCES)
+
+## For testing the qofmath128 routines
+# run "make check" (to build the test program) and then run test-qofmath
+check_PROGRAMS = test-qofmath
+test_qofmath_SOURCES=gnc-numeric.c
+test_qofmath_CPPFLAGS=$(libgnc_qof_la_CPPFLAGS) -DTEST_128_BIT_MULT
+test_qofmath_LDFLAGS=$(libgnc_qof_la_LDFLAGS)
+test_qofmath_LDADD=$(libgnc_qof_la_LIBADD)
+
+INCLUDES = -DG_LOG_DOMAIN=\"qof\"

Modified: gnucash/branches/gda-dev/lib/libqof/qof/deprecated.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/deprecated.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/deprecated.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,23 +31,6 @@
    an initializer, and can't be declared with 'static' because that
    would give it internal linkage. (this is why it is deprecated) */
 gint __attribute__ ((unused)) gnc_trace_num_spaces = 0;
-void  gnc_log_init (void) { qof_log_init(); }
-void gnc_set_log_level(QofLogModule log_module, gncLogLevel level)
-{
-	qof_log_set_level(log_module, (QofLogLevel)level);
-}
-void gnc_set_log_level_global(gncLogLevel level)
-{
-	qof_log_set_level_registered((QofLogLevel)level);
-}
-void qof_log_set_level_global(QofLogLevel level)
-{
-	qof_log_set_level_registered((QofLogLevel)level);
-}
-void gnc_set_logfile (FILE *outfile)
-{
-	qof_log_set_file(outfile);
-}
 const char * gnc_log_prettify (const char *name)
 {
 	return qof_log_prettify(name);
@@ -55,10 +38,7 @@
 void gnc_start_clock (int a, QofLogModule b, gncLogLevel c,  const char *d, const char *e, ...) { }
 void gnc_report_clock (int a, QofLogModule b, gncLogLevel c, const char *d, const char *e, ...) { }
 void gnc_report_clock_total (int a, QofLogModule b, gncLogLevel c, const char *d, const char *e, ...) { }
-gboolean gnc_should_log(QofLogModule log_module, gncLogLevel log_level)
-{
-	return qof_log_check(log_module, log_level);
-}
+
 gint
 gnc_engine_register_event_handler (GNCEngineEventHandler handler,
                                    gpointer user_data)

Modified: gnucash/branches/gda-dev/lib/libqof/qof/deprecated.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/deprecated.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/deprecated.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -66,21 +66,6 @@
 /** \deprecated use qof_log_check instead. */
 gboolean gnc_should_log(QofLogModule log_module, gncLogLevel log_level);
 
-/** \deprecated */
-#define GNC_LOG_FATAL   QOF_LOG_FATAL
-/** \deprecated */
-#define GNC_LOG_ERROR   QOF_LOG_ERROR
-/** \deprecated */
-#define GNC_LOG_WARNING QOF_LOG_WARNING
-/** \deprecated */
-#define GNC_LOG_INFO    QOF_LOG_INFO
-/** \deprecated */
-#define GNC_LOG_DEBUG   QOF_LOG_DEBUG
-/** \deprecated */
-#define GNC_LOG_DETAIL  QOF_LOG_DETAIL
-/** \deprecated */
-#define GNC_LOG_TRACE   QOF_LOG_TRACE
-
 /** \deprecated use qof_start_clock */
 void gnc_start_clock (int, QofLogModule, gncLogLevel, const char*, const char*, ...);
 /** \deprecated use qof_report_clock */

Added: gnucash/branches/gda-dev/lib/libqof/qof/gnc-date-p.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/gnc-date-p.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/gnc-date-p.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,45 @@
+/* 
+ * gnc-date-p.h
+ *
+ * Copyright (C) 2007 Andreas Koehler <andi5.py at gmx.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef __GNC_DATE_P_H__
+#define __GNC_DATE_P_H__
+
+#include "gnc-date.h"
+
+/** Convert a given date/time format from UTF-8 to an encoding suitable for the
+ *  strftime system call.
+ *
+ *  @param utf8_format Date/time format specification in UTF-8.
+ *
+ *  @return A newly allocated string on success, or NULL otherwise.
+ */
+gchar *qof_time_format_from_utf8(const gchar *utf8_format);
+
+/** Convert a result of a call to strftime back to UTF-8.
+ *
+ *  @param locale_string The result of a call to strftime.
+ *
+ *  @return A newly allocated string on success, or NULL otherwise.
+ */
+gchar *qof_formatted_time_to_utf8(const gchar *locale_string);
+
+#endif /* __GNC_DATE_P_H__ */

Modified: gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -46,7 +46,7 @@
 
 #include <glib.h>
 
-#include "gnc-date.h"
+#include "gnc-date-p.h"
 #include "qof.h"
 
 #ifndef HAVE_STRPTIME
@@ -297,41 +297,6 @@
   return(tm->tm_mday == date_get_last_mday(tm));
 }
 
-/* Add a number of months to a time value
-
- Add a number of months to a time value, and normalize.  Optionally
- also track the last day of the month, i.e. 1/31 -> 2/28 -> 3/30.
-
-param  tm: base time value
-param  months: The number of months to add to this time
-param  track_last_day: Coerce the date value if necessary.
-
-return void
-*/
-void date_add_months (struct tm *tm, int months, gboolean track_last_day)
-{
-  gboolean was_last_day;
-  int new_last_mday;
-
-  /* Have to do this now */
-  was_last_day = date_is_last_mday(tm);
-
-  /* Add in the months and normalize */
-  tm->tm_mon += months;
-  while (tm->tm_mon > 11) {
-    tm->tm_mon -= 12;
-    tm->tm_year++;
-  }
-
-  if (!track_last_day)
-    return;
-
-  /* Track last day of the month, i.e. 1/31 -> 2/28 -> 3/31 */
-  new_last_mday = date_get_last_mday(tm);
-  if (was_last_day || (tm->tm_mday > new_last_mday))
-    tm->tm_mday = new_last_mday;
-}
-
 /* Return the set dateFormat.
 
 return QofDateFormat: enumeration indicating preferred format
@@ -390,7 +355,7 @@
    case QOF_DATE_FORMAT_UTC:
     return "%Y-%m-%dT%H:%M:%SZ";
    case QOF_DATE_FORMAT_ISO:
-    return "%y-%m-%d";
+    return "%Y-%m-%d";
    case QOF_DATE_FORMAT_LOCALE:
    default:
     return GNC_D_FMT;
@@ -417,7 +382,7 @@
    case QOF_DATE_FORMAT_UTC:
     return "%Y-%m-%dT%H:%M:%SZ";
    case QOF_DATE_FORMAT_ISO:
-    return "%y-%b-%d";
+    return "%Y-%b-%d";
    case QOF_DATE_FORMAT_LOCALE:
    default:
     return GNC_D_FMT;
@@ -474,7 +439,7 @@
         gnc_tm_set_day_start (&tm_str);
 	t = mktime (&tm_str);
 	localtime_r (&t, &tm_str);
-        flen = strftime (buff, len, GNC_D_FMT, &tm_str);
+        flen = qof_strftime (buff, len, GNC_D_FMT, &tm_str);
        if (flen != 0)
          break;
       }
@@ -653,12 +618,12 @@
 	case QOF_DATE_FORMAT_UTC:
 	{
 		gtm = *gmtime (&secs);
-		flen = strftime (buff, len, QOF_UTC_DATE_FORMAT, &gtm);
+		flen = qof_strftime (buff, len, QOF_UTC_DATE_FORMAT, &gtm);
 		break;
 	}
     case QOF_DATE_FORMAT_LOCALE:
       {
-        flen = strftime (buff, len, GNC_D_T_FMT, &ltm);
+        flen = qof_strftime (buff, len, GNC_D_T_FMT, &ltm);
       }
       break;
 
@@ -680,11 +645,11 @@
 	if(dateFormat == QOF_DATE_FORMAT_UTC)
 	{
 		gtm = *gmtime (&secs);
-		flen = strftime(buff, len, QOF_UTC_DATE_FORMAT, &gtm);
+		flen = qof_strftime(buff, len, QOF_UTC_DATE_FORMAT, &gtm);
 		return flen;
 	}
 	ltm = *localtime (&secs);
-	flen = strftime (buff, len, GNC_T_FMT, &ltm);
+	flen = qof_strftime (buff, len, GNC_T_FMT, &ltm);
 	
 	return flen;
 }
@@ -944,7 +909,7 @@
 
         secs = time(NULL);
         localtime_r(&secs, &tm);
-        strftime(string, sizeof(string), GNC_D_FMT, &tm);
+        qof_strftime(string, sizeof(string), GNC_D_FMT, &tm);
 
         for (s = string; s != '\0'; s++)
           if (!isdigit(*s))
@@ -955,6 +920,126 @@
   return '\0';
 }
 
+
+#ifndef G_OS_WIN32
+gchar *
+qof_time_format_from_utf8(const gchar *utf8_format)
+{
+    gchar *retval;
+    GError *error = NULL;
+
+    retval = g_locale_from_utf8(utf8_format, -1, NULL, NULL, &error);
+
+    if (!retval) {
+        g_warning("Could not convert format '%s' from UTF-8: %s", utf8_format,
+                  error->message);
+        g_error_free(error);
+    }
+    return retval;
+}
+
+gchar *
+qof_formatted_time_to_utf8(const gchar *locale_string)
+{
+    gchar *retval;
+    GError *error = NULL;
+
+    retval = g_locale_to_utf8(locale_string, -1, NULL, NULL, &error);
+
+    if (!retval) {
+        g_warning("Could not convert '%s' to UTF-8: %s", locale_string,
+                  error->message);
+        g_error_free(error);
+    }
+    return retval;
+}
+#endif /* G_OS_WIN32 */
+
+gchar *
+qof_format_time(const gchar *format, const struct tm *tm)
+{
+    gchar *locale_format, *tmpbuf, *retval;
+    gsize tmplen, tmpbufsize;
+
+    g_return_val_if_fail(format, 0);
+    g_return_val_if_fail(tm, 0);
+
+    locale_format = qof_time_format_from_utf8(format);
+    if (!locale_format)
+        return NULL;
+
+    tmpbufsize = MAX(128, strlen(locale_format) * 2);
+    while (TRUE) {
+        tmpbuf = g_malloc(tmpbufsize);
+
+        /* Set the first byte to something other than '\0', to be able to
+         * recognize whether strftime actually failed or just returned "".
+         */
+        tmpbuf[0] = '\1';
+        tmplen = strftime(tmpbuf, tmpbufsize, locale_format, tm);
+
+        if (tmplen == 0 && tmpbuf[0] != '\0') {
+            g_free(tmpbuf);
+            tmpbufsize *= 2;
+
+            if (tmpbufsize > 65536) {
+                g_warning("Maximum buffer size for qof_format_time "
+                          "exceeded: giving up");
+                g_free(locale_format);
+
+                return NULL;
+            }
+        } else {
+            break;
+        }
+    }
+    g_free(locale_format);
+
+    retval = qof_formatted_time_to_utf8(tmpbuf);
+    g_free(tmpbuf);
+
+    return retval;
+}
+
+gsize
+qof_strftime(gchar *buf, gsize max, const gchar *format, const struct tm *tm)
+{
+    gsize convlen, retval;
+    gchar *convbuf;
+
+    g_return_val_if_fail(buf, 0);
+    g_return_val_if_fail(max > 0, 0);
+    g_return_val_if_fail(format, 0);
+    g_return_val_if_fail(tm, 0);
+
+    convbuf = qof_format_time(format, tm);
+    if (!convbuf) {
+        buf[0] = '\0';
+        return 0;
+    }
+
+    convlen = strlen(convbuf);
+
+    if (max <= convlen) {
+        /* Ensure only whole characters are copied into the buffer. */
+        gchar *end = g_utf8_find_prev_char(convbuf, convbuf + max);
+        g_assert(end != NULL);
+        convlen = end - convbuf;
+
+        /* Return 0 because the buffer isn't large enough. */
+        retval = 0;
+    } else {
+        retval = convlen;
+    }
+
+    memcpy(buf, convbuf, convlen);
+    buf[convlen] = '\0';
+    g_free(convbuf);
+
+    return retval;
+}
+
+
 /********************************************************************\
 \********************************************************************/
                                                                                 
@@ -1429,61 +1514,5 @@
   return mktime(&tm);
 }
 
-gboolean
-qof_date_add_days(Timespec *ts, gint days)
-{
-	struct tm tm;
-	time_t    tt;
-
-	g_return_val_if_fail(ts, FALSE);
-	tt = timespecToTime_t(*ts);
-#ifdef HAVE_GMTIME_R
-	tm = *gmtime_r(&tt, &tm);
-#else
-	tm = *gmtime(&tt);
-#endif
-	tm.tm_mday += days;
-	/* let mktime normalise the months and year
-	because we aren't tracking last_day_of_month */
-	tt = mktime(&tm);
-	if(tt < 0) { return FALSE; }
-	timespecFromTime_t(ts, tt);
-	return TRUE;
-}
-
-gboolean
-qof_date_add_months(Timespec *ts, gint months, gboolean track_last_day)
-{
-	struct tm tm;
-	time_t    tt;
-	gint new_last_mday;
-	gboolean was_last_day;
-
-	g_return_val_if_fail(ts, FALSE);
-	tt = timespecToTime_t(*ts);
-#ifdef HAVE_GMTIME_R
-	tm = *gmtime_r(&tt, &tm);
-#else
-	tm = *gmtime(&tt);
-#endif
-	was_last_day = date_is_last_mday(&tm);
-	tm.tm_mon += months;
-	while (tm.tm_mon > 11) {
-		tm.tm_mon -= 12;
-		tm.tm_year++;
-	}
-	if (track_last_day) {
-		/* Track last day of the month, i.e. 1/31 -> 2/28 -> 3/31 */
-		new_last_mday = date_get_last_mday(&tm);
-		if (was_last_day || (tm.tm_mday > new_last_mday)) {
-			tm.tm_mday = new_last_mday;
-		}
-	}
-	tt = mktime(&tm);
-	if(tt < 0) { return FALSE; }
-	timespecFromTime_t(ts, tt);
-	return TRUE;
-}
-
 /********************** END OF FILE *********************************\
 \********************************************************************/

Modified: gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/gnc-date.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -243,28 +243,6 @@
  * routine might return incorrect values for dates before 1970.  */
 void gnc_timespec2dmy (Timespec ts, gint *day, gint *month, gint *year);
 
-/** \brief Add a number of days to a Timespec and normalise.
-
-Together with qof_date_add_months, replaces date_add_months.
-
-\return FALSE on error, otherwise TRUE.
-*/
-gboolean qof_date_add_days(Timespec *ts, gint days);
-
-/** \brief Add a number of months to a Timespec and normalise.
-
-Optionally track the last day of the month so that adding one
-month to 31st January returns 28th February (29th in a leap year)
-and adding three months returns 30th April.
-
-\return FALSE on error, otherwise TRUE.
-*/
-gboolean qof_date_add_months(Timespec *ts, gint months, gboolean track_last_day);
-
-/** \deprecated Add a number of months to a time value and normalize.  Optionally
- * also track the last day of the month, i.e. 1/31 -> 2/28 -> 3/31. */
-void date_add_months (struct tm *tm, gint months, gboolean track_last_day);
-
 /** \warning hack alert XXX FIXME -- these date routines return incorrect
  * values for dates before 1970.  Most of them are good only up 
  * till 2038.  This needs fixing ... 
@@ -350,6 +328,35 @@
  * itself, instead of depending on the routines here.
  */
 
+/** qof_format_time takes a format specification in UTF-8 and a broken-down time,
+ *  tries to call strftime with a sufficiently large buffer and, if successful,
+ *  return a newly allocated string in UTF-8 for the printing result.
+ *
+ *  @param format A format specification in UTF-8.
+ *
+ *  @param tm A broken-down time.
+ *
+ *  @return A newly allocated string on success, or NULL otherwise.
+ */
+gchar *qof_format_time(const gchar *format, const struct tm *tm);
+
+/** qof_strftime calls qof_format_time to print a given time and afterwards tries
+ *  to put the result into a buffer of fixed size.
+ *
+ *  @param buf A buffer.
+ *
+ *  @param max The size of buf in bytes.
+ *
+ *  @param format A format specification in UTF-8.
+ *
+ *  @param tm A broken-down time.
+ *
+ *  @return The number of characters written, not include the null byte, if the
+ *  complete string, including the null byte, fits into the buffer.  Otherwise 0.
+ */
+gsize qof_strftime(gchar *buf, gsize max, const gchar *format,
+                   const struct tm *tm);
+
 /** qof_print_date_dmy_buff
  *    Convert a date as day / month / year integers into a localized string
  *    representation

Modified: gnucash/branches/gda-dev/lib/libqof/qof/gnc-numeric.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/gnc-numeric.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/gnc-numeric.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,6 +26,9 @@
 
 #include <glib.h>
 #include <math.h>
+#ifdef G_OS_WIN32
+#include <pow.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>

Modified: gnucash/branches/gda-dev/lib/libqof/qof/guid.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/guid.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/guid.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,8 +31,8 @@
 #include <ctype.h>
 #include <dirent.h>
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
 #ifdef HAVE_SYS_TIMES_H
@@ -206,7 +206,7 @@
   FILE *fp;
 
   memset(&stats, 0, sizeof(stats));
-  if (stat(filename, &stats) != 0)
+  if (g_stat(filename, &stats) != 0)
     return 0;
 
   md5_process_bytes(&stats, sizeof(stats), &guid_context);
@@ -215,7 +215,7 @@
   if (max_size <= 0)
     return total;
 
-  fp = fopen (filename, "r");
+  fp = g_fopen (filename, "r");
   if (fp == NULL)
     return total;
 
@@ -235,16 +235,16 @@
 init_from_dir(const char *dirname, unsigned int max_files)
 {
   char filename[1024];
-  struct dirent *de;
+  const gchar *de;
   struct stat stats;
   size_t total;
   int result;
-  DIR *dir;
+  GDir *dir;
 
   if (max_files <= 0)
     return 0;
 
-  dir = opendir (dirname);
+  dir = g_dir_open(dirname, 0, NULL);
   if (dir == NULL)
     return 0;
 
@@ -252,20 +252,20 @@
 
   do
   {
-    de = readdir(dir);
+    de = g_dir_read_name(dir);
     if (de == NULL)
       break;
 
-    md5_process_bytes(de->d_name, strlen(de->d_name), &guid_context);
-    total += strlen(de->d_name);
+    md5_process_bytes(de, strlen(de), &guid_context);
+    total += strlen(de);
 
     result = snprintf(filename, sizeof(filename),
-                      "%s/%s", dirname, de->d_name);
+                      "%s/%s", dirname, de);
     if ((result < 0) || (result >= (int)sizeof(filename)))
       continue;
 
     memset(&stats, 0, sizeof(stats));
-    if (stat(filename, &stats) != 0)
+    if (g_stat(filename, &stats) != 0)
       continue;
     md5_process_bytes(&stats, sizeof(stats), &guid_context);
     total += sizeof(stats);
@@ -273,7 +273,7 @@
     max_files--;
   } while (max_files > 0);
 
-  closedir(dir);
+  g_dir_close(dir);
 
   return total;
 }
@@ -519,7 +519,7 @@
   {
     FILE *fp;
 
-    fp = fopen ("/dev/urandom", "r");
+    fp = g_fopen ("/dev/urandom", "r");
     if (fp == NULL)
       return;
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/kvp_frame.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/kvp_frame.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/kvp_frame.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -65,7 +65,7 @@
 #include "gnc-numeric.h"
 #include "guid.h"
 
-#define QOF_MOD_KVP "qof-kvp"
+#define QOF_MOD_KVP "qof.kvp"
 
 /** Opaque frame structure */
 typedef struct _KvpFrame KvpFrame;

Added: gnucash/branches/gda-dev/lib/libqof/qof/qof-win32.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qof-win32.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qof-win32.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,81 @@
+/* 
+ * qof-win32.c
+ *
+ * Copyright (C) 2007 Andreas Koehler <andi5.py at gmx.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include "gnc-date-p.h"
+#include <windows.h>
+
+gchar *
+qof_time_format_from_utf8(const gchar *utf8_format)
+{
+    gunichar2 *utf16_format;
+    gchar *retval;
+    gsize count;
+
+    utf16_format = g_utf8_to_utf16(utf8_format, -1, NULL, NULL, NULL);
+    if (!utf16_format)
+        return NULL;
+
+    /* get number of resulting wide characters */
+    count = wcstombs(NULL, utf16_format, 0);
+    if (count <= 0)
+        return NULL;
+
+    /* malloc and convert */
+    retval = g_malloc((count+1) * sizeof(gchar));
+    count = wcstombs(retval, utf16_format, count+1);
+    g_free(utf16_format);
+    if (count <= 0) {
+        g_free(retval);
+        return NULL;
+    }
+
+    return retval;
+}
+
+gchar *
+qof_formatted_time_to_utf8(const gchar *locale_string)
+{
+    gunichar2 *utf16_string;
+    gchar *retval;
+    gsize count;
+
+    /* get number of resulting wide characters */
+    count = mbstowcs(NULL, locale_string, 0);
+    if (count <= 0)
+        return NULL;
+
+    /* malloc and convert */
+    utf16_string = g_malloc((count+1) * sizeof(gunichar2));
+    count = mbstowcs(utf16_string, locale_string, count+1);
+    if (count <= 0) {
+        g_free(utf16_string);
+        return NULL;
+    }
+
+    retval = g_utf16_to_utf8(utf16_string, -1, NULL, NULL, NULL);
+    g_free(utf16_string);
+
+    return retval;
+}

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qof.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qof.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qof.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -54,10 +54,6 @@
     @addtogroup Query Query: Querying for Objects
     @ingroup QOF
 */
-/**
-    @addtogroup Trace Trace: Error Reporting and Debugging
-    @ingroup QOF
-*/
 /** @addtogroup Event Event: QOF event handlers.
 	@ingroup QOF
 */
@@ -103,7 +99,7 @@
 #include "deprecated.h"
 
 /** allow easy logging of QSF debug messages */
-#define QOF_MOD_QSF "gncqof-backend-qsf"
+#define QOF_MOD_QSF "qof.backend.qsf"
 /** allow easy loading of the QSF backend */
 #define QSF_BACKEND_LIB "gncqof-backend-qsf"
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -392,10 +392,12 @@
 	g_return_val_if_fail(g_module_supported(), FALSE);
 	fullpath = g_module_build_path(directory, module_name);
 	backend = g_module_open(fullpath, G_MODULE_BIND_LAZY);
-	if (!backend) { 
+	if (!backend) {
 		g_message ("%s: %s\n", PACKAGE, g_module_error ());
 		return FALSE;
 	}
+
+	/* the module should have done that already in g_module_check_init */
 	g_module_make_resident(backend);
 	return TRUE;
 }

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofbackend.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -46,7 +46,7 @@
 
 #include "qofinstance.h"
 
-#define QOF_MOD_BACKEND "qof-backend"
+#define QOF_MOD_BACKEND "qof.backend"
 
 /** \brief The errors that can be reported to the GUI & other front-end users
  *  \warning (GnuCash) If you modify QofBackendError, please update 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -845,7 +845,7 @@
 			date_getter = (Timespec (*)(QofEntity*, QofParam*))qtparam->param_getfcn;
 			param_ts = date_getter(qtEnt, qtparam);
 			param_t = timespecToTime_t(param_ts);
-			strftime(param_date, QOF_DATE_STRING_LENGTH, QOF_UTC_DATE_FORMAT, gmtime(&param_t));
+			qof_strftime(param_date, QOF_DATE_STRING_LENGTH, QOF_UTC_DATE_FORMAT, gmtime(&param_t));
 			param_string = g_strdup(param_date);
 			return param_string;
 		}

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofbookmerge.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -24,7 +24,7 @@
 #ifndef QOFBOOKMERGE_H
 #define QOFBOOKMERGE_H
 
-#define QOF_MOD_MERGE "qof-merge"
+#define QOF_MOD_MERGE "qof.merge"
 
 /** @addtogroup BookMerge
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofchoice.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofchoice.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofchoice.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -93,7 +93,7 @@
 #include "qofclass.h"
 #include "qofobject.h"
 
-#define QOF_MOD_CHOICE "qof-choice"
+#define QOF_MOD_CHOICE "qof.choice"
 
 /** \note Choice
 @{

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofclass.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofclass.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofclass.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -71,7 +71,7 @@
 
 #include "qofid.h"
 
-#define QOF_MOD_CLASS "qof-class"
+#define QOF_MOD_CLASS "qof.class"
 
 /** \name Core types
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofid.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofid.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofid.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -106,7 +106,7 @@
   if ((da) && (!(db))) {                 \
     val = 1;                             \
   }                                      \
-  val; /* block assumes value of last statment */  \
+  val; /* block assumes value of last statement */  \
 })
 
 /** return TRUE if object is of the given type */

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofinstance-p.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofinstance-p.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofinstance-p.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -74,9 +74,6 @@
    gboolean infant;
 };
 
-/* reset the dirty flag */
-void qof_instance_mark_clean (QofInstance *);
-
 void qof_instance_set_slots (QofInstance *, KvpFrame *);
 
 /*  Set the last_update time. Reserved for use by the SQL backend;

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofinstance.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofinstance.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofinstance.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -92,6 +92,9 @@
 */
 void qof_instance_set_dirty(QofInstance* inst);
 
+/* reset the dirty flag */
+void qof_instance_mark_clean (QofInstance *);
+
 gboolean qof_instance_check_edit(const QofInstance *inst);
 
 gboolean qof_instance_do_free(const QofInstance *inst);

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qoflog.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qoflog.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qoflog.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -4,9 +4,10 @@
  *  Mon Nov 21 14:41:59 2005
  *  Author: Rob Clark (rclark at cs.hmc.edu)
  *  Copyright (C) 1997-2003 Linas Vepstas <linas at linas.org>
- *  Copyright  2005  Neil Williams
- *  linux at codehelp.co.uk
+ *  Copyright  2005  Neil Williams <linux at codehelp.co.uk>
+ *  Copyright 2007 Joshua Sled <jsled at asynchronous.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
@@ -27,14 +28,24 @@
 #include "config.h"
 
 #include <glib.h>
+#include <glib/gstdio.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #else
 #warning unistd required.
 #endif
 #include <stdarg.h>
+#include <stdlib.h>
 #include <string.h>
 #include <sys/time.h>
+
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "qof.log"
+
+#ifndef HAVE_LOCALTIME_R
+#include "localtime_r.h"
+#endif
+
 #include "qof.h"
 #include "qoflog.h"
 
@@ -43,137 +54,158 @@
 #define NUM_CLOCKS 10
 
 static FILE *fout = NULL;
-static gchar* filename = NULL;
 static gchar* function_buffer = NULL;
-static const int MAX_TRACE_FILENAME = 100;
+static gint qof_log_num_spaces = 0;
 static GHashTable *log_table = NULL;
-static gint qof_log_num_spaces = 0;
+static GLogFunc previous_handler = NULL;
 
-/* uses the enum_as_string macro.
-Lookups are done on the string. */
-AS_STRING_FUNC(QofLogLevel, LOG_LEVEL_LIST)
-
-FROM_STRING_FUNC(QofLogLevel, LOG_LEVEL_LIST)
-
 void
-qof_log_add_indent(void)
+qof_log_indent(void)
 {
-	qof_log_num_spaces += QOF_LOG_INDENT_WIDTH;
+     qof_log_num_spaces += QOF_LOG_INDENT_WIDTH;
 }
 
-gint 
-qof_log_get_indent(void)
+void
+qof_log_dedent(void)
 {
-	return qof_log_num_spaces;
+	qof_log_num_spaces
+         = (qof_log_num_spaces < QOF_LOG_INDENT_WIDTH)
+         ? 0
+         : qof_log_num_spaces - QOF_LOG_INDENT_WIDTH;
 }
 
 void
-qof_log_drop_indent(void)
+qof_log_set_file(FILE *outfile)
 {
-	qof_log_num_spaces = (qof_log_num_spaces < QOF_LOG_INDENT_WIDTH) ?
-		0 : qof_log_num_spaces - QOF_LOG_INDENT_WIDTH;
+     if (!outfile) { fout = stderr; return; }
+     fout = outfile;
 }
 
-static void
-fh_printer (const gchar     *log_domain,
-            GLogLevelFlags  log_level,
-            const gchar     *message,
-            gpointer        user_data)
+void 
+qof_log_init(void)
 {
-  FILE *fh = user_data;
-  fprintf (fh, "%*s%s\n", qof_log_num_spaces, "", message);
-  fflush(fh);
+     qof_log_init_filename(NULL);
 }
 
-void 
-qof_log_init (void)
+static void
+log4glib_handler(const gchar     *log_domain,
+                 GLogLevelFlags  log_level,
+                 const gchar     *message,
+                 gpointer        user_data)
 {
-   if(!fout) /* allow qof_log_set_file */
-   {
-	   fout = fopen ("/tmp/qof.trace", "w");
-   }
+     if (G_LIKELY(!qof_log_check(log_domain, log_level)))
+          return;
 
-   if(!fout && (filename = (gchar *)g_malloc(MAX_TRACE_FILENAME))) {
-      snprintf(filename, MAX_TRACE_FILENAME-1, "/tmp/qof.trace.%d", 
-	       getpid());
-      fout = fopen (filename, "w");
-      g_free(filename);
-   }
+     {
+          char timestamp_buf[10];
+          time_t now;
+          struct tm now_tm;
+          gchar *level_str = qof_log_level_to_string(log_level);
+          now = time(NULL);
+          localtime_r(&now, &now_tm);
+          qof_strftime(timestamp_buf, 9, "%T", &now_tm);
 
-   if(!fout)
-      fout = stderr;
+          fprintf(fout, "* %s %*s <%s> %*s%s%s",
+                  timestamp_buf,
+                  5, level_str,
+                  (log_domain == NULL ? "" : log_domain),
+                  qof_log_num_spaces, "",
+                  message,
+                  (g_str_has_suffix(message, "\n") ? "" : "\n"));
+          fflush(fout);
+     }
 
-   g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_MASK, fh_printer, fout);
+     /* chain?  ignore?  Only chain if it's going to be quiet...
+     else
+     {
+          // chain
+          previous_handler(log_domain, log_level, message, NULL);
+     }
+     */
 }
 
 void
-qof_log_set_level(QofLogModule log_module, QofLogLevel level)
+qof_log_init_filename(const gchar* log_filename)
 {
-	gchar* level_string;
+     if (log_table == NULL)
+          log_table = g_hash_table_new(g_str_hash, g_str_equal);
 
-	if(!log_module || level == 0) { return; }
-	level_string = g_strdup(QofLogLevelasString(level));
-	if(!log_table)
-	{
-		log_table = g_hash_table_new(g_str_hash, g_str_equal);
-	}
-	g_hash_table_insert(log_table, (gpointer)log_module, level_string);
-}
+     if (log_filename)
+     {
+          int fd;
+          gchar *fname;
 
-static void
-log_module_foreach(gpointer key, gpointer value, gpointer data)
-{
-	g_hash_table_insert(log_table, key, data);
+          if (fout != NULL && fout != stderr && fout != stdout)
+               fclose(fout);
+
+          fname = g_strconcat(log_filename, ".XXXXXX", NULL);
+
+          if ((fd = g_mkstemp(fname)) != -1)
+          {
+               g_rename(fname, log_filename);
+               fout = fdopen(fd, "w");
+          }
+          else
+          {
+               fout = stderr;
+          }
+          g_free(fname);
+     }
+
+     if (!fout)
+          fout = stderr;
+
+     // @@fixme really, the userdata is a struct { log_table, fout, previous_handler }
+     if (previous_handler == NULL)
+          previous_handler = g_log_set_default_handler(log4glib_handler, log_table);
 }
 
 void
-qof_log_set_level_registered(QofLogLevel level)
+qof_log_shutdown (void)
 {
-	gchar* level_string;
+	if (fout && fout != stderr && fout != stdout)
+    {
+         fclose(fout);
+         fout = NULL;
+    }
 
-	if(!log_table || level == 0) { return; }
-	level_string = g_strdup(QofLogLevelasString(level));
-	g_hash_table_foreach(log_table, log_module_foreach, level_string);
-}
+	if (function_buffer)
+    {
+         g_free(function_buffer);
+         function_buffer = NULL;
+    }
 
-void
-qof_log_set_file (FILE *outfile)
-{
-   if(!outfile) { fout = stderr; return; }
-   fout = outfile;
+    if (log_table != NULL)
+    {
+         g_hash_table_destroy(log_table);
+         log_table = NULL;
+    }
+
+    if (previous_handler != NULL)
+    {
+         g_log_set_default_handler(previous_handler, NULL);
+         previous_handler = NULL;
+    }
 }
 
 void
-qof_log_init_filename (const gchar* logfilename)
+qof_log_set_level(QofLogModule log_module, QofLogLevel level)
 {
-	if(!logfilename)
+	if (!log_module || level == 0) { return; }
+	if (!log_table)
 	{
-		fout = stderr;
+		log_table = g_hash_table_new(g_str_hash, g_str_equal);
 	}
-	else
-	{
-		filename = g_strdup(logfilename);
-		fout = fopen(filename, "w");
-	}
-	qof_log_init();
+	g_hash_table_insert(log_table, (gpointer)log_module, GINT_TO_POINTER((gint)level));
 }
 
-void
-qof_log_shutdown (void)
-{
-	if(fout && fout != stderr) { fclose(fout); }
-	if(filename) { g_free(filename); }
-	if(function_buffer) { g_free(function_buffer); }
-	g_hash_table_destroy(log_table);
-}
-
 const char *
 qof_log_prettify (const char *name)
 {
   gchar *p, *buffer;
   gint length;
-
-  if (!name) { return ""; }
+ 
+ if (!name) { return ""; }
   buffer = g_strndup(name, QOF_LOG_MAX_CHARS - 1);
   length = strlen(buffer);
   p = g_strstr_len(buffer, length, "(");
@@ -188,6 +220,176 @@
   return function_buffer;
 }
 
+void
+qof_log_init_filename_special(const char *log_to_filename)
+{
+     if (g_ascii_strcasecmp("stderr", log_to_filename) == 0)
+     {
+          qof_log_set_file(stderr);
+     }
+     else if (g_ascii_strcasecmp("stdout", log_to_filename) == 0)
+     {
+          qof_log_set_file(stdout);
+     }
+     else
+     {
+          qof_log_init_filename(log_to_filename);
+     }
+}
+
+void
+qof_log_parse_log_config(const char *filename)
+{
+     const gchar *levels_group = "levels", *output_group = "output";
+     GError *err;
+     GKeyFile *conf = g_key_file_new();
+
+     if (!g_key_file_load_from_file(conf, filename, G_KEY_FILE_NONE, &err))
+     {
+          g_warning("unable to parse [%s]: %s", filename, err->message);
+          g_error_free(err);
+          return;
+     }
+
+     g_debug("parsing log config from [%s]", filename);
+     if (g_key_file_has_group(conf, levels_group))
+     {
+          gsize num_levels;
+          int key_idx;
+          gchar **levels;
+
+          levels = g_key_file_get_keys(conf, levels_group, &num_levels, NULL);
+
+          for (key_idx = 0; key_idx < num_levels && levels[key_idx] != NULL; key_idx++)
+          {
+               QofLogLevel level;
+               gchar *logger_name = NULL, *level_str = NULL;
+
+               logger_name = g_strdup(levels[key_idx]);
+               level_str = g_key_file_get_string(conf, levels_group, logger_name, NULL);
+               level = qof_log_level_from_string(level_str);
+
+               g_debug("setting log [%s] to level [%s=%d]", logger_name, level_str, level);
+               qof_log_set_level(logger_name, level);
+
+               g_free(level_str);
+          }
+          g_strfreev(levels);
+     }
+
+     if (g_key_file_has_group(conf, output_group))
+     {
+          gsize num_outputs;
+          int output_idx;
+          gchar **outputs;
+          
+          outputs = g_key_file_get_keys(conf, output_group, &num_outputs, NULL);
+          for (output_idx = 0; output_idx < num_outputs && outputs[output_idx] != NULL; output_idx++)
+          {
+               gchar *key = outputs[output_idx];
+               gchar *value;
+
+               if (g_ascii_strcasecmp("to", key) != 0)
+               {
+                    g_warning("unknown key [%s] in [outputs], skipping", key);
+                    continue;
+               }
+
+               value = g_key_file_get_string(conf, output_group, key, NULL);
+               g_debug("setting [output].to=[%s]", value);
+               qof_log_init_filename_special(value);
+               g_free(value);
+          }
+          g_strfreev(outputs);
+     }
+
+     g_key_file_free(conf);
+}
+
+gboolean
+qof_log_check(QofLogModule log_domain, QofLogLevel log_level)
+{
+//#define _QLC_DBG(x) x
+#define _QLC_DBG(x)
+     GHashTable *log_levels = log_table;
+     gchar *domain_copy = g_strdup(log_domain == NULL ? "" : log_domain);
+     gchar *dot_pointer = domain_copy;
+     static const QofLogLevel default_log_thresh = QOF_LOG_WARNING;
+     QofLogLevel longest_match_level = default_log_thresh;
+
+     {
+          gpointer match_level;
+          if ((match_level = g_hash_table_lookup(log_levels, "")) != NULL)
+               longest_match_level = (QofLogLevel)GPOINTER_TO_INT(match_level);
+     }
+
+     _QLC_DBG({ printf("trying [%s] (%d):", log_domain, g_hash_table_size(log_levels)); });
+     if (G_LIKELY(log_levels))
+     {
+          // e.g., "a.b.c" -> "a\0b.c" -> "a.b\0c", "a.b.c"
+          gpointer match_level;
+          while ((dot_pointer = g_strstr_len(dot_pointer, strlen(dot_pointer), ".")) != NULL)
+          {
+               *dot_pointer = '\0';
+               _QLC_DBG({ printf(" [%s]", domain_copy); });
+               if (g_hash_table_lookup_extended(log_levels, domain_copy, NULL, &match_level))
+               {
+                    longest_match_level = (QofLogLevel)GPOINTER_TO_INT(match_level);
+                    _QLC_DBG(printf("*"););
+               }
+               *dot_pointer = '.';
+               dot_pointer++;
+          }
+
+          _QLC_DBG({ printf(" [%s]", domain_copy); });
+          if (g_hash_table_lookup_extended(log_levels, domain_copy, NULL, &match_level))
+          {
+               longest_match_level = (QofLogLevel)GPOINTER_TO_INT(match_level);
+               _QLC_DBG({ printf("*"); });
+          }
+     }
+     _QLC_DBG({ printf(" found [%d]\n", longest_match_level); });
+     g_free(domain_copy);
+
+     return log_level <= longest_match_level;
+}
+
+void
+qof_log_set_default(QofLogLevel log_level)
+{
+    qof_log_set_level("", log_level);
+    qof_log_set_level("qof", log_level);
+}
+
+gchar*
+qof_log_level_to_string(QofLogLevel log_level)
+{
+     gchar *level_str = "unknw";
+     switch (log_level)
+     {
+     case G_LOG_LEVEL_ERROR:   level_str = "ERROR"; break;
+     case G_LOG_LEVEL_CRITICAL:level_str = "CRIT"; break;
+     case G_LOG_LEVEL_WARNING: level_str = "WARN"; break;
+     case G_LOG_LEVEL_MESSAGE: level_str = "MESSG"; break;
+     case G_LOG_LEVEL_INFO:    level_str = "INFO"; break;
+     case G_LOG_LEVEL_DEBUG:   level_str = "DEBUG"; break;
+     default:                  level_str = "OTHER"; break;
+     }
+     return level_str;
+}
+
+QofLogLevel
+qof_log_level_from_string(gchar *str)
+{
+     if (g_ascii_strncasecmp("error", str, 5) == 0) return QOF_LOG_FATAL;
+     if (g_ascii_strncasecmp("crit", str, 4) == 0) return QOF_LOG_ERROR;
+     if (g_ascii_strncasecmp("warn", str, 4) == 0) return QOF_LOG_WARNING;
+     if (g_ascii_strncasecmp("mess", str, 4) == 0) return G_LOG_LEVEL_MESSAGE;
+     if (g_ascii_strncasecmp("info", str, 4) == 0) return QOF_LOG_INFO;
+     if (g_ascii_strncasecmp("debug", str, 5) == 0) return QOF_LOG_DEBUG;
+     return QOF_LOG_DEBUG;
+}
+
 static
 struct timeval qof_clock[NUM_CLOCKS] = {
    {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, 
@@ -305,67 +507,3 @@
   fprintf (fout, "\n");
   fflush (fout);
 }
-
-gboolean
-qof_log_check(QofLogModule log_module, QofLogLevel log_level)
-{
-	gchar* log_string;
-	QofLogLevel maximum; /* Any positive log_level less than this will be logged. */
-
-	log_string = NULL;
-	if (log_level > QOF_LOG_TRACE) log_level = QOF_LOG_TRACE;
-	if(!log_table || log_module == NULL || log_level < 0) { return FALSE; }
-	log_string = (gchar*)g_hash_table_lookup(log_table, log_module);
-	/* if log_module not found, do not log. */
-	if(!log_string) { return FALSE; }
-	maximum = QofLogLevelfromString(log_string);
-	if(log_level <= maximum) { return TRUE; }
-	return FALSE;
-}
-
-void qof_log_set_default(QofLogLevel log_level)
-{
-	qof_log_set_level(QOF_MOD_BACKEND, log_level);
-	qof_log_set_level(QOF_MOD_CLASS,   log_level);
-	qof_log_set_level(QOF_MOD_ENGINE,  log_level);
-	qof_log_set_level(QOF_MOD_OBJECT,  log_level);
-	qof_log_set_level(QOF_MOD_KVP,     log_level);
-	qof_log_set_level(QOF_MOD_MERGE,   log_level);
-	qof_log_set_level(QOF_MOD_QUERY,   log_level);
-	qof_log_set_level(QOF_MOD_SESSION, log_level);
-	qof_log_set_level(QOF_MOD_CHOICE,  log_level);
-	qof_log_set_level(QOF_MOD_UTIL,    log_level);
-}
-
-struct hash_s
-{
-	QofLogCB cb;
-	gpointer data;
-};
-
-static void hash_cb (gpointer key, gpointer value, gpointer data)
-{
-	struct hash_s *iter;
-
-	iter = (struct hash_s*)data;
-	if(!iter) { return; }
-	(iter->cb)(key, value, iter->data);
-}
-
-void qof_log_module_foreach(QofLogCB cb, gpointer data)
-{
-	struct hash_s iter;
-
-	if(!cb) { return; }
-	iter.cb = cb;
-	iter.data = data;
-	g_hash_table_foreach(log_table, hash_cb, (gpointer)&iter);
-}
-
-gint qof_log_module_count(void)
-{
-	if(!log_table) { return 0; }
-	return g_hash_table_size(log_table);
-}
-
-/* ************************ END OF FILE **************************** */

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qoflog.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qoflog.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qoflog.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,12 +1,10 @@
-/***************************************************************************
- *            qof-log.h
- *
- *  Mon Nov 21 14:35:26 2005
- *  Author: Rob Clark (rclark at cs.hmc.edu)
- *  Copyright (C) 1998-2003 Linas Vepstas <linas at linas.org>
- *  Copyright  2005  Neil Williams
- *  linux at codehelp.co.uk
- ****************************************************************************/
+/* qof-log.h
+ * Author: Rob Clark <rclark at cs.hmc.edu>
+ * Copyright (C) 1998-2003 Linas Vepstas <linas at linas.org>
+ * Copyright 2005 Neil Williams <linux at codehelp.co.uk>
+ * Copyright 2007 Joshua Sled <jsled at asynchronous.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
@@ -24,227 +22,215 @@
  *  02110-1301,  USA
  */
 
-/** @addtogroup Trace
-    @{ */
+/**
+ * @addtogroup Logging
+ * @{
+ * @ingroup QOF
+ * @brief Logging and tracing facility.
+ * @sa "Logging overhaul" announcement <http://lists.gnucash.org/pipermail/gnucash-devel/2007-February/019836.html>
+ * 
+ * qof_log_init(void) installs a handler that interprets the "log_domain"
+ * as a "."-separated path.  Log level thresholds can be set for each level
+ * in the tree.  When a message is logged, the longest level match is
+ * found, and used as the threshold.
+ *
+ * For instance, we can set the levels as such:
+ * @verbatim
+   "qof"                        = WARN
+   "gnc"                        = WARN
+   "gnc.ui"                     = INFO
+   "gnc.ui.plugin-page.sx-list" = DEBUG
+ @endverbatim
+ *
+ * When code in the log_module of "gnc.import" attempts to log at DEBUG
+ * (let's say), the handler will attempt to match the log domain to
+ * successively-longer paths: first "", then "gnc", then "gnc.import".  Given
+ * the settings above, the path "gnc" will match -- at a level of "WARN" --
+ * and the DEBUG-level log will be rejected.  When code in the log domain of
+ * "gnc.ui.plugin-page.sx-list" logs at DEBUG, however, it will match at
+ * DEBUG, and be allowed.
+ *
+ * The current log format is as above:
+ *
+ * @verbatim
+     * [timestamp] [level] <[log-domain]> [message]
+ @endverbatim
+ *
+ * The timestamp and level are constant width (level is 5 characters).  The
+ * log domain is re-iterated, which gives some context, but could become
+ * annoying if they get long.
+ * 
+ * Trailing newlines (e.g. <tt>PINFO("...\n", ...)</tt>) are removed; the logger
+ * will newline separate output.
+ *
+ * @section best Best Practices
+ *
+ * Code should:
+ *
+ * @li Define both <tt>static QofLogModule log_module</tt> and <tt>#define
+ *   G_LOG_DOMAIN</tt> to the same value.
+ * @li Define a logical, specific path as the log domain;
+ *   @c "gnc.gui.plugin-pages.sx-list" or
+ *   @c "gnc.register.gnome.cell.quickfill" are
+ *   good examples.
+ * @li Use glib-provided @c g_debug(...), @c g_message(...),
+ *   @c g_warning(...), @c g_critical(...) and
+ *   @c g_error(...) functions in preference to the historical qof/gnc @c
+ *   PINFO, @c PERR (&c.) macros
+ *
+ * @see qof_log_parse_log_config(const char*)
+ **/
 
-/** @file qoflog.h 
- *  @brief QOF error logging and tracing facility 
-*/
-
 #ifndef _QOF_LOG_H
 #define _QOF_LOG_H
 
 #include <stdarg.h>
 #include <stdio.h>
+#include <glib.h>
 #include "qofutil.h"
 
-#define QOF_MOD_ENGINE "qof-engine"
+#define QOF_MOD_ENGINE "qof.engine"
 
 #define LOG_LEVEL_LIST(_) \
-  _(QOF_LOG_FATAL, = 0)   \
-  _(QOF_LOG_ERROR, = 1)   \
-  _(QOF_LOG_WARNING, = 2) \
-  _(QOF_LOG_INFO, = 3)    \
-  _(QOF_LOG_DEBUG, = 4)   \
-  _(QOF_LOG_DETAIL, = 5)  \
-  _(QOF_LOG_TRACE, = 6)
+  _(QOF_LOG_FATAL,   = G_LOG_LEVEL_ERROR)   \
+  _(QOF_LOG_ERROR,   = G_LOG_LEVEL_CRITICAL)   \
+  _(QOF_LOG_WARNING, = G_LOG_LEVEL_WARNING) \
+  _(QOF_LOG_INFO,    = G_LOG_LEVEL_INFO)    \
+  _(QOF_LOG_DEBUG,   = G_LOG_LEVEL_DEBUG)
 
 DEFINE_ENUM (QofLogLevel, LOG_LEVEL_LIST)
 
-AS_STRING_DEC(QofLogLevel, LOG_LEVEL_LIST) /**< Convert QofLogLevel to a string.
+gchar* qof_log_level_to_string(QofLogLevel lvl);
+QofLogLevel qof_log_level_from_string(gchar *str);
 
-The macro correlates the enum value and an
-exact copy as a string, removing the need to
-keep two separate lists in sync.
-*/
+/** Indents one level; see ENTER macro. **/
+void qof_log_indent(void);
 
-FROM_STRING_DEC(QofLogLevel, LOG_LEVEL_LIST) /**< Convert the 
-log_string to a QofLogLevel
+/**
+ * De-dent one level, capped at 0; see LEAVE macro.
+ **/
+void qof_log_dedent(void);
 
-Only for use as a partner to ::QofLogLevelasString
-*/
-
-/** indents once for each ENTER macro */
-void qof_log_add_indent(void);
-
-/** gets the running total of the indent */
-gint qof_log_get_indent(void);
-
-/** drops back one indent for each LEAVE macro
-
-indent is reset to zero if less than a single indent would exist.
-*/
-void qof_log_drop_indent(void);
-
-/** Initialize the error logging subsystem
-
-\deprecated Applications need to call
-qof_log_set_file to set the output, otherwise
-the default of \a /tmp/qof.trace will be used.
-
-Instead, use qof_log_init_filename
-which sets the filename and initialises the
-logging subsystem in one operation.
-*/
+/**
+ * Initialize the error logging subsystem.  Defaults to a level-threshold of
+ * "warning", and logging to stderr.
+ **/
 void qof_log_init (void);
 
-/** Set the logging level of the given log_module.
-
-Registers the log_module with the qof_log hashtable and
-sets an initial value for the loglevel for that log_module.
-*/
+/** Set the logging level of the given log_module. **/
 void qof_log_set_level(QofLogModule module, QofLogLevel level);
 
-/** Set the logging level for all registered log_modules.
-
-\note Unless a log_module has been registered using
-qof_log_set_level, it will be unaffected by this change because
-there will be no entry in the hashtable.
-
-"silent" log_modules are supported by the qof_log_set_level_registered
-function which only  moderates log_levels for those modules actually
-registered. The advantage is that a developer can omit existing
-log_modules from the init code and cut down the amount of unwanted logging. 
-
-e.g. if you are working in one section of the code and do not want
-the extra log information created by allowing the default modules
-to log as well. This makes the log itself easier to use when working
-in a small area of the codebase. Silent log_modules can also be
-useful where no default currently exists - again to isolate certain
-sections of the default log output - and using qof_log_set_level_registered
-allows these silent log_modules to be retained in the code without
-being logged by other developers etc.
-*/
-void qof_log_set_level_registered(QofLogLevel level);
-
-/** Specify an alternate log output, to pipe or file.
-By default, all logging goes to /tmp/qof.trace 
- 
-Needs to be called \b before qof_log_init()
-\deprecated
-*/
+/** Specify an alternate log output, to pipe or file. **/
 void qof_log_set_file (FILE *outfile);
 
-/** Specify a filename for log output.
-
-Calls qof_log_init() for you.
-*/
+/** Specify a filename for log output. **/
 void qof_log_init_filename (const gchar* logfilename);
 
+/**
+ * If @a log_to_filename is "stderr" or "stdout" (exactly,
+ * case-insensitive), then those special files are used; otherwise, the
+ * literal filename as given, as qof_log_init_filename(gchar*)
+ **/
+void qof_log_init_filename_special(const char *log_to_filename);
+
+/**
+ * Parse a log-configuration file.  A GKeyFile-format file of the schema:
+ * @verbatim
+    [levels] 
+    # log.ger.path=level
+    gnc.engine.sx=debug
+    gnc.gui.sx=debug
+    gnc.gui.freqspec=debug
+    [output]
+    # to=["stderr"|"stdout"|filename]
+    to=stderr
+ @endverbatim
+ **/
+void qof_log_parse_log_config(const char *filename);
+
 /** Be nice, close the logfile if possible. */
 void qof_log_shutdown (void);
 
-/** qof_log_prettify() cleans up subroutine names. AIX/xlC has the habit
- * of printing signatures not names; clean this up. On other operating
- * systems, truncate name to QOF_LOG_MAX_CHARS chars.  */
+/**
+ * Cleans up subroutine names. AIX/xlC has the habit of printing signatures
+ * not names; clean this up. On other operating systems, truncate name to
+ * QOF_LOG_MAX_CHARS chars.
+ **/
 const gchar * qof_log_prettify (const gchar *name);
 
-/** Do not log log_modules that have not been enabled. */
+/** Check to see if the given @a log_module is configured to log at the given
+ * @a log_level.  This implements the "log.path.hierarchy" logic. **/
 gboolean qof_log_check(QofLogModule log_module, QofLogLevel log_level);
 
-/** Set the default QOF log_modules to the log level. */
+/** Set the default level for QOF-related log paths. **/
 void qof_log_set_default(QofLogLevel log_level);
 
-typedef void (*QofLogCB) (QofLogModule log_module, QofLogLevel* log_level, 
-			gpointer user_data);
+#define PRETTY_FUNC_NAME qof_log_prettify(__FUNCTION__)
 
-/** Iterate over each known log_module
-
-Only log_modules with log_levels set will 
-be available.
-*/
-void qof_log_module_foreach(QofLogCB cb, gpointer data);
-
-/** Number of log_modules registered*/
-gint qof_log_module_count(void);
-
-#define FUNK qof_log_prettify(__FUNCTION__)
-
-/** Log error/warning/info messages to stderr or to a file.
- *  This logging infrastructure is meant for validating the 
- *  correctness of the execution of the code.  'Info' level 
- *  messages help trace program flow. 'Error' messages are 
- *  meant to indicate internal data inconsistencies.
- * 
- * Messages can be logged to stdout, stderr, or to any desired
- * file.
- */
-
 /** Log a fatal error */
-#define FATAL(format, args...) do {                  \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,          \
-      "Fatal Error: %s(): " format, FUNK , ## args); \
+#define FATAL(format, args...) do { \
+    g_log (log_module, G_LOG_LEVEL_FATAL, \
+      "[%s()] " format, PRETTY_FUNC_NAME , ## args); \
 } while (0)
 
 /** Log a serious error */
-#define PERR(format, args...) do {                   \
-  if (qof_log_check (log_module, QOF_LOG_ERROR)) {   \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,     \
-      "Error: %s(): " format, FUNK , ## args);     \
-  }                                                \
+#define PERR(format, args...) do { \
+    g_log (log_module, G_LOG_LEVEL_CRITICAL, \
+      "[%s()] " format, PRETTY_FUNC_NAME , ## args); \
 } while (0)
 
 /** Log a warning */
-#define PWARN(format, args...) do {                    \
-  if (qof_log_check (log_module, QOF_LOG_WARNING)) {   \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,      \
-      "Warning: %s(): " format, FUNK , ## args);   \
-  }                                                \
+#define PWARN(format, args...) do { \
+    g_log (log_module, G_LOG_LEVEL_WARNING, \
+      "[%s()] " format, PRETTY_FUNC_NAME , ## args); \
 } while (0)
 
 /** Print an informational note */
-#define PINFO(format, args...) do {                 \
-  if (qof_log_check (log_module, QOF_LOG_INFO)) {   \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO,         \
-      "Info: %s(): " format,                       \
-      FUNK , ## args);                             \
-  }                                                \
+#define PINFO(format, args...) do { \
+    g_log (log_module, G_LOG_LEVEL_INFO, \
+      "[%s] " format, PRETTY_FUNC_NAME , ## args); \
 } while (0)
 
 /** Print a debugging message */
-#define DEBUG(format, args...) do {                 \
-  if (qof_log_check (log_module, QOF_LOG_DEBUG)) {  \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,        \
-      "Debug: %s(): " format,                      \
-      FUNK , ## args);                             \
-  }                                                \
+#define DEBUG(format, args...) do { \
+    g_log (log_module, G_LOG_LEVEL_DEBUG, \
+      "[%s] " format, PRETTY_FUNC_NAME , ## args); \
 } while (0)
 
 /** Print a function entry debugging message */
-#define ENTER(format, args...) do {                 \
-  if (qof_log_check (log_module, QOF_LOG_DEBUG)) {  \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,        \
-      "Enter in %s: %s()" format, __FILE__,        \
-      FUNK , ## args);                             \
-    qof_log_add_indent();                           \
-  }                                                \
+#define ENTER(format, args...) do { \
+    if (qof_log_check(log_module, G_LOG_LEVEL_DEBUG)) { \
+      g_log (log_module, G_LOG_LEVEL_DEBUG, \
+        "[enter %s:%s()] " format, __FILE__, \
+        PRETTY_FUNC_NAME , ## args); \
+      qof_log_indent(); \
+    } \
 } while (0)
 
-/** Print a function exit debugging message */
-#define LEAVE(format, args...) do {                 \
-  if (qof_log_check (log_module, QOF_LOG_DEBUG)) {  \
-    qof_log_drop_indent();                          \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,        \
-      "Leave: %s()" format,                        \
-      FUNK , ## args);                             \
-  }                                                \
-} while (0)
+/** Replacement for @c g_return_val_if_fail, but calls LEAVE if the test fails. **/
+#define gnc_leave_return_val_if_fail(test, val) do { \
+  if (! (test)) { LEAVE(""); } \
+  g_return_val_if_fail(test, val); \
+} while (0);
 
-/** Print a function trace debugging message */
-#define TRACE(format, args...) do {                 \
-  if (qof_log_check (log_module, QOF_LOG_TRACE)) {  \
-    g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,        \
-      "Trace: %s(): " format, FUNK , ## args);     \
-  }                                                \
-} while (0)
+/** Replacement for @c g_return_if_fail, but calls LEAVE if the test fails. **/
+#define gnc_leave_return_if_fail(test) do { \
+  if (! (test)) { LEAVE(""); } \
+  g_return_if_fail(test); \
+} while (0);
 
-#define DEBUGCMD(x) do {                            \
-  if (qof_log_check (log_module, QOF_LOG_DEBUG)) {  \
-		(x);                                        \
-	}                                               \
+/** Print a function exit debugging message. **/
+#define LEAVE(format, args...) do { \
+    if (qof_log_check(log_module, G_LOG_LEVEL_DEBUG)) { \
+      qof_log_dedent(); \
+      g_log (log_module, G_LOG_LEVEL_DEBUG, \
+        "[leave %s()] " format, \
+        PRETTY_FUNC_NAME , ## args); \
+    } \
 } while (0)
 
 /* -------------------------------------------------------- */
+
 /** Infrastructure to make timing measurements for critical pieces 
  * of code. Used for only for performance tuning & debugging. 
  */

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofmath128.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofmath128.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofmath128.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -329,10 +329,13 @@
 
 
 #ifdef TEST_128_BIT_MULT
+
 static void pr (gint64 a, gint64 b)
 {
    qofint128 prod = mult128 (a,b);
-   printf ("%" G_GINT64_FORMAT " * %" G_GINT64_FORMAT " = %" G_GUINT64_FORMAT " %" G_GUINT64_FORMAT " (0x%llx %llx) %hd\n",
+   printf ("%" G_GINT64_FORMAT " * %" G_GINT64_FORMAT " = %"
+	   G_GUINT64_FORMAT " %" G_GUINT64_FORMAT " (0x%"
+	   G_GINT64_MODIFIER "x %" G_GINT64_MODIFIER "x) %hd\n",
 	   a, b, prod.hi, prod.lo, prod.hi, prod.lo, prod.isbig);
 }
 
@@ -341,15 +344,24 @@
    qofint128 prod = mult128 (a,b);
    qofint128 quot = div128 (prod, c);
    gint64 rem = rem128 (prod, c);
-   printf ("%" G_GINT64_FORMAT " * %" G_GINT64_FORMAT " / %" G_GINT64_FORMAT " = %" G_GUINT64_FORMAT " %" G_GUINT64_FORMAT " + %" G_GINT64_FORMAT " (0x%llx %llx) %hd\n",
+   printf ("%" G_GINT64_FORMAT " * %" G_GINT64_FORMAT " / %" G_GINT64_FORMAT
+	   " = %" G_GUINT64_FORMAT " %" G_GUINT64_FORMAT " + %"
+	   G_GINT64_FORMAT " (0x%" G_GINT64_MODIFIER "x %"
+	   G_GINT64_MODIFIER "x) %hd\n",
 	   a, b, c, quot.hi, quot.lo, rem, quot.hi, quot.lo, quot.isbig);
 }
 
 int main ()
 {
+  gint64 x;
+  qofint128 n;
+  gint64 d;
+  qofint128 quot;
+  int i;
+
   pr (2,2);
 
-  gint64 x = 1<<30;
+  x = 1<<30;
   x <<= 2;
 
   pr (x,x);
@@ -366,7 +378,7 @@
   pr (x,x);
   pr (x,-x);
 
-  pr (1000000, 10000000000000);
+  pr (1000000, G_GINT64_CONSTANT(10000000000000));
 
   prd (x,x,2);
   prd (x,x,3);
@@ -384,17 +396,16 @@
   prd (1111,x,11);
 
   /* Really test division */
-  qofint128 n;
   n.hi = 0xdd91;
   n.lo = 0x6c5abefbb9e13480ULL;
 
-  gint64 d = 0x2ae79964d3ae1d04ULL;
+  d = 0x2ae79964d3ae1d04ULL;
   
-  int i;
   for (i=0; i<20; i++) {
 
-  qofint128 quot = div128 (n, d);
-  printf ("%d result = %llx %llx\n", i, quot.hi, quot.lo);
+  quot = div128 (n, d);
+  printf ("%d result = %" G_GINT64_MODIFIER "x %" G_GINT64_MODIFIER "x\n",
+	  i, quot.hi, quot.lo);
     d >>=1;
     n = shift128 (n);
   }

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofobject.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofobject.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofobject.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,7 +58,7 @@
  */
 #define QOF_OBJECT_VERSION 3
 
-#define QOF_MOD_OBJECT "qof-object"
+#define QOF_MOD_OBJECT "qof.object"
 
 typedef struct _QofObject QofObject;
 typedef void (*QofForeachCB) (gpointer obj, gpointer user_data);

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofquery.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofquery.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofquery.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -709,7 +709,8 @@
   }
 
   /* Maybe log this sucker */
-  if (qof_log_check (log_module, QOF_LOG_DETAIL)) qof_query_print (q);
+  if (qof_log_check (log_module, QOF_LOG_DEBUG))
+       qof_query_print (q);
 
   /* Now run the query over all the objects and save the results */
   {

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofquery.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofquery.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofquery.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -79,7 +79,7 @@
 #include "qofquerycore.h"
 #include "qofchoice.h"
 
-#define QOF_MOD_QUERY "qof-query"
+#define QOF_MOD_QUERY "qof.query"
 
 /** A Query */
 typedef struct _QofQuery QofQuery;

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofquerycore.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofquerycore.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofquerycore.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -269,11 +269,17 @@
   pdata->matchstring = g_strdup (str);
 
   if (is_regex) {
+    int rc;
     int flags = REG_EXTENDED;
     if (options == QOF_STRING_MATCH_CASEINSENSITIVE)
       flags |= REG_ICASE;
 
-    regcomp(&pdata->compiled, str, flags);
+    rc = regcomp(&pdata->compiled, str, flags);
+    if (rc) {
+	g_free(pdata->matchstring);
+	g_free(pdata);
+	return NULL;
+    }
     pdata->is_regex = TRUE;
   }
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofsession-p.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofsession-p.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofsession-p.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -63,6 +63,7 @@
   /* Pointer to the backend that is actually used to move data
    * between the persistant store and the local engine.  */
   QofBackend *backend;
+  gint lock;
 };
 
 

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofsession.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofsession.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofsession.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -197,6 +197,7 @@
   session->books = g_list_append (NULL, qof_book_new ());
   session->book_id = NULL;
   session->backend = NULL;
+  session->lock = 1;
 
   qof_session_clear_error (session);
 }
@@ -1051,7 +1052,7 @@
           g_free(session->book_id);
           session->book_id = NULL;
           qof_session_push_error (session, err, msg);
-          LEAVE(" backend error %d %s", err, msg);
+          LEAVE(" backend error %d %s", err, msg ? msg : "(null)");
           return;
       }
       if (msg != NULL) 
@@ -1193,8 +1194,10 @@
 	int err;
 	gint num;
 	char *msg, *book_id;
-	
+
 	if (!session) return;
+	if (!g_atomic_int_dec_and_test(&session->lock))
+	    goto leave;
 	ENTER ("sess=%p book_id=%s", 
 		 session, session->book_id ? session->book_id : "(null)");
 	/* Partial book handling. */
@@ -1260,7 +1263,7 @@
 						session->book_id = NULL;
 						qof_session_push_error (session, err, msg);
 						LEAVE("changed backend error %d", err);
-						return;
+						goto leave;
 					}
 					if (msg != NULL) 
 					{
@@ -1280,11 +1283,11 @@
 				p = p->next;
 			}
 		}
-		if(!session->backend) 
+		if(!session->backend)
 		{
 			msg = g_strdup_printf("failed to load backend");
 			qof_session_push_error(session, ERR_BACKEND_NO_HANDLER, msg);
-			return;
+			goto leave;
 		}
 	}
 	/* If there is a backend, and the backend is reachable
@@ -1308,7 +1311,8 @@
 			if (be->sync)
 			{
 				(be->sync)(be, abook);
-				if (save_error_handler(be, session)) return;
+				if (save_error_handler(be, session)) 
+                                    goto leave;
 			}
 		}
 		/* If we got to here, then the backend saved everything 
@@ -1316,7 +1320,7 @@
 		/* Return the book_id to previous value. */
 		qof_session_clear_error (session);
 		LEAVE("Success");
-		return;
+		goto leave;
 	}
 	else
 	{
@@ -1324,9 +1328,17 @@
 		qof_session_push_error(session, ERR_BACKEND_NO_HANDLER, msg);
 	}
 	LEAVE("error -- No backend!");
+ leave:
+	g_atomic_int_inc(&session->lock);
+	return;
 }
 
 /* ====================================================================== */
+gboolean
+qof_session_save_in_progress(QofSession *session)
+{
+    return (session && g_atomic_int_get(&session->lock) != 1);
+}
 
 void
 qof_session_end (QofSession *session)

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofsession.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofsession.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofsession.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -103,7 +103,7 @@
 #include "qofclass.h"
 #include "qofobject.h"
 
-#define QOF_MOD_SESSION "qof-session"
+#define QOF_MOD_SESSION "qof.session"
 
 /* PROTOTYPES ******************************************************/
 
@@ -222,13 +222,14 @@
  *    if any data in the session hasn't been saved to long-term storage.
  */
 gboolean qof_session_not_saved(QofSession *session);
+gboolean qof_session_save_in_progress(QofSession *session);
 
 /** Allows the backend to warn the user if a dataset already exists. */
 gboolean qof_session_save_may_clobber_data (QofSession *session);
 
 /** The qof_session_save() method will commit all changes that have been
  *    made to the session. For the file backend, this is nothing
- *    more than a write to the file of the current AccountGroup & etc.
+ *    more than a write to the file of the current Accounts & etc.
  *    For the SQL backend, this is typically a no-op (since all data
  *    has already been written out to the database.
  */

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofsql.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofsql.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofsql.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -884,7 +884,7 @@
 
 	qof_query_set_book (query->qof_query, query->book);
     /* Maybe log this sucker */
-    if (gnc_should_log (log_module, GNC_LOG_DETAIL)) 
+    if (qof_should_log (log_module, QOF_LOG_DEBUG)) 
 	{
 		qof_query_print (query->qof_query);
 	}
@@ -911,7 +911,7 @@
 	qof_query_set_book (query->qof_query, query->book);
 
     /* Maybe log this sucker */
-    if (gnc_should_log (log_module, GNC_LOG_DETAIL)) 
+    if (qof_should_log (log_module, QOF_LOG_DEBUG)) 
 	{
 		qof_query_print (query->qof_query);
 	}

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofutil.c
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofutil.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofutil.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -426,7 +426,7 @@
 			date_getter = (Timespec (*)(QofEntity*, QofParam*))param->param_getfcn;
 			param_ts = date_getter(ent, param);
 			param_t = timespecToTime_t(param_ts);
-			strftime(param_date, MAX_DATE_LENGTH, 
+			qof_strftime(param_date, MAX_DATE_LENGTH, 
                 QOF_UTC_DATE_FORMAT, gmtime(&param_t));
 			param_string = g_strdup(param_date);
             known_type = TRUE;
@@ -545,6 +545,7 @@
 void
 qof_init (void)
 {
+    qof_log_init();
 	qof_util_get_string_cache ();
 	guid_init ();
 	qof_object_initialize ();
@@ -559,6 +560,7 @@
 	qof_object_shutdown ();
 	guid_shutdown ();
 	qof_util_string_cache_destroy ();
+    qof_log_shutdown();
 }
 
 /* ************************ END OF FILE ***************************** */

Modified: gnucash/branches/gda-dev/lib/libqof/qof/qofutil.h
===================================================================
--- gnucash/branches/gda-dev/lib/libqof/qof/qofutil.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/lib/libqof/qof/qofutil.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -56,7 +56,7 @@
 # endif
 #endif
 
-#define QOF_MOD_UTIL "qof-utilities"
+#define QOF_MOD_UTIL "qof.utilities"
 
 /** \name typedef enum as string macros
 @{

Modified: gnucash/branches/gda-dev/macros/ac_pkg_swig.m4
===================================================================
--- gnucash/branches/gda-dev/macros/ac_pkg_swig.m4	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/macros/ac_pkg_swig.m4	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,7 @@
 AC_DEFUN([AC_PROG_SWIG],[
         AC_PATH_PROG([SWIG],[swig])
         if test -z "$SWIG" ; then
-                AC_MSG_WARN([cannot find 'swig' program. You should look at http://www.swig.org])
+                AC_MSG_ERROR([cannot find 'swig' program. You should look at http://www.swig.org])
                 SWIG='echo "Error: SWIG is not installed. You should look at http://www.swig.org" ; false'
         elif test -n "$1" ; then
                 AC_MSG_CHECKING([for SWIG version])
@@ -74,15 +74,16 @@
                                 SWIG='echo "Error: SWIG version >= $1 is required.  You have '"$swig_version"'.  You should look at http://www.swig.org" ; false'
                         else
                                 AC_MSG_NOTICE([SWIG executable is '$SWIG'])
-                                SWIG_LIB=`$SWIG -swiglib`
-                                AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB'])
+dnl We do not make use of SWIG_LIB and `$SWIG -swiglib` made problems on MinGW (output was two lines)
+dnl                                SWIG_LIB=`$SWIG -swiglib`
+dnl                                AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB'])
                         fi
                 else
                         AC_MSG_ERROR([cannot determine SWIG version])
                         SWIG='echo "Error: Cannot determine SWIG version.  You should look at http://www.swig.org" ; false'
                 fi
         fi
-        AC_SUBST([SWIG_LIB])
+dnl        AC_SUBST([SWIG_LIB])
 ])
 
 # SWIG_ENABLE_CXX()

Modified: gnucash/branches/gda-dev/macros/binreloc.m4
===================================================================
--- gnucash/branches/gda-dev/macros/binreloc.m4	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/macros/binreloc.m4	2007-04-07 16:05:40 UTC (rev 15847)
@@ -20,8 +20,10 @@
 		AC_CHECK_FILE([/proc/self/maps])
 		AC_CACHE_CHECK([whether everything is installed to the same prefix],
 			       [br_cv_valid_prefixes], [
+				# datarootdir variables was introduced with autoconf-2.60
 				if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \
-					"$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \
+					\( "$datadir" = '${prefix}/share' -o \( "$datadir" = '${datarootdir}' -a "$datarootdir" = '${prefix}/share' \) \) -a \
+					"$libdir" = '${exec_prefix}/lib' -a \
 					"$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc'
 				then
 					br_cv_valid_prefixes=yes

Modified: gnucash/branches/gda-dev/macros/pkg.m4
===================================================================
--- gnucash/branches/gda-dev/macros/pkg.m4	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/macros/pkg.m4	2007-04-07 16:05:40 UTC (rev 15847)
@@ -20,8 +20,8 @@
      echo "*** to the full path to pkg-config."
      echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
   else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+     pkg_config_min_version=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $pkg_config_min_version; then
         AC_MSG_CHECKING(for $2)
 
         if $PKG_CONFIG --silence-errors --exists "$2" ; then
@@ -36,6 +36,7 @@
             $1_LIBS=`$PKG_CONFIG --libs "$2"`
             AC_MSG_RESULT($$1_LIBS)
         else
+            AC_MSG_RESULT(no)
             $1_CFLAGS=""
             $1_LIBS=""
             ## If we have a custom action on failure, don't print errors, but 
@@ -47,7 +48,7 @@
         AC_SUBST($1_CFLAGS)
         AC_SUBST($1_LIBS)
      else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** Your version of pkg-config is too old. You need version $pkg_config_min_version or newer."
         echo "*** See http://www.freedesktop.org/software/pkgconfig"
      fi
   fi


Property changes on: gnucash/branches/gda-dev/packaging
___________________________________________________________________
Name: svn:ignore
   - Makefile
Makefile.in
gnucash.spec
.DS_Store
   + Makefile


Modified: gnucash/branches/gda-dev/packaging/gnucash.spec.in
===================================================================
--- gnucash/branches/gda-dev/packaging/gnucash.spec.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/gnucash.spec.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -50,7 +50,6 @@
 BuildRequires: 	bzip2-devel, expat-devel, guile-devel
 BuildRequires: 	libglade2-devel, libgsf-devel
 BuildRequires: 	libjpeg-devel, openssl-devel
-BuildRequires:  libtool-ltdl-devel
 
 %description
 GnuCash is a personal finance manager. A check-book like
@@ -207,7 +206,6 @@
 %files devel
 %defattr(444,root,root,755)
 %{_includedir}/gnucash
-%{_datadir}/aclocal/gnucash.m4
 
 %if %{_with_ofx}
 %files ofx

Modified: gnucash/branches/gda-dev/packaging/win32/README
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/README	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/README	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,73 +1,82 @@
-These scripts try to download and install a Windows/mingw32 build
-environment for GnuCash on Windows. 
-
-For cross-compiling the windows executable on Linux, see the lower
-section of this file.
-
+These scripts try to download and install a Windows/mingw32 build
+environment for GnuCash on Windows. 
+
+For cross-compiling the windows executable on Linux, see the lower
+section of this file.
+
 Before you start with the automated build, you have to complete these
 steps manually. The directory variables are set in custom.sh.
 
-* Download MSYS (but *only* msys, no mingw and no msysdtk)
+* Download MSYS (but *only* msys; no mingw and no msysdtk)
 from http://www.mingw.org/download.shtml -> Current -> MSYS -> (bin, *.exe)
 to $DOWNLOAD_DIR
 
-* Install MSYS (no postinstall)
-to $MSYS_DIR
-
-* Download wget
+* Install MSYS (no postinstall)
+to $MSYS_DIR
+
+* Download wget
 from http://www.mingw.org/download.shtml -> Current -> mingwPORT -> (bin, wget-*)
 to $DOWNLOAD_DIR
 
-* Adjust installer.sh and/or custom.sh. Especially in the latter you
-  can comment out those build steps that have been completed already
-  and/or should not be performed now. If you want verbose output of
-  any script step, change the first line in install.sh and add the
-  "-x" switch.
+* Adjust custom.sh (install.sh doesn't need to be changed). In
+  custom.sh you should adapt the directory variables. If you want to,
+  you could also comment out those build steps that have been
+  completed already and/or should not be performed now, although the
+  script is quite intelligent not to duplicate already completed
+  work. If you want verbose output of any script step, change the
+  first line in install.sh and add the "-x" switch.
 
-Start/Enter any MSYS shell. Let the automated build begin by:
+Start/Enter any MSYS shell window. Let the automated build begin by:
 
   $INSTALLER_DIR/install.sh
 
 Good luck!
 
+To generate a self-installing setup.exe file that contains
+*everything*, run the following command after install.sh has
+completed:
+
+  $INSTALLER_DIR/dist.sh
+
 More information is collected on http://wiki.gnucash.org/wiki/Windows
 
+
 --------------------------
 
 Cross-compiling a Windows/mingw32 executable of GnuCash on a Linux
-host system.
+host system. (Note: This used to work unchangedly in Sept'2006 but
+probably not any longer.)
 
 These steps need to be performed:
 
-1. Edit the file create_cross_mingw.sh and set the PREFIX= variable to
-   the preferred prefix of the mingw32 gcc/binutils on your
-   Linux. (It is strongly recommended to choose a different prefix
-   than your normal compiler toolchain in order to distinguish
-   your native vs. cross compiler more easily.) Then run the
-   script create_cross_mingw.sh - it will
-   download, compile, and install a mingw32 toolchain.
-
-2. Edit the file custom.sh: Make a globale search-and-replace of
-   '\\' into '/' so that all directories are specified in unix
-   conventions. Set the variable cross_compile to "yes". Then
+1. Edit the file create_cross_mingw.sh and set the PREFIX= variable to
+   the preferred prefix of the mingw32 gcc/binutils on your
+   Linux. (It is strongly recommended to choose a different prefix
+   than your normal compiler toolchain in order to distinguish
+   your native vs. cross compiler more easily.) Then run the
+   script create_cross_mingw.sh - it will
+   download, compile, and install a mingw32 toolchain.
+
+2. Edit the file custom.sh: Make a globale search-and-replace of
+   '\\' into '/' so that all directories are specified in unix
+   conventions. Set the variable cross_compile to "yes". Then
    adjust the directories in custom.sh according to your
    preferred installation, especially $GLOBAL_DIR.
 
-3. Download the binary windows packages for "guile" and "g-wrap"
-   from http://www.tu-harburg.de/~et2cs/gnc/ and unpack them into
-   the directories $GUILE_DIR and $GWRAP_DIR as given in
-   custom.sh. (This is done because the build system for guile and
-   g-wrap doesn't support cross-compiling.)
+3. Download a binary windows packages for "guile" e.g. from
+   http://www.tu-harburg.de/~et2cs/gnc/ and unpack it into the
+   directory $GUILE_DIR as given in custom.sh. (This is done because
+   the build system for guile doesn't support cross-compiling.)
 
-4. Call install.sh which will read the directory settings from
+4. Call install.sh, which will read the directory settings from
    custom.sh. It should download, compile, and install everything
    automatically. Eventually the windows gnucash is installed into
    $GNUCASH_DIR. 
-
-5. The content of $GNUCASH_DIR (as well as all the other binary
-   packages) should then be copied to a windows machine. The paths
-   in $GNUCASH_DIR/bin/gnucash and/or $GNUCASH_DIR/bin/gnucash.bat
-   need to be adjusted for the installation location on the
-   windows machine.
-
-Good luck!
+
+5. The content of $GNUCASH_DIR (as well as all the other binary
+   packages) should then be copied to a windows machine. The paths
+   in $GNUCASH_DIR/bin/gnucash and/or $GNUCASH_DIR/bin/gnucash.bat
+   need to be adjusted for the installation location on the
+   windows machine.
+
+Good luck!

Modified: gnucash/branches/gda-dev/packaging/win32/custom.sh
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/custom.sh	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/custom.sh	2007-04-07 16:05:40 UTC (rev 15847)
@@ -6,9 +6,13 @@
 TMP_DIR=$GLOBAL_DIR\\tmp
 DOWNLOAD_DIR=$GLOBAL_DIR\\downloads
 
+GNUCASH_DIR=$GLOBAL_DIR\\gnucash
 REPOS_URL="http://svn.gnucash.org/repo/gnucash/trunk"
-REPOS_DIR=$GLOBAL_DIR\\repos
-GNUCASH_DIR=$GLOBAL_DIR\\gnucash
+REPOS_DIR=$GNUCASH_DIR\\repos
+# keep this pointing from BUILD_DIR to REPOS_DIR
+REL_REPOS_DIR=..\\repos
+BUILD_DIR=$GNUCASH_DIR\\build
+INSTALL_DIR=$GNUCASH_DIR\\inst
 
 ####
 cross_compile="no"
@@ -35,34 +39,39 @@
 fi
 ####
 
+# If "yes", build without optimizations (-O0) and ease debugging
+DISABLE_OPTIMIZATIONS=no
+
 MSYS_DIR=$GLOBAL_DIR\\msys
 
-WGET_DIR=$GLOBAL_DIR\\wget
+# tools here means binaries runnable without other DLLs or data files
+TOOLS_DIR=$GLOBAL_DIR\\tools
+WGET_DIR=$TOOLS_DIR
 #WGET=
 
 SF_MIRROR="http://heanet.dl.sourceforge.net/sourceforge"
 GTK_MIRROR="ftp.gtk.org/pub"
 GNOME_MIRROR="ftp.gnome.org/pub/gnome"
+GNOME_WIN32_URL="$GNOME_MIRROR/binaries/win32"
+GNOME_WIN32_DEPS_URL="$GNOME_WIN32_URL/dependencies"
 
 DTK_URL="$SF_MIRROR/mingw/msysDTK-1.0.1.exe"
 
-MINGW_URL="$SF_MIRROR/mingw/MinGW-5.0.3.exe"
+MINGW_URL="$SF_MIRROR/mingw/MinGW-5.1.0.exe"
 MINGW_DIR=$GLOBAL_DIR\\mingw
 
 UNZIP_URL="$SF_MIRROR/gnuwin32/unzip-5.51-1.exe"
-UNZIP_DIR=$GLOBAL_DIR\\unzip
+UNZIP_DIR=$TOOLS_DIR
 
-REGEX_BIN_URL="$SF_MIRROR/gnuwin32/regex-0.12-bin.zip"
-REGEX_LIB_URL="$SF_MIRROR/gnuwin32/regex-0.12-lib.zip"
+# do not use regex-gnu or regex-spencer v3.8.g3, see bug #382852
+REGEX_URL="$GNOME_WIN32_DEPS_URL/libgnurx-2.5.zip"
+REGEX_DEV_URL="$GNOME_WIN32_DEPS_URL/libgnurx-dev-2.5.zip"
 REGEX_DIR=$GLOBAL_DIR\\regex
 
 READLINE_BIN_URL="$SF_MIRROR/gnuwin32/readline-5.0-bin.zip"
 READLINE_LIB_URL="$SF_MIRROR/gnuwin32/readline-5.0-lib.zip"
 READLINE_DIR=$GLOBAL_DIR\\readline
 
-INDENT_BIN_URL="$SF_MIRROR/gnuwin32/indent-2.2.9-bin.zip"
-INDENT_DIR=$GLOBAL_DIR\\indent
-
 ACTIVE_PERL_URL="http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.zip"
 ACTIVE_PERL_DIR=$GLOBAL_DIR\\active-perl
 
@@ -75,55 +84,57 @@
 SLIB_URL="http://swiss.csail.mit.edu/ftpdir/scm/OLD/slib3a3.zip"
 GUILE_DIR=$GLOBAL_DIR\\guile
 
-OPENSSL_URL="http://www.slproweb.com/download/Win32OpenSSL-0_9_8d.exe"
+OPENSSL_BIN_URL="$SF_MIRROR/gnuwin32/openssl-0.9.7c-bin.zip"
+OPENSSL_LIB_URL="$SF_MIRROR/gnuwin32/openssl-0.9.7c-lib.zip"
 OPENSSL_DIR=$GLOBAL_DIR\\openssl
 
-PEXPORTS_URL="http://www.emmestech.com/software/cygwin/pexports-0.43/pexports-0.43.zip"
-PEXPORTS_DIR=$GLOBAL_DIR\\pexports
+MINGW_UTILS_URL="$SF_MIRROR/mingw/mingw-utils-0.3.tar.gz"
+MINGW_UTILS_DIR=$TOOLS_DIR
 
-LIBXML2_URL="http://www.zlatkovic.com/pub/libxml/libxml2-2.6.26.win32.zip"
+EXETYPE_SCRIPT=`pwd`/exetype.pl
+EXETYPE_DIR=$TOOLS_DIR
+
+LIBXML2_URL="http://www.zlatkovic.com/pub/libxml/libxml2-2.6.27.win32.zip"
+LIBXSLT_URL="http://www.zlatkovic.com/pub/libxml/libxslt-1.1.19.win32.zip"
 LIBXML2_DIR=$GLOBAL_DIR\\gnome #avoid XML_FLAGS
 
-EXPAT_URL="ftp://ftp.jclark.com/pub/xml/expat.zip"
-EXPAT_DIR=$GLOBAL_DIR\\gnome #avoid EXPAT_FLAGS
-
-GNOME_WIN32_URL="$GNOME_MIRROR/binaries/win32"
-GETTEXT_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/gettext-0.14.5.zip"
-GETTEXT_DEV_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/gettext-dev-0.14.5.zip"
-LIBICONV_URL="$GTK_MIRROR/glib/2.12/win32/dependencies/libiconv-1.9.1.bin.woe32.zip"
-GLIB_URL="$GNOME_WIN32_URL/glib/2.12/glib-2.12.4.zip"
-GLIB_DEV_URL="$GNOME_WIN32_URL/glib/2.12/glib-dev-2.12.4.zip"
-LIBJPEG_URL="$GNOME_MIRROR/platform/2.16/2.16.0/win32/dependencies/libjpeg-6b-4.zip"
+GETTEXT_URL="$GNOME_WIN32_DEPS_URL/gettext-0.14.5.zip"
+GETTEXT_DEV_URL="$GNOME_WIN32_DEPS_URL/gettext-dev-0.14.5.zip"
+LIBICONV_URL="$GNOME_WIN32_DEPS_URL/libiconv-1.9.1.bin.woe32.zip"
+GLIB_URL="$GNOME_WIN32_URL/glib/2.12/glib-2.12.11.zip"
+GLIB_DEV_URL="$GNOME_WIN32_URL/glib/2.12/glib-dev-2.12.11.zip"
+LIBJPEG_URL="$GNOME_WIN32_DEPS_URL/libjpeg-6b-4.zip"
 LIBPNG_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/libpng-1.2.8-bin.zip"
 ZLIB_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/zlib123-dll.zip"
-PKG_CONFIG_URL="$GTK_MIRROR/gtk/v2.10/win32/dependencies/pkg-config-0.20.zip"
-CAIRO_URL="$GNOME_MIRROR/platform/2.16/2.16.0/win32/dependencies/cairo-1.2.4.zip"
-CAIRO_DEV_URL="$GNOME_MIRROR/platform/2.16/2.16.0/win32/dependencies/cairo-dev-1.2.4.zip"
-FONTCONFIG_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/fontconfig-2.2.2-20040412.zip"
-FONTCONFIG_DEV_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/fontconfig-dev-2.2.2-20040412.zip"
-FREETYPE_URL="$GTK_MIRROR/gtk/v2.8/win32/dependencies/freetype-2.1.10.zip"
-FREETYPE_DEV_URL="$SF_MIRROR/gnuwin32/freetype-2.1.10-lib.zip"
+PKG_CONFIG_URL="$GNOME_WIN32_DEPS_URL/pkg-config-0.20.zip"
+CAIRO_URL="$GNOME_WIN32_DEPS_URL/cairo-1.4.2.zip"
+CAIRO_DEV_URL="$GNOME_WIN32_DEPS_URL/cairo-dev-1.4.2.zip"
+EXPAT_URL="$GNOME_WIN32_DEPS_URL/expat-2.0.0.zip"
+FONTCONFIG_URL="$GNOME_WIN32_DEPS_URL/fontconfig-2.3.2-tml-20060825.zip"
+FONTCONFIG_DEV_URL="$GNOME_WIN32_DEPS_URL/fontconfig-dev-2.3.2-tml-20060825.zip"
+FREETYPE_URL="$GNOME_WIN32_DEPS_URL/freetype-2.2.1.zip"
+FREETYPE_DEV_URL="$GNOME_WIN32_DEPS_URL/freetype-dev-2.2.1.zip"
 ATK_URL="$GNOME_WIN32_URL/atk/1.12/atk-1.12.3.zip"
 ATK_DEV_URL="$GNOME_WIN32_URL/atk/1.12/atk-dev-1.12.3.zip"
-PANGO_URL="$GNOME_WIN32_URL/pango/1.14/pango-1.14.5.zip"
-PANGO_DEV_URL="$GNOME_WIN32_URL/pango/1.14/pango-dev-1.14.5.zip"
+PANGO_URL="$GNOME_WIN32_URL/pango/1.16/pango-1.16.1.zip"
+PANGO_DEV_URL="$GNOME_WIN32_URL/pango/1.16/pango-dev-1.16.1.zip"
 LIBART_LGPL_URL="$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-2.3.17.zip"
 LIBART_LGPL_DEV_URL="$GNOME_WIN32_URL/libart_lgpl/2.3/libart_lgpl-dev-2.3.17.zip"
-GTK_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-2.10.6.zip"
-GTK_DEV_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-dev-2.10.6.zip"
-INTLTOOL_URL="$GNOME_WIN32_URL/intltool/0.35/intltool-0.35.0.zip"
-ORBIT2_URL="$GNOME_WIN32_URL/ORBit2/2.14/ORBit2-2.14.2.zip"
-ORBIT2_DEV_URL="$GNOME_WIN32_URL/ORBit2/2.14/ORBit2-dev-2.14.2.zip"
+GTK_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-2.10.11.zip"
+GTK_DEV_URL="$GNOME_WIN32_URL/gtk+/2.10/gtk+-dev-2.10.11.zip"
+INTLTOOL_URL="$GNOME_WIN32_URL/intltool/0.35/intltool-0.35.5.zip"
+ORBIT2_URL="$GNOME_WIN32_URL/ORBit2/2.13/ORBit2-2.13.3.zip"
+ORBIT2_DEV_URL="$GNOME_WIN32_URL/ORBit2/2.13/ORBit2-dev-2.13.3.zip"
 GAIL_URL="$GNOME_WIN32_URL/gail/1.9/gail-1.9.3.zip"
 GAIL_DEV_URL="$GNOME_WIN32_URL/gail/1.9/gail-dev-1.9.3.zip"
-POPT_URL="$GNOME_MIRROR/platform/2.16/2.16.0/win32/dependencies/popt-1.10.2-tml-20050828.zip"
-POPT_DEV_URL="$GNOME_MIRROR/platform/2.16/2.16.0/win32/dependencies/popt-dev-1.10.2-tml-20050828.zip"
+POPT_URL="$GNOME_WIN32_DEPS_URL/popt-1.10.2-tml-20050828.zip"
+POPT_DEV_URL="$GNOME_WIN32_DEPS_URL/popt-dev-1.10.2-tml-20050828.zip"
 GCONF_URL="$GNOME_WIN32_URL/GConf/2.14/GConf-2.14.0.zip"
 GCONF_DEV_URL="$GNOME_WIN32_URL/GConf/2.14/GConf-dev-2.14.0.zip"
 LIBBONOBO_URL="$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-2.16.0.zip"
 LIBBONOBO_DEV_URL="$GNOME_WIN32_URL/libbonobo/2.16/libbonobo-dev-2.16.0.zip"
-GNOME_VFS_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-2.14.2.zip"
-GNOME_VFS_DEV_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-dev-2.14.2.zip"
+GNOME_VFS_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-2.14.2-no-openssl.zip"
+GNOME_VFS_DEV_URL="$GNOME_WIN32_URL/gnome-vfs/2.14/gnome-vfs-dev-2.14.2-no-openssl.zip"
 LIBGNOME_URL="$GNOME_WIN32_URL/libgnome/2.16/libgnome-2.16.0-1.zip"
 LIBGNOME_DEV_URL="$GNOME_WIN32_URL/libgnome/2.16/libgnome-dev-2.16.0.zip"
 LIBGNOMECANVAS_URL="$GNOME_WIN32_URL/libgnomecanvas/2.14/libgnomecanvas-2.14.0.zip"
@@ -136,29 +147,64 @@
 LIBGLADE_DEV_URL="$GNOME_WIN32_URL/libglade/2.6/libglade-dev-2.6.0.zip"
 LIBGNOMEPRINT_URL="$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-2.12.1.zip"
 LIBGNOMEPRINT_DEV_URL="$GNOME_WIN32_URL/libgnomeprint/2.12/libgnomeprint-dev-2.12.1.zip"
-LIBGNOMEPRINTUI_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-2.12.1.zip"
-LIBGNOMEPRINTUI_DEV_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-dev-2.12.1.zip"
-GTKHTML_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-3.12.0.zip"
-GTKHTML_DEV_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-dev-3.12.0.zip"
+LIBGNOMEPRINTUI_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-2.12.1.zip"  # gnomeprint
+LIBGNOMEPRINTUI_DEV_URL="$GNOME_WIN32_URL/libgnomeprintui/2.12/libgnomeprintui-dev-2.12.1.zip"  # gnomeprint
+GTKHTML_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-3.12.2.zip"  # gnomeprint
+GTKHTML_DEV_URL="$GNOME_WIN32_URL/gtkhtml/3.12/gtkhtml-dev-3.12.2.zip"  # gnomeprint
+#GTKHTML_URL="$GNOME_WIN32_URL/gtkhtml/3.14/gtkhtml-3.14.0.zip"  # not gnomeprint
+#GTKHTML_DEV_URL="$GNOME_WIN32_URL/gtkhtml/3.14/gtkhtml-dev-3.14.0.zip"  # not gnomeprint
 GNOME_DIR=$GLOBAL_DIR\\gnome
 
-SWIG_URL="$SF_MIRROR/swig/swigwin-1.3.29.zip"
+SWIG_URL="$SF_MIRROR/swig/swigwin-1.3.31.zip"
 SWIG_DIR=$GLOBAL_DIR\\swig
 
-LIBGSF_URL="$GNOME_MIRROR/sources/libgsf/1.14/libgsf-1.14.2.tar.bz2"
+PCRE_BIN_URL="$SF_MIRROR/gnuwin32/pcre-6.4-1-bin.zip"
+PCRE_LIB_URL="$SF_MIRROR/gnuwin32/pcre-6.4-1-lib.zip"
+PCRE_DIR=$GLOBAL_DIR\\pcre
+
+LIBGSF_URL="$GNOME_MIRROR/sources/libgsf/1.14/libgsf-1.14.3.tar.bz2"
 LIBGSF_DIR=$GLOBAL_DIR\\libgsf
 
-# do not update this if you are unwilling to hack gnc-html-graph-gog.c
-GOFFICE_URL="$GNOME_MIRROR/sources/goffice/0.3/goffice-0.3.0.tar.bz2"
+GOFFICE_URL="$GNOME_MIRROR/sources/goffice/0.3/goffice-0.3.7.tar.bz2"
 GOFFICE_DIR=$GLOBAL_DIR\\goffice
-GOFFICE_PATCH=`pwd`/goffice-0.3.0-patch.diff
+GOFFICE_PATCH=`pwd`/goffice-0.3.7-patch.diff
 
-GLADE_URL="$GNOME_MIRROR/sources/glade3/3.0/glade3-3.0.2.tar.bz2"
+GLADE_URL="$GNOME_MIRROR/sources/glade3/3.0/glade3-3.1.2.tar.bz2"
 GLADE_DIR=$GLOBAL_DIR\\glade
 
-SVN_URL="http://subversion.tigris.org/files/documents/15/34093/svn-1.4.0-setup.exe"
+INNO_URL="http://files.jrsoftware.org/is/5/isetup-5.1.9.exe"
+INNO_DIR=$GLOBAL_DIR\\inno
+
+HH_URL="http://download.microsoft.com/download/OfficeXPProf/Install/4.71.1015.0/W98NT42KMe/EN-US/HTMLHELP.EXE"
+HH_DIR=$GLOBAL_DIR\\hh
+
+SVN_URL="http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe"
 SVN_DIR=$GLOBAL_DIR\\svn
 
+# OFX import in gnucash and ofx directconnect support for aqbanking
+OPENSP_URL="$SF_MIRROR/openjade/OpenSP-1.5.2.tar.gz"
+OPENSP_DIR=$GLOBAL_DIR\\opensp
+OPENSP_PATCH=`pwd`/opensp-1.5.2-patch.diff
+
+LIBOFX_URL="$SF_MIRROR/libofx/libofx-0.8.3.tar.gz"
+LIBOFX_DIR=$GLOBAL_DIR\\libofx
+LIBOFX_PATCH=`pwd`/libofx-0.8.3-patch.diff
+
+## online banking: gwenhywfar+aqbanking
+GWENHYWFAR_URL="$SF_MIRROR/gwenhywfar/gwenhywfar-2.5.4.tar.gz"
+GWENHYWFAR_DIR=$GLOBAL_DIR\\gwenhywfar
+
+KTOBLZCHECK_URL="$SF_MIRROR/ktoblzcheck/ktoblzcheck-1.13.tar.gz"
+# ktoblzcheck is being installed into GWENHYWFAR_DIR
+
+AQBANKING_URL="$SF_MIRROR/aqbanking/aqbanking-2.2.9.tar.gz"
+AQBANKING_DIR=$GLOBAL_DIR\\aqbanking
+
+DOCBOOK_XSL_URL="$SF_MIRROR/docbook/docbook-xsl-1.72.0.zip"
+DOCS_URL="http://svn.gnucash.org/repo/gnucash-docs/trunk"
+DOCS_DIR=$GLOBAL_DIR\\gnucash-docs
+##
+
 # There is no reason to ever need to comment these out!
 # * commented out glade, as it is not needed to run gnucash
 if test x$cross_compile != xyes ; then
@@ -169,7 +215,6 @@
 fi
 add_step inst_regex
 add_step inst_readline
-add_step inst_indent
 if test x$cross_compile != xyes ; then
  add_step inst_active_perl
 fi
@@ -178,14 +223,27 @@
 if test x$cross_compile != xyes ; then
  add_step inst_openssl
 fi
-add_step inst_pexports
+add_step inst_mingwutils
+add_step inst_exetype
 add_step inst_libxml2
-add_step inst_expat
 add_step inst_gnome
 add_step inst_swig
+add_step inst_pcre
 add_step inst_libgsf
 add_step inst_goffice
 #add_step inst_glade
+add_step inst_opensp
+add_step inst_libofx
+## Online banking:
+add_step inst_gwenhywfar
+add_step inst_ktoblzcheck
+add_step inst_aqbanking
+##
+if test x$cross_compile != xyes ; then
+ add_step inst_inno
+ add_step inst_hh
+fi
 add_step inst_svn
 add_step svn_up
 add_step inst_gnucash
+add_step inst_docs

Added: gnucash/branches/gda-dev/packaging/win32/dist.sh
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/dist.sh	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/dist.sh	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,245 @@
+#!/bin/sh
+
+set -e
+
+function qpushd() { pushd "$@" >/dev/null; }
+function qpopd() { popd >/dev/null; }
+function unix_path() { echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'; }
+
+qpushd "$(dirname $(unix_path "$0"))"
+. functions
+. custom.sh
+
+register_env_var PATH ":"
+
+function prepare() {
+    # this directory is hardcoded in gnucash.iss.in
+    DIST_DIR=${INSTALL_DIR}\\..\\dist
+    DIST_UDIR=`unix_path $DIST_DIR`
+    DIST_WFSDIR=`win_fs_path $DIST_DIR`
+    TMP_UDIR=`unix_path $TMP_DIR`
+    if [ -x $DIST_DIR ]; then
+        die "Please remove ${DIST_DIR} first"
+    fi
+    _UNZIP_UDIR=`unix_path $UNZIP_DIR`
+    _AUTOTOOLS_UDIR=`unix_path $AUTOTOOLS_DIR`
+    _GUILE_UDIR=`unix_path $GUILE_DIR`
+    _WIN_UDIR=`unix_path $WINDIR`
+    _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
+    _LIBXML2_UDIR=`unix_path $LIBXML2_DIR`
+    _GNOME_UDIR=`unix_path $GNOME_DIR`
+    _PCRE_UDIR=`unix_path $PCRE_DIR`
+    _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
+    _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
+    _OPENSP_UDIR=`unix_path $OPENSP_DIR`
+    _LIBOFX_UDIR=`unix_path $LIBOFX_DIR`
+    _GWENHYWFAR_UDIR=`unix_path $GWENHYWFAR_DIR`
+    _AQBANKING_UDIR=`unix_path $AQBANKING_DIR`
+    _GNUCASH_UDIR=`unix_path $GNUCASH_DIR`
+    _BUILD_UDIR=`unix_path $BUILD_DIR`
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
+    _INNO_UDIR=`unix_path $INNO_DIR`
+    add_to_env $_UNZIP_UDIR/bin PATH # unzip
+    add_to_env $_GNOME_UDIR/bin PATH # gconftool-2
+    add_to_env $_EXETYPE_UDIR/bin PATH # exetype
+}
+
+function dist_regex() {
+    setup RegEx
+    smart_wget $REGEX_URL $DOWNLOAD_DIR
+    unzip -q $LAST_FILE bin/libgnurx-0.dll -d $DIST_DIR
+}
+
+function dist_autotools() {
+    setup Autotools
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_AUTOTOOLS_UDIR/bin/*.dll $DIST_UDIR/bin
+}
+
+function dist_guile() {
+    setup Guile
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_GUILE_UDIR/bin/libguile{.,-ltdl.,-srfi}*dll $DIST_UDIR/bin
+    cp -a $_GUILE_UDIR/bin/guile.exe $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/share
+    cp -a $_GUILE_UDIR/share/guile $DIST_UDIR/share
+    [ -f $DIST_UDIR/share/guile/1.6/slibcat ] && rm $DIST_UDIR/share/guile/1.6/slibcat
+}
+
+function dist_openssl() {
+    setup OpenSSL
+    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_OPENSSL_UDIR/bin/lib{eay,ssl}*.dll $DIST_UDIR/bin
+}
+
+function dist_libxml2() {
+    setup LibXML2
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_LIBXML2_UDIR/bin/libxml2.dll $DIST_UDIR/bin
+}
+
+function dist_gnome() {
+    setup Gnome platform
+    wget_unpacked $GETTEXT_URL $DOWNLOAD_DIR $DIST_DIR
+    smart_wget $LIBICONV_URL $DOWNLOAD_DIR
+    unzip -q $LAST_FILE bin/iconv.dll -d $DIST_DIR
+    wget_unpacked $GLIB_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBJPEG_URL $DOWNLOAD_DIR $DIST_DIR
+    smart_wget $LIBPNG_URL $DOWNLOAD_DIR
+    unzip -q $LAST_FILE bin/libpng13.dll -d $DIST_DIR
+    smart_wget $ZLIB_URL $DOWNLOAD_DIR
+    unzip -q $LAST_FILE zlib1.dll -d $DIST_DIR\\bin
+    wget_unpacked $CAIRO_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $FONTCONFIG_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $FREETYPE_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $ATK_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $PANGO_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBART_LGPL_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GTK_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $ORBIT2_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GAIL_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $POPT_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GCONF_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBBONOBO_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $GNOME_VFS_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOME_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOMECANVAS_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBBONOBOUI_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOMEUI_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGLADE_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOMEPRINT_URL $DOWNLOAD_DIR $DIST_DIR
+    wget_unpacked $LIBGNOMEPRINTUI_URL $DOWNLOAD_DIR $DIST_DIR  # gnomeprint
+    wget_unpacked $GTKHTML_URL $DOWNLOAD_DIR $DIST_DIR
+    rm -rf $DIST_UDIR/etc/gconf/gconf.xml.defaults/{desktop,schemas}
+}
+
+function dist_pcre() {
+    setup pcre
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_PCRE_UDIR/bin/pcre3.dll $DIST_UDIR/bin
+}
+
+function dist_libgsf() {
+    setup libGSF
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_LIBGSF_UDIR/bin/libgsf*.dll $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/etc/gconf/schemas
+    cp -a $_LIBGSF_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas
+    mkdir -p $DIST_UDIR/lib
+    cp -a $_LIBGSF_UDIR/lib/locale $DIST_UDIR/lib
+}
+
+function dist_goffice() {
+    setup GOffice
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_GOFFICE_UDIR/bin/libgoffice*.dll $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/lib
+    cp -a $_GOFFICE_UDIR/lib/{goffice,locale} $DIST_UDIR/lib
+    mkdir -p $DIST_UDIR/share
+    cp -a $_GOFFICE_UDIR/share/{goffice,pixmaps} $DIST_UDIR/share
+}
+
+function dist_libofx() {
+    setup OpenSP and LibOFX
+    cp -a ${_OPENSP_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_OPENSP_UDIR}/share/OpenSP ${DIST_UDIR}/share
+    cp -a ${_LIBOFX_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_LIBOFX_UDIR}/bin/*.exe ${DIST_UDIR}/bin
+    cp -a ${_LIBOFX_UDIR}/share/libofx ${DIST_UDIR}/share
+}
+
+function dist_gwenhywfar() {
+    setup gwenhywfar
+    cp -a ${_GWENHYWFAR_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    mkdir -p ${DIST_UDIR}/etc
+    cp -a ${_GWENHYWFAR_UDIR}/etc/* ${DIST_UDIR}/etc
+    cp -a ${_GWENHYWFAR_UDIR}/lib/gwenhywfar ${DIST_UDIR}/lib
+}
+
+function dist_ktoblzcheck() {
+    setup ktoblzcheck
+    # dll is already copied in dist_gwenhywfar
+    cp -a ${_GWENHYWFAR_UDIR}/share/ktoblzcheck ${DIST_UDIR}/share
+}
+
+function dist_aqbanking() {
+    setup aqbanking
+    cp -a ${_AQBANKING_UDIR}/bin/*.exe ${DIST_UDIR}/bin
+    cp -a ${_AQBANKING_UDIR}/bin/*.dll ${DIST_UDIR}/bin
+    cp -a ${_AQBANKING_UDIR}/lib/aqbanking ${DIST_UDIR}/lib
+    cp -a ${_AQBANKING_UDIR}/share/aqbanking ${DIST_UDIR}/share
+    cp -a ${_AQBANKING_UDIR}/share/aqhbci ${DIST_UDIR}/share
+}
+
+function dist_gnucash() {
+    setup GnuCash
+    mkdir -p $DIST_UDIR/bin
+    cp -a $_INSTALL_UDIR/bin/* $DIST_UDIR/bin
+    mkdir -p $DIST_UDIR/etc/gconf/schemas
+    cp -a $_INSTALL_UDIR/etc/gconf/schemas/* $DIST_UDIR/etc/gconf/schemas
+    mkdir -p $DIST_UDIR/lib
+    cp -a $_INSTALL_UDIR/lib/locale $DIST_UDIR/lib
+    cp -a $_INSTALL_UDIR/lib/lib*.la $DIST_UDIR/lib
+    mkdir -p $DIST_UDIR/lib/gnucash
+    cp -a $_INSTALL_UDIR/lib/gnucash/lib*.dll $DIST_UDIR/lib/gnucash
+    cp -a $_INSTALL_UDIR/libexec $DIST_UDIR
+    mkdir -p $DIST_UDIR/share
+    cp -a $_INSTALL_UDIR/share/{gnucash,pixmaps,xml} $DIST_UDIR/share
+    cp -a $_BUILD_UDIR/packaging/win32/gnucash.iss $_GNUCASH_UDIR
+}
+
+function finish() {
+    for file in $DIST_UDIR/etc/gconf/schemas/*.schemas; do
+        echo -n "Installing $file ... "
+        gconftool-2 \
+            --config-source=xml:merged:${DIST_WFSDIR}/etc/gconf/gconf.xml.defaults \
+            --install-schema-file $file >/dev/null
+        echo "done"
+    done
+    gconftool-2 --shutdown
+
+    exetype $DIST_UDIR/libexec/gconfd-2.exe windows
+
+    # Strip redirections in distributed libtool .la files
+    for file in $DIST_UDIR/lib/*.la; do
+        cat $file | sed 's,^libdir=,#libdir=,' > $file.new
+        mv $file.new $file
+    done
+
+    echo "Now running the Inno Setup Compiler for creating the setup.exe"
+    ${_INNO_UDIR}/iscc ${_GNUCASH_UDIR}/gnucash.iss
+
+    # And changing output filename
+    SVN_REV=`grep GNUCASH_SVN_REV ${_BUILD_UDIR}/src/gnome-utils/gnc-svninfo.h | cut -d" " -f3 | cut -d\" -f2 `
+    SETUP_FILENAME="gnucash-2.0.99-svn-r${SVN_REV}-setup.exe"
+    qpushd ${_GNUCASH_UDIR}
+	mv gnucash-2.0.99-setup.exe ${SETUP_FILENAME}
+    qpopd
+    echo "Final resulting Setup program is:"
+    echo ${_GNUCASH_UDIR}/${SETUP_FILENAME}
+}
+
+prepare
+dist_regex
+dist_autotools
+dist_guile
+dist_openssl
+dist_libxml2
+dist_gnome
+dist_pcre
+dist_libgsf
+dist_goffice
+dist_libofx
+dist_gwenhywfar
+dist_aqbanking
+dist_gnucash
+finish
+qpopd
+
+
+### Local Variables: ***
+### sh-basic-offset: 4 ***
+### tab-width: 8 ***
+### End: ***

Added: gnucash/branches/gda-dev/packaging/win32/exetype.pl
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/exetype.pl	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/exetype.pl	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+
+# URL: http://jenda.krynicky.cz/perl/GUIscripts.html
+# code by: Jan Dubois <jand at ActiveState.com>
+
+use strict;
+unless (@ARGV == 2) {
+    print "Usage: $0 exefile [CONSOLE|WINDOWS]\n";
+    exit;
+}
+unless ($ARGV[1] =~ /^(console|windows)$/i) {
+    print "Invalid subsystem $ARGV[1], please use CONSOLE or WINDOWS\n";
+    exit;
+}
+my ($record,$magic,$offset,$size);
+open EXE, "+< $ARGV[0]" or die "Cannot open $ARGV[0]: $!";
+binmode EXE;
+read EXE, $record, 32*4;
+($magic,$offset) = unpack "Sx58L", $record;
+die "Not an MSDOS executable file" unless $magic == 0x5a4d;
+seek EXE, $offset, 0;
+read EXE, $record, 24;
+($magic,$size) = unpack "Lx16S", $record;
+die "PE header not found" unless $magic == 0x4550;
+die "Optional header not in NT32 format" unless $size == 224;
+seek EXE, $offset+24+68, 0;
+print EXE pack "S", uc($ARGV[1]) eq 'CONSOLE' ? 3 : 2;
+close EXE;

Added: gnucash/branches/gda-dev/packaging/win32/functions
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/functions	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/functions	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,106 @@
+function add_step() { steps=("${steps[@]}" "$@"); }
+function quiet() { "$@" &>/dev/null; }
+
+# c:/dir/sub
+function win_fs_path() { echo "$*" | sed 's,\\,/,g'; }
+
+# usage:  smart_wget URL DESTDIR
+function smart_wget() {
+    _FILE=`basename $1`
+    _DLD=`unix_path $2`
+
+    # If the file already exists in the download directory ($2)
+    # then don't do anything.  But if it does NOT exist then
+    # download the file to the tmpdir and then when that completes
+    # move it to the dest dir.
+    if [ ! -f $_DLD/$_FILE ] ; then
+        wget --passive-ftp -c $1 -P $TMP_DIR
+        mv $TMP_UDIR/$_FILE $_DLD
+    fi
+    LAST_FILE=$_DLD/$_FILE
+}
+
+# usage:  wget_unpacked URL DOWNLOAD_DIR UNPACK_DIR
+function wget_unpacked() {
+    smart_wget $1 $2
+    _UPD=`unix_path $3`
+    echo -n "Extracting ${LAST_FILE##*/} ... "
+    case $LAST_FILE in
+        *.zip)     unzip -q -o $LAST_FILE -d $_UPD;;
+        *.tar.gz)  tar -xzpf $LAST_FILE -C $_UPD;;
+        *.tar.bz2) tar -xjpf $LAST_FILE -C $_UPD;;
+        *)         die "Cannot unpack file $LAST_FILE!";;
+    esac
+    echo "done"
+}
+
+function setup() {
+    echo
+    echo "############################################################"
+    echo "###  $*"
+    echo "############################################################"
+}
+
+function die() {
+    echo
+    [ "$*" ] && echo "!!! $* !!!"
+    echo "!!! ABORTING !!!"
+    exit -1
+}
+
+# usage: register_env_var NAME SEPARATOR [DEFAULT]
+function register_env_var() {
+    [ $# -ge 2 -a $# -le 3 ] || die hard
+    eval "SEPS_$1"'="'"$2"'"'
+    if [ $# -eq 3 ]; then
+        eval "$1_BASE=$3"
+    else
+        eval "$1_BASE"'=$'"$1"
+    fi
+    eval "$1_ADDS="
+    eval export "$1"
+    ENV_VARS="$ENV_VARS $1"
+}
+ENV_VARS=
+
+# usage: add_to_env VALUE NAME
+function add_to_env() {
+    _SEP=`eval echo '"$'"SEPS_$2"'"'`
+    _ENV=`eval echo '"$'"$2"'"'`
+    _SED=`eval echo '"s#.*'"${_SEP}$1${_SEP}"'.*##"'`
+    _TEST=`echo "${_SEP}${_ENV}${_SEP}" | sed "${_SED}"`
+    if [ "$_TEST" ]; then
+	if [ "$_ENV" ]; then
+	    eval "$2_ADDS"'="'"$1${_SEP}"'$'"$2_ADDS"'"'
+	else
+	    eval "$2_ADDS"'="'"$1"'"'
+	fi
+	eval "$2"'="$'"$2_ADDS"'$'"$2_BASE"'"'
+    fi
+}
+
+# usage: set_env_or_die VALUE NAME
+function set_env_or_die() {
+    _OLDADDS=`eval echo '"$'"$2_ADDS"'"'`
+    add_to_env "$1" "$2"
+    _NEWADDS=`eval echo '"$'"$2_ADDS"'"'`
+    if [ "$_OLDADDS" != "$_NEWADDS" ]; then
+        _BASE=`eval echo '"$'"$2_BASE"'"'`
+        if [ "$_BASE" ]; then
+            _ENV=`eval echo '"$'"$2"'"'`
+            echo "Must not overwrite environment variable '$2' (${_OLDADDS}${_BASE}) by '$1'."
+            echo "Try to remove the offending installed software or unset the variable."
+            die
+        fi
+    fi
+}
+
+function assert_one_dir() {
+    quiet [ -d "$@" ] || die "Detected multiple directories where only one was expected; please delete all but the latest one: $@"
+}
+
+### Local Variables: ***
+### mode: shell-script ***
+### sh-basic-offset: 4 ***
+### tab-width: 8 ***
+### End: ***

Modified: gnucash/branches/gda-dev/packaging/win32/gnucash.iss.in
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/gnucash.iss.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/gnucash.iss.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,12 +15,12 @@
 AppUpdatesURL=http://www.gnucash.org
 DefaultDirName={pf}\@PACKAGE@
 DefaultGroupName=GnuCash
-LicenseFile=..\..\COPYING
+LicenseFile=@prefix@\..\dist\share\@PACKAGE@\doc\COPYING
 Compression=lzma
 OutputDir=.
 OutputBaseFilename=@PACKAGE at -@VERSION at -setup
 UninstallFilesDir={app}\uninstall\@PACKAGE@
-InfoAfterFile=README
+InfoAfterFile=@prefix@\..\dist\share\@PACKAGE@\doc\README
 
 [Types]
 Name: "full"; Description: "{cm:FullInstall}"
@@ -28,20 +28,21 @@
 
 [Components]
 Name: "main"; Description: "{cm:MainFiles}"; Types: full custom; Flags: fixed
-Name: "translations"; Description: "{cm:TranslFiles}"; Types: full
-Name: "templates"; Description: "{cm:TemplFiles}"; Types: full
+;Name: "translations"; Description: "{cm:TranslFiles}"; Types: full
+;Name: "templates"; Description: "{cm:TemplFiles}"; Types: full
 
 [Tasks]
 Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
 Name: menuicon; Description: "{cm:CreateMenuLink}"; GroupDescription: "{cm:AdditionalIcons}"
 
 [Icons]
-Name: "{group}\GnuCash"; Filename: "{app}\bin\gnucash.bat"; WorkingDir: "{app}\bin"; Comment: "GnuCash Free Finance Manager"; IconFilename: "{app}\share\pixmaps\gnucash-icon.png"; Tasks: menuicon
+Name: "{group}\GnuCash"; Filename: "{app}\bin\gnucash.bat"; WorkingDir: "{app}\bin"; Comment: "GnuCash Free Finance Manager"; IconFilename: "{app}\share\gnucash\pixmaps\gnucash-icon.ico"; Tasks: menuicon
 Name: "{group}\Uninstall GnuCash"; Filename: "{uninstallexe}"; Tasks: menuicon
-Name: "{userdesktop}\GnuCash"; Filename: "{app}\bin\gnucash.bat"; WorkingDir: "{app}\bin"; Comment: "GnuCash Free Finance Manager"; IconFilename: "{app}\share\pixmaps\gnucash-icon.png"; Tasks: desktopicon
+Name: "{userdesktop}\GnuCash"; Filename: "{app}\bin\gnucash.bat"; WorkingDir: "{app}\bin"; Comment: "GnuCash Free Finance Manager"; IconFilename: "{app}\share\gnucash\pixmaps\gnucash-icon.ico"; Tasks: desktopicon
 
 [Run]
 Filename: "{app}\bin\gnucash.bat"; Description: "{cm:RunPrg}"; WorkingDir: "{app}\bin"; Flags: postinstall skipifsilent
+Filename: "{app}\bin\guile.bat"; Parameters: "-c ""(use-modules (ice-9 slib)) (require 'printf)"""; Flags: runhidden
 
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Here we configure the included files and the place of their
@@ -49,43 +50,74 @@
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 [Files]
 ; The main executables and DLLs
-Source: "@prefix@\bin\*"; DestDir: "{app}\bin"; Flags: recursesubdirs; Components: main
-Source: "@prefix@\etc\*"; DestDir: "{app}\etc"; Flags: recursesubdirs; Components: main
-Source: "@prefix@\lib\*"; DestDir: "{app}\lib"; Flags: recursesubdirs; Components: main
-Source: "@prefix@\libexec\*"; DestDir: "{app}\libexec"; Flags: recursesubdirs; Components: main
-Source: "@prefix@\share\*"; DestDir: "{app}\share"; Flags: recursesubdirs; Components: main
+Source: "@prefix@\..\dist\bin\*"; DestDir: "{app}\bin"; Flags: recursesubdirs; Components: main; AfterInstall: MyAfterInstallConfig()
+; Note: The above AfterInstall function will create the 
+; gnucash.bat file on-the-fly by the Pascal script below.
 
-; The translations (no idea why mingw installs them in prefix/lib/locale)
-Source: "@prefix@\lib\locale\*"; DestDir: "{app}\lib\locale"; Flags: recursesubdirs; Components: translations
+Source: "@prefix@\..\dist\etc\*"; DestDir: "{app}\etc"; Flags: recursesubdirs; Components: main
+Source: "@prefix@\..\dist\lib\*"; DestDir: "{app}\lib"; Flags: recursesubdirs; Components: main
+Source: "@prefix@\..\dist\libexec\*"; DestDir: "{app}\libexec"; Flags: recursesubdirs; Components: main
+Source: "@prefix@\..\dist\share\*"; DestDir: "{app}\share"; Flags: recursesubdirs; Components: main
 
-; The account templates
-Source: "@prefix@\share\gnucash\accounts\*"; DestDir: "{app}\share\gnucash\accounts"; Flags: recursesubdirs; Components: templates
+;; The translations (no idea why mingw installs them in prefix/lib/locale)
+;Source: "@prefix@\..\dist\lib\locale\*"; DestDir: "{app}\lib\locale"; Flags: recursesubdirs; Components: translations
+;
+;; The account templates
+;Source: "@prefix@\..\dist\share\gnucash\accounts\*"; DestDir: "{app}\share\gnucash\accounts"; Flags: recursesubdirs; Components: templates
 
-; The loading shell script. It is post-processed by the Pascal script below.
-Source: "..\..\src\bin\gnucash.in"; DestDir: "{app}\bin"; Components: main; AfterInstall: MyAfterInstallConfig(ExpandConstant('{app}\bin\gnucash'))
-
 ; And all the documentation
-Source: "..\..\README"; DestDir: "{app}\doc\@PACKAGE@"; Components: main
-Source: "..\..\COPYING"; DestDir: "{app}\doc\@PACKAGE@"; Flags: ignoreversion; Components: main
-Source: "..\..\AUTHORS"; DestDir: "{app}\doc\@PACKAGE@"; Components: main
-Source: "..\..\ChangeLog"; DestDir: "{app}\doc\@PACKAGE@"; Components: main
+Source: "@prefix@\..\dist\share\@PACKAGE@\doc\README"; DestDir: "{app}\doc\@PACKAGE@"; Components: main
+Source: "@prefix@\..\dist\share\@PACKAGE@\doc\COPYING"; DestDir: "{app}\doc\@PACKAGE@"; Flags: ignoreversion; Components: main
+Source: "@prefix@\..\dist\share\@PACKAGE@\doc\AUTHORS"; DestDir: "{app}\doc\@PACKAGE@"; Components: main
+Source: "@prefix@\..\dist\share\@PACKAGE@\doc\ChangeLog"; DestDir: "{app}\doc\@PACKAGE@"; Components: main
 
 
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Define the registry keys Setup should create (HKCU = HKEY_CURRENT_USER)
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 [Registry]
-Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "prefix"; ValueData: "{app}"
-Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "libdir"; ValueData: "{app}\lib"
-Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "pkglibdir"; ValueData: "{app}\lib\@PACKAGE@"
-Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "sysconfdir"; ValueData: "{app}\etc"
-Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "localedir"; ValueData: "{app}\share\locale"
+Root: HKCU; Subkey: "Software\GnuCash"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "prefix"; ValueData: "{app}"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "libdir"; ValueData: "{app}\lib"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "pkglibdir"; ValueData: "{app}\lib\@PACKAGE@"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "sysconfdir"; ValueData: "{app}\etc"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\GnuCash\Paths"; ValueType: string; ValueName: "localedir"; ValueData: "{app}\share\locale"; Flags: uninsdeletevalue
 
+; Additionally, we have to install the paths for gwenhywfar
+Root: HKCU; Subkey: "Software\Gwenhywfar"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\Gwenhywfar\Paths"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\Gwenhywfar\Paths"; ValueType: string; ValueName: "prefix"; ValueData: "{app}"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Gwenhywfar\Paths"; ValueType: string; ValueName: "libdir"; ValueData: "{app}\lib"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Gwenhywfar\Paths"; ValueType: string; ValueName: "plugindir"; ValueData: "{app}\lib\gwenhywfar\plugins\38"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Gwenhywfar\Paths"; ValueType: string; ValueName: "sysconfdir"; ValueData: "{app}\etc"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Gwenhywfar\Paths"; ValueType: string; ValueName: "localedir"; ValueData: "{app}\share\locale"; Flags: uninsdeletevalue
+
+; And we also need some registry keys for aqbanking
+Root: HKCU; Subkey: "Software\Aqbanking"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\Aqbanking\Paths"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\Aqbanking\Paths"; ValueType: string; ValueName: "providerdir"; ValueData: "{app}\lib\aqbanking\plugins\16\providers"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Aqbanking\Paths"; ValueType: string; ValueName: "bankinfodir"; ValueData: "{app}\lib\aqbanking\plugins\16\bankinfo"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Aqbanking\Paths"; ValueType: string; ValueName: "importerdir"; ValueData: "{app}\lib\aqbanking\plugins\16\imexporters"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Aqbanking\Paths"; ValueType: string; ValueName: "pkgdatadir"; ValueData: "{app}\share\aqbanking"; Flags: uninsdeletevalue
+Root: HKCU; Subkey: "Software\Aqbanking\Paths"; ValueType: string; ValueName: "sysconfdir"; ValueData: "{app}\etc"; Flags: uninsdeletevalue
+
+; And even one for aqhbci
+Root: HKCU; Subkey: "Software\AqHbci"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\AqHbci\Paths"; ValueType: none; Flags: uninsdeletekeyifempty
+Root: HKCU; Subkey: "Software\AqHbci\Paths"; ValueType: string; ValueName: "xmldatadir"; ValueData: "{app}\share\aqhbci\xml"; Flags: uninsdeletevalue
+
+
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Delete the created config script on uninstall
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 [UninstallDelete]
-Type: files; Name: "{app}\bin\gnucash"
+Type: files; Name: "{app}\bin\gnucash.bat"
+Type: files; Name: "{app}\bin\guile.bat"
+Type: files; Name: "{app}\share\guile\1.6\slibcat"
+Type: filesandordirs; Name: "{app}\share\guile"
+Type: filesandordirs; Name: "{app}\etc\gconf"
+Type: dirifempty; Name: "{app}\etc"
 
 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; This large section is a Pascal scripting program that will modify
@@ -106,41 +138,40 @@
   StringChange(Result, '\', '/');
 end;
 
-procedure MyAfterInstallConfig(FileName: String);
+procedure MyAfterInstallConfig();
 var
-  FileString, appdir, libdir, pkglibdir, pkgdatadir: String;
+  FileName, FileString, appdir, libdir, pkglibdir, pkgdatadir: String;
   Res: Boolean;
 begin
 
-  { Load the unchanged original file }
-  Res := LoadStringFromFile(Format('%s.in',[FileName]), FileString);
-  if Res = False then
-    MsgBox('Error on loading '+FileName+'.in for final adaptation', mbInformation, MB_OK);
+  { Get the installation-specific paths }
+  appdir := ExpandConstant('{app}');
+  libdir := appdir + '\lib';
+  pkglibdir := libdir + '\gnucash';
+  pkgdatadir := appdir + '\share\gnucash';
 
-  { Insert the custom file header; #10 is the linefeed character }
-  Insert('#!/bin/sh '#10'dir="@prefix'+'@"'#10, FileString, 0);
+  { Create the gnucash.bat file; #10 is the linefeed character and #13 CR }
+  FileName := appdir + '\bin\gnucash.bat' ;
+  FileString := 'set PATH=' + appdir + '\bin;' + libdir + ';' + libdir + '\gnucash;%PATH%'#13#10 ;
 
-  { Get the installation-specific paths }
-  appdir := MingwBacksl(ExpandConstant('{app}'));
-  libdir := appdir + '/lib';
-  pkglibdir := libdir + '/gnucash';
-  pkgdatadir := appdir + '/share/gnucash';
+  FileString := FileString + 'set GUILE_WARN_DEPRECATED=no'#13#10 ;
+  FileString := FileString + 'set GNC_MODULE_PATH=' + pkglibdir + ''#13#10 ;
+  FileString := FileString + 'set GUILE_LOAD_PATH=' + pkgdatadir + '\guile-modules;' + pkgdatadir + '\scm;' + appdir + '\share\guile\1.6;%GUILE_LOAD_PATH%'#13#10 ;
+  FileString := FileString + 'set LTDL_LIBRARY_PATH=' + libdir + ''#13#10 ;
+  FileString := FileString + 'start gnucash-bin'#13#10 ;
 
-  { Now make all the replacements }
-  { Explanation: StringChange(S,FromStr,ToStr): Change all occurances in S of FromStr to ToStr. }
-  StringChange(FileString, '@'+'-PATH_SEPARATOR-@', ';');
-  StringChange(FileString, '@'+'-BIN_DIR-@', appdir + '/bin');
-  StringChange(FileString, '@'+'-GNC_PKGLIB_INSTALLDIR-@', pkglibdir);
-  StringChange(FileString, '@'+'-GNC_MODULE_DIR-@', pkglibdir);
-  StringChange(FileString, '@'+'-GNC_LIB_INSTALLDIR-@', libdir);
-  StringChange(FileString, '@'+'-GNC_GUILE_MODULE_DIR-@', pkgdatadir + '/guile-modules');
-  StringChange(FileString, '@'+'-GNC_SCM_INSTALL_DIR-@', pkgdatadir + '/scm');
-
   { Save the final file }
   Res := SaveStringToFile(FileName, FileString, False);
   if Res = False then
-    MsgBox('Error on saving '+FileName+' for final adaptation', mbInformation, MB_OK);
+    MsgBox('Error on saving '+FileName+' for completing the installation', mbInformation, MB_OK);
 
+  FileName := appdir + '\bin\guile.bat' ;
+  FileString := 'set GUILE_LOAD_PATH=' + pkgdatadir + '\guile-modules;' + pkgdatadir + '\scm;' + appdir + '\share\guile\1.6;%GUILE_LOAD_PATH%'#13#10 ;
+  FileString := FileString + 'start guile.exe %*'#13#10 ;
+  Res := SaveStringToFile(FileName, FileString, False);
+  if Res = False then
+    MsgBox('Error on saving '+FileName+' for completing the installation', mbInformation, MB_OK);
+
 end;
 
 

Added: gnucash/branches/gda-dev/packaging/win32/goffice-0.3.7-patch.diff
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/goffice-0.3.7-patch.diff	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/goffice-0.3.7-patch.diff	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,91 @@
+diff -Nur goffice-0.3.7-old/goffice/Makefile.am goffice-0.3.7/goffice/Makefile.am
+--- goffice-0.3.7-old/goffice/Makefile.am	Thu Mar  1 23:32:46 2007
++++ goffice-0.3.7/goffice/Makefile.am	Sat Mar 10 16:05:03 2007
+@@ -24,7 +24,8 @@
+ libgoffice_0_la_DEPENDENCIES = goffice.def
+ libgoffice_0_la_LDFLAGS += -no-undefined -export-symbols goffice.def
+ if WITH_NATIVE_WIN32
+-libgoffice_0_la_LIBADD += -luuid -lhtmlhelp -lurlmon
++libgoffice_0_la_LDFLAGS += -no-undefined
++libgoffice_0_la_LIBADD += -luuid
+ endif
+ endif
+ 
+@@ -69,7 +70,7 @@
+ 	data/local.def drawing/local.def graph/local.def \
+ 	gtk/local.def ms-compat/local.def utils/local.def
+ 	echo EXPORTS > $@ && \
+-	cat $^ | sort >> $@
++	cat $^ | sort | sed '/^go_doc_mark_not_modified$$/d;/^go_plugin_init$$/d;/^go_plugin_shutdown$$/d' >> $@
+ 
+ if HAVE_LIBEXE
+ goffice_mslibdir = $(DESTDIR)$(libdir)
+diff -Nur goffice-0.3.7-old/goffice-win32.mk goffice-0.3.7/goffice-win32.mk
+--- goffice-0.3.7-old/goffice-win32.mk	Mon Jan  1 02:38:17 2007
++++ goffice-0.3.7/goffice-win32.mk	Sat Mar 10 16:05:03 2007
+@@ -16,7 +16,7 @@
+ 	  fi; \
+ 	done; \
+ 	cat $(top_builddir)/goffice/goffice-config.h $$hdrs_list | \
+-		sed -e 's/^#[ \t]*include[ \t]\+.*$$//g' | \
++		sed -e 's/^#[ 	]*include[ 	]\+.*$$//g' | \
+ 		$(CPP) $(AM_CPPFLAGS) "-DGO_VAR_DECL=__declspec(dllexport)" -P - > xgen-localdef.1 && \
+ 	perl $(top_srcdir)/dumpdef.pl \
+ 		xgen-localdef.1 > xgen-localdef.2 \
+diff -Nur goffice-0.3.7-old/gtk-doc.m4 goffice-0.3.7/gtk-doc.m4
+--- goffice-0.3.7-old/gtk-doc.m4	Thu Jan  1 00:00:00 1970
++++ goffice-0.3.7/gtk-doc.m4	Sat Mar 10 16:05:03 2007
+@@ -0,0 +1,53 @@
++dnl -*- mode: autoconf -*-
++
++# serial 1
++
++dnl Usage:
++dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
++AC_DEFUN([GTK_DOC_CHECK],
++[
++  AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
++  AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
++  dnl for overriding the documentation installation directory
++  AC_ARG_WITH(html-dir,
++    AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
++    [with_html_dir='${datadir}/gtk-doc/html'])
++  HTML_DIR="$with_html_dir"
++  AC_SUBST(HTML_DIR)
++
++  dnl enable/disable documentation building
++  AC_ARG_ENABLE(gtk-doc,
++    AC_HELP_STRING([--enable-gtk-doc],
++                   [use gtk-doc to build documentation [default=no]]),,
++    enable_gtk_doc=no)
++
++  have_gtk_doc=no
++  if test x$enable_gtk_doc = xyes; then
++    if test -z "$PKG_CONFIG"; then
++      AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++    fi
++    if test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists gtk-doc; then
++      have_gtk_doc=yes
++    fi
++
++  dnl do we want to do a version check?
++ifelse([$1],[],,
++    [gtk_doc_min_version=$1
++    if test "$have_gtk_doc" = yes; then
++      AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version])
++      if $PKG_CONFIG --atleast-version $gtk_doc_min_version gtk-doc; then
++        AC_MSG_RESULT(yes)
++      else
++        AC_MSG_RESULT(no)
++        have_gtk_doc=no
++      fi
++    fi
++])
++    if test "$have_gtk_doc" != yes; then
++      enable_gtk_doc=no
++    fi
++  fi
++
++  AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
++  AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL")
++])

Modified: gnucash/branches/gda-dev/packaging/win32/install.sh
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/install.sh	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/install.sh	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,152 +2,99 @@
 
 set -e
 
-function add_step() { steps=("${steps[@]}" "$@"); }
 function qpushd() { pushd "$@" >/dev/null; }
 function qpopd() { popd >/dev/null; }
+function unix_path() { echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'; }
 
-# c:/dir/sub
-function win_fs_path() {
-    echo "$*" | sed 's,\\,/,g'
-}
-
-# /c/dir/sub
-function unix_path() {
-    echo "$*" | sed 's,^\([A-Za-z]\):,/\1,;s,\\,/,g'
-}
-
 qpushd "$(dirname $(unix_path "$0"))"
+. functions
 . custom.sh
 
-SEPS_ACLOCAL_FLAGS=" "
-SEPS_AUTOTOOLS_CPPFLAGS=" "
-SEPS_AUTOTOOLS_LDFLAGS=" "
-SEPS_GNOME_CPPFLAGS=" "
-SEPS_GNOME_LDFLAGS=" "
-SEPS_GUILE_LOAD_PATH=";"
-SEPS_GUILE_CPPFLAGS=" "
-SEPS_GUILE_LDFLAGS=" "
-SEPS_INTLTOOL_PERL=" "
-SEPS_PATH=":"
-SEPS_PKG_CONFIG_PATH=":"
-SEPS_READLINE_CPPFLAGS=" "
-SEPS_READLINE_LDFLAGS=" "
-SEPS_REGEX_CPPFLAGS=" "
-SEPS_REGEX_LDFLAGS=" "
-ENV_VARS="\
-ACLOCAL_FLAGS \
-AUTOTOOLS_CPPFLAGS \
-AUTOTOOLS_LDFLAGS \
-GNOME_CPPFLAGS \
-GNOME_LDFLAGS \
-GUILE_LOAD_PATH \
-GUILE_CPPFLAGS \
-GUILE_LDFLAGS \
-INTLTOOL_PERL \
-PATH \
-PKG_CONFIG_PATH \
-READLINE_CPPFLAGS \
-READLINE_LDFLAGS \
-REGEX_CPPFLAGS \
-REGEX_LDFLAGS \
-"
+register_env_var ACLOCAL_FLAGS " "
+register_env_var AUTOTOOLS_CPPFLAGS " "
+register_env_var AUTOTOOLS_LDFLAGS " "
+register_env_var GNOME_CPPFLAGS " "
+register_env_var GNOME_LDFLAGS " "
+register_env_var GUILE_LOAD_PATH ";"
+register_env_var GUILE_CPPFLAGS " "
+register_env_var GUILE_LDFLAGS " "
+register_env_var HH_CPPFLAGS " "
+register_env_var HH_LDFLAGS " "
+register_env_var INTLTOOL_PERL " "
+register_env_var KTOBLZCHECK_CPPFLAGS " "
+register_env_var KTOBLZCHECK_LDFLAGS " "
+register_env_var PATH ":"
+register_env_var PCRE_CPPFLAGS " "
+register_env_var PCRE_LDFLAGS " "
+register_env_var PKG_CONFIG ":" ""
+register_env_var PKG_CONFIG_PATH ":"
+register_env_var READLINE_CPPFLAGS " "
+register_env_var READLINE_LDFLAGS " "
+register_env_var REGEX_CPPFLAGS " "
+register_env_var REGEX_LDFLAGS " "
 
-function setup() {
-    echo
-    echo "############################################################"
-    echo "###  $*"
-    echo "############################################################"
-}
-
-function die() {
-    echo
-    echo "!!! $* !!!"
-    echo "!!! ABORTING !!!"
-    exit -1
-}
-
-function quiet() { "$@" &>/dev/null; }
-function add_to_env() {
-    _SEP=`eval echo '"$'"SEPS_$2"'"'`
-    _ENV=`eval echo '"$'"$2"'"'`
-    _SED=`eval echo '"s#.*'"${_SEP}$1${_SEP}"'.*##"'`
-    _TEST=`echo "${_SEP}${_ENV}${_SEP}" | sed "${_SED}"`
-    if [ "$_TEST" ]; then
-	if [ "$_ENV" ]; then
-	    eval "$2_ADDS"'="'"$1${_SEP}"'$'"$2_ADDS"'"'
-	else
-	    eval "$2_ADDS"'="'"$1"'"'
-	fi
-	eval "$2"'="$'"$2_ADDS"'$'"$2_BASE"'"'
+function prepare() {
+    # Necessary so that intltoolize doesn't come up with some
+    # foolish AC_CONFIG_AUX_DIR; bug#362006
+    # We cannot simply create install-sh in the repository, because
+    # this will confuse other parts of the tools
+    _REPOS_UDIR=`unix_path $REPOS_DIR`
+    level0=.
+    level1=$(basename ${_REPOS_UDIR})
+    level2=$(basename $(dirname ${_REPOS_UDIR}))"/"$level1
+    for mydir in $level0 $level1 $level2; do
+        if [ -f $mydir/make-gnucash-patch.in ]; then
+            die "Do not save install.sh in the repository or one its parent directories"
+        fi
+    done
+#     # Remove old empty install-sh files
+#     if [ -f ${_REPOS_UDIR}/install-sh -a "$(cat ${_REPOS_UDIR}/install-sh &>/dev/null | wc -l)" -eq 0 ]; then
+#         rm -f ${_REPOS_UDIR}/install-sh
+#     fi
+    # Partially remove RegEx-GNU if installed
+    _REGEX_UDIR=`unix_path $REGEX_DIR`
+    if [ -f ${_REGEX_UDIR}/contrib/regex-0.12-GnuWin32.README ]; then
+        qpushd ${_REGEX_UDIR}
+            rm -f bin/*regex*.dll
+            rm -f contrib/regex*
+            rm -f lib/*regex*
+        qpopd
     fi
-}
 
-function prepare() {
-    mkdir -p $TMP_DIR
-    mkdir -p $DOWNLOAD_DIR
-    for _ENV in $ENV_VARS; do
-	eval "${_ENV}_BASE"'=$'"${_ENV}"
-	eval "${_ENV}_ADDS="
-	eval export "${_ENV}"
-    done
     DOWNLOAD_UDIR=`unix_path $DOWNLOAD_DIR`
     TMP_UDIR=`unix_path $TMP_DIR`
-}
+    mkdir -p $TMP_UDIR
+    mkdir -p $DOWNLOAD_UDIR
 
-# usage:  smart_wget URL DESTDIR
-function smart_wget() {
-    _FILE=`basename $1`
-    _DLD=`unix_path $2`
-
-    # If the file already exists in the download directory ($2)
-    # then don't do anything.  But if it does NOT exist then
-    # download the file to the tmpdir and then when that completes
-    # move it to the dest dir.
-    if [ ! -f $_DLD/$_FILE ] ; then
-	wget --passive-ftp -c $1 -P $TMP_DIR
-	mv $TMP_UDIR/$_FILE $_DLD
+    if [ "$DISABLE_OPTIMIZATIONS" = "yes" ]; then
+        export CFLAGS="$CFLAGS -g -O0"
     fi
-    LAST_FILE=$_DLD/$_FILE
 }
 
-# usage:  wget_unpacked URL DOWNLOAD_DIR UNPACK_DIR
-function wget_unpacked() {
-    smart_wget $1 $2
-    _UPD=`unix_path $3`
-    echo -n "Extracting ${LAST_FILE##*/} ... "
-    case $LAST_FILE in
-        *.zip)     unzip -q -o $LAST_FILE -d $_UPD;;
-        *.tar.gz)  tar -xzpf $LAST_FILE -C $_UPD;;
-        *.tar.bz2) tar -xjpf $LAST_FILE -C $_UPD;;
-        *)         die "Cannot unpack file $LAST_FILE!";;
-    esac
-    echo "done"
-}
-
 function inst_wget() {
     setup Wget
     _WGET_UDIR=`unix_path $WGET_DIR`
+    add_to_env $_WGET_UDIR/bin PATH
     if quiet $_WGET_UDIR/wget --version || quiet wget --version
     then
         echo "already installed.  skipping."
     else
-        mkdir -p $WGET_DIR
-        tar -xjpf $DOWNLOAD_UDIR/wget*.tar.bz2 -C $WGET_DIR
-        cp $_WGET_UDIR/*/*/wget.exe $WGET_DIR
+        mkdir -p $_WGET_UDIR/bin
+        tar -xjpf $DOWNLOAD_UDIR/wget*.tar.bz2 -C $_WGET_UDIR
+        cp $_WGET_UDIR/*/*/wget.exe $_WGET_UDIR/bin
     fi
-    add_to_env $_WGET_UDIR PATH
     quiet wget --version || die "wget unavailable"
 }
 
 function inst_dtk() {
     setup MSYS DTK
-    if quiet perl --help
+    _MSYS_UDIR=`unix_path $MSYS_DIR`
+    if quiet ${_MSYS_UDIR}/bin/perl --help
     then
         echo "msys dtk already installed.  skipping."
     else
         smart_wget $DTK_URL $DOWNLOAD_DIR
-        echo "!!! When asked for an installation path, specify $MSYS_DIR !!!"
-        $LAST_FILE
+        $LAST_FILE //SP- //SILENT //DIR="$MSYS_DIR"
         for file in \
 	    /bin/{aclocal*,auto*,ifnames,libtool*,guile*} \
 	    /share/{aclocal,aclocal-1.7,autoconf,autogen,automake-1.7,guile,libtool}
@@ -158,7 +105,7 @@
             mv $file $_dst_file
         done
     fi
-    quiet perl --help || die "msys dtk not installed correctly"
+    quiet ${_MSYS_UDIR}/bin/perl --help || die "msys dtk not installed correctly"
 }
 
 function inst_mingw() {
@@ -180,33 +127,33 @@
 function inst_unzip() {
     setup Unzip
     _UNZIP_UDIR=`unix_path $UNZIP_DIR`
+    add_to_env $_UNZIP_UDIR/bin PATH
     if quiet $_UNZIP_UDIR/bin/unzip --help || quiet unzip --help
     then
         echo "unzip already installed.  skipping."
     else
         smart_wget $UNZIP_URL $DOWNLOAD_DIR
-        echo "!!! When asked for an installation path, specify $UNZIP_DIR !!!"
-        $LAST_FILE
+        $LAST_FILE //SP- //SILENT //DIR="$UNZIP_DIR"
     fi
-    add_to_env $_UNZIP_UDIR/bin PATH
     quiet unzip --help || die "unzip unavailable"
 }
 
 function inst_regex() {
     setup RegEx
     _REGEX_UDIR=`unix_path $REGEX_DIR`
+    add_to_env -lregex REGEX_LDFLAGS
     add_to_env -I$_REGEX_UDIR/include REGEX_CPPFLAGS
     add_to_env -L$_REGEX_UDIR/lib REGEX_LDFLAGS
     add_to_env $_REGEX_UDIR/bin PATH
-    if quiet ${LD} $REGEX_LDFLAGS -lregex -o $TMP_UDIR/ofile
+    if quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile
     then
         echo "regex already installed.  skipping."
     else
-        mkdir -p $REGEX_DIR
-        wget_unpacked $REGEX_BIN_URL $DOWNLOAD_DIR $REGEX_DIR
-        wget_unpacked $REGEX_LIB_URL $DOWNLOAD_DIR $REGEX_DIR
+        mkdir -p $_REGEX_UDIR
+        wget_unpacked $REGEX_URL $DOWNLOAD_DIR $REGEX_DIR
+        wget_unpacked $REGEX_DEV_URL $DOWNLOAD_DIR $REGEX_DIR
     fi
-    quiet ${LD} $REGEX_LDFLAGS -lregex -o $TMP_UDIR/ofile || die "regex not installed correctly"
+    quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile || die "regex not installed correctly"
 }
 
 function inst_readline() {
@@ -219,43 +166,22 @@
     then
         echo "readline already installed.  skipping."
     else
-        mkdir -p $READLINE_DIR
+        mkdir -p $_READLINE_UDIR
         wget_unpacked $READLINE_BIN_URL $DOWNLOAD_DIR $READLINE_DIR
         wget_unpacked $READLINE_LIB_URL $DOWNLOAD_DIR $READLINE_DIR
     fi
     quiet ${LD} $READLINE_LDFLAGS -lreadline -o $TMP_UDIR/ofile || die "readline not installed correctly"
 }
 
-function inst_indent() {
-    setup Indent
-    _INDENT_UDIR=`unix_path $INDENT_DIR`
-    add_to_env $_INDENT_UDIR/bin PATH
-    if quiet which indent
-    then
-        echo "indent already installed.  skipping."
-    else
-        mkdir -p $INDENT_DIR
-        wget_unpacked $INDENT_BIN_URL $DOWNLOAD_DIR $INDENT_DIR
-    fi
-    quiet which indent || die "indent unavailable"
-}
-
 function inst_active_perl() {
     setup ActivePerl \(intltool\)
     _ACTIVE_PERL_WFSDIR=`win_fs_path $ACTIVE_PERL_DIR`
-    add_to_env $_ACTIVE_PERL_WFSDIR/bin/perl INTLTOOL_PERL
+    set_env_or_die $_ACTIVE_PERL_WFSDIR/ActivePerl/Perl/bin/perl INTLTOOL_PERL
     if quiet $INTLTOOL_PERL --help
     then
         echo "ActivePerl already installed.  skipping."
     else
         wget_unpacked $ACTIVE_PERL_URL $DOWNLOAD_DIR $ACTIVE_PERL_DIR
-        # this is the first of several bad hacks
-        # it would be much more natural to have a sort of -p flag like for `patch'
-        # please deuglify me
-        qpushd $ACTIVE_PERL_DIR
-            cp -r ActivePerl/Perl/* .
-            rm -rf ActivePerl
-        qpopd
     fi
     quiet $INTLTOOL_PERL --help || die "ActivePerl not installed correctly"
 }
@@ -270,12 +196,14 @@
     else
         wget_unpacked $AUTOCONF_URL $DOWNLOAD_DIR $TMP_DIR
         wget_unpacked $AUTOMAKE_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/autoconf-*
         qpushd $TMP_UDIR/autoconf-*
             echo "building autoconf..."
             ./configure --prefix=$_AUTOTOOLS_UDIR
             make
             make install
         qpopd
+        assert_one_dir $TMP_UDIR/automake-*
         qpushd $TMP_UDIR/automake-*
             echo "building automake..."
             ./configure --prefix=$_AUTOTOOLS_UDIR
@@ -288,9 +216,10 @@
         echo "libtool/libtoolize already installed.  skipping."
     else
         wget_unpacked $LIBTOOL_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/libtool-*
         qpushd $TMP_UDIR/libtool-*
             echo "building libtool..."
-            ./configure ${HOST_XCOMPILE} --prefix=$_AUTOTOOLS_UDIR
+            ./configure ${HOST_XCOMPILE} --prefix=$_AUTOTOOLS_UDIR --disable-static
             make
             make install
         qpopd
@@ -320,6 +249,7 @@
         smart_wget $SLIB_URL $DOWNLOAD_DIR
         _SLIB_BALL=$LAST_FILE
         tar -xzpf $_GUILE_BALL -C $TMP_UDIR
+        assert_one_dir $TMP_UDIR/guile-*
         qpushd $TMP_UDIR/guile-*
             qpushd ice-9
                 cp boot-9.scm boot-9.scm.bak
@@ -337,6 +267,7 @@
                 touch upstream/ltdl.c.diff
             qpopd
             ./configure ${HOST_XCOMPILE} \
+                --disable-static \
 	        --disable-elisp \
 	        --disable-networking \
 	        --disable-dependency-tracking \
@@ -345,7 +276,7 @@
 	        -C --prefix=$_GUILE_WFSDIR \
 	        ac_cv_func_regcomp_rx=yes \
 	        CPPFLAGS="${READLINE_CPPFLAGS} ${REGEX_CPPFLAGS}" \
-	        LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS} -lregex"
+	        LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS}"
 	    cp config.status config.status.bak
 	    cat config.status.bak | sed 's# fileblocks[$.A-Za-z]*,#,#' > config.status
 	    ./config.status
@@ -353,17 +284,10 @@
 	      cp Makefile Makefile.bak
 	      cat Makefile.bak | sed '/-bindir-/s,:,^,g' > Makefile
 	    qpopd
-	    make LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS} -lregex -no-undefined"
+	    make LDFLAGS="-lwsock32 ${READLINE_LDFLAGS} ${REGEX_LDFLAGS} -no-undefined -avoid-version"
 	    make install
 	qpopd
-	qpushd $GUILE_DIR/bin
-	    mv libguilereadline-v-12-12.dll libguilereadline-v-12.dll
-	    mv libguile-srfi-srfi-4-v-1-1.dll libguile-srfi-srfi-4-v-1.dll
-	    mv libguile-srfi-srfi-13-14-v-1-1.dll libguile-srfi-srfi-13-14-v-1.dll
-	qpopd
-        _GUILE_MAJOR=`echo $_GUILE_UDIR/share/guile/1.* | sed 's,.*/,,'`
-	_SLIB_DIR=$GUILE_DIR\\share\\guile\\$_GUILE_MAJOR
-	mkdir -p $_SLIB_DIR
+	_SLIB_DIR=$_GUILE_UDIR/share/guile/1.*
 	unzip $_SLIB_BALL -d $_SLIB_DIR
 	qpushd $_SLIB_DIR/slib
 	    cp guile.init guile.init.bak
@@ -372,7 +296,7 @@
 	qpopd
     fi
     if test x$cross_compile = xyes ; then
-	qpushd $GUILE_DIR/bin
+	qpushd $_GUILE_UDIR/bin
 	# The cross-compiling guile expects these program names
 	# for the build-time guile
 	ln -sf /usr/bin/guile-config mingw32-guile-config
@@ -387,40 +311,54 @@
 
 function inst_openssl() {
     setup OpenSSL
-    if [ -f $WINDIR\\system32\\libssl32.dll ]
-    then
+    _OPENSSL_UDIR=`unix_path $OPENSSL_DIR`
+    add_to_env $_OPENSSL_UDIR/bin PATH
+    # Make sure the files of Win32OpenSSL-0_9_8d are really gone!
+    if test -f $_OPENSSL_UDIR/unins000.exe ; then
+	die "Wrong version of OpenSSL installed! Run $_OPENSSL_UDIR/unins000.exe and start install.sh again."
+    fi
+    if [ -f $WINDIR\\system32\\libssl32.dll -o -f $WINDIR\\system32\\libeay32.dll ] ; then
+	die "You have uninstalled the Win32OpenSSL-0_9_8d version of OpenSSL, but its DLLs libssl32.dll, libeay32.dll, and ssleay32.dll are still existing in $WINDIR\\system32. You have to delete (or rename) them manually. However, if you know these DLLs are needed by some other package, please contact the gnucash authors so that we can adapt this script."
+    fi
+
+    if test -f ${_OPENSSL_UDIR}/lib/libssl.dll.a ; then
         echo "openssl already installed.  skipping."
     else
-        smart_wget $OPENSSL_URL $DOWNLOAD_DIR
-	echo "!!! When asked for an installation path, specify $OPENSSL_DIR !!!"
-        $LAST_FILE
+	mkdir -p ${_OPENSSL_UDIR}
+	wget_unpacked $OPENSSL_BIN_URL $DOWNLOAD_DIR $OPENSSL_DIR
+	wget_unpacked $OPENSSL_LIB_URL $DOWNLOAD_DIR $OPENSSL_DIR
     fi
-    [ -f $WINDIR\\system32\\libssl32.dll ] || die "openssl not installed correctly"
+    test -f ${_OPENSSL_UDIR}/lib/libssl.dll.a || die "openssl not installed correctly"
 }
 
-function inst_pexports() {
-    setup pexports
-    _PEXPORTS_UDIR=`unix_path $PEXPORTS_DIR`
-    add_to_env $_PEXPORTS_UDIR/bin PATH
-    if quiet which pexports
+function inst_mingwutils() {
+    setup MinGW-Utils
+    _MINGW_UTILS_UDIR=`unix_path $MINGW_UTILS_DIR`
+    add_to_env $_MINGW_UTILS_UDIR/bin PATH
+    if quiet which pexports && quiet which reimp
     then
-        echo "pexports already installed.  skipping."
+        echo "mingw-utils already installed.  skipping."
     else
-        wget_unpacked $PEXPORTS_URL $DOWNLOAD_DIR $PEXPORTS_DIR
-        qpushd $PEXPORTS_DIR
-	    mv pexports-* mydir
-	    mv mydir/* .
-	    rmdir mydir
-	    if test x$cross_compile = xyes ; then
-		cd src
-		make
-		cp pexports.exe ../bin/pexports
-	    fi
-        qpopd
+        wget_unpacked $MINGW_UTILS_URL $DOWNLOAD_DIR $MINGW_UTILS_DIR
     fi
-    quiet which pexports || die "pexports unavailable"
+    (quiet which pexports && quiet which reimp) || die "mingw-utils not installed correctly"
 }
 
+function inst_exetype() {
+    setup exetype
+    _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
+    add_to_env $_EXETYPE_UDIR/bin PATH
+    if quiet which exetype
+    then
+        echo "exetype already installed.  skipping."
+    else
+        mkdir -p $_EXETYPE_UDIR/bin
+        cp $EXETYPE_SCRIPT $_EXETYPE_UDIR/bin/exetype
+    fi
+    quiet which exetype || die "exetype unavailable"
+}
+
+
 function inst_libxml2() {
     setup LibXML2
     _LIBXML2_UDIR=`unix_path $LIBXML2_DIR`
@@ -428,8 +366,12 @@
     then
         echo "libxml2 already installed.  skipping."
     else
+        wget_unpacked $LIBXSLT_URL $DOWNLOAD_DIR $LIBXML2_DIR
         wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $LIBXML2_DIR
         qpushd $LIBXML2_DIR
+            mv libxslt-* mydir
+            cp -r mydir/* .
+            rm -rf mydir
             mv libxml2-* mydir
             cp -r mydir/* .
             rm -rf mydir
@@ -446,7 +388,7 @@
 
 Name: libXML
 Version: $_LIBXML2_VERSION
-Description: libXML library version2.
+Description: libXML library version 2.
 Requires:
 Libs: -L\${libdir} -lxml2 -lz
 Cflags: -I\${includedir}
@@ -456,23 +398,6 @@
     quiet ${LD} -L$_LIBXML2_UDIR/lib -lxml2 -o $TMP_UDIR/ofile || die "libxml2 not installed correctly"
 }
 
-function inst_expat() {
-    setup Expat
-    _EXPAT_UDIR=`unix_path $EXPAT_DIR`
-    add_to_env $_EXPAT_UDIR/bin PATH
-    if quiet which xmlwf && test -f $_EXPAT_UDIR/bin/xmlwf.exe
-    then
-        echo "expat already installed.  skipping."
-    else
-        wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $EXPAT_DIR
-        qpushd $EXPAT_DIR
-            cp -r expat/* .
-            rm -rf expat
-        qpopd
-    fi
-    quiet which xmlwf || die "expat not installed correctly"
-}
-
 function inst_gnome() {
     setup Gnome platform
     _GNOME_UDIR=`unix_path $GNOME_DIR`
@@ -480,14 +405,16 @@
     add_to_env -L$_GNOME_UDIR/lib GNOME_LDFLAGS
     add_to_env $_GNOME_UDIR/bin PATH
     add_to_env $_GNOME_UDIR/lib/pkgconfig PKG_CONFIG_PATH
+    add_to_env $_GNOME_UDIR/bin/pkg-config-msys.sh PKG_CONFIG
     add_to_env "-I $_GNOME_UDIR/share/aclocal" ACLOCAL_FLAGS
     if quiet gconftool-2 --version &&
-        pkg-config --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.8 &&
+        ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.8 &&  # gnomeprint
+#        ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgnomeprint-2.2 libgtkhtml-3.14 &&  # not gnomeprint
         quiet intltoolize --version
     then
         echo "gnome packages installed.  skipping."
     else
-        mkdir -p $GNOME_DIR
+        mkdir -p $_GNOME_UDIR
 	wget_unpacked $GETTEXT_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $GETTEXT_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $LIBICONV_URL $DOWNLOAD_DIR $GNOME_DIR
@@ -499,6 +426,7 @@
 	wget_unpacked $PKG_CONFIG_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $CAIRO_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $CAIRO_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+	wget_unpacked $EXPAT_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $FONTCONFIG_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $FONTCONFIG_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $FREETYPE_URL $DOWNLOAD_DIR $GNOME_DIR
@@ -536,8 +464,8 @@
 	wget_unpacked $LIBGLADE_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $LIBGNOMEPRINT_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $LIBGNOMEPRINT_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
-	wget_unpacked $LIBGNOMEPRINTUI_URL $DOWNLOAD_DIR $GNOME_DIR
-	wget_unpacked $LIBGNOMEPRINTUI_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
+	wget_unpacked $LIBGNOMEPRINTUI_URL $DOWNLOAD_DIR $GNOME_DIR  # gnomeprint
+	wget_unpacked $LIBGNOMEPRINTUI_DEV_URL $DOWNLOAD_DIR $GNOME_DIR  # gnomeprint
 	wget_unpacked $GTKHTML_URL $DOWNLOAD_DIR $GNOME_DIR
 	wget_unpacked $GTKHTML_DEV_URL $DOWNLOAD_DIR $GNOME_DIR
         qpushd $GNOME_DIR
@@ -548,36 +476,39 @@
                     mv libz.dll.a ../lib
                 qpopd
             fi
-            [ -f bin/libintl-2.dll ] || cp bin/intl.dll bin/libintl-2.dll
-            _FREETYPE_VERSION=`echo $FREETYPE_DEV_URL | sed 's#.*freetype-\(.*\)-lib.zip#\1#'`
-            cat > lib/pkgconfig/freetype2.pc <<EOF
-prefix=/ignore
-exec_prefix=\${prefix}
-libdir=\${exec_prefix}/lib
-includedir=\${prefix}/include
-
-Name: FreeType 2
-Description: A free, high-quality, and portable font engine.
-Version: $_FREETYPE_VERSION
-Requires:
-Libs: -L\${libdir} -lfreetype -lz
-Cflags: -I\${includedir}/freetype2
+            if [ ! -f libexec/gconfd-2.console.exe ]; then
+                cp libexec/gconfd-2.exe libexec/gconfd-2.console.exe
+                exetype libexec/gconfd-2.exe windows
+            fi
+#            sed 's#gtk+-unix-print-2.0 >= [0-9\.]* *##' lib/pkgconfig/libgtkhtml-3.14.pc > tmp  # not gnomeprint
+#            mv tmp lib/pkgconfig/libgtkhtml-3.14.pc  # not gnomeprint
+            # work around a bug in msys bash, adding 0x01 smilies
+            cat > bin/pkg-config-msys.sh <<EOF
+#!/bin/sh
+PKG_CONFIG="\$(dirname \$0)/pkg-config"
+if \${PKG_CONFIG} "\$@" > /dev/null 2>&1 ; then
+    res=true
+else
+    res=false
+fi
+\${PKG_CONFIG} "\$@" | tr -d \\\\r && \$res
 EOF
         qpopd
     fi
     if test x$cross_compile = xyes ; then
-        qpushd $GNOME_DIR/lib/pkgconfig
+        qpushd $_GNOME_UDIR/lib/pkgconfig
 	    perl -pi.bak -e"s!^prefix=.*\$!prefix=$GNOME_DIR!" *.pc
 	    #perl -pi.bak -e's!^Libs: !Libs: -L\${prefix}/bin !' *.pc
 	qpopd
 	# Latest gnome-dev packages don't ship with *.la files
 	# anymore. What do we do...?
-        #qpushd $GNOME_DIR/bin
+        #qpushd $_GNOME_UDIR/bin
 	#    for A in *-0.dll; do ln -sf $A `echo $A|sed 's/\(.*\)-0.dll/\1.dll/'`; done
 	#qpopd
     fi
     quiet gconftool-2 --version &&
-    pkg-config --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.8 &&
+    ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.8 &&  # gnomeprint
+#    ${PKG_CONFIG} --exists gconf-2.0 libgnome-2.0 libgnomeui-2.0 libgnomeprint-2.2 libgtkhtml-3.14 &&  # not gnomeprint
     quiet intltoolize --version || die "gnome not installed correctly"
 }
 
@@ -593,6 +524,7 @@
         qpushd $SWIG_DIR
             mv swigwin-* mydir
             mv mydir/* .
+            mv mydir/.[A-Za-z]* . # hidden files
             rmdir mydir
             rm INSTALL # bites with /bin/install
         qpopd
@@ -600,19 +532,38 @@
     quiet swig -version || die "swig unavailable"
 }
 
+function inst_pcre() {
+    setup pcre
+    _PCRE_UDIR=`unix_path $PCRE_DIR`
+    add_to_env -I$_PCRE_UDIR/include PCRE_CPPFLAGS
+    add_to_env -L$_PCRE_UDIR/lib PCRE_LDFLAGS
+    add_to_env $_PCRE_UDIR/bin PATH
+    if quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile
+    then
+        echo "pcre already installed.  skipping."
+    else
+        mkdir -p $_PCRE_UDIR
+        wget_unpacked $PCRE_BIN_URL $DOWNLOAD_DIR $PCRE_DIR
+        wget_unpacked $PCRE_LIB_URL $DOWNLOAD_DIR $PCRE_DIR
+    fi
+    quiet ${LD} $PCRE_LDFLAGS -lpcre -o $TMP_UDIR/ofile || die "pcre not installed correctly"
+}
+
 function inst_libgsf() {
     setup libGSF
     _LIBGSF_UDIR=`unix_path $LIBGSF_DIR`
     add_to_env $_LIBGSF_UDIR/bin PATH
     add_to_env $_LIBGSF_UDIR/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet pkg-config --exists libgsf-1 libgsf-gnome-1
+    if quiet ${PKG_CONFIG} --exists libgsf-1 libgsf-gnome-1
     then
 	echo "libgsf already installed.  skipping."
     else
 	wget_unpacked $LIBGSF_URL $DOWNLOAD_DIR $TMP_DIR
+	assert_one_dir $TMP_UDIR/libgsf-*
 	qpushd $TMP_UDIR/libgsf-*
 	    ./configure ${HOST_XCOMPILE} \
 	        --prefix=$_LIBGSF_UDIR \
+                --disable-static \
 	        --without-python \
 	        CPPFLAGS="${GNOME_CPPFLAGS}" \
 	        LDFLAGS="${GNOME_LDFLAGS}"
@@ -620,20 +571,22 @@
 	    make install
 	qpopd
     fi
-    pkg-config --exists libgsf-1 libgsf-gnome-1 || die "libgsf not installed correctly"
+    ${PKG_CONFIG} --exists libgsf-1 libgsf-gnome-1 || die "libgsf not installed correctly"
 }
 
 function inst_goffice() {
     setup GOffice
     _GOFFICE_UDIR=`unix_path $GOFFICE_DIR`
+    add_to_env $_GOFFICE_UDIR/bin PATH
     add_to_env $_GOFFICE_UDIR/lib/pkgconfig PKG_CONFIG_PATH
-    if quiet pkg-config --exists libgoffice-0.3
+    if quiet ${PKG_CONFIG} --exists libgoffice-0.3
     then
 	echo "goffice already installed.  skipping."
     else
 	rm -rf $TMP_UDIR/goffice-*
 	wget_unpacked $GOFFICE_URL $DOWNLOAD_DIR $TMP_DIR
 	mydir=`pwd`
+	assert_one_dir $TMP_UDIR/goffice-*
 	qpushd $TMP_UDIR/goffice-*
 	    [ -n "$GOFFICE_PATCH" -a -f "$GOFFICE_PATCH" ] && \
 		patch -p1 < $GOFFICE_PATCH
@@ -642,14 +595,15 @@
 	    automake
 	    autoconf
 	    ./configure ${HOST_XCOMPILE} --prefix=$_GOFFICE_UDIR \
-	        CPPFLAGS="${GNOME_CPPFLAGS}" \
-	        LDFLAGS="${GNOME_LDFLAGS}"
+	        CPPFLAGS="${GNOME_CPPFLAGS} ${PCRE_CPPFLAGS}" \
+	        LDFLAGS="${GNOME_LDFLAGS} ${PCRE_LDFLAGS}"
+	    [ -d ../libgsf-* ] || die "We need the unpacked package $TMP_UDIR/libgsf-*; please unpack it in $TMP_UDIR"
 	    [ -f dumpdef.pl ] || cp -p ../libgsf-*/dumpdef.pl .
 	    make
 	    make install
 	qpopd
     fi
-    pkg-config --exists libgoffice-0.3 || die "goffice not installed correctly"
+    ${PKG_CONFIG} --exists libgoffice-0.3 || die "goffice not installed correctly"
 }
 
 function inst_glade() {
@@ -662,6 +616,7 @@
         echo "glade already installed.  skipping."
     else
         wget_unpacked $GLADE_URL $DOWNLOAD_DIR $TMP_DIR
+        assert_one_dir $TMP_UDIR/glade3-*
         qpushd $TMP_UDIR/glade3-*
             ./configure ${HOST_XCOMPILE} --prefix=$_GLADE_WFSDIR
             make
@@ -671,27 +626,261 @@
     quiet glade-3 --version || die "glade not installed correctly"
 }
 
+function inst_inno() {
+    setup Inno Setup Compiler
+    _INNO_UDIR=`unix_path $INNO_DIR`
+    add_to_env $_INNO_UDIR PATH
+    if quiet which iscc
+    then
+        echo "Inno Setup Compiler already installed.  Skipping."
+    else
+        smart_wget $INNO_URL $DOWNLOAD_DIR
+        $LAST_FILE //SP- //SILENT //DIR="$INNO_DIR"
+    fi
+    quiet which iscc || die "iscc (Inno Setup Compiler) not installed correctly"
+}
+
+function test_for_hh() {
+    qpushd $TMP_UDIR
+        cat > ofile.c <<EOF
+#include <windows.h>
+#include <htmlhelp.h>
+int main(int argc, char **argv) {
+  HtmlHelpW(0, (wchar_t*)"", HH_HELP_CONTEXT, 0);
+  return 0;
+}
+EOF
+        gcc -shared -o ofile.dll ofile.c $HH_CPPFLAGS $HH_LDFLAGS -lhtmlhelp || return 1
+    qpopd
+}
+
+function inst_hh() {
+    setup HTML Help Workshop
+    _HH_UDIR=`unix_path $HH_DIR`
+    add_to_env -I$_HH_UDIR/include HH_CPPFLAGS
+    add_to_env -L$_HH_UDIR/lib HH_LDFLAGS
+    add_to_env $_HH_UDIR PATH
+    if quiet test_for_hh
+    then
+        echo "html help workshop already installed.  skipping."
+    else
+        smart_wget $HH_URL $DOWNLOAD_DIR
+        echo "!!! When asked for an installation path, specify $HH_DIR !!!"
+        $LAST_FILE
+        qpushd $HH_DIR
+           _HHCTRL_OCX=$(which hhctrl.ocx || true)
+           [ "$_HHCTRL_OCX" ] || die "Did not find hhctrl.ocx"
+           pexports -h include/htmlhelp.h $_HHCTRL_OCX > lib/htmlhelp.def
+           qpushd lib
+               ${DLLTOOL} -k -d htmlhelp.def -l libhtmlhelp.a
+               mv htmlhelp.lib htmlhelp.lib.bak
+           qpopd
+        qpopd
+    fi
+    quiet test_for_hh || die "html help workshop not installed correctly"
+}
+
+function inst_opensp() {
+    setup Opensp
+    _OPENSP_UDIR=`unix_path ${OPENSP_DIR}`
+    add_to_env ${_OPENSP_UDIR}/bin PATH
+    if test -f ${_OPENSP_UDIR}/bin/libosp-5.dll
+    then
+	echo "Opensp already installed. Skipping."
+    else
+	wget_unpacked $OPENSP_URL $DOWNLOAD_DIR $TMP_DIR
+	assert_one_dir $TMP_UDIR/OpenSP-*
+	qpushd $TMP_UDIR/OpenSP-*
+	    [ -n "$OPENSP_PATCH" -a -f "$OPENSP_PATCH" ] && \
+		patch -p0 < $OPENSP_PATCH
+	    automake lib/Makefile
+	    ./configure \
+	        --prefix=${_OPENSP_UDIR} \
+		--disable-doc-build --disable-static
+	    # On many windows machines, none of the programs will
+	    # build, but we only need the library, so ignore the rest.
+	    make all-am
+	    make -C lib
+	    make -i
+	    make -i install
+	qpopd
+    fi
+    test -f ${_OPENSP_UDIR}/bin/libosp-5.dll || die "Opensp not installed correctly"
+}
+
+function inst_libofx() {
+    setup Libofx
+    _LIBOFX_UDIR=`unix_path ${LIBOFX_DIR}`
+    add_to_env ${_LIBOFX_UDIR}/bin PATH
+    add_to_env ${_LIBOFX_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    if quiet ${PKG_CONFIG} --exists libofx
+    then
+	echo "Libofx already installed. Skipping."
+    else
+	wget_unpacked $LIBOFX_URL $DOWNLOAD_DIR $TMP_DIR
+	assert_one_dir $TMP_UDIR/libofx-*
+	qpushd $TMP_UDIR/libofx-*
+	    [ -n "$LIBOFX_PATCH" -a -f "$LIBOFX_PATCH" ] && \
+		patch -p1 < $LIBOFX_PATCH
+	    ./configure \
+	        --prefix=${_LIBOFX_UDIR} \
+		--with-opensp-includes=${_OPENSP_UDIR}/include/OpenSP \
+		--with-opensp-libs=${_OPENSP_UDIR}/lib \
+		CPPFLAGS="-DOS_WIN32" \
+		--disable-static
+	    make LDFLAGS="${LDFLAGS} -no-undefined"
+	    make install
+	qpopd
+    fi
+    quiet ${PKG_CONFIG} --exists libofx || die "Libofx not installed correctly"
+}
+
+function inst_gwenhywfar() {
+    setup Gwenhywfar
+    _GWENHYWFAR_UDIR=`unix_path ${GWENHYWFAR_DIR}`
+    add_to_env ${_GWENHYWFAR_UDIR}/bin PATH
+    add_to_env ${_GWENHYWFAR_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    add_to_env "-I $_GWENHYWFAR_UDIR/share/aclocal" ACLOCAL_FLAGS
+    if quiet ${PKG_CONFIG} --exists gwenhywfar
+    then
+	echo "Gwenhywfar already installed. Skipping."
+    else
+	wget_unpacked $GWENHYWFAR_URL $DOWNLOAD_DIR $TMP_DIR
+	assert_one_dir $TMP_UDIR/gwenhywfar-*
+	qpushd $TMP_UDIR/gwenhywfar-*
+	    ./configure \
+		--with-openssl-includes=$_OPENSSL_UDIR/include \
+		ssl_libraries="-L${_OPENSSL_UDIR}/lib" \
+		ssl_lib="-lcrypto -lssl" \
+	        --prefix=$_GWENHYWFAR_UDIR \
+	        CPPFLAGS="${REGEX_CPPFLAGS}" \
+		LDFLAGS="${REGEX_LDFLAGS}"
+	    make
+	    make check
+	    make install
+	qpopd
+    fi
+    ${PKG_CONFIG} --exists gwenhywfar || die "Gwenhywfar not installed correctly"
+}
+
+function inst_ktoblzcheck() {
+    setup Ktoblzcheck
+    # Out of convenience ktoblzcheck is being installed into
+    # GWENHYWFAR_DIR
+    if quiet ${PKG_CONFIG} --exists ktoblzcheck
+    then
+	echo "Ktoblzcheck already installed. Skipping."
+    else
+	wget_unpacked $KTOBLZCHECK_URL $DOWNLOAD_DIR $TMP_DIR
+	assert_one_dir $TMP_UDIR/ktoblzcheck-*
+	qpushd $TMP_UDIR/ktoblzcheck-*
+	    ./configure \
+	        --prefix=${_GWENHYWFAR_UDIR}
+	    make
+	    make check
+	    make install
+	qpopd
+    fi
+    add_to_env "-I${_GWENHYWFAR_UDIR}/include" KTOBLZCHECK_CPPFLAGS
+    add_to_env "-L${_GWENHYWFAR_UDIR}/lib" KTOBLZCHECK_LDFLAGS
+    ${PKG_CONFIG} --exists ktoblzcheck || die "Ktoblzcheck not installed correctly"
+}
+
+function inst_qt4() {
+    # This section is not a full install, but the .la creation is
+    # already useful in itself and that's why it has already been
+    # added.
+
+    export QTDIR=`unix_path ${QTDIR}`  # help configure of aqbanking
+    _QTDIR=$QTDIR
+    # This section creates .la files for the Qt-4 DLLs so that
+    # libtool correctly links to the DLLs.
+    if test ! -f ${_QTDIR}/lib/libQtCore4.la ; then
+	qpushd ${_QTDIR}/lib
+	    for A in lib*.a; do
+		LIBBASENAME=`basename ${A} .a`
+		OUTFILE="${LIBBASENAME}.la"
+		BASENAME=`echo ${LIBBASENAME} | sed -e"s/lib//" `
+		DLLNAME="${BASENAME}.dll"
+
+		# Create la file
+		echo "# Generated by foo bar libtool" > $OUTFILE
+		echo "dlname='../bin/${DLLNAME}'" >> $OUTFILE
+		echo "library_names='${DLLNAME}'" >> $OUTFILE
+		echo "libdir='${_QTDIR}/bin'" >> $OUTFILE
+	    done
+	qpopd
+    fi
+}
+
+function inst_aqbanking() {
+    setup AqBanking
+    _AQBANKING_UDIR=`unix_path ${AQBANKING_DIR}`
+    add_to_env ${_AQBANKING_UDIR}/bin PATH
+    add_to_env ${_AQBANKING_UDIR}/lib/pkgconfig PKG_CONFIG_PATH
+    add_to_env "-I $_AQBANKING_UDIR/share/aclocal" ACLOCAL_FLAGS
+    if quiet ${PKG_CONFIG} --exists aqbanking
+    then
+	echo "AqBanking already installed. Skipping."
+    else
+	wget_unpacked $AQBANKING_URL $DOWNLOAD_DIR $TMP_DIR
+	assert_one_dir $TMP_UDIR/aqbanking-*
+	qpushd $TMP_UDIR/aqbanking-*
+	    _AQ_CPPFLAGS="-I${_LIBOFX_UDIR}/include ${KTOBLZCHECK_CPPFLAGS}"
+	    _AQ_LDFLAGS="-L${_LIBOFX_UDIR}/lib ${KTOBLZCHECK_LDFLAGS}"
+	    if test x$aqbanking_with_qt = xyes; then
+		inst_qt4
+		./configure \
+		    --with-gwen-dir=${_GWENHYWFAR_UDIR} \
+		    --with-frontends="cbanking qbanking" \
+		    --with-backends="aqdtaus aqhbci aqofxconnect" \
+		    CPPFLAGS="${_AQ_CPPFLAGS}" \
+		    LDFLAGS="${_AQ_LDFLAGS}" \
+		    qt3_libs="-L${_QTDIR}/lib -L${_QTDIR}/bin -lQtCore4 -lQtGui4 -lQt3Support4" \
+		    qt3_includes="-I${_QTDIR}/include -I${_QTDIR}/include/Qt -I${_QTDIR}/include/QtCore -I${_QTDIR}/include/QtGui -I${_QTDIR}/include/Qt3Support" \
+		    --prefix=${_AQBANKING_UDIR}
+		make qt4-port
+		make clean
+	    else
+		./configure \
+		    --with-gwen-dir=${_GWENHYWFAR_UDIR} \
+		    --with-frontends="cbanking" \
+		    --with-backends="aqdtaus aqhbci aqofxconnect" \
+		    CPPFLAGS="${_AQ_CPPFLAGS}" \
+		    LDFLAGS="${_AQ_LDFLAGS}" \
+	            --prefix=${_AQBANKING_UDIR}
+	    fi
+	    make
+	    make install
+	qpopd
+	qpushd ${_AQBANKING_UDIR}/bin
+	    exetype aqbanking-tool.exe console
+	    exetype aqhbci-tool.exe console
+	qpopd
+    fi
+    ${PKG_CONFIG} --exists aqbanking || die "AqBanking not installed correctly"
+}
+
 function inst_svn() {
     setup Subversion
     _SVN_UDIR=`unix_path $SVN_DIR`
-    export PATH="$_SVN_UDIR/bin:$PATH"
+    add_to_env $_SVN_UDIR/bin PATH
     if quiet svn --version
     then
         echo "subversion already installed.  skipping."
     else
         smart_wget $SVN_URL $DOWNLOAD_DIR
-        echo "!!! When asked for an installation path, specify $SVN_DIR !!!"
-        $LAST_FILE
+        $LAST_FILE //SP- //SILENT //DIR="$SVN_DIR"
     fi
 }
 
 function svn_up() {
-    mkdir -p $REPOS_DIR
+    mkdir -p $_REPOS_UDIR
     qpushd $REPOS_DIR
     # latest revision that should compile, use HEAD or vwxyz
     SVN_REV="HEAD"
     if [ -x .svn ]; then
-	setup svn up
+	setup "svn update in ${REPOS_DIR}"
 	svn up -r ${SVN_REV}
     else
 	setup svn co
@@ -702,79 +891,152 @@
 
 function inst_gnucash() {
     setup GnuCash
-    _GNUCASH_WFSDIR=`win_fs_path $GNUCASH_DIR`
-    _GNUCASH_UDIR=`unix_path $GNUCASH_DIR`
+    _INSTALL_WFSDIR=`win_fs_path $INSTALL_DIR`
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
+    _BUILD_UDIR=`unix_path $BUILD_DIR`
+    _REL_REPOS_UDIR=`unix_path $REL_REPOS_DIR`
+    mkdir -p $_BUILD_UDIR
+    add_to_env $_INSTALL_UDIR/bin PATH
+
+    # When aqbanking is enabled, uncomment this:
+    AQBANKING_OPTIONS="--enable-hbci --with-aqbanking-dir=${_AQBANKING_UDIR}"
+    AQBANKING_UPATH="${_OPENSSL_UDIR}/bin:${_GWENHYWFAR_UDIR}/bin:${_AQBANKING_UDIR}/bin"
+    AQBANKING_PATH="${OPENSSL_DIR}\\bin;${GWENHYWFAR_DIR}\\bin;${AQBANKING_DIR}\\bin"
+    LIBOFX_OPTIONS="--enable-ofx --with-ofx-prefix=${_LIBOFX_UDIR}"
+
     qpushd $REPOS_DIR
-    # Necessary so that intltoolize doesn't come up with some
-    # foolish AC_CONFIG_AUX_DIR; bug#362006 
-    touch install-sh
-    if test "x$cross_compile" = xyes ; then
-	# Set these variables manually because of cross-compiling
-	export GUILE_LIBS="${GUILE_LDFLAGS} -lguile -lguile-ltdl"
-	export GUILE_INCS="${GUILE_CPPFLAGS}"
-	export BUILD_GUILE=yes
-	export name_build_guile=/usr/bin/guile-config
-    fi
-    ./autogen.sh
-    ./configure ${HOST_XCOMPILE} ${TARGET_XCOMPILE} \
-	--prefix=$_GNUCASH_WFSDIR \
-	--enable-debug \
-	--enable-schemas-install=no \
-	--enable-binreloc \
-	CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} -D_WIN32" \
-	LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS}" \
-	PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+        if test "x$cross_compile" = xyes ; then
+            # Set these variables manually because of cross-compiling
+            export GUILE_LIBS="${GUILE_LDFLAGS} -lguile -lguile-ltdl"
+            export GUILE_INCS="${GUILE_CPPFLAGS}"
+            export BUILD_GUILE=yes
+            export name_build_guile=/usr/bin/guile-config
+        fi
+        ./autogen.sh
+        # Windows DLLs don't need relinking
+        grep -v "need_relink=yes" ltmain.sh > ltmain.sh.new ; mv ltmain.sh.new ltmain.sh
+    qpopd
 
-    # Windows DLLs don't need relinking
-    grep -v "need_relink=yes" ltmain.sh > ltmain.sh.new ; mv ltmain.sh.new ltmain.sh
-    grep -v "need_relink=yes" libtool   > libtool.new   ; mv libtool.new   libtool
-    # Exclude (for now) the test subdirectories from the build
-    # because executable linking is so painfully slow on mingw
-    perl -pi.instbak -e's#^(SUBDIRS.* )test( .*)?$#\1\2#' `find src -name Makefile`
-    find src -name Makefile.instbak -exec rm {} \;
+    qpushd $BUILD_DIR
+        $_REL_REPOS_UDIR/configure ${HOST_XCOMPILE} ${TARGET_XCOMPILE} \
+            --prefix=$_INSTALL_WFSDIR \
+            --enable-debug \
+            --enable-schemas-install=no \
+	    ${LIBOFX_OPTIONS} \
+	    ${AQBANKING_OPTIONS} \
+            --enable-binreloc \
+            CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} ${HH_CPPFLAGS} -D_WIN32" \
+            LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${HH_LDFLAGS}" \
+            PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
 
-    make
+        # Windows DLLs don't need relinking
+        grep -v "need_relink=yes" libtool   > libtool.new   ; mv libtool.new   libtool
 
-    # Try to fix the paths in the "gnucash" script
-    qpushd src/bin
-    rm gnucash
-    make PATH_SEPARATOR=";" \
-	bindir="${_GNUCASH_UDIR}/bin:${_GNUCASH_UDIR}/lib/bin:${_GOFFICE_UDIR}/bin:${_LIBGSF_UDIR}/bin:${_GNOME_UDIR}/bin:${_LIBXML2_UDIR}/bin:${_GUILE_UDIR}/bin:${_REGEX_UDIR}/bin:${_AUTOTOOLS_UDIR}/bin" \
-	gnucash
-    qpopd
+        make
 
-    make install
+        # Try to fix the paths in the "gnucash" script
+        qpushd src/bin
+            rm gnucash
+            make PATH_SEPARATOR=";" \
+                bindir="${_INSTALL_UDIR}/bin:${_INSTALL_UDIR}/lib:${_INSTALL_UDIR}/lib/gnucash:${_GOFFICE_UDIR}/bin:${_LIBGSF_UDIR}/bin:${_PCRE_UDIR}/bin:${_GNOME_UDIR}/bin:${_LIBXML2_UDIR}/bin:${_GUILE_UDIR}/bin:${_REGEX_UDIR}/bin:${_AUTOTOOLS_UDIR}/bin:${AQBANKING_UPATH}:${_LIBOFX_UDIR}/bin:${_OPENSP_UDIR}/bin" \
+                gnucash
+        qpopd
+
+        make install
     qpopd
 
-    qpushd ${_GNUCASH_WFSDIR}/lib/gnucash
-    # Remove the dependency_libs line from the installed .la files
-    # because otherwise loading the modules literally takes hours.
-    for A in *.la; do grep -v dependency_libs $A > tmp ; mv  tmp $A; done
+    qpushd $_INSTALL_UDIR/lib
+        # Move modules that are compiled without -module to lib/gnucash and
+        # correct the 'dlname' in the libtool archives. We do not use these
+        # files to dlopen the modules, so actually this is unneeded.
+        # Also, in all installed .la files, remove the dependency_libs line
+        mv bin/*.dll gnucash || true
+        for A in gnucash/*.la; do
+            sed '/dependency_libs/d;s#../bin/##' $A > tmp ; mv tmp $A
+        done
+        for A in *.la; do
+            sed '/dependency_libs/d' $A > tmp ; mv tmp $A
+        done
     qpopd
 
-    qpushd ${_GNUCASH_WFSDIR}/etc/gconf/schemas
-    for file in *.schemas; do
-        gconftool-2 \
-            --config-source=xml:merged:${_GNUCASH_WFSDIR}/etc/gconf/gconf.xml.defaults \
-            --install-schema-file $file
-    done
-    gconftool-2 --shutdown
+    qpushd $_INSTALL_UDIR/etc/gconf/schemas
+        for file in *.schemas; do
+            gconftool-2 \
+                --config-source=xml:merged:${_INSTALL_WFSDIR}/etc/gconf/gconf.xml.defaults \
+                --install-schema-file $file
+        done
+        gconftool-2 --shutdown
     qpopd
 
     # Create a startup script that works without the msys shell
-    qpushd ${_GNUCASH_WFSDIR}/bin
-    echo "set PATH=${GNUCASH_DIR}\\bin;${GNUCASH_DIR}\\lib\\bin;${GOFFICE_DIR}\\bin;${LIBGSF_DIR}\\bin;${GNOME_DIR}\\bin;${LIBXML2_DIR}\\bin;${GUILE_DIR}\\bin;${REGEX_DIR}\\bin;${AUTOTOOLS_DIR}\\bin;%PATH%" > gnucash.bat
-    echo "set GUILE_WARN_DEPRECATED=no" >> gnucash.bat
-    echo "set GNC_MODULE_PATH=${GNUCASH_DIR}\\lib\\gnucash" >> gnucash.bat
-    echo "set GUILE_LOAD_PATH=${GNUCASH_DIR}\\share\\gnucash\\guile-modules;${GNUCASH_DIR}\\share\\gnucash\\scm;%GUILE_LOAD_PATH%" >> gnucash.bat
-    # Really sure we don't need this?
-    #echo "set SCHEME_LIBRARY_PATH=${GUILE_DIR}\\share\\guile\\site\\slib\\" >> gnucash.bat
-    echo "set LTDL_LIBRARY_PATH=${GNUCASH_DIR}\\lib" >> gnucash.bat
-    echo "start gnucash-bin" >> gnucash.bat
+    qpushd $_INSTALL_UDIR/bin
+        echo "set PATH=${INSTALL_DIR}\\bin;${INSTALL_DIR}\\lib;${INSTALL_DIR}\\lib\\gnucash;${GOFFICE_DIR}\\bin;${LIBGSF_DIR}\\bin;${PCRE_DIR}\\bin;${GNOME_DIR}\\bin;${LIBXML2_DIR}\\bin;${GUILE_DIR}\\bin;${REGEX_DIR}\\bin;${AUTOTOOLS_DIR}\\bin;${AQBANKING_PATH};${LIBOFX_DIR}\\bin;${OPENSP_DIR}\\bin;%PATH%" > gnucash.bat
+        echo "set GUILE_WARN_DEPRECATED=no" >> gnucash.bat
+        echo "set GNC_MODULE_PATH=${INSTALL_DIR}\\lib\\gnucash" >> gnucash.bat
+        echo "set GUILE_LOAD_PATH=${INSTALL_DIR}\\share\\gnucash\\guile-modules;${INSTALL_DIR}\\share\\gnucash\\scm;%GUILE_LOAD_PATH%" >> gnucash.bat
+        echo "set LTDL_LIBRARY_PATH=${INSTALL_DIR}\\lib" >> gnucash.bat
+        echo "start gnucash-bin" >> gnucash.bat
     qpopd
 }
 
+function make_chm() {
+    _CHM_TYPE=$1
+    _CHM_LANG=$2
+    echo "Processing $_CHM_TYPE ($_CHM_LANG) ..."
+    qpushd $_CHM_TYPE/$_CHM_LANG
+        xsltproc ../../../docbook-xsl/htmlhelp/htmlhelp.xsl gnucash-$_CHM_TYPE.xml
+        count=0
+        echo >> htmlhelp.hhp
+        echo "[ALIAS]" >> htmlhelp.hhp
+        echo "IDH_0=index.html" >> htmlhelp.hhp
+        echo "#define IDH_0 0" > mymaps
+        echo "[Map]" > htmlhelp.hhmap
+        echo "Searching for anchors ..."
+        for id in `cat *.xml | sed '/sect.*id=/!d;s,.*id=["'\'']\([^"'\'']*\)["'\''].*,\1,'` ; do
+            files=`grep -l "[\"']${id}[\"']" *.html` || continue
+            echo "IDH_$((++count))=${files}#${id}" >> htmlhelp.hhp
+            echo "#define IDH_${count} ${count}" >> mymaps
+            echo "${id}=${count}" >> htmlhelp.hhmap
+        done
+        echo >> htmlhelp.hhp
+        echo "[MAP]" >> htmlhelp.hhp
+        cat mymaps >> htmlhelp.hhp
+        rm mymaps
+        hhc htmlhelp.hhp || true
+        cp -fv htmlhelp.chm $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.chm
+        cp -fv htmlhelp.hhmap $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.hhmap
+    qpopd
+}
+
+function inst_docs() {
+    _DOCS_UDIR=`unix_path $DOCS_DIR`
+    if [ ! -d $_DOCS_UDIR/docbook-xsl ] ; then
+        wget_unpacked $DOCBOOK_XSL_URL $DOWNLOAD_DIR $DOCS_DIR
+        mv $_DOCS_UDIR/docbook-xsl-* $_DOCS_UDIR/docbook-xsl
+    fi
+    mkdir -p $_DOCS_UDIR/repos
+    qpushd $DOCS_DIR/repos
+        # latest revision that should compile, use HEAD or vwxyz
+        SVN_REV="HEAD"
+        if [ -x .svn ]; then
+            setup "SVN update of docs"
+            svn up -r ${SVN_REV}
+        else
+            setup "SVN checkout of docs"
+            svn co -r ${SVN_REV} $DOCS_URL .
+        fi
+        setup docs
+        _DOCS_INST_UDIR=`unix_path $INSTALL_DIR`/share/gnucash/help
+        mkdir -p $_DOCS_INST_UDIR/{C,de_DE}
+        make_chm guide C
+        make_chm guide de_DE
+        make_chm help C
+        make_chm help de_DE
+    qpopd
+}
+
 function finish() {
+    setup Finish...
     _NEW=x
     for _ENV in $ENV_VARS; do
 	_ADDS=`eval echo '"\$'"${_ENV}"'_ADDS"'`
@@ -783,6 +1045,7 @@
 		echo
 		echo "Environment variables changed, please do the following"
 		echo
+		[ -d /etc/profile.d ] || echo "mkdir -p /etc/profile.d"
 		_NEW=
 	    fi
 	    _VAL=`eval echo '"$'"${_ENV}_BASE"'"'`

Added: gnucash/branches/gda-dev/packaging/win32/libofx-0.8.3-patch.diff
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/libofx-0.8.3-patch.diff	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/libofx-0.8.3-patch.diff	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,139 @@
+diff -ur libofx-0.8.3/lib/ofx_preproc.cpp win32-libofx-0.8.3/lib/ofx_preproc.cpp
+--- libofx-0.8.3/lib/ofx_preproc.cpp	Tue Jan  9 02:38:33 2007
++++ win32-libofx-0.8.3/lib/ofx_preproc.cpp	Thu Feb  8 13:53:59 2007
+@@ -20,8 +20,14 @@
+ #include <iostream>
+ #include <fstream>
+ #include <stdlib.h>
++#include <io.h> // for mktemp() on win32/mingw
+ #include <stdio.h>
+ #include <string>
++#ifdef OS_WIN32
++#include <windows.h> // for GetModuleFileName()
++#undef ERROR
++#undef DELETE
++#endif
+ #include "ParserEventGeneratorKit.h"
+ #include "libofx.h"
+ #include "messages.hh"
+@@ -51,6 +57,57 @@
+   "~/"};
+ const unsigned int READ_BUFFER_SIZE = 1024;
+ 
++#ifdef OS_WIN32
++# define DIR_SEPARATOR_S "\\"
++#else
++# define DIR_SEPARATOR_S "/"
++#endif
++// The filenames can get quite long on windows.
++#define TMPFILEBUFSIZE 120
++
++std::string get_tmp_dir()
++{
++  // Tries to mimic the behaviour of
++  // http://developer.gnome.org/doc/API/2.0/glib/glib-Miscellaneous-Utility-Functions.html#g-get-tmp-dir
++#ifdef OS_WIN32
++  char *var;
++  var = getenv("TMPDIR");
++  if (var) return var;
++  var = getenv("TMP");
++  if (var) return var;
++  var = getenv("TEMP");
++  if (var) return var;
++  return "C:\\";
++#else
++  return "/tmp";
++#endif
++}
++
++#ifdef OS_WIN32
++std::string get_dtd_installation_directory()
++{
++  // Partial implementation of 
++  // http://developer.gnome.org/doc/API/2.0/glib/glib-Windows-Compatibility-Functions.html#g-win32-get-package-installation-directory
++  char ch_fn[MAX_PATH], *p;
++  std::string str_fn;
++
++  if (!GetModuleFileName(NULL, ch_fn, MAX_PATH)) return "";
++
++  if ((p = strrchr(ch_fn, '\\')) != NULL)
++    *p = '\0';
++
++  p = strrchr(ch_fn, '\\');
++  if (p && (_stricmp(p+1, "bin") == 0 ||
++            _stricmp(p+1, "lib") == 0))
++    *p = '\0';
++
++  str_fn = ch_fn;
++  str_fn += "\\share\\libofx\\dtd\\";
++
++  return str_fn;
++}
++#endif
++
+ /** @brief File pre-processing of OFX AND for OFC files 
+ *
+ * Takes care of comment striping, dtd locating, etc.
+@@ -66,7 +123,7 @@
+   char buffer[READ_BUFFER_SIZE];
+   string s_buffer;
+   char *filenames[3];
+-  char tmp_filename[50];
++  char tmp_filename[TMPFILEBUFSIZE];
+ 
+   libofx_context=(LibofxContext*)ctx;
+ 
+@@ -75,8 +132,10 @@
+     message_out(DEBUG, string("ofx_proc_file():Opening file: ")+ p_filename);
+     
+     input_file.open(p_filename);
+-    strncpy(tmp_filename,"/tmp/libofxtmpXXXXXX",50);
+-    mkstemp(tmp_filename);
++    std::string tmpdir = get_tmp_dir();
++    std::string tmpfiletemplate = tmpdir + DIR_SEPARATOR_S "libofxtmpXXXXXX";
++    strncpy(tmp_filename,tmpfiletemplate.c_str(),TMPFILEBUFSIZE);
++    mktemp(tmp_filename);
+     tmp_file.open(tmp_filename);
+ 
+     message_out(DEBUG,"ofx_proc_file(): Creating temp file: "+string(tmp_filename));
+@@ -203,7 +262,7 @@
+   ofstream tmp_file;
+   string s_buffer;
+   char *filenames[3];
+-  char tmp_filename[50];
++  char tmp_filename[TMPFILEBUFSIZE];
+   int pos;
+   LibofxContext *libofx_context;
+ 
+@@ -216,8 +275,10 @@
+   }
+   s_buffer=string(s, size);
+ 
+-  strncpy(tmp_filename,"/tmp/libofxtmpXXXXXX",50);
+-  mkstemp(tmp_filename);
++  std::string tmpdir = get_tmp_dir();
++  std::string tmpfiletemplate = tmpdir + DIR_SEPARATOR_S "libofxtmpXXXXXX";
++  strncpy(tmp_filename,tmpfiletemplate.c_str(),TMPFILEBUFSIZE);
++  mktemp(tmp_filename);
+   tmp_file.open(tmp_filename);
+ 
+   message_out(DEBUG,"ofx_proc_file(): Creating temp file: "+string(tmp_filename));
+@@ -439,8 +500,16 @@
+   string dtd_path_filename;
+   bool dtd_found=false;
+ 
+-  for(i=0;i<DTD_SEARCH_PATH_NUM&&dtd_found==false;i++){
+-    dtd_path_filename=DTD_SEARCH_PATH[i];
++  for(i=-1;i<DTD_SEARCH_PATH_NUM&&dtd_found==false;i++){
++    if (i==-1) {
++#ifdef OS_WIN32
++      dtd_path_filename=get_dtd_installation_directory();
++#else
++      continue;
++#endif
++    } else {
++      dtd_path_filename=DTD_SEARCH_PATH[i];
++    }
+     dtd_path_filename.append(dtd_filename);
+     dtd_file.clear();
+     dtd_file.open(dtd_path_filename.c_str());

Added: gnucash/branches/gda-dev/packaging/win32/opensp-1.5.2-patch.diff
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/opensp-1.5.2-patch.diff	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/opensp-1.5.2-patch.diff	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,13 @@
+--- lib/Makefile.am~	Thu Dec 15 13:13:16 2005
++++ lib/Makefile.am	Tue Feb  6 10:57:58 2007
+@@ -76,7 +76,9 @@
+ 	splibpch.h token.h app_inst.cxx arc_inst.cxx entmgr_inst.cxx \
+ 	parser_inst.cxx xentmgr_inst.cxx SubstTable.cxx \
+ 	UTF16CodingSystem.cxx Fixed4CodingSystem.cxx \
+-	memcmp.c memmove.c strerror.c
++	memcmp.c memmove.c strerror.c WinInetStorage.cxx \
++	WinInetStorageMessages.h WinInetStorageMessages.msg \
++	WinInetStorageMessages.rc WinApp.cxx Win32CodingSystem.cxx
+ 
+ INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/generic
+ 

Modified: gnucash/branches/gda-dev/packaging/win32/reset.sh
===================================================================
--- gnucash/branches/gda-dev/packaging/win32/reset.sh	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/packaging/win32/reset.sh	2007-04-07 16:05:40 UTC (rev 15847)
@@ -33,7 +33,7 @@
 basedir=`unix_path $GLOBAL_DIR`
 qpushd $basedir
 
-rm -rf regex readline indent guile pexports gnome swig autotools
+rm -rf regex readline guile pexports gnome swig autotools
 rm -rf libgsf goffice glade gnucash tmp
 
 rm -f /etc/profile.d/installer.sh

Modified: gnucash/branches/gda-dev/po/de.po
===================================================================
--- gnucash/branches/gda-dev/po/de.po	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/po/de.po	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,8 +10,8 @@
 msgstr ""
 "Project-Id-Version: gnucash-2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-07-04 22:29+0200\n"
-"PO-Revision-Date: 2006-07-04 22:30+0200\n"
+"POT-Creation-Date: 2007-01-28 21:37+0100\n"
+"PO-Revision-Date: 2007-01-29 15:00+0100\n"
 "Last-Translator: Christian Stimming <stimming at tuhh.de>\n"
 "Language-Team: German <de at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -62,83 +62,100 @@
 #. Translators: For the following strings, the single letters
 #. after the colon are abbreviations of the word before the
 #. colon. You should only translate the letter *after* the colon.
-#: ../src/app-utils/gnc-ui-util.c:515
+#: ../src/app-utils/gnc-ui-util.c:508
 msgid "not cleared:n"
 msgstr "not cleared:n"
 
 #. Translators: Please only translate the letter *after* the colon.
-#: ../src/app-utils/gnc-ui-util.c:517
+#: ../src/app-utils/gnc-ui-util.c:510
 msgid "cleared:c"
 msgstr "cleared:b"
 
 #. Translators: Please only translate the letter *after* the colon.
-#: ../src/app-utils/gnc-ui-util.c:519
+#: ../src/app-utils/gnc-ui-util.c:512
 msgid "reconciled:y"
 msgstr "reconciled:j"
 
 #. Translators: Please only translate the letter *after* the colon.
-#: ../src/app-utils/gnc-ui-util.c:521
+#: ../src/app-utils/gnc-ui-util.c:514
 msgid "frozen:f"
 msgstr "frozen:f"
 
 #. Translators: Please only translate the letter *after* the colon.
-#: ../src/app-utils/gnc-ui-util.c:523
+#: ../src/app-utils/gnc-ui-util.c:516
 msgid "void:v"
 msgstr "void:u"
 
-#: ../src/app-utils/gnc-ui-util.c:564 ../src/gnome/dialog-chart-export.c:44
+#: ../src/app-utils/gnc-ui-util.c:557 ../src/gnome/dialog-chart-export.c:44
 msgid "Opening Balances"
 msgstr "Anfangsbestand"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
-#: ../src/app-utils/gnc-ui-util.c:567
-#: ../src/import-export/qif/qif-defaults.c:60 ../intl-scm/guile-strings.c:1840
-#: ../intl-scm/guile-strings.c:3082 ../intl-scm/guile-strings.c:3084
-#: ../intl-scm/guile-strings.c:3104 ../intl-scm/guile-strings.c:3106
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
+#: ../src/app-utils/gnc-ui-util.c:560
+#: ../src/import-export/qif/qif-defaults.c:60 ../intl-scm/guile-strings.c:3174
+#: ../intl-scm/guile-strings.c:4324 ../intl-scm/guile-strings.c:5750
+#: ../intl-scm/guile-strings.c:5752 ../intl-scm/guile-strings.c:5772
+#: ../intl-scm/guile-strings.c:5774 ../intl-scm/guile-strings.c:5794
+#: ../intl-scm/guile-strings.c:5796
 msgid "Retained Earnings"
 msgstr "Gewinnrücklagen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../src/app-utils/gnc-ui-util.c:640 ../src/engine/Account.c:2141
-#: ../src/register/ledger-core/split-register.c:2029
-#: ../intl-scm/guile-strings.c:1838
+#: ../src/app-utils/gnc-ui-util.c:633 ../src/engine/Account.c:2144
+#: ../src/register/ledger-core/split-register.c:2051
+#: ../intl-scm/guile-strings.c:3172 ../intl-scm/guile-strings.c:4322
 msgid "Equity"
 msgstr "Eigenkapital"
 
-#: ../src/app-utils/gnc-ui-util.c:700 ../src/gnome/dialog-chart-export.c:45
-#: ../src/gnome/druid-hierarchy.c:905 ../src/gnome/glade/account.glade.h:48
-#: ../src/gnome-utils/dialog-account.c:267
+#: ../src/app-utils/gnc-ui-util.c:693 ../src/gnome/dialog-chart-export.c:45
+#: ../src/gnome/druid-hierarchy.c:921 ../src/gnome/glade/account.glade.h:41
+#: ../src/gnome-utils/dialog-account.c:269
 msgid "Opening Balance"
 msgstr "Anfangsbestand"
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../src/app-utils/guile-util.c:1099
-#: ../src/register/ledger-core/split-register.c:1879
-#: ../intl-scm/guile-strings.c:1268 ../intl-scm/guile-strings.c:1456
-#: ../intl-scm/guile-strings.c:2260 ../intl-scm/guile-strings.c:2572
+#: ../src/app-utils/guile-util.c:1086
+#: ../src/register/ledger-core/split-register.c:1901
+#: ../intl-scm/guile-strings.c:1980 ../intl-scm/guile-strings.c:2166
+#: ../intl-scm/guile-strings.c:2604 ../intl-scm/guile-strings.c:2790
+#: ../intl-scm/guile-strings.c:3594 ../intl-scm/guile-strings.c:3906
+#: ../intl-scm/guile-strings.c:4744 ../intl-scm/guile-strings.c:5056
 msgid "Debit"
 msgstr "Soll"
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../src/app-utils/guile-util.c:1137
-#: ../src/register/ledger-core/split-register.c:1902
-#: ../src/register/ledger-core/split-register.c:1977
-#: ../src/register/ledger-core/split-register.c:1993
-#: ../src/register/ledger-core/split-register.c:2011
-#: ../intl-scm/guile-strings.c:1270 ../intl-scm/guile-strings.c:1458
-#: ../intl-scm/guile-strings.c:2262 ../intl-scm/guile-strings.c:2574
+#: ../src/app-utils/guile-util.c:1121
+#: ../src/register/ledger-core/split-register.c:1924
+#: ../src/register/ledger-core/split-register.c:1999
+#: ../src/register/ledger-core/split-register.c:2015
+#: ../src/register/ledger-core/split-register.c:2033
+#: ../intl-scm/guile-strings.c:1982 ../intl-scm/guile-strings.c:2168
+#: ../intl-scm/guile-strings.c:2606 ../intl-scm/guile-strings.c:2792
+#: ../intl-scm/guile-strings.c:3596 ../intl-scm/guile-strings.c:3908
+#: ../intl-scm/guile-strings.c:4746 ../intl-scm/guile-strings.c:5058
 msgid "Credit"
 msgstr "Haben"
 
-#: ../src/app-utils/option-util.c:1734
+#: ../src/app-utils/option-util.c:1699
 #, c-format
 msgid ""
 "There is a problem with option %s:%s.\n"
@@ -155,178 +172,179 @@
 "wird verwendet. "
 
 #: ../src/backend/postgres/PostgresBackend.c:1988
-#: ../src/backend/postgres/putil.c:78 ../src/backend/postgres/putil.c:104
-#: ../src/backend/postgres/putil.c:146
+#: ../src/backend/postgres/putil.c:79 ../src/backend/postgres/putil.c:105
+#: ../src/backend/postgres/putil.c:147
 #, c-format
 msgid "From the Postgresql Server: %s"
 msgstr "Fehlermeldung vom Postgresql Server: %s"
 
-#: ../src/backend/postgres/putil.c:56 ../src/backend/postgres/upgrade.c:398
+#: ../src/backend/postgres/putil.c:57 ../src/backend/postgres/upgrade.c:398
 msgid "Backend connection is not available"
 msgstr "Postgresql-Verbindung nicht verfügbar"
 
-#: ../src/backend/postgres/putil.c:65
+#: ../src/backend/postgres/putil.c:66
 msgid "Query could not be executed"
 msgstr "SQL-Abfrage konnte nicht ausgeführt werden"
 
-#: ../src/bin/gnucash-bin.c:73
+#: ../src/bin/gnucash-bin.c:82
 msgid "This is a development version. It may or may not work.\n"
 msgstr ""
 "Diese Version befindet sich noch in Entwicklung.\n"
 "Sie kann funktionieren, muss aber nicht.\n"
 
-#: ../src/bin/gnucash-bin.c:74
+#: ../src/bin/gnucash-bin.c:83
 msgid "Report bugs and other problems to gnucash-devel at gnucash.org.\n"
 msgstr ""
 "Fehler und andere Probleme werden auf gnucash-devel at gnucash.org diskutiert.\n"
 
-#: ../src/bin/gnucash-bin.c:75
+#: ../src/bin/gnucash-bin.c:84
 msgid "You can also lookup and file bug reports at http://bugzilla.gnome.org\n"
 msgstr ""
 "Fehlerberichte können auf http://bugzilla.gnome.org eingeschickt werden.\n"
 
-#: ../src/bin/gnucash-bin.c:76
+#: ../src/bin/gnucash-bin.c:85
 msgid "The last stable version was "
 msgstr "Die letzte stabile Version war: "
 
-#: ../src/bin/gnucash-bin.c:77
+#: ../src/bin/gnucash-bin.c:86
 msgid "The next stable version will be "
 msgstr "Die nächste stabile Version wird sein: "
 
-#: ../src/bin/gnucash-bin.c:218 ../src/bin/gnucash-bin.c:266
+#: ../src/bin/gnucash-bin.c:204
 msgid "Show GnuCash version"
 msgstr "GnuCash Version anzeigen"
 
-#: ../src/bin/gnucash-bin.c:220 ../src/bin/gnucash-bin.c:268
+#: ../src/bin/gnucash-bin.c:206
 msgid "Enable debugging mode"
 msgstr "Debug-Modus aktivieren"
 
 #. Translators: This is the command line option autohelp
 #. text; see popt(3)
-#: ../src/bin/gnucash-bin.c:224 ../src/bin/gnucash-bin.c:272
+#: ../src/bin/gnucash-bin.c:210
 msgid "Set the logging level from 0 (least) to 6 (most)"
 msgstr "Logging-Level wählen, von 0 (am wenigsten) bis 6 (am meisten)"
 
-#. Translators: Argument description for autohelp; see popt(3)
 #. Translators: Argument description for autohelp; see
 #. http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html
-#: ../src/bin/gnucash-bin.c:226 ../src/bin/gnucash-bin.c:275
+#: ../src/bin/gnucash-bin.c:213
 msgid "LOGLEVEL"
 msgstr "LOGLEVEL"
 
-#: ../src/bin/gnucash-bin.c:228 ../src/bin/gnucash-bin.c:277
+#: ../src/bin/gnucash-bin.c:215
 msgid "Do not load the last file opened"
 msgstr "Zuletzt geöffnete Datei nicht öffnen"
 
-#: ../src/bin/gnucash-bin.c:230 ../src/bin/gnucash-bin.c:279
+#: ../src/bin/gnucash-bin.c:217
 msgid "Set configuration path"
 msgstr "Konfigurations-Pfad setzen"
 
-#. Translators: Argument description for autohelp; see popt(3)
 #. Translators: Argument description for autohelp; see
 #. http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html
-#: ../src/bin/gnucash-bin.c:232 ../src/bin/gnucash-bin.c:282
+#: ../src/bin/gnucash-bin.c:220
 msgid "CONFIGPATH"
 msgstr "CONFIGPFAD"
 
-#: ../src/bin/gnucash-bin.c:234 ../src/bin/gnucash-bin.c:284
+#: ../src/bin/gnucash-bin.c:222
 msgid "Set shared data file search path"
 msgstr "Systemweiten Suchpfad für architekturunabhängige Dateien setzen"
 
-#. Translators: Argument description for autohelp; see popt(3)
 #. Translators: Argument description for autohelp; see
 #. http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html
-#: ../src/bin/gnucash-bin.c:236 ../src/bin/gnucash-bin.c:287
+#: ../src/bin/gnucash-bin.c:225
 msgid "SHAREPATH"
 msgstr "SHAREPFAD"
 
 #. src/scm/command-line.scm
-#: ../src/bin/gnucash-bin.c:238 ../src/bin/gnucash-bin.c:289
-#: ../intl-scm/guile-strings.c:6
+#: ../src/bin/gnucash-bin.c:227 ../intl-scm/guile-strings.c:6
 msgid "Set the search path for documentation files"
 msgstr "Suchpfad für Hilfedateien setzen"
 
-#. Translators: Argument description for autohelp; see popt(3)
 #. Translators: Argument description for autohelp; see
 #. http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html
-#: ../src/bin/gnucash-bin.c:240 ../src/bin/gnucash-bin.c:292
+#: ../src/bin/gnucash-bin.c:230
 msgid "DOCPATH"
 msgstr "DOCPFAD"
 
-#: ../src/bin/gnucash-bin.c:242 ../src/bin/gnucash-bin.c:294
+#: ../src/bin/gnucash-bin.c:232
 msgid "Add price quotes to given GnuCash datafile"
 msgstr "Börsenkurse zu angegebener Datei hinzufügen"
 
-#. Translators: Argument description for autohelp; see popt(3)
 #. Translators: Argument description for autohelp; see
 #. http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html
-#: ../src/bin/gnucash-bin.c:244 ../src/bin/gnucash-bin.c:297
+#: ../src/bin/gnucash-bin.c:235
 msgid "FILE"
 msgstr "DATEI"
 
-#: ../src/bin/gnucash-bin.c:246 ../src/bin/gnucash-bin.c:299
+#: ../src/bin/gnucash-bin.c:237
 msgid ""
 "Regular expression determining which namespace commodities will be retrieved"
 msgstr ""
 "Regulärer Ausdruck für den Namensstandard, in dem die Aktienkurse geholt "
 "werden sollen"
 
-#. Translators: Argument description for autohelp; see popt(3)
 #. Translators: Argument description for autohelp; see
 #. http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html
-#: ../src/bin/gnucash-bin.c:248 ../src/bin/gnucash-bin.c:302
+#: ../src/bin/gnucash-bin.c:240
 msgid "REGEXP"
 msgstr "REGEXP"
 
 #. Translators: %s is the version number
-#: ../src/bin/gnucash-bin.c:322
+#: ../src/bin/gnucash-bin.c:259
 #, c-format
 msgid "GnuCash %s development version"
 msgstr "GnuCash Entwicklungsversion %s"
 
 #. Translators: %s is the version number
-#: ../src/bin/gnucash-bin.c:325
+#: ../src/bin/gnucash-bin.c:262
 #, c-format
 msgid "GnuCash %s"
 msgstr "GnuCash %s"
 
 #. Translators: 1st %s is the build date; 2nd %s is the SVN
 #. revision number
-#: ../src/bin/gnucash-bin.c:329
+#: ../src/bin/gnucash-bin.c:266
 #, c-format
 msgid "Built %s from r%s"
 msgstr "Build vom %s, Revision r%s"
 
-#: ../src/bin/gnucash-bin.c:405
+#: ../src/bin/gnucash-bin.c:337
 msgid "No quotes retrieved. Finance::Quote isn't installed properly.\n"
 msgstr ""
 "Keine Kurse abgerufen. Modul Finance::Quote ist nicht korrekt installiert.\n"
 
 #. Install Price Quote Sources
-#: ../src/bin/gnucash-bin.c:458
+#: ../src/bin/gnucash-bin.c:419
 msgid "Checking Finance::Quote..."
 msgstr "Modul Finance::Quote prüfen..."
 
-#: ../src/bin/gnucash-bin.c:465
+#: ../src/bin/gnucash-bin.c:426
 msgid "Loading data..."
 msgstr "Daten laden..."
 
 #. src/app-utils/prefs.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-core/gncInvoice.c:589
-#: ../src/business/business-gnome/business-gnome-utils.c:219
-#: ../src/business/business-gnome/dialog-invoice.c:2410
-#: ../src/business/business-gnome/dialog-invoice.c:2492
-#: ../src/business/business-gnome/glade/invoice.glade.h:13
+#: ../src/business/business-core/gncInvoice.c:594
+#: ../src/business/business-gnome/business-gnome-utils.c:221
+#: ../src/business/business-gnome/dialog-invoice.c:2405
+#: ../src/business/business-gnome/dialog-invoice.c:2487
+#: ../src/business/business-gnome/glade/invoice.glade.h:12
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:316
-#: ../src/register/ledger-core/split-register.c:2008
-#: ../intl-scm/guile-strings.c:82 ../intl-scm/guile-strings.c:2656
-#: ../intl-scm/guile-strings.c:3364 ../intl-scm/guile-strings.c:3462
-#: ../intl-scm/guile-strings.c:3678 ../intl-scm/guile-strings.c:3906
+#: ../src/register/ledger-core/split-register.c:2030
+#: ../intl-scm/guile-strings.c:130 ../intl-scm/guile-strings.c:3990
+#: ../intl-scm/guile-strings.c:5140 ../intl-scm/guile-strings.c:6090
+#: ../intl-scm/guile-strings.c:6188 ../intl-scm/guile-strings.c:6404
+#: ../intl-scm/guile-strings.c:6614 ../intl-scm/guile-strings.c:6712
+#: ../intl-scm/guile-strings.c:6928 ../intl-scm/guile-strings.c:7158
+#: ../intl-scm/guile-strings.c:7398
 msgid "Invoice"
 msgstr "Rechnung"
 
@@ -334,62 +352,70 @@
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-core/gncInvoice.c:591
-#: ../src/business/business-gnome/business-gnome-utils.c:213
-#: ../src/business/business-gnome/dialog-invoice.c:2398
-#: ../intl-scm/guile-strings.c:108 ../intl-scm/guile-strings.c:3366
-#: ../intl-scm/guile-strings.c:3464 ../intl-scm/guile-strings.c:3680
-#: ../intl-scm/guile-strings.c:3908
+#: ../src/business/business-core/gncInvoice.c:596
+#: ../src/business/business-gnome/business-gnome-utils.c:215
+#: ../src/business/business-gnome/dialog-invoice.c:2393
+#: ../intl-scm/guile-strings.c:156 ../intl-scm/guile-strings.c:6092
+#: ../intl-scm/guile-strings.c:6190 ../intl-scm/guile-strings.c:6406
+#: ../intl-scm/guile-strings.c:6616 ../intl-scm/guile-strings.c:6714
+#: ../intl-scm/guile-strings.c:6930 ../intl-scm/guile-strings.c:7160
+#: ../intl-scm/guile-strings.c:7400
 msgid "Bill"
 msgstr "Rechnung"
 
 #. src/app-utils/prefs.scm
 #. src/report/standard-reports/net-barchart.scm
-#: ../src/business/business-core/gncInvoice.c:593 ../src/engine/Account.c:2140
-#: ../intl-scm/guile-strings.c:78 ../intl-scm/guile-strings.c:1242
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../src/business/business-core/gncInvoice.c:598 ../src/engine/Account.c:2143
+#: ../intl-scm/guile-strings.c:126 ../intl-scm/guile-strings.c:1954
+#: ../intl-scm/guile-strings.c:2578
 msgid "Expense"
 msgstr "Aufwendungen"
 
 #. Set memo.  action?
-#: ../src/business/business-core/gncInvoice.c:1028
+#: ../src/business/business-core/gncInvoice.c:1033
 msgid "Extra to Charge Card"
 msgstr "Zusätzliche Kosten Kreditkarte"
 
-#: ../src/business/business-core/gncInvoice.c:1067
+#: ../src/business/business-core/gncInvoice.c:1072
 msgid "Generated from an invoice.  Try unposting the invoice."
 msgstr ""
 "Aus einer Rechnung erzeugt. Für Änderungen müssen Sie die Buchung der "
 "Rechnung löschen."
 
 #. Translators: This is the memo of an auto-created split
-#: ../src/business/business-core/gncInvoice.c:1085
+#: ../src/business/business-core/gncInvoice.c:1090
 msgid "Automatic Payment Forward"
 msgstr "Automatische Zahlungsweiterleitung"
 
-#: ../src/business/business-core/gncInvoice.c:1086
+#: ../src/business/business-core/gncInvoice.c:1091
 msgid "Auto Split"
 msgstr "Automatische Buchung"
 
 #. src/app-utils/prefs.scm
-#: ../src/business/business-core/gncInvoice.c:1279
-#: ../src/business/business-core/gncInvoice.c:1373
+#: ../src/business/business-core/gncInvoice.c:1284
+#: ../src/business/business-core/gncInvoice.c:1378
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:140
-#: ../src/gnome/druid-loan.c:1780 ../src/gnome/druid-loan.c:2280
-#: ../src/gnome/druid-loan.c:2343 ../src/gnome/druid-loan.c:2357
-#: ../src/register/ledger-core/split-register.c:2004
-#: ../src/register/ledger-core/split-register.c:2009
-#: ../src/register/ledger-core/split-register.c:2018
-#: ../intl-scm/guile-strings.c:64 ../intl-scm/guile-strings.c:80
-#: ../intl-scm/guile-strings.c:110
+#: ../src/gnome/druid-loan.c:1789 ../src/gnome/druid-loan.c:2293
+#: ../src/gnome/druid-loan.c:2356 ../src/gnome/druid-loan.c:2370
+#: ../src/register/ledger-core/split-register.c:2026
+#: ../src/register/ledger-core/split-register.c:2031
+#: ../src/register/ledger-core/split-register.c:2040
+#: ../intl-scm/guile-strings.c:112 ../intl-scm/guile-strings.c:128
+#: ../intl-scm/guile-strings.c:158
 msgid "Payment"
 msgstr "Zahlung"
 
-#: ../src/business/business-core/gncInvoice.c:1400
+#: ../src/business/business-core/gncInvoice.c:1405
 msgid "Pre-Payment"
 msgstr "Vorauszahlung"
 
-#: ../src/business/business-core/gncInvoice.c:1497
+#: ../src/business/business-core/gncInvoice.c:1502
 msgid " (posted)"
 msgstr " (gebucht)"
 
@@ -397,55 +423,53 @@
 msgid " (closed)"
 msgstr " (geschlossen)"
 
-#: ../src/business/business-gnome/business-gnome-utils.c:67
-#: ../src/business/business-gnome/business-gnome-utils.c:250
-#: ../src/business/business-gnome/dialog-invoice.c:1014
-#: ../src/business/business-gnome/dialog-invoice.c:1085
+#: ../src/business/business-gnome/business-gnome-utils.c:69
+#: ../src/business/business-gnome/business-gnome-utils.c:252
+#: ../src/business/business-gnome/dialog-invoice.c:1006
+#: ../src/business/business-gnome/dialog-invoice.c:1077
 #: ../src/gnome-utils/gnc-general-select.c:217
-#: ../src/import-export/qif-import/qif.glade.h:77
+#: ../src/import-export/qif-import/qif.glade.h:67
 msgid "Select..."
 msgstr "Auswählen..."
 
-#: ../src/business/business-gnome/business-gnome-utils.c:70
+#: ../src/business/business-gnome/business-gnome-utils.c:72
 #: ../src/gnome-utils/gnc-general-select.c:219
 msgid "Edit..."
 msgstr "Bearbeiten..."
 
-#: ../src/business/business-gnome/business-gnome-utils.c:216
+#: ../src/business/business-gnome/business-gnome-utils.c:218
 msgid "Voucher"
 msgstr "Auslagenerstattung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/business/business-gnome/business-gnome-utils.c:459
-#: ../src/engine/FreqSpec.c:724 ../src/gnome/glade/sched-xact.glade.h:122
-#: ../intl-scm/guile-strings.c:2298 ../intl-scm/guile-strings.c:2324
-#: ../intl-scm/guile-strings.c:2384 ../intl-scm/guile-strings.c:2386
-#: ../intl-scm/guile-strings.c:2492 ../intl-scm/guile-strings.c:2508
+#: ../src/business/business-gnome/business-gnome-utils.c:455
+#: ../src/engine/FreqSpec.c:724 ../src/gnome/glade/sched-xact.glade.h:139
+#: ../intl-scm/guile-strings.c:3632 ../intl-scm/guile-strings.c:3658
+#: ../intl-scm/guile-strings.c:3718 ../intl-scm/guile-strings.c:3720
+#: ../intl-scm/guile-strings.c:3826 ../intl-scm/guile-strings.c:3842
+#: ../intl-scm/guile-strings.c:4782 ../intl-scm/guile-strings.c:4808
+#: ../intl-scm/guile-strings.c:4868 ../intl-scm/guile-strings.c:4870
+#: ../intl-scm/guile-strings.c:4976 ../intl-scm/guile-strings.c:4992
 #, c-format
 msgid "None"
 msgstr "Keine"
 
-#: ../src/business/business-gnome/business-gnome-utils.c:635
+#: ../src/business/business-gnome/business-gnome-utils.c:631
 msgid "Yes"
 msgstr "Ja"
 
-#: ../src/business/business-gnome/business-gnome-utils.c:640
+#: ../src/business/business-gnome/business-gnome-utils.c:636
 msgid "No"
 msgstr "Nein"
 
-#: ../src/business/business-gnome/business-gnome-utils.c:645
+#: ../src/business/business-gnome/business-gnome-utils.c:641
 msgid "Use Global"
 msgstr "Voreinstellung benutzen"
 
-#. src/business/business-utils/business-utils.scm
-#: ../src/business/business-gnome/businessmod-gnome.c:122
-#: ../intl-scm/guile-strings.c:3160
-msgid "Business"
-msgstr "Geschäft"
-
 #: ../src/business/business-gnome/business-urls.c:58
 #: ../src/business/business-gnome/business-urls.c:190
-#: ../src/gnome/top-level.c:191
+#: ../src/gnome/top-level.c:192
 #, c-format
 msgid "Badly formed URL %s"
 msgstr "Fehlerhafte URL %s"
@@ -487,21 +511,21 @@
 msgid "No such Account entity: %s"
 msgstr "Ungültige Konto Entity: %s"
 
-#: ../src/business/business-gnome/dialog-billterms.c:256
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:119
+#: ../src/business/business-gnome/dialog-billterms.c:262
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:129
 msgid "Negative amounts are not allowed."
 msgstr "Negative Beträge sind hier nicht möglich."
 
-#: ../src/business/business-gnome/dialog-billterms.c:261
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:126
+#: ../src/business/business-gnome/dialog-billterms.c:267
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:136
 msgid "Percentage amount must be between 0 and 100."
 msgstr "Die Prozentzahl muss zwischen 0 und 100 liegen."
 
-#: ../src/business/business-gnome/dialog-billterms.c:284
+#: ../src/business/business-gnome/dialog-billterms.c:290
 msgid "You must provide a name for this Billing Term."
 msgstr "Sie müssen einen Namen für diese Zahlungsbedingungen angeben."
 
-#: ../src/business/business-gnome/dialog-billterms.c:290
+#: ../src/business/business-gnome/dialog-billterms.c:296
 #, c-format
 msgid ""
 "You must provide a unique name for this Billing Term. Your choice \"%s\" is "
@@ -511,32 +535,36 @@
 "Ihre Auswahl »%s« wird bereits benutzt."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../src/business/business-gnome/dialog-billterms.c:495
-#: ../src/business/business-gnome/glade/billterms.glade.h:11
-#: ../src/gnome/glade/sched-xact.glade.h:68
-#: ../src/gnome-utils/gnc-date-delta.c:217 ../intl-scm/guile-strings.c:1168
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../src/business/business-gnome/dialog-billterms.c:465
+#: ../src/business/business-gnome/glade/billterms.glade.h:9
+#: ../src/gnome/glade/sched-xact.glade.h:75
+#: ../src/gnome-utils/gnc-date-delta.c:214 ../intl-scm/guile-strings.c:1880
+#: ../intl-scm/guile-strings.c:2504
 msgid "Days"
 msgstr "Tage"
 
-#: ../src/business/business-gnome/dialog-billterms.c:498
-#: ../src/business/business-gnome/glade/billterms.glade.h:22
+#: ../src/business/business-gnome/dialog-billterms.c:468
+#: ../src/business/business-gnome/glade/billterms.glade.h:21
 msgid "Proximo"
 msgstr "Im nächsten Monat"
 
 #. src/business/business-reports/owner-report.scm
-#: ../src/business/business-gnome/dialog-billterms.c:501
-#: ../src/engine/FreqSpec.c:983 ../intl-scm/guile-strings.c:3420
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/business/business-gnome/dialog-billterms.c:471
+#: ../src/engine/FreqSpec.c:983 ../intl-scm/guile-strings.c:6146
+#: ../intl-scm/guile-strings.c:6670
 #, c-format
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: ../src/business/business-gnome/dialog-billterms.c:625
+#: ../src/business/business-gnome/dialog-billterms.c:592
 #, c-format
 msgid "Term \"%s\" is in use.  You cannot delete it."
 msgstr "Zahlungsbedingung »%s« ist in Benutzung. Sie können sie nicht löschen."
 
-#: ../src/business/business-gnome/dialog-billterms.c:631
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:556
+#: ../src/business/business-gnome/dialog-billterms.c:598
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:542
 #, c-format
 msgid "Are you sure you want to delete \"%s\"?"
 msgstr "Sind Sie sicher, dass Sie »%s« löschen möchten?"
@@ -583,7 +611,7 @@
 #: ../src/business/business-gnome/dialog-employee.c:301
 #: ../src/business/business-gnome/dialog-job.c:230
 #: ../src/business/business-gnome/dialog-vendor.c:287
-#: ../src/gnome-utils/dialog-account.c:1349
+#: ../src/gnome-utils/dialog-account.c:1300
 msgid "<No name>"
 msgstr "<Kein Name>"
 
@@ -592,7 +620,7 @@
 msgstr "Kunde bearbeiten"
 
 #: ../src/business/business-gnome/dialog-customer.c:374
-#: ../src/business/business-gnome/glade/customer.glade.h:16
+#: ../src/business/business-gnome/glade/customer.glade.h:15
 msgid "New Customer"
 msgstr "Neuer Kunde"
 
@@ -611,10 +639,10 @@
 
 #: ../src/business/business-gnome/dialog-customer.c:785
 #: ../src/business/business-gnome/dialog-employee.c:684
+#: ../src/business/business-gnome/dialog-invoice.c:2197
 #: ../src/business/business-gnome/dialog-invoice.c:2202
-#: ../src/business/business-gnome/dialog-invoice.c:2207
-#: ../src/business/business-gnome/dialog-invoice.c:2214
-#: ../src/business/business-gnome/dialog-invoice.c:2460
+#: ../src/business/business-gnome/dialog-invoice.c:2209
+#: ../src/business/business-gnome/dialog-invoice.c:2455
 #: ../src/business/business-gnome/dialog-job.c:516
 msgid "Process Payment"
 msgstr "Zahlung verarbeiten"
@@ -632,10 +660,11 @@
 msgid "Customer ID"
 msgstr "Kundennummer"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
 #: ../src/business/business-gnome/dialog-customer.c:800
 #: ../src/business/business-gnome/dialog-vendor.c:663
-#: ../intl-scm/guile-strings.c:3162
+#: ../intl-scm/guile-strings.c:5870 ../intl-scm/guile-strings.c:5888
 msgid "Company Name"
 msgstr "Firmenname"
 
@@ -645,14 +674,17 @@
 msgstr "Kontaktadresse"
 
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
 #: ../src/business/business-gnome/dialog-customer.c:808
-#: ../src/business/business-gnome/dialog-invoice.c:2323
-#: ../src/business/business-gnome/dialog-invoice.c:2468
+#: ../src/business/business-gnome/dialog-invoice.c:2318
+#: ../src/business/business-gnome/dialog-invoice.c:2463
 #: ../src/business/business-gnome/dialog-job.c:540
 #: ../src/business/business-gnome/dialog-order.c:826
 #: ../src/business/business-gnome/dialog-vendor.c:671
-#: ../intl-scm/guile-strings.c:3396 ../intl-scm/guile-strings.c:3746
+#: ../intl-scm/guile-strings.c:6122 ../intl-scm/guile-strings.c:6646
+#: ../intl-scm/guile-strings.c:6996 ../intl-scm/guile-strings.c:7236
 msgid "Company"
 msgstr "Firma"
 
@@ -688,7 +720,7 @@
 msgstr "Mitarbeiter bearbeiten"
 
 #: ../src/business/business-gnome/dialog-employee.c:310
-#: ../src/business/business-gnome/glade/employee.glade.h:19
+#: ../src/business/business-gnome/glade/employee.glade.h:18
 msgid "New Employee"
 msgstr "Neuer Mitarbeiter"
 
@@ -709,7 +741,7 @@
 msgstr "Mitarbeiter Benutzername"
 
 #: ../src/business/business-gnome/dialog-employee.c:696
-#: ../src/business/business-gnome/dialog-invoice.c:2304
+#: ../src/business/business-gnome/dialog-invoice.c:2299
 msgid "Employee Name"
 msgstr "Mitarbeitername"
 
@@ -717,15 +749,16 @@
 msgid "Username"
 msgstr "Benutzername"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
 #: ../src/business/business-gnome/dialog-employee.c:706
-#: ../src/gnome/dialog-scheduledxaction.c:2573
-#: ../src/gnome/glade/sched-xact.glade.h:118
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:10
-#: ../src/gnome-utils/gnc-dense-cal.c:280
+#: ../src/gnome/dialog-sx-editor.c:1674
+#: ../src/gnome/glade/sched-xact.glade.h:136
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:9
+#: ../src/gnome-utils/gnc-dense-cal.c:263
 #: ../src/gnome-utils/gnc-tree-model-budget.c:96
 #: ../src/gnome-utils/gnc-tree-view-commodity.c:405
-#: ../intl-scm/guile-strings.c:3720
+#: ../intl-scm/guile-strings.c:6970 ../intl-scm/guile-strings.c:7210
 msgid "Name"
 msgstr "Name"
 
@@ -738,31 +771,31 @@
 #. * label in the frame and means
 #. * e.g. customer i.e. the company being
 #. * invoiced.
-#: ../src/business/business-gnome/dialog-invoice.c:344
+#: ../src/business/business-gnome/dialog-invoice.c:340
 #: ../src/business/business-gnome/dialog-order.c:174
 msgid "You need to supply Billing Information."
 msgstr "Sie müssen Rechnungsdaten eingeben."
 
-#: ../src/business/business-gnome/dialog-invoice.c:499
+#: ../src/business/business-gnome/dialog-invoice.c:495
 msgid "Are you sure you want to delete the selected entry?"
 msgstr "Sind Sie sicher, dass Sie den gewählten Posten löschen möchten?"
 
-#: ../src/business/business-gnome/dialog-invoice.c:501
+#: ../src/business/business-gnome/dialog-invoice.c:497
 msgid ""
 "This entry is attached to an order and will be deleted from that as well!"
 msgstr ""
 "Dieser Posten ist mit einer Bestellung verbunden und würde dadurch auch von "
 "der Bestellung gelöscht."
 
-#: ../src/business/business-gnome/dialog-invoice.c:609
+#: ../src/business/business-gnome/dialog-invoice.c:605
 msgid "The Invoice must have at least one Entry."
 msgstr "Die Rechnung muss mindestens einen Posten enthalten."
 
-#: ../src/business/business-gnome/dialog-invoice.c:616
+#: ../src/business/business-gnome/dialog-invoice.c:612
 msgid "You may not post an invoice with a negative total value."
 msgstr "Sie können keine Rechnung buchen, die einen negativen Saldo hat."
 
-#: ../src/business/business-gnome/dialog-invoice.c:623
+#: ../src/business/business-gnome/dialog-invoice.c:619
 msgid "You may not post an expense voucher with a negative total cash value."
 msgstr ""
 "Sie können keine Auslagenerstattung buchen, die einen negativen Saldo hat."
@@ -770,293 +803,334 @@
 #. Ok, we can post this invoice.  Ask for verification, set the due date,
 #. * post date, and posted account
 #.
-#: ../src/business/business-gnome/dialog-invoice.c:630
+#: ../src/business/business-gnome/dialog-invoice.c:626
 msgid "Do you really want to post the invoice?"
 msgstr "Wollen Sie diese Rechnung wirklich buchen?"
 
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/dialog-invoice.c:631
+#: ../src/business/business-gnome/dialog-invoice.c:627
 #: ../src/register/ledger-core/split-register-model.c:109
-#: ../intl-scm/guile-strings.c:3400 ../intl-scm/guile-strings.c:3596
-#: ../intl-scm/guile-strings.c:3916
+#: ../intl-scm/guile-strings.c:6126 ../intl-scm/guile-strings.c:6322
+#: ../intl-scm/guile-strings.c:6650 ../intl-scm/guile-strings.c:6846
+#: ../intl-scm/guile-strings.c:7168 ../intl-scm/guile-strings.c:7408
 msgid "Due Date"
 msgstr "Fälligkeitsdatum"
 
-#: ../src/business/business-gnome/dialog-invoice.c:632
+#: ../src/business/business-gnome/dialog-invoice.c:628
 msgid "Post Date"
 msgstr "Buchungsdatum"
 
-#: ../src/business/business-gnome/dialog-invoice.c:633
+#: ../src/business/business-gnome/dialog-invoice.c:629
 msgid "Post to Account"
 msgstr "Buchen nach Konto"
 
-#: ../src/business/business-gnome/dialog-invoice.c:634
+#: ../src/business/business-gnome/dialog-invoice.c:630
 msgid "Accumulate Splits?"
 msgstr "Buchungen kumulieren?"
 
-#: ../src/business/business-gnome/dialog-invoice.c:928
-#: ../src/gnome/window-reconcile.c:1051
+#: ../src/business/business-gnome/dialog-invoice.c:920
+#: ../src/gnome/window-reconcile.c:1050
 msgid "Total:"
 msgstr "Betrag:"
 
-#: ../src/business/business-gnome/dialog-invoice.c:933
+#: ../src/business/business-gnome/dialog-invoice.c:925
 msgid "Subtotal:"
 msgstr "Zwischensumme:"
 
-#: ../src/business/business-gnome/dialog-invoice.c:934
+#: ../src/business/business-gnome/dialog-invoice.c:926
 msgid "Tax:"
 msgstr "Steuern:"
 
-#: ../src/business/business-gnome/dialog-invoice.c:938
+#: ../src/business/business-gnome/dialog-invoice.c:930
 msgid "Total Cash:"
 msgstr "Betrag Bar:"
 
-#: ../src/business/business-gnome/dialog-invoice.c:939
+#: ../src/business/business-gnome/dialog-invoice.c:931
 msgid "Total Charge:"
 msgstr "Gesamt Belastung:"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1555
-#: ../src/business/business-gnome/glade/invoice.glade.h:19
+#: ../src/business/business-gnome/dialog-invoice.c:1547
+#: ../src/business/business-gnome/glade/invoice.glade.h:18
 msgid "New Invoice"
 msgstr "Neue Rechnung"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1559
+#: ../src/business/business-gnome/dialog-invoice.c:1551
 msgid "Edit Invoice"
 msgstr "Rechnung bearbeiten"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1562
+#: ../src/business/business-gnome/dialog-invoice.c:1554
 msgid "View Invoice"
 msgstr "Rechnung anzeigen"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1570
+#: ../src/business/business-gnome/dialog-invoice.c:1562
 msgid "New Bill"
 msgstr "Neue Rechnung"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1574
+#: ../src/business/business-gnome/dialog-invoice.c:1566
 msgid "Edit Bill"
 msgstr "Rechnung bearbeiten"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1577
+#: ../src/business/business-gnome/dialog-invoice.c:1569
 msgid "View Bill"
 msgstr "Rechnung anzeigen"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1585
+#: ../src/business/business-gnome/dialog-invoice.c:1577
 msgid "New Expense Voucher"
 msgstr "Neue Auslagenerstattung"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1589
+#: ../src/business/business-gnome/dialog-invoice.c:1581
 msgid "Edit Expense Voucher"
 msgstr "Auslagenerstattung bearbeiten"
 
-#: ../src/business/business-gnome/dialog-invoice.c:1592
+#: ../src/business/business-gnome/dialog-invoice.c:1584
 msgid "View Expense Voucher"
 msgstr "Auslagenerstattung anzeigen"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2201
+#: ../src/business/business-gnome/dialog-invoice.c:2196
 msgid "View/Edit Invoice"
 msgstr "Rechnung anzeigen/bearbeiten"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2206
-#: ../src/business/business-gnome/dialog-invoice.c:2459
+#: ../src/business/business-gnome/dialog-invoice.c:2201
+#: ../src/business/business-gnome/dialog-invoice.c:2454
 msgid "View/Edit Bill"
 msgstr "Rechnung anzeigen/bearbeiten"
 
 #. Translators: The terms 'Voucher' and 'Expense Voucher' are used
 #. interchangeably in gnucash and mean the same thing.
-#: ../src/business/business-gnome/dialog-invoice.c:2213
+#: ../src/business/business-gnome/dialog-invoice.c:2208
 msgid "View/Edit Voucher"
 msgstr "Auslagenerstattung anzeigen/bearbeiten"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2223
+#: ../src/business/business-gnome/dialog-invoice.c:2218
 msgid "Invoice Owner"
 msgstr "Rechnungsmandant"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/dialog-invoice.c:2226
-#: ../intl-scm/guile-strings.c:3296 ../intl-scm/guile-strings.c:3638
-#: ../intl-scm/guile-strings.c:3872
+#: ../src/business/business-gnome/dialog-invoice.c:2221
+#: ../intl-scm/guile-strings.c:6022 ../intl-scm/guile-strings.c:6364
+#: ../intl-scm/guile-strings.c:6546 ../intl-scm/guile-strings.c:6888
+#: ../intl-scm/guile-strings.c:7124 ../intl-scm/guile-strings.c:7364
 msgid "Invoice Notes"
 msgstr "Bemerkungen Rechnung"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/dialog-invoice.c:2229
-#: ../src/business/business-gnome/dialog-invoice.c:2259
-#: ../src/business/business-gnome/dialog-invoice.c:2289
-#: ../src/business/business-gnome/dialog-invoice.c:2314
+#: ../src/business/business-gnome/dialog-invoice.c:2224
+#: ../src/business/business-gnome/dialog-invoice.c:2254
+#: ../src/business/business-gnome/dialog-invoice.c:2284
+#: ../src/business/business-gnome/dialog-invoice.c:2309
 #: ../src/business/business-gnome/dialog-job.c:528
 #: ../src/business/business-gnome/dialog-job.c:538
 #: ../src/business/business-gnome/dialog-order.c:824
-#: ../src/business/business-gnome/glade/invoice.glade.h:5
-#: ../src/business/business-gnome/glade/job.glade.h:3
-#: ../intl-scm/guile-strings.c:3290 ../intl-scm/guile-strings.c:3632
-#: ../intl-scm/guile-strings.c:3690 ../intl-scm/guile-strings.c:3866
+#: ../src/business/business-gnome/glade/invoice.glade.h:4
+#: ../src/business/business-gnome/glade/job.glade.h:2
+#: ../intl-scm/guile-strings.c:6016 ../intl-scm/guile-strings.c:6358
+#: ../intl-scm/guile-strings.c:6416 ../intl-scm/guile-strings.c:6540
+#: ../intl-scm/guile-strings.c:6882 ../intl-scm/guile-strings.c:6940
+#: ../intl-scm/guile-strings.c:7118 ../intl-scm/guile-strings.c:7358
 msgid "Billing ID"
 msgstr "Rechnungsnummer"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2232
-#: ../src/business/business-gnome/dialog-invoice.c:2262
-#: ../src/business/business-gnome/dialog-invoice.c:2292
+#: ../src/business/business-gnome/dialog-invoice.c:2227
+#: ../src/business/business-gnome/dialog-invoice.c:2257
+#: ../src/business/business-gnome/dialog-invoice.c:2287
 msgid "Is Paid?"
 msgstr "Bezahlt?"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2235
-#: ../src/business/business-gnome/dialog-invoice.c:2265
-#: ../src/business/business-gnome/dialog-invoice.c:2295
-#: ../src/business/business-gnome/glade/invoice.glade.h:10
+#: ../src/business/business-gnome/dialog-invoice.c:2230
+#: ../src/business/business-gnome/dialog-invoice.c:2260
+#: ../src/business/business-gnome/dialog-invoice.c:2290
+#: ../src/business/business-gnome/glade/invoice.glade.h:9
 #: ../src/gnome/dialog-find-transactions.c:117
 msgid "Date Posted"
 msgstr "Buchungsdatum"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2238
-#: ../src/business/business-gnome/dialog-invoice.c:2268
-#: ../src/business/business-gnome/dialog-invoice.c:2298
+#: ../src/business/business-gnome/dialog-invoice.c:2233
+#: ../src/business/business-gnome/dialog-invoice.c:2263
+#: ../src/business/business-gnome/dialog-invoice.c:2293
 msgid "Is Posted?"
 msgstr "Ist Gebucht?"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2241
-#: ../src/business/business-gnome/dialog-invoice.c:2271
-#: ../src/business/business-gnome/dialog-invoice.c:2301
+#: ../src/business/business-gnome/dialog-invoice.c:2236
+#: ../src/business/business-gnome/dialog-invoice.c:2266
+#: ../src/business/business-gnome/dialog-invoice.c:2296
 #: ../src/business/business-gnome/dialog-order.c:814
-#: ../src/business/business-gnome/glade/invoice.glade.h:9
-#: ../src/business/business-gnome/glade/order.glade.h:7
+#: ../src/business/business-gnome/glade/invoice.glade.h:8
+#: ../src/business/business-gnome/glade/order.glade.h:6
 msgid "Date Opened"
 msgstr "Eröffnungsdatum"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2244
-#: ../src/business/business-gnome/dialog-invoice.c:2274
+#: ../src/business/business-gnome/dialog-invoice.c:2239
+#: ../src/business/business-gnome/dialog-invoice.c:2269
 msgid "Company Name "
 msgstr "Firmenname "
 
-#: ../src/business/business-gnome/dialog-invoice.c:2248
-#: ../src/business/business-gnome/glade/invoice.glade.h:15
+#: ../src/business/business-gnome/dialog-invoice.c:2243
+#: ../src/business/business-gnome/glade/invoice.glade.h:14
 msgid "Invoice ID"
 msgstr "Rechnungsnummer"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2253
+#: ../src/business/business-gnome/dialog-invoice.c:2248
 msgid "Bill Owner"
 msgstr "Rechnungsmandant"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2256
+#: ../src/business/business-gnome/dialog-invoice.c:2251
 msgid "Bill Notes"
 msgstr "Bemerkungen Rechnung"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2278
+#: ../src/business/business-gnome/dialog-invoice.c:2273
 msgid "Bill ID"
 msgstr "Rechnungsnummer"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2283
+#: ../src/business/business-gnome/dialog-invoice.c:2278
 msgid "Voucher Owner"
 msgstr "Auslagenerstattung Mandant"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2286
+#: ../src/business/business-gnome/dialog-invoice.c:2281
 msgid "Voucher Notes"
 msgstr "Bemerkungen Auslagenerstattung"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2308
+#: ../src/business/business-gnome/dialog-invoice.c:2303
 msgid "Voucher ID"
 msgstr "Nummer Auslagenerstattung"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/business/business-reports/owner-report.scm
-#: ../src/business/business-gnome/dialog-invoice.c:2316
-#: ../src/gnome-utils/gnc-tree-view-account.c:519
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/business/business-gnome/dialog-invoice.c:2311
+#: ../src/gnome-utils/gnc-tree-view-account.c:515
 #: ../src/gnome-utils/gnc-tree-view-price.c:459
 #: ../src/register/ledger-core/split-register-model.c:198
-#: ../intl-scm/guile-strings.c:1944 ../intl-scm/guile-strings.c:3404
+#: ../intl-scm/guile-strings.c:3278 ../intl-scm/guile-strings.c:4428
+#: ../intl-scm/guile-strings.c:6130 ../intl-scm/guile-strings.c:6654
 msgid "Type"
 msgstr "Art"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2318
+#: ../src/business/business-gnome/dialog-invoice.c:2313
 #: ../src/register/ledger-core/split-register-model.c:152
 msgid "Paid"
 msgstr "Bezahlt"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2321
+#: ../src/business/business-gnome/dialog-invoice.c:2316
 msgid "Posted"
 msgstr "Gebucht"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2326
+#: ../src/business/business-gnome/dialog-invoice.c:2321
 #: ../src/business/business-gnome/dialog-order.c:831
-#: ../src/gnome/glade/lots.glade.h:21
+#: ../src/gnome/lot-viewer.c:610
 msgid "Opened"
 msgstr "Geöffnet"
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../src/business/business-gnome/dialog-invoice.c:2328
+#: ../src/business/business-gnome/dialog-invoice.c:2323
 #: ../src/business/business-gnome/dialog-order.c:833
-#: ../src/business/business-gnome/glade/payment.glade.h:5
-#: ../src/gnome/glade/lots.glade.h:19 ../src/gnome/reconcile-list.c:222
+#: ../src/business/business-gnome/glade/payment.glade.h:4
+#: ../src/gnome/glade/lots.glade.h:15 ../src/gnome/reconcile-list.c:222
 #: ../src/register/ledger-core/split-register-model.c:123
-#: ../intl-scm/guile-strings.c:1278 ../intl-scm/guile-strings.c:1480
-#: ../intl-scm/guile-strings.c:2182 ../intl-scm/guile-strings.c:2244
-#: ../intl-scm/guile-strings.c:2436 ../intl-scm/guile-strings.c:2556
-#: ../intl-scm/guile-strings.c:2592
+#: ../intl-scm/guile-strings.c:1988 ../intl-scm/guile-strings.c:2190
+#: ../intl-scm/guile-strings.c:2612 ../intl-scm/guile-strings.c:2814
+#: ../intl-scm/guile-strings.c:3516 ../intl-scm/guile-strings.c:3578
+#: ../intl-scm/guile-strings.c:3770 ../intl-scm/guile-strings.c:3890
+#: ../intl-scm/guile-strings.c:3926 ../intl-scm/guile-strings.c:4666
+#: ../intl-scm/guile-strings.c:4728 ../intl-scm/guile-strings.c:4920
+#: ../intl-scm/guile-strings.c:5040 ../intl-scm/guile-strings.c:5076
 msgid "Num"
 msgstr "Nr"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2397
+#: ../src/business/business-gnome/dialog-invoice.c:2392
 msgid "Find Bill"
 msgstr "Rechnung suchen"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2403
+#: ../src/business/business-gnome/dialog-invoice.c:2398
 msgid "Find Expense Voucher"
 msgstr "Auslagenerstattung suchen"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/dialog-invoice.c:2404
-#: ../intl-scm/guile-strings.c:3368 ../intl-scm/guile-strings.c:3682
-#: ../intl-scm/guile-strings.c:3910
+#: ../src/business/business-gnome/dialog-invoice.c:2399
+#: ../intl-scm/guile-strings.c:6094 ../intl-scm/guile-strings.c:6408
+#: ../intl-scm/guile-strings.c:6618 ../intl-scm/guile-strings.c:6932
+#: ../intl-scm/guile-strings.c:7162 ../intl-scm/guile-strings.c:7402
 msgid "Expense Voucher"
 msgstr "Auslagenerstattung"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2409
+#: ../src/business/business-gnome/dialog-invoice.c:2404
 msgid "Find Invoice"
 msgstr "Rechnung suchen"
 
 #. src/report/report-system/options-utilities.scm
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/owner-report.scm
-#: ../src/business/business-gnome/dialog-invoice.c:2466
-#: ../src/business/business-gnome/glade/payment.glade.h:2
-#: ../src/gnome/glade/lots.glade.h:8 ../src/gnome/reconcile-list.c:215
-#: ../src/import-export/generic-import.glade.h:12
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/business/business-gnome/dialog-invoice.c:2461
+#: ../src/business/business-gnome/glade/payment.glade.h:1
+#: ../src/gnome/glade/lots.glade.h:6 ../src/gnome/reconcile-list.c:215
+#: ../src/import-export/generic-import.glade.h:10
 #: ../src/import-export/hbci/glade/hbci.glade.h:8
-#: ../src/import-export/qif-import/qif.glade.h:5
-#: ../intl-scm/guile-strings.c:778 ../intl-scm/guile-strings.c:1288
-#: ../intl-scm/guile-strings.c:1502 ../intl-scm/guile-strings.c:2206
-#: ../intl-scm/guile-strings.c:2258 ../intl-scm/guile-strings.c:2360
-#: ../intl-scm/guile-strings.c:2488 ../intl-scm/guile-strings.c:2622
-#: ../intl-scm/guile-strings.c:2660 ../intl-scm/guile-strings.c:3408
+#: ../src/import-export/import-main-matcher.c:420
+#: ../src/import-export/import-match-picker.c:334
+#: ../src/import-export/import-match-picker.c:374
+#: ../src/import-export/qif-import/druid-qif-import.c:2171
+#: ../src/import-export/qif-import/druid-qif-import.c:2203
+#: ../intl-scm/guile-strings.c:1290 ../intl-scm/guile-strings.c:1998
+#: ../intl-scm/guile-strings.c:2212 ../intl-scm/guile-strings.c:2622
+#: ../intl-scm/guile-strings.c:2836 ../intl-scm/guile-strings.c:3540
+#: ../intl-scm/guile-strings.c:3592 ../intl-scm/guile-strings.c:3694
+#: ../intl-scm/guile-strings.c:3822 ../intl-scm/guile-strings.c:3956
+#: ../intl-scm/guile-strings.c:3994 ../intl-scm/guile-strings.c:4690
+#: ../intl-scm/guile-strings.c:4742 ../intl-scm/guile-strings.c:4844
+#: ../intl-scm/guile-strings.c:4972 ../intl-scm/guile-strings.c:5106
+#: ../intl-scm/guile-strings.c:5144 ../intl-scm/guile-strings.c:6134
+#: ../intl-scm/guile-strings.c:6658
 msgid "Amount"
 msgstr "Betrag"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2470
+#: ../src/business/business-gnome/dialog-invoice.c:2465
 msgid "Due"
 msgstr "Fällig"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2512
+#: ../src/business/business-gnome/dialog-invoice.c:2507
 msgid "Due Bills Reminder"
 msgstr "Erinnerung an fällige Rechnungen"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2514
+#: ../src/business/business-gnome/dialog-invoice.c:2509
 msgid "The following bills are due"
 msgstr "Die folgenden Rechnungen sind fällig"
 
-#: ../src/business/business-gnome/dialog-invoice.c:2515
+#: ../src/business/business-gnome/dialog-invoice.c:2510
 msgid "The following bill is due"
 msgstr "Die folgende Rechnung ist fällig"
 
@@ -1093,13 +1167,13 @@
 msgstr "Nur aktive?"
 
 #: ../src/business/business-gnome/dialog-job.c:530
-#: ../src/business/business-gnome/glade/job.glade.h:8
+#: ../src/business/business-gnome/glade/job.glade.h:7
 msgid "Job Number"
 msgstr "Auftragsnummer"
 
 #: ../src/business/business-gnome/dialog-job.c:532
 #: ../src/business/business-gnome/dialog-job.c:542
-#: ../src/business/business-gnome/glade/job.glade.h:7
+#: ../src/business/business-gnome/glade/job.glade.h:6
 msgid "Job Name"
 msgstr "Auftragsname"
 
@@ -1145,7 +1219,7 @@
 msgstr "Bemerkungen Bestellung"
 
 #: ../src/business/business-gnome/dialog-order.c:810
-#: ../src/business/business-gnome/glade/order.glade.h:6
+#: ../src/business/business-gnome/glade/order.glade.h:5
 msgid "Date Closed"
 msgstr "Schlussdatum"
 
@@ -1158,12 +1232,12 @@
 msgstr "Mandantname"
 
 #: ../src/business/business-gnome/dialog-order.c:818
-#: ../src/business/business-gnome/glade/order.glade.h:13
+#: ../src/business/business-gnome/glade/order.glade.h:12
 msgid "Order ID"
 msgstr "Bestellungsnummer"
 
 #: ../src/business/business-gnome/dialog-order.c:829
-#: ../src/gnome/glade/lots.glade.h:10
+#: ../src/gnome/lot-viewer.c:615
 msgid "Closed"
 msgstr "Geschlossen"
 
@@ -1171,31 +1245,31 @@
 msgid "Find Order"
 msgstr "Bestellung suchen"
 
-#: ../src/business/business-gnome/dialog-payment.c:226
+#: ../src/business/business-gnome/dialog-payment.c:228
 msgid ""
 "You must enter the amount of the payment.  The payment amount must be "
 "greater than zero."
 msgstr ""
 "Sie müssen den Zahlungsbetrag angeben. Der Betrag muss größer als Null sein."
 
-#: ../src/business/business-gnome/dialog-payment.c:235
+#: ../src/business/business-gnome/dialog-payment.c:237
 msgid "You must select a company for payment processing."
 msgstr "Sie müssen eine Firma für die Zahlungsverarbeitung auswählen."
 
-#: ../src/business/business-gnome/dialog-payment.c:243
+#: ../src/business/business-gnome/dialog-payment.c:245
 msgid "You must select a transfer account from the account tree."
 msgstr "Sie müssen ein Herkunftskonto aus der Kontenhierarchie wählen."
 
-#: ../src/business/business-gnome/dialog-payment.c:251
+#: ../src/business/business-gnome/dialog-payment.c:253
 msgid "You must enter an account name for posting."
 msgstr "Sie müssen einen Kontonamen zum Buchen eingeben."
 
-#: ../src/business/business-gnome/dialog-payment.c:260
+#: ../src/business/business-gnome/dialog-payment.c:262
 #, c-format
 msgid "Your selected post account, %s, does not exist"
 msgstr "Das gewählte Buchungskonto %s existiert nicht"
 
-#: ../src/business/business-gnome/dialog-payment.c:460
+#: ../src/business/business-gnome/dialog-payment.c:463
 #, c-format
 msgid ""
 "You have no valid \"Post To\" accounts.  Please create an account of type \"%"
@@ -1224,7 +1298,7 @@
 msgstr "Zulieferer bearbeiten"
 
 #: ../src/business/business-gnome/dialog-vendor.c:296
-#: ../src/business/business-gnome/glade/vendor.glade.h:10
+#: ../src/business/business-gnome/glade/vendor.glade.h:9
 msgid "New Vendor"
 msgstr "Neuer Zulieferer"
 
@@ -1266,33 +1340,32 @@
 msgstr "<b>Zahlungsbedingungen</b>"
 
 #: ../src/business/business-gnome/glade/billterms.glade.h:4
-msgid "Absolute Day-of-the-month"
-msgstr "Absoluter Tag des Monats"
-
-#: ../src/business/business-gnome/glade/billterms.glade.h:5
 msgid "Cancel your changes"
 msgstr "Änderungen verwerfen"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:6
-msgid "Choose the type of Billing Term"
-msgstr "Wählen Sie die Art der Zahlungsbedingungen"
-
-#: ../src/business/business-gnome/glade/billterms.glade.h:7
+#: ../src/business/business-gnome/glade/billterms.glade.h:5
 msgid "Close this window"
 msgstr "Dieses Fenster schließen"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:8
+#: ../src/business/business-gnome/glade/billterms.glade.h:6
 msgid "Commit this Billing Term"
 msgstr "Zahlungsbedingungen abspeichern"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:9
+#: ../src/business/business-gnome/glade/billterms.glade.h:7
 msgid "Create a new Billing Term"
 msgstr "Neue Zahlungsbedingungen erstellen"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:10
+#: ../src/business/business-gnome/glade/billterms.glade.h:8
 msgid "Cutoff Day: "
 msgstr "Stichtag Monatswechsel: "
 
+#: ../src/business/business-gnome/glade/billterms.glade.h:10
+#, fuzzy
+msgid ""
+"Days\n"
+"Proximo"
+msgstr "Im nächsten Monat"
+
 #: ../src/business/business-gnome/glade/billterms.glade.h:12
 msgid "De_scription:"
 msgstr "_Beschreibung:"
@@ -1326,25 +1399,25 @@
 msgid "Edit the current Billing Term"
 msgstr "Ausgewählte Zahlungsbedingungen bearbeiten"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:21
-msgid "Number of days from now"
-msgstr "Anzahl Tage von jetzt an gerechnet"
-
-#: ../src/business/business-gnome/glade/billterms.glade.h:23
+#: ../src/business/business-gnome/glade/billterms.glade.h:22
 msgid "Table"
 msgstr "Tabelle"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/glade/billterms.glade.h:24
-#: ../src/business/business-gnome/glade/invoice.glade.h:24
-#: ../intl-scm/guile-strings.c:3382 ../intl-scm/guile-strings.c:3692
-#: ../intl-scm/guile-strings.c:3922
+#: ../src/business/business-gnome/glade/billterms.glade.h:23
+#: ../src/business/business-gnome/glade/invoice.glade.h:23
+#: ../intl-scm/guile-strings.c:6108 ../intl-scm/guile-strings.c:6418
+#: ../intl-scm/guile-strings.c:6632 ../intl-scm/guile-strings.c:6942
+#: ../intl-scm/guile-strings.c:7174 ../intl-scm/guile-strings.c:7414
 msgid "Terms"
 msgstr "Bedingungen"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:25
+#: ../src/business/business-gnome/glade/billterms.glade.h:24
 msgid ""
 "The cutoff day for applying bills to the next month.  After the cutoff, "
 "bills are applied to the following month.  Negative values count backwards "
@@ -1354,29 +1427,29 @@
 "nach dem Stichtag werden im folgenden Monat berechnet. Negative Werte zählen "
 "vom Monatsende rückwärts."
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:26
+#: ../src/business/business-gnome/glade/billterms.glade.h:25
 msgid "The day of the month bills are due"
 msgstr "Tag des Monats, an dem Rechnungen fällig werden"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:27
+#: ../src/business/business-gnome/glade/billterms.glade.h:26
 msgid "The description of the Billing Term, printed on invoices"
 msgstr ""
 "Beschreibung der Zahlungsbedingungen, wie sie auf eine Rechnung gedruckt "
 "werden"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:28
+#: ../src/business/business-gnome/glade/billterms.glade.h:27
 msgid "The discount percentage applied if paid early."
 msgstr "Prozent Skonto bei früher Zahlung"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:29
+#: ../src/business/business-gnome/glade/billterms.glade.h:28
 msgid "The internal name of the Billing Term."
 msgstr "Interner Name für die Zahlungsbedingungen."
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:30
+#: ../src/business/business-gnome/glade/billterms.glade.h:29
 msgid "The last day of the month for the early payment discount."
 msgstr "Letzter Tag im Monat für Frühzahlungs-Skonto."
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:31
+#: ../src/business/business-gnome/glade/billterms.glade.h:30
 msgid ""
 "The number of days after the post date during which a discount will be "
 "applied for early payment."
@@ -1384,28 +1457,24 @@
 "Die Anzahl der Tage nach dem Rechnungsdatum, in denen ein Skonto für "
 "frühzeitige Zahlung gewährt wird."
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:32
+#: ../src/business/business-gnome/glade/billterms.glade.h:31
 msgid "The number of days to pay the bill after the post date."
 msgstr ""
 "Die Anzahl der Tage nach Ausstellung, in denen die Rechnung gezahlt werden "
 "soll."
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:33
+#: ../src/business/business-gnome/glade/billterms.glade.h:32
 msgid "The percentage discount applied for early payment."
 msgstr "Prozent Skonto bei früher Zahlung."
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:34
-msgid "Type Menu"
-msgstr "Typ-Menü"
-
-#: ../src/business/business-gnome/glade/billterms.glade.h:35
-#: ../src/report/report-gnome/report.glade.h:21
+#: ../src/business/business-gnome/glade/billterms.glade.h:33
+#: ../src/report/report-gnome/report.glade.h:18
 msgid "_Name:"
 msgstr "_Name:"
 
-#: ../src/business/business-gnome/glade/billterms.glade.h:36
+#: ../src/business/business-gnome/glade/billterms.glade.h:34
 #: ../src/gnome/glade/price.glade.h:25
-#: ../src/gnome-utils/glade/commodity.glade.h:23
+#: ../src/gnome-utils/glade/commodity.glade.h:22
 msgid "_Type:"
 msgstr "_Typ:"
 
@@ -1436,15 +1505,15 @@
 "geöffnet."
 
 #: ../src/business/business-gnome/glade/businessprefs.glade.h:6
-#: ../src/gnome-utils/glade/preferences.glade.h:76
+#: ../src/gnome-utils/glade/preferences.glade.h:83
 msgid "Number of _rows:"
 msgstr "Anzahl der _Zeilen:"
 
 #: ../src/business/business-gnome/glade/businessprefs.glade.h:7
-#: ../src/gnome/glade/sched-xact.glade.h:142
-#: ../src/import-export/generic-import.glade.h:46
+#: ../src/gnome/glade/sched-xact.glade.h:168
+#: ../src/import-export/generic-import.glade.h:40
 #: ../src/import-export/hbci/glade/hbciprefs.glade.h:3
-#: ../src/import-export/qif-import/qif.glade.h:64
+#: ../src/import-export/qif-import/qif.glade.h:57
 msgid "Preferences"
 msgstr "Einstellungen"
 
@@ -1511,175 +1580,184 @@
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-gnome/glade/choose-owner.glade.h:2
-#: ../src/business/business-gnome/glade/date-close.glade.h:2
+#: ../src/business/business-gnome/glade/date-close.glade.h:1
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:75
 #: ../src/gnome/dialog-find-transactions.c:128
-#: ../src/gnome/dialog-tax-info.c:727 ../src/gnome/glade/lots.glade.h:13
+#: ../src/gnome/dialog-tax-info.c:719 ../src/gnome/glade/lots.glade.h:10
 #: ../src/gnome/reconcile-list.c:219
 #: ../src/gnome-utils/gnc-tree-model-budget.c:102
-#: ../src/gnome-utils/gnc-tree-view-account.c:535
-#: ../src/import-export/generic-import.glade.h:19
-#: ../src/import-export/qif-import/qif.glade.h:19
+#: ../src/gnome-utils/gnc-tree-view-account.c:531
+#: ../src/import-export/generic-import.glade.h:16
+#: ../src/import-export/import-main-matcher.c:421
+#: ../src/import-export/import-match-picker.c:335
+#: ../src/import-export/import-match-picker.c:375
+#: ../src/import-export/qif-import/druid-qif-import.c:2164
+#: ../src/import-export/qif-import/druid-qif-import.c:2196
 #: ../src/register/ledger-core/split-register-model.c:139
-#: ../intl-scm/guile-strings.c:1280 ../intl-scm/guile-strings.c:1482
-#: ../intl-scm/guile-strings.c:1946 ../intl-scm/guile-strings.c:2186
-#: ../intl-scm/guile-strings.c:2246 ../intl-scm/guile-strings.c:2364
-#: ../intl-scm/guile-strings.c:2440 ../intl-scm/guile-strings.c:2558
-#: ../intl-scm/guile-strings.c:2598 ../intl-scm/guile-strings.c:3190
-#: ../intl-scm/guile-strings.c:3218 ../intl-scm/guile-strings.c:3406
-#: ../intl-scm/guile-strings.c:3508 ../intl-scm/guile-strings.c:3536
-#: ../intl-scm/guile-strings.c:3766 ../intl-scm/guile-strings.c:3794
+#: ../intl-scm/guile-strings.c:1990 ../intl-scm/guile-strings.c:2192
+#: ../intl-scm/guile-strings.c:2614 ../intl-scm/guile-strings.c:2816
+#: ../intl-scm/guile-strings.c:3280 ../intl-scm/guile-strings.c:3520
+#: ../intl-scm/guile-strings.c:3580 ../intl-scm/guile-strings.c:3698
+#: ../intl-scm/guile-strings.c:3774 ../intl-scm/guile-strings.c:3892
+#: ../intl-scm/guile-strings.c:3932 ../intl-scm/guile-strings.c:4430
+#: ../intl-scm/guile-strings.c:4670 ../intl-scm/guile-strings.c:4730
+#: ../intl-scm/guile-strings.c:4848 ../intl-scm/guile-strings.c:4924
+#: ../intl-scm/guile-strings.c:5042 ../intl-scm/guile-strings.c:5082
+#: ../intl-scm/guile-strings.c:5916 ../intl-scm/guile-strings.c:5944
+#: ../intl-scm/guile-strings.c:6132 ../intl-scm/guile-strings.c:6234
+#: ../intl-scm/guile-strings.c:6262 ../intl-scm/guile-strings.c:6440
+#: ../intl-scm/guile-strings.c:6468 ../intl-scm/guile-strings.c:6656
+#: ../intl-scm/guile-strings.c:6758 ../intl-scm/guile-strings.c:6786
+#: ../intl-scm/guile-strings.c:7018 ../intl-scm/guile-strings.c:7046
+#: ../intl-scm/guile-strings.c:7258 ../intl-scm/guile-strings.c:7286
 msgid "Description"
 msgstr "Beschreibung"
 
 #: ../src/business/business-gnome/glade/customer.glade.h:1
-#: ../src/business/business-gnome/glade/date-close.glade.h:1
-#: ../src/business/business-gnome/glade/employee.glade.h:1
+#: ../src/business/business-gnome/glade/employee.glade.h:3
 #: ../src/business/business-gnome/glade/invoice.glade.h:2
 #: ../src/business/business-gnome/glade/job.glade.h:1
 #: ../src/business/business-gnome/glade/order.glade.h:2
-#: ../src/business/business-gnome/glade/payment.glade.h:1
 #: ../src/business/business-gnome/glade/vendor.glade.h:1
-#: ../src/gnome/glade/acctperiod.glade.h:1 ../src/gnome/glade/lots.glade.h:1
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:3
-#: ../src/gnome-utils/glade/transfer.glade.h:1
-msgid "*"
-msgstr "*"
+msgid "Active"
+msgstr "Aktiv"
 
 #: ../src/business/business-gnome/glade/customer.glade.h:2
 #: ../src/business/business-gnome/glade/employee.glade.h:4
-#: ../src/business/business-gnome/glade/invoice.glade.h:3
-#: ../src/business/business-gnome/glade/job.glade.h:2
-#: ../src/business/business-gnome/glade/order.glade.h:3
 #: ../src/business/business-gnome/glade/vendor.glade.h:2
-msgid "Active"
-msgstr "Aktiv"
-
-#: ../src/business/business-gnome/glade/customer.glade.h:3
-#: ../src/business/business-gnome/glade/employee.glade.h:5
-#: ../src/business/business-gnome/glade/vendor.glade.h:3
 msgid "Address: "
 msgstr "Adresse: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:4
+#: ../src/business/business-gnome/glade/customer.glade.h:3
 msgid "Billing Address"
 msgstr "Rechnungsadresse"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:5
-#: ../src/business/business-gnome/glade/invoice.glade.h:6
-#: ../src/business/business-gnome/glade/order.glade.h:4
+#: ../src/business/business-gnome/glade/customer.glade.h:4
+#: ../src/business/business-gnome/glade/invoice.glade.h:5
+#: ../src/business/business-gnome/glade/order.glade.h:3
 msgid "Billing Information"
 msgstr "Rechnungs-Informationen"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:6
-#: ../src/business/business-gnome/glade/vendor.glade.h:4
+#: ../src/business/business-gnome/glade/customer.glade.h:5
+#: ../src/business/business-gnome/glade/vendor.glade.h:3
 msgid "Company Name: "
 msgstr "Firmenname: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:7
+#: ../src/business/business-gnome/glade/customer.glade.h:6
 msgid "Credit Limit: "
 msgstr "Kreditrahmen: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:8
-#: ../src/business/business-gnome/glade/employee.glade.h:8
-#: ../src/business/business-gnome/glade/vendor.glade.h:5
+#: ../src/business/business-gnome/glade/customer.glade.h:7
+#: ../src/business/business-gnome/glade/employee.glade.h:7
+#: ../src/business/business-gnome/glade/vendor.glade.h:4
 msgid "Currency: "
 msgstr "Währung: "
 
 #. src/business/business-reports/owner-report.scm
-#: ../src/business/business-gnome/glade/customer.glade.h:9
-#: ../src/business/business-gnome/glade/invoice.glade.h:7
-#: ../src/business/business-gnome/search-owner.c:251
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/business/business-gnome/glade/customer.glade.h:8
+#: ../src/business/business-gnome/glade/invoice.glade.h:6
+#: ../src/business/business-gnome/search-owner.c:236
 #: ../src/register/ledger-core/split-register-model.c:135
-#: ../intl-scm/guile-strings.c:3472
+#: ../intl-scm/guile-strings.c:6198 ../intl-scm/guile-strings.c:6722
 msgid "Customer"
 msgstr "Kunde"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:10
+#: ../src/business/business-gnome/glade/customer.glade.h:9
 msgid "Customer Number: "
 msgstr "Kundennummer: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:11
+#: ../src/business/business-gnome/glade/customer.glade.h:10
 msgid "Discount: "
 msgstr "Skonto: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:12
-#: ../src/business/business-gnome/glade/employee.glade.h:11
-#: ../src/business/business-gnome/glade/vendor.glade.h:6
+#: ../src/business/business-gnome/glade/customer.glade.h:11
+#: ../src/business/business-gnome/glade/employee.glade.h:10
+#: ../src/business/business-gnome/glade/vendor.glade.h:5
 msgid "Email: "
 msgstr "E-Mail: "
 
+#: ../src/business/business-gnome/glade/customer.glade.h:12
+#: ../src/business/business-gnome/glade/employee.glade.h:13
+#: ../src/business/business-gnome/glade/vendor.glade.h:6
+msgid "Fax: "
+msgstr "Fax: "
+
 #: ../src/business/business-gnome/glade/customer.glade.h:13
 #: ../src/business/business-gnome/glade/employee.glade.h:14
 #: ../src/business/business-gnome/glade/vendor.glade.h:7
-msgid "Fax: "
-msgstr "Fax: "
+msgid "Identification"
+msgstr "Identifizierung"
 
 #: ../src/business/business-gnome/glade/customer.glade.h:14
-#: ../src/business/business-gnome/glade/employee.glade.h:15
+#: ../src/business/business-gnome/glade/employee.glade.h:17
 #: ../src/business/business-gnome/glade/vendor.glade.h:8
-msgid "Identification"
-msgstr "Identifizierung"
-
-#: ../src/business/business-gnome/glade/customer.glade.h:15
-#: ../src/business/business-gnome/glade/employee.glade.h:18
-#: ../src/business/business-gnome/glade/vendor.glade.h:9
 msgid "Name: "
 msgstr "Name: "
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../src/business/business-gnome/glade/customer.glade.h:17
-#: ../src/business/business-gnome/glade/invoice.glade.h:21
-#: ../src/business/business-gnome/glade/order.glade.h:10
-#: ../src/business/business-gnome/glade/vendor.glade.h:11
+#: ../src/business/business-gnome/glade/customer.glade.h:16
+#: ../src/business/business-gnome/glade/invoice.glade.h:20
+#: ../src/business/business-gnome/glade/order.glade.h:9
+#: ../src/business/business-gnome/glade/vendor.glade.h:10
 #: ../src/gnome/dialog-find-transactions.c:120
-#: ../src/gnome-utils/gnc-tree-view-account.c:637
+#: ../src/gnome-utils/gnc-tree-view-account.c:633
 #: ../src/register/ledger-core/split-register-model.c:310
-#: ../intl-scm/guile-strings.c:1952
+#: ../intl-scm/guile-strings.c:3286 ../intl-scm/guile-strings.c:4436
 msgid "Notes"
 msgstr "Bemerkung"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:18
-#: ../src/business/business-gnome/glade/vendor.glade.h:12
+#: ../src/business/business-gnome/glade/customer.glade.h:17
+#: ../src/business/business-gnome/glade/vendor.glade.h:11
 msgid "Override the global Tax Table?"
 msgstr "Globale Steuertabelle ignorieren?"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:19
-#: ../src/business/business-gnome/glade/employee.glade.h:21
-#: ../src/business/business-gnome/glade/vendor.glade.h:15
+#: ../src/business/business-gnome/glade/customer.glade.h:18
+#: ../src/business/business-gnome/glade/employee.glade.h:20
+#: ../src/business/business-gnome/glade/vendor.glade.h:14
 msgid "Phone: "
 msgstr "Telefon: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:20
+#: ../src/business/business-gnome/glade/customer.glade.h:19
 msgid "Shipping Address"
 msgstr "Lieferadresse"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:21
+#: ../src/business/business-gnome/glade/customer.glade.h:20
 msgid "Shipping Information"
 msgstr "Lieferadresse"
 
-#: ../src/business/business-gnome/glade/customer.glade.h:22
+#: ../src/business/business-gnome/glade/customer.glade.h:21
 msgid "Tax Included: "
 msgstr "Inkl. Steuern: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:23
+#: ../src/business/business-gnome/glade/customer.glade.h:22
 msgid "Tax Table: "
 msgstr "Steuertabelle: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:24
-#: ../src/business/business-gnome/glade/vendor.glade.h:18
+#: ../src/business/business-gnome/glade/customer.glade.h:23
+#: ../src/business/business-gnome/glade/vendor.glade.h:17
 msgid "Terms: "
 msgstr "Bedingungen: "
 
-#: ../src/business/business-gnome/glade/customer.glade.h:25
+#: ../src/business/business-gnome/glade/customer.glade.h:24
 msgid ""
 "The customer ID number.  If left blank a reasonable number will be chosen "
 "for you"
@@ -1687,80 +1765,81 @@
 "Die Kundennummer. Falls keine angegeben wird, wird automatisch ein "
 "sinnvoller Wert gewählt."
 
-#: ../src/business/business-gnome/glade/customer.glade.h:26
+#: ../src/business/business-gnome/glade/customer.glade.h:25
 msgid "What Tax Table should be applied to this customer?"
 msgstr "Welche Steuertabelle soll bei diesem Kunden angewendet werden?"
 
-#: ../src/business/business-gnome/glade/date-close.glade.h:3
+#: ../src/business/business-gnome/glade/date-close.glade.h:2
 msgid "Question"
 msgstr "Frage"
 
-#: ../src/business/business-gnome/glade/date-close.glade.h:4
+#: ../src/business/business-gnome/glade/date-close.glade.h:3
 msgid "acct"
 msgstr "Konto"
 
-#: ../src/business/business-gnome/glade/date-close.glade.h:5
+#: ../src/business/business-gnome/glade/date-close.glade.h:4
 msgid "duedate"
 msgstr "Fällig"
 
-#: ../src/business/business-gnome/glade/date-close.glade.h:6
+#: ../src/business/business-gnome/glade/date-close.glade.h:5
 msgid "postd"
 msgstr "Gebucht"
 
-#: ../src/business/business-gnome/glade/date-close.glade.h:7
+#: ../src/business/business-gnome/glade/date-close.glade.h:6
 msgid "question"
 msgstr "Frage"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:2
+#: ../src/business/business-gnome/glade/employee.glade.h:1
 msgid "Access Control"
 msgstr "Zugriffskontrolle"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:3
+#: ../src/business/business-gnome/glade/employee.glade.h:2
 msgid "Access Control List"
 msgstr "Zugriffskontroll-Liste"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:6
+#: ../src/business/business-gnome/glade/employee.glade.h:5
 msgid "Billing"
 msgstr "Rechnung ausstellen"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:7
-#: ../src/gnome-utils/dialog-transfer.c:1734
+#: ../src/business/business-gnome/glade/employee.glade.h:6
+#: ../src/gnome-utils/dialog-transfer.c:1736
 msgid "Credit Account"
 msgstr "Habenkonto"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:9
+#: ../src/business/business-gnome/glade/employee.glade.h:8
 msgid "Default Hours per Day: "
 msgstr "Voreinstellung Stunden pro Tag: "
 
-#: ../src/business/business-gnome/glade/employee.glade.h:10
+#: ../src/business/business-gnome/glade/employee.glade.h:9
 msgid "Default Rate: "
 msgstr "Voreinstellung Stundenlohn: "
 
 #. src/business/business-reports/owner-report.scm
-#: ../src/business/business-gnome/glade/employee.glade.h:12
-#: ../src/business/business-gnome/search-owner.c:254
-#: ../intl-scm/guile-strings.c:3476
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/business/business-gnome/glade/employee.glade.h:11
+#: ../src/business/business-gnome/search-owner.c:238
+#: ../intl-scm/guile-strings.c:6202 ../intl-scm/guile-strings.c:6726
 msgid "Employee"
 msgstr "Mitarbeiter"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:13
+#: ../src/business/business-gnome/glade/employee.glade.h:12
 msgid "Employee Number: "
 msgstr "Mitarbeiternummer: "
 
-#: ../src/business/business-gnome/glade/employee.glade.h:16
+#: ../src/business/business-gnome/glade/employee.glade.h:15
 msgid "Interface"
 msgstr "Interface"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:17
+#: ../src/business/business-gnome/glade/employee.glade.h:16
 msgid "Language: "
 msgstr "Sprache: "
 
-#: ../src/business/business-gnome/glade/employee.glade.h:20
-#: ../src/business/business-gnome/glade/vendor.glade.h:13
+#: ../src/business/business-gnome/glade/employee.glade.h:19
+#: ../src/business/business-gnome/glade/vendor.glade.h:12
 msgid "Payment Address"
 msgstr "Zahlungsadresse"
 
-#: ../src/business/business-gnome/glade/employee.glade.h:22
+#: ../src/business/business-gnome/glade/employee.glade.h:21
 msgid ""
 "The employee ID number.  If left blank a reasonable number will be chosen "
 "for you"
@@ -1768,7 +1847,7 @@
 "Die Mitarbeiternummer. Falls keine angegeben wird, wird automatisch ein "
 "sinnvoller Wert gewählt."
 
-#: ../src/business/business-gnome/glade/employee.glade.h:23
+#: ../src/business/business-gnome/glade/employee.glade.h:22
 msgid "Username: "
 msgstr "Benutzername: "
 
@@ -1777,52 +1856,52 @@
 msgid "(owner)"
 msgstr "(Mandant)"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:4
+#: ../src/business/business-gnome/glade/invoice.glade.h:3
 msgid "Additional to Card:"
 msgstr "Zusätzlich auf Karte:"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:8
+#: ../src/business/business-gnome/glade/invoice.glade.h:7
 msgid "Customer: "
 msgstr "Kunde: "
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:11
+#: ../src/business/business-gnome/glade/invoice.glade.h:10
 msgid "Default Chargeback Project"
 msgstr "Standard-Auftrag zur Rückzahlung"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:12
+#: ../src/business/business-gnome/glade/invoice.glade.h:11
 msgid "Extra Payments"
 msgstr "Zusätzliche Zahlungen"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:14
+#: ../src/business/business-gnome/glade/invoice.glade.h:13
 msgid "Invoice Entries"
 msgstr "Rechnungseinträge"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:16
+#: ../src/business/business-gnome/glade/invoice.glade.h:15
 msgid "Invoice Information"
 msgstr "Rechnungs-Informationen"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:17
-#: ../src/business/business-gnome/search-owner.c:255
+#: ../src/business/business-gnome/glade/invoice.glade.h:16
+#: ../src/business/business-gnome/search-owner.c:239
 msgid "Job"
 msgstr "Auftrag"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:18
+#: ../src/business/business-gnome/glade/invoice.glade.h:17
 msgid "Job: "
 msgstr "Auftrag: "
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:20
+#: ../src/business/business-gnome/glade/invoice.glade.h:19
 msgid "No, keep them as they are"
 msgstr "Nein, unverändert beibehalten"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:22
+#: ../src/business/business-gnome/glade/invoice.glade.h:21
 msgid "Posted Account"
 msgstr "Gebuchtes Konto"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:23
+#: ../src/business/business-gnome/glade/invoice.glade.h:22
 msgid "Reset Tax Tables to present Values?"
 msgstr "Steuertabellen zu eingegebenen Werten aktualisieren?"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:25
+#: ../src/business/business-gnome/glade/invoice.glade.h:24
 msgid ""
 "The invoice ID number.  If left blank a reasonable number will be chosen for "
 "you."
@@ -1830,7 +1909,7 @@
 "Die Rechnungsnummer. Falls keine angegeben wird, wird automatisch ein "
 "sinnvoller Wert gewählt."
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:26
+#: ../src/business/business-gnome/glade/invoice.glade.h:25
 msgid ""
 "Unposting this Invoice will delete the posted transaction.\n"
 "Are you sure you want to unpost it?"
@@ -1838,67 +1917,71 @@
 "Das Rückgängigmachen dieser Rechnung wird die gespeicherte Buchung\n"
 "löschen. Wollen Sie sie wirklich rückgängig machen?"
 
-#: ../src/business/business-gnome/glade/invoice.glade.h:28
+#: ../src/business/business-gnome/glade/invoice.glade.h:27
 msgid "Yes, reset the Tax Tables"
 msgstr "Ja, Steuertabellen zurücksetzen"
 
-#: ../src/business/business-gnome/glade/job.glade.h:4
+#: ../src/business/business-gnome/glade/job.glade.h:3
 msgid "Job Active"
 msgstr "Auftrag aktiv"
 
-#: ../src/business/business-gnome/glade/job.glade.h:5
+#: ../src/business/business-gnome/glade/job.glade.h:4
 msgid "Job Dialog"
 msgstr "Auftrag-Dialog"
 
-#: ../src/business/business-gnome/glade/job.glade.h:6
+#: ../src/business/business-gnome/glade/job.glade.h:5
 msgid "Job Information"
 msgstr "Auftragsinformationen"
 
-#: ../src/business/business-gnome/glade/job.glade.h:9
+#: ../src/business/business-gnome/glade/job.glade.h:8
 msgid "Owner Information"
 msgstr "Mandanteninformationen"
 
-#: ../src/business/business-gnome/glade/job.glade.h:10
+#: ../src/business/business-gnome/glade/job.glade.h:9
 msgid ""
 "The job ID number.  If left blank a reasonable number will be chosen for you"
 msgstr ""
 "Die Auftragsnummer. Falls keine angegeben wird, wird automatisch ein "
 "sinnvoller Wert gewählt."
 
-#: ../src/business/business-gnome/glade/order.glade.h:5
+#: ../src/business/business-gnome/glade/order.glade.h:4
 msgid "Close Order"
 msgstr "Bestellung schließen"
 
-#: ../src/business/business-gnome/glade/order.glade.h:8
+#: ../src/business/business-gnome/glade/order.glade.h:7
 msgid "Invoices"
 msgstr "Rechnungen"
 
-#: ../src/business/business-gnome/glade/order.glade.h:9
+#: ../src/business/business-gnome/glade/order.glade.h:8
 msgid "New Order"
 msgstr "Neue Bestellung"
 
-#: ../src/business/business-gnome/glade/order.glade.h:11
+#: ../src/business/business-gnome/glade/order.glade.h:10
 msgid "Order Entries"
 msgstr "Bestellungsposten"
 
-#: ../src/business/business-gnome/glade/order.glade.h:12
+#: ../src/business/business-gnome/glade/order.glade.h:11
 msgid "Order Entry"
 msgstr "Bestellungsposten"
 
-#: ../src/business/business-gnome/glade/order.glade.h:14
+#: ../src/business/business-gnome/glade/order.glade.h:13
 msgid "Order Information"
 msgstr "Bestellungsinformationen"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/glade/order.glade.h:15
-#: ../intl-scm/guile-strings.c:3380 ../intl-scm/guile-strings.c:3402
-#: ../intl-scm/guile-strings.c:3920
+#: ../src/business/business-gnome/glade/order.glade.h:14
+#: ../intl-scm/guile-strings.c:6106 ../intl-scm/guile-strings.c:6128
+#: ../intl-scm/guile-strings.c:6630 ../intl-scm/guile-strings.c:6652
+#: ../intl-scm/guile-strings.c:7172 ../intl-scm/guile-strings.c:7412
 msgid "Reference"
 msgstr "Referenz"
 
-#: ../src/business/business-gnome/glade/order.glade.h:16
+#: ../src/business/business-gnome/glade/order.glade.h:15
 msgid ""
 "The order ID number.  If left blank a reasonable number will be chosen for "
 "you"
@@ -1906,9 +1989,17 @@
 "Die Bestellungsnummer. Falls keine angegeben wird, wird automatisch ein "
 "sinnvoller Wert gewählt."
 
+#. Add the columns
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/transaction.scm
@@ -1916,63 +2007,86 @@
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/business/business-gnome/glade/payment.glade.h:3
+#: ../src/business/business-gnome/glade/payment.glade.h:2
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:70
-#: ../src/gnome/druid-loan.c:1779 ../src/gnome/glade/lots.glade.h:11
+#: ../src/gnome/druid-loan.c:1783 ../src/gnome/glade/lots.glade.h:8
 #: ../src/gnome/glade/register.glade.h:14 ../src/gnome/reconcile-list.c:226
 #: ../src/gnome-utils/gnc-tree-view-price.c:447
-#: ../src/import-export/generic-import.glade.h:18
-#: ../src/import-export/qif-import/qif.glade.h:18
+#: ../src/import-export/generic-import.glade.h:15
+#: ../src/import-export/import-main-matcher.c:417
+#: ../src/import-export/import-match-picker.c:333
+#: ../src/import-export/import-match-picker.c:373
+#: ../src/import-export/qif-import/druid-qif-import.c:2158
+#: ../src/import-export/qif-import/druid-qif-import.c:2190
 #: ../src/register/ledger-core/split-register-model.c:102
-#: ../intl-scm/guile-strings.c:1276 ../intl-scm/guile-strings.c:1476
-#: ../intl-scm/guile-strings.c:1718 ../intl-scm/guile-strings.c:1862
-#: ../intl-scm/guile-strings.c:1976 ../intl-scm/guile-strings.c:2174
-#: ../intl-scm/guile-strings.c:2240 ../intl-scm/guile-strings.c:2336
-#: ../intl-scm/guile-strings.c:2428 ../intl-scm/guile-strings.c:2554
-#: ../intl-scm/guile-strings.c:2586 ../intl-scm/guile-strings.c:2654
-#: ../intl-scm/guile-strings.c:3188 ../intl-scm/guile-strings.c:3212
-#: ../intl-scm/guile-strings.c:3398 ../intl-scm/guile-strings.c:3506
-#: ../intl-scm/guile-strings.c:3530 ../intl-scm/guile-strings.c:3764
-#: ../intl-scm/guile-strings.c:3788
+#: ../intl-scm/guile-strings.c:1986 ../intl-scm/guile-strings.c:2186
+#: ../intl-scm/guile-strings.c:2428 ../intl-scm/guile-strings.c:2610
+#: ../intl-scm/guile-strings.c:2810 ../intl-scm/guile-strings.c:3052
+#: ../intl-scm/guile-strings.c:3196 ../intl-scm/guile-strings.c:3310
+#: ../intl-scm/guile-strings.c:3508 ../intl-scm/guile-strings.c:3574
+#: ../intl-scm/guile-strings.c:3670 ../intl-scm/guile-strings.c:3762
+#: ../intl-scm/guile-strings.c:3888 ../intl-scm/guile-strings.c:3920
+#: ../intl-scm/guile-strings.c:3988 ../intl-scm/guile-strings.c:4346
+#: ../intl-scm/guile-strings.c:4460 ../intl-scm/guile-strings.c:4658
+#: ../intl-scm/guile-strings.c:4724 ../intl-scm/guile-strings.c:4820
+#: ../intl-scm/guile-strings.c:4912 ../intl-scm/guile-strings.c:5038
+#: ../intl-scm/guile-strings.c:5070 ../intl-scm/guile-strings.c:5138
+#: ../intl-scm/guile-strings.c:5914 ../intl-scm/guile-strings.c:5938
+#: ../intl-scm/guile-strings.c:6124 ../intl-scm/guile-strings.c:6232
+#: ../intl-scm/guile-strings.c:6256 ../intl-scm/guile-strings.c:6438
+#: ../intl-scm/guile-strings.c:6462 ../intl-scm/guile-strings.c:6648
+#: ../intl-scm/guile-strings.c:6756 ../intl-scm/guile-strings.c:6780
+#: ../intl-scm/guile-strings.c:7016 ../intl-scm/guile-strings.c:7040
+#: ../intl-scm/guile-strings.c:7256 ../intl-scm/guile-strings.c:7280
 msgid "Date"
 msgstr "Datum"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/business/business-gnome/glade/payment.glade.h:4
+#: ../src/business/business-gnome/glade/payment.glade.h:3
 #: ../src/gnome/dialog-find-transactions.c:126
-#: ../src/import-export/generic-import.glade.h:40
+#: ../src/import-export/import-main-matcher.c:422
+#: ../src/import-export/import-match-picker.c:336
+#: ../src/import-export/import-match-picker.c:376
 #: ../src/register/ledger-core/split-register-model.c:191
-#: ../intl-scm/guile-strings.c:1484 ../intl-scm/guile-strings.c:2218
-#: ../intl-scm/guile-strings.c:2248 ../intl-scm/guile-strings.c:2372
-#: ../intl-scm/guile-strings.c:2444
+#: ../intl-scm/guile-strings.c:2194 ../intl-scm/guile-strings.c:2818
+#: ../intl-scm/guile-strings.c:3552 ../intl-scm/guile-strings.c:3582
+#: ../intl-scm/guile-strings.c:3706 ../intl-scm/guile-strings.c:3778
+#: ../intl-scm/guile-strings.c:4702 ../intl-scm/guile-strings.c:4732
+#: ../intl-scm/guile-strings.c:4856 ../intl-scm/guile-strings.c:4928
 msgid "Memo"
 msgstr "Buchungstext"
 
-#: ../src/business/business-gnome/glade/payment.glade.h:6
-#: ../src/business/business-gnome/glade/vendor.glade.h:14
-#: ../src/gnome/window-reconcile.c:443
+#: ../src/business/business-gnome/glade/payment.glade.h:5
+#: ../src/business/business-gnome/glade/vendor.glade.h:13
+#: ../src/gnome/window-reconcile.c:442
 msgid "Payment Information"
 msgstr "Zahlungsinformation"
 
-#: ../src/business/business-gnome/glade/payment.glade.h:7
+#: ../src/business/business-gnome/glade/payment.glade.h:6
 msgid "Post To"
 msgstr "Buchen nach"
 
-#: ../src/business/business-gnome/glade/payment.glade.h:8
+#: ../src/business/business-gnome/glade/payment.glade.h:7
 msgid "Transfer Account"
 msgstr "Herkunftskonto"
 
-#: ../src/business/business-gnome/glade/vendor.glade.h:16
+#: ../src/business/business-gnome/glade/vendor.glade.h:15
 msgid "Tax Included:"
 msgstr "Inkl. Steuern:"
 
-#: ../src/business/business-gnome/glade/vendor.glade.h:17
+#: ../src/business/business-gnome/glade/vendor.glade.h:16
 msgid "Tax Table:"
 msgstr "Steuertabelle:"
 
-#: ../src/business/business-gnome/glade/vendor.glade.h:19
+#: ../src/business/business-gnome/glade/vendor.glade.h:18
 msgid ""
 "The vendor ID number.  If left blank a reasonable number will be chosen for "
 "you"
@@ -1981,27 +2095,36 @@
 "sinnvoller Wert gewählt."
 
 #. src/business/business-reports/owner-report.scm
-#: ../src/business/business-gnome/glade/vendor.glade.h:20
-#: ../src/business/business-gnome/search-owner.c:253
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/business/business-gnome/glade/vendor.glade.h:19
+#: ../src/business/business-gnome/search-owner.c:237
 #: ../src/register/ledger-core/split-register-model.c:137
-#: ../intl-scm/guile-strings.c:3474
+#: ../intl-scm/guile-strings.c:6200 ../intl-scm/guile-strings.c:6724
 msgid "Vendor"
 msgstr "Zulieferer"
 
-#: ../src/business/business-gnome/glade/vendor.glade.h:21
+#: ../src/business/business-gnome/glade/vendor.glade.h:20
 msgid "Vendor Number: "
 msgstr "Zulieferer Nummer: "
 
-#: ../src/business/business-gnome/glade/vendor.glade.h:22
+#: ../src/business/business-gnome/glade/vendor.glade.h:21
 msgid "What Tax Table should be applied to this vendor?"
 msgstr "Welche Steuertabelle soll bei diesem Zulieferer angewendet werden?"
 
+#. src/business/business-utils/gnucash/business-utils.scm
+#. src/business/business-utils/business-utils.scm
+#: ../src/business/business-gnome/gncmod-business-gnome.c:133
+#: ../intl-scm/guile-strings.c:5868 ../intl-scm/guile-strings.c:5886
+msgid "Business"
+msgstr "Geschäft"
+
 #. Toplevel
 #. Extensions Menu
 #. src/business/business-reports/business-reports.scm
+#. src/business/business-reports/gnucash/report/business-reports.scm
 #: ../src/business/business-gnome/gnc-plugin-business.c:148
 #: ../src/business/business-gnome/gnc-plugin-business.c:241
-#: ../intl-scm/guile-strings.c:3392
+#: ../intl-scm/guile-strings.c:6118 ../intl-scm/guile-strings.c:6642
 msgid "_Business"
 msgstr "_Geschäft"
 
@@ -2301,9 +2424,9 @@
 msgstr "Kopieren"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:115
-#: ../src/gnome/gnc-plugin-page-register.c:179
-#: ../src/gnome-utils/gnc-main-window.c:248
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:941
+#: ../src/gnome/gnc-plugin-page-register.c:176
+#: ../src/gnome-utils/gnc-main-window.c:252
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:951
 msgid "_Paste"
 msgstr "E_infügen"
 
@@ -2344,7 +2467,7 @@
 msgstr "Aktuellen Posten speichern"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:132
-#: ../src/gnome/glade/register.glade.h:79 ../src/gnome/window-reconcile.c:2000
+#: ../src/gnome/glade/register.glade.h:79 ../src/gnome/window-reconcile.c:2002
 msgid "_Cancel"
 msgstr "_Abbrechen"
 
@@ -2353,7 +2476,7 @@
 msgstr "Aktuellen Posten abbrechen"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:135
-#: ../src/gnome/glade/register.glade.h:82 ../src/gnome/window-reconcile.c:2028
+#: ../src/gnome/glade/register.glade.h:82 ../src/gnome/window-reconcile.c:2030
 msgid "_Delete"
 msgstr "_Löschen"
 
@@ -2416,8 +2539,8 @@
 msgstr "_Anzahl"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:163
-#: ../src/register/ledger-core/split-register.c:1693
-#: ../src/register/ledger-core/split-register.c:1695
+#: ../src/register/ledger-core/split-register.c:1715
+#: ../src/register/ledger-core/split-register.c:1717
 msgid "_Price"
 msgstr "_Preis"
 
@@ -2428,33 +2551,34 @@
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:193
 #: ../src/gnome/glade/register.glade.h:25
-#: ../src/gnome/gnc-plugin-page-register.c:327
+#: ../src/gnome/gnc-plugin-page-register.c:324
 msgid "Enter"
 msgstr "Eingeben"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:194
 #: ../src/gnome/glade/register.glade.h:6
-#: ../src/gnome/gnc-plugin-page-register.c:328
+#: ../src/gnome/gnc-plugin-page-register.c:325
 msgid "Cancel"
 msgstr "Abbrechen"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:195
 #: ../src/gnome/glade/register.glade.h:16
 #: ../src/gnome/gnc-plugin-page-account-tree.c:221
-#: ../src/gnome/gnc-plugin-page-budget.c:169
-#: ../src/gnome/gnc-plugin-page-register.c:329
+#: ../src/gnome/gnc-plugin-page-budget.c:165
+#: ../src/gnome/gnc-plugin-page-register.c:326
+#: ../src/gnome/gnc-plugin-page-sx-list.c:120
 msgid "Delete"
 msgstr "Löschen"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:196
 #: ../src/gnome/glade/register.glade.h:20
-#: ../src/gnome/gnc-plugin-page-register.c:330
+#: ../src/gnome/gnc-plugin-page-register.c:327
 msgid "Duplicate"
 msgstr "Duplizieren"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:197
 #: ../src/gnome/glade/register.glade.h:3
-#: ../src/gnome/gnc-plugin-page-register.c:333
+#: ../src/gnome/gnc-plugin-page-register.c:330
 msgid "Blank"
 msgstr "Neu"
 
@@ -2542,7 +2666,7 @@
 msgstr "Erinnerung an fällige Rechnungen für diese Anzahl von Tagen im Voraus"
 
 #: ../src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in.h:12
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:42
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:44
 msgid "The number of rows in an invoice"
 msgstr "Standardanzahl von Zeilen, die in Rechnungen angezeigt werden sollen"
 
@@ -2581,32 +2705,31 @@
 msgid "Window position and size"
 msgstr "Fensterposition und Größe"
 
-#: ../src/business/business-gnome/search-owner.c:160
+#: ../src/business/business-gnome/search-owner.c:163
 msgid "You have not selected an owner"
 msgstr "Sie haben keinen Mandanten ausgewählt"
 
-#: ../src/business/business-gnome/search-owner.c:301
-#: ../src/gnome-search/search-boolean.c:201
-#: ../src/gnome-search/search-reconciled.c:209
+#: ../src/business/business-gnome/search-owner.c:256
+#: ../src/gnome-search/search-boolean.c:177
+#: ../src/gnome-search/search-reconciled.c:185
 msgid "is"
 msgstr "ist"
 
-#. Force one
-#: ../src/business/business-gnome/search-owner.c:303
-#: ../src/gnome-search/search-boolean.c:203
-#: ../src/gnome-search/search-reconciled.c:211
+#: ../src/business/business-gnome/search-owner.c:257
+#: ../src/gnome-search/search-boolean.c:178
+#: ../src/gnome-search/search-reconciled.c:186
 msgid "is not"
 msgstr "ist nicht"
 
 #: ../src/business/business-ledger/gncEntryLedger.c:81
-#: ../src/gnome-utils/dialog-transfer.c:1377
-#: ../src/register/ledger-core/split-register.c:1474
+#: ../src/gnome-utils/dialog-transfer.c:1378
+#: ../src/register/ledger-core/split-register.c:1496
 #, c-format
 msgid "The account %s does not allow transactions."
 msgstr "Das Konto %s kann keine Buchungen enthalten."
 
 #: ../src/business/business-ledger/gncEntryLedger.c:82
-#: ../src/register/ledger-core/split-register.c:1475
+#: ../src/register/ledger-core/split-register.c:1497
 #, c-format
 msgid "The account %s does not exist. Would you like to create it?"
 msgstr "Das Konto %s existiert nicht. Möchten Sie es erstellen?"
@@ -2624,12 +2747,12 @@
 msgid "Material"
 msgstr "Material"
 
-#: ../src/business/business-ledger/gncEntryLedger.c:802
+#: ../src/business/business-ledger/gncEntryLedger.c:805
 #: ../src/business/business-ledger/gncEntryLedgerControl.c:485
 msgid "Save the current entry?"
 msgstr "Aktueller Eintrag speichern?"
 
-#: ../src/business/business-ledger/gncEntryLedger.c:804
+#: ../src/business/business-ledger/gncEntryLedger.c:807
 msgid ""
 "The current transaction has been changed. Would you like to record the "
 "changes before duplicating this entry, or cancel the duplication?"
@@ -2638,10 +2761,10 @@
 "bevor Sie die Kopie erstellen, oder soll der Kopiervorgang abgebrochen "
 "werden?"
 
-#: ../src/business/business-ledger/gncEntryLedger.c:819
+#: ../src/business/business-ledger/gncEntryLedger.c:822
 #: ../src/business/business-ledger/gncEntryLedgerControl.c:504
 #: ../src/gnome/gnc-split-reg.c:727
-#: ../src/register/ledger-core/split-register.c:405
+#: ../src/register/ledger-core/split-register.c:423
 msgid "_Record"
 msgstr "_Speichern"
 
@@ -2759,10 +2882,15 @@
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerLoad.c:50
-#: ../src/gnome/glade/sched-xact.glade.h:3 ../intl-scm/guile-strings.c:3206
-#: ../intl-scm/guile-strings.c:3524 ../intl-scm/guile-strings.c:3782
+#: ../src/gnome/glade/sched-xact.glade.h:3 ../intl-scm/guile-strings.c:5932
+#: ../intl-scm/guile-strings.c:6250 ../intl-scm/guile-strings.c:6456
+#: ../intl-scm/guile-strings.c:6774 ../intl-scm/guile-strings.c:7034
+#: ../intl-scm/guile-strings.c:7274
 #, no-c-format
 msgid "%"
 msgstr "%"
@@ -2783,17 +2911,18 @@
 #: ../src/business/business-ledger/gncEntryLedgerLoad.c:119
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:510
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:1036
-#: ../src/engine/Account.c:2132 ../intl-scm/guile-strings.c:850
+#: ../src/engine/Account.c:2135 ../intl-scm/guile-strings.c:1364
 msgid "Cash"
 msgstr "Bargeld"
 
 #. src/app-utils/prefs.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
 #: ../src/business/business-ledger/gncEntryLedgerLoad.c:122
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:512
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:1038
-#: ../intl-scm/guile-strings.c:76 ../intl-scm/guile-strings.c:92
-#: ../intl-scm/guile-strings.c:2658
+#: ../intl-scm/guile-strings.c:124 ../intl-scm/guile-strings.c:140
+#: ../intl-scm/guile-strings.c:3992 ../intl-scm/guile-strings.c:5142
 msgid "Charge"
 msgstr "Belastung"
 
@@ -2807,22 +2936,32 @@
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:65
 #: ../src/gnome/dialog-find-transactions.c:122
 #: ../src/register/ledger-core/split-register-model.c:170
-#: ../intl-scm/guile-strings.c:3224 ../intl-scm/guile-strings.c:3542
-#: ../intl-scm/guile-strings.c:3800
+#: ../intl-scm/guile-strings.c:5950 ../intl-scm/guile-strings.c:6268
+#: ../intl-scm/guile-strings.c:6474 ../intl-scm/guile-strings.c:6792
+#: ../intl-scm/guile-strings.c:7052 ../intl-scm/guile-strings.c:7292
 msgid "Action"
 msgstr "Aktion"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:80
-#: ../intl-scm/guile-strings.c:3198 ../intl-scm/guile-strings.c:3242
-#: ../intl-scm/guile-strings.c:3516 ../intl-scm/guile-strings.c:3560
-#: ../intl-scm/guile-strings.c:3774 ../intl-scm/guile-strings.c:3818
+#: ../intl-scm/guile-strings.c:5924 ../intl-scm/guile-strings.c:5968
+#: ../intl-scm/guile-strings.c:6242 ../intl-scm/guile-strings.c:6286
+#: ../intl-scm/guile-strings.c:6448 ../intl-scm/guile-strings.c:6492
+#: ../intl-scm/guile-strings.c:6766 ../intl-scm/guile-strings.c:6810
+#: ../intl-scm/guile-strings.c:7026 ../intl-scm/guile-strings.c:7070
+#: ../intl-scm/guile-strings.c:7266 ../intl-scm/guile-strings.c:7310
 msgid "Discount"
 msgstr "Skonto"
 
@@ -2836,20 +2975,30 @@
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:95
-#: ../intl-scm/guile-strings.c:3196 ../intl-scm/guile-strings.c:3514
-#: ../intl-scm/guile-strings.c:3772
+#: ../intl-scm/guile-strings.c:5922 ../intl-scm/guile-strings.c:6240
+#: ../intl-scm/guile-strings.c:6446 ../intl-scm/guile-strings.c:6764
+#: ../intl-scm/guile-strings.c:7024 ../intl-scm/guile-strings.c:7264
 msgid "Unit Price"
 msgstr "Stückpreis"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:100
-#: ../intl-scm/guile-strings.c:3194 ../intl-scm/guile-strings.c:3230
-#: ../intl-scm/guile-strings.c:3512 ../intl-scm/guile-strings.c:3548
-#: ../intl-scm/guile-strings.c:3770 ../intl-scm/guile-strings.c:3806
+#: ../intl-scm/guile-strings.c:5920 ../intl-scm/guile-strings.c:5956
+#: ../intl-scm/guile-strings.c:6238 ../intl-scm/guile-strings.c:6274
+#: ../intl-scm/guile-strings.c:6444 ../intl-scm/guile-strings.c:6480
+#: ../intl-scm/guile-strings.c:6762 ../intl-scm/guile-strings.c:6798
+#: ../intl-scm/guile-strings.c:7022 ../intl-scm/guile-strings.c:7058
+#: ../intl-scm/guile-strings.c:7262 ../intl-scm/guile-strings.c:7298
 msgid "Quantity"
 msgstr "Anzahl"
 
@@ -2872,21 +3021,32 @@
 #. src/report/report-system/options-utilities.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:125
-#: ../intl-scm/guile-strings.c:788 ../intl-scm/guile-strings.c:3348
-#: ../intl-scm/guile-strings.c:3614 ../intl-scm/guile-strings.c:3670
-#: ../intl-scm/guile-strings.c:3898
+#: ../intl-scm/guile-strings.c:1300 ../intl-scm/guile-strings.c:6074
+#: ../intl-scm/guile-strings.c:6340 ../intl-scm/guile-strings.c:6396
+#: ../intl-scm/guile-strings.c:6598 ../intl-scm/guile-strings.c:6864
+#: ../intl-scm/guile-strings.c:6920 ../intl-scm/guile-strings.c:7150
+#: ../intl-scm/guile-strings.c:7390
 msgid "Subtotal"
 msgstr "Zwischensumme"
 
 #. src/tax/us/de_DE.scm
+#. src/tax/us/gnucash/tax/de_DE.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:130
-#: ../intl-scm/guile-strings.c:52 ../intl-scm/guile-strings.c:3350
-#: ../intl-scm/guile-strings.c:3672 ../intl-scm/guile-strings.c:3900
+#: ../intl-scm/guile-strings.c:96 ../intl-scm/guile-strings.c:100
+#: ../intl-scm/guile-strings.c:6076 ../intl-scm/guile-strings.c:6398
+#: ../intl-scm/guile-strings.c:6600 ../intl-scm/guile-strings.c:6922
+#: ../intl-scm/guile-strings.c:7152 ../intl-scm/guile-strings.c:7392
 msgid "Tax"
 msgstr "Steuern"
 
@@ -2998,11 +3158,11 @@
 msgid "How did you pay for this item?"
 msgstr "Wie wurde dieser Artikel bezahlt?"
 
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:102
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:112
 msgid "You must provide a name for this Tax Table."
 msgstr "Sie müssen einen Namen für diese Steuertabelle angeben."
 
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:108
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:118
 #, c-format
 msgid ""
 "You must provide a unique name for this Tax Table. Your choice \"%s\" is "
@@ -3011,25 +3171,16 @@
 "Sie müssen einen eindeutigen Namen für diese Steuertabelle angeben. Ihre "
 "Wahl »%s« ist bereits in Benutzung."
 
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:134
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:144
 msgid "You must choose a Tax Account."
 msgstr "Sie müssen ein steuerrelevantes Konto wählen."
 
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:205
-msgid "Value $"
-msgstr "Wert"
-
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:207
-#, no-c-format
-msgid "Percent %"
-msgstr "Prozent (%)"
-
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:548
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:534
 #, c-format
 msgid "Tax table \"%s\" is in use.  You cannot delete it."
 msgstr "Steuertabelle »%s« ist in Benutzung. Sie können sie nicht löschen."
 
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:594
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:580
 msgid ""
 "You cannot remove the last entry from the tax table. Try deleting the tax "
 "table if you want to do that."
@@ -3038,7 +3189,7 @@
 "Stattdessen müssten Sie die ganze Steuertabelle löschen, falls Sie das "
 "möchten."
 
-#: ../src/business/dialog-tax-table/dialog-tax-table.c:601
+#: ../src/business/dialog-tax-table/dialog-tax-table.c:587
 msgid "Are you sure you want to delete this entry?"
 msgstr "Sind Sie sicher, dass Sie diesen Eintrag löschen möchten?"
 
@@ -3058,18 +3209,16 @@
 msgid "<b>Tax Tables</b>"
 msgstr "<b>Steuertabellen</b>"
 
-#: ../src/business/dialog-tax-table/tax-tables.glade.h:6
-#, no-c-format
-msgid "Percent (%)"
-msgstr "Prozent (%)"
-
-#: ../src/business/dialog-tax-table/tax-tables.glade.h:7
+#: ../src/business/dialog-tax-table/tax-tables.glade.h:5
 msgid "Tax Tables"
 msgstr "Steuertabellen"
 
-#: ../src/business/dialog-tax-table/tax-tables.glade.h:8
-msgid "Value ($)"
-msgstr "Geldbetrag"
+#: ../src/business/dialog-tax-table/tax-tables.glade.h:7
+#, fuzzy, no-c-format
+msgid ""
+"Value $\n"
+"Percent %"
+msgstr "Prozent (%)"
 
 #: ../src/business/dialog-tax-table/tax-tables.glade.h:9
 msgid "_Account:"
@@ -3088,32 +3237,32 @@
 msgstr "_Wert: "
 
 #. src/report/report-system/report-utilities.scm
-#: ../src/engine/Account.c:2131 ../src/import-export/hbci/gnc-hbci-utils.c:593
-#: ../intl-scm/guile-strings.c:848
+#: ../src/engine/Account.c:2134 ../src/import-export/hbci/gnc-hbci-utils.c:594
+#: ../intl-scm/guile-strings.c:1362
 msgid "Bank"
 msgstr "Bank"
 
-#: ../src/engine/Account.c:2133
+#: ../src/engine/Account.c:2136
 msgid "Asset"
 msgstr "Aktiva"
 
-#: ../src/engine/Account.c:2134
+#: ../src/engine/Account.c:2137
 msgid "Credit Card"
 msgstr "Kreditkarte"
 
-#: ../src/engine/Account.c:2135
+#: ../src/engine/Account.c:2138
 msgid "Liability"
 msgstr "Passiva"
 
-#: ../src/engine/Account.c:2136
+#: ../src/engine/Account.c:2139
 msgid "Stock"
 msgstr "Aktienkonto"
 
-#: ../src/engine/Account.c:2137
+#: ../src/engine/Account.c:2140
 msgid "Mutual Fund"
 msgstr "Investmentfonds"
 
-#: ../src/engine/Account.c:2138 ../src/gnome-utils/dialog-commodity.c:731
+#: ../src/engine/Account.c:2141 ../src/gnome-utils/dialog-commodity.c:756
 #: ../src/gnome-utils/gnc-tree-view-price.c:441
 msgid "Currency"
 msgstr "Währung"
@@ -3121,31 +3270,32 @@
 #. src/app-utils/prefs.scm
 #. src/report/report-system/report-utilities.scm
 #. src/report/standard-reports/net-barchart.scm
-#: ../src/engine/Account.c:2139
-#: ../src/register/ledger-core/split-register.c:2045
-#: ../intl-scm/guile-strings.c:104 ../intl-scm/guile-strings.c:864
-#: ../intl-scm/guile-strings.c:1240
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../src/engine/Account.c:2142
+#: ../src/register/ledger-core/split-register.c:2067
+#: ../intl-scm/guile-strings.c:152 ../intl-scm/guile-strings.c:1378
+#: ../intl-scm/guile-strings.c:1952 ../intl-scm/guile-strings.c:2576
 msgid "Income"
 msgstr "Erträge"
 
-#: ../src/engine/Account.c:2142
+#: ../src/engine/Account.c:2145
 msgid "A/Receivable"
 msgstr "Forderungen"
 
-#: ../src/engine/Account.c:2143
+#: ../src/engine/Account.c:2146
 msgid "A/Payable"
 msgstr "Verbindlichkeit"
 
-#: ../src/engine/cap-gains.c:237
+#: ../src/engine/cap-gains.c:238
 msgid "Orphaned Gains"
 msgstr "Unverknüpfte Gewinne"
 
-#: ../src/engine/cap-gains.c:251 ../src/engine/cap-gains.c:974
-#: ../src/engine/cap-gains.c:979 ../src/engine/cap-gains.c:980
+#: ../src/engine/cap-gains.c:252 ../src/engine/cap-gains.c:975
+#: ../src/engine/cap-gains.c:980 ../src/engine/cap-gains.c:981
 msgid "Realized Gain/Loss"
 msgstr "Realisierter Gewinn/Verlust"
 
-#: ../src/engine/cap-gains.c:253
+#: ../src/engine/cap-gains.c:254
 msgid ""
 "Realized Gains or Losses from Commodity or Trading Accounts that haven't "
 "been recorded elsewhere."
@@ -3153,7 +3303,7 @@
 "Realisierter Gewinn/Verlust von Aktienkonten, die nicht woanders gespeichert "
 "worden sind."
 
-#: ../src/engine/cap-gains.c:584
+#: ../src/engine/cap-gains.c:585
 msgid "Lot"
 msgstr "Posten"
 
@@ -3174,7 +3324,7 @@
 msgid "Daily (x%u)"
 msgstr "Täglich (%u Mal)"
 
-#: ../src/engine/FreqSpec.c:748 ../src/gnome/glade/sched-xact.glade.h:64
+#: ../src/engine/FreqSpec.c:748 ../src/gnome/glade/sched-xact.glade.h:65
 #, c-format
 msgid "Daily"
 msgstr "Täglich"
@@ -3299,11 +3449,11 @@
 msgid "Yearly: %s/%u"
 msgstr "Jährlich: %2$u. %1$s"
 
-#: ../src/engine/gnc-budget.c:106 ../src/gnome/gnc-plugin-page-budget.c:850
+#: ../src/engine/gnc-budget.c:109 ../src/gnome/gnc-plugin-page-budget.c:846
 msgid "Unnamed Budget"
 msgstr "Unbenanntes Budget"
 
-#: ../src/engine/gnc-filepath-utils.c:332
+#: ../src/engine/gnc-filepath-utils.c:316
 #, c-format
 msgid ""
 "An error occurred while creating the directory:\n"
@@ -3317,7 +3467,7 @@
 "starten Sie GnuCash neu. \n"
 "Nennen Sie bitte diesen Fehlertext: »%s« (errno %d)\n"
 
-#: ../src/engine/gnc-filepath-utils.c:344
+#: ../src/engine/gnc-filepath-utils.c:328
 #, c-format
 msgid ""
 "The directory\n"
@@ -3332,8 +3482,8 @@
 "Programm muss alle Zugriffrechte (Lesen/Schreiben/Ausführen) zu diesem\n"
 "Verzeichnis besitzen, um korrekt zu funktionieren.\n"
 
-#: ../src/engine/gnc-filepath-utils.c:354
-#: ../src/engine/gnc-filepath-utils.c:375
+#: ../src/engine/gnc-filepath-utils.c:338
+#: ../src/engine/gnc-filepath-utils.c:359
 #, c-format
 msgid ""
 "The path\n"
@@ -3346,7 +3496,7 @@
 "existiert, ist aber kein Verzeichnis. Bitte löschen Sie diese Datei\n"
 "oder wählen einen anderen Pfad. Starten Sie dann GnuCash neu.\n"
 
-#: ../src/engine/gnc-filepath-utils.c:363
+#: ../src/engine/gnc-filepath-utils.c:347
 #, c-format
 msgid ""
 "An unknown error occurred when validating that the\n"
@@ -3362,7 +3512,7 @@
 "starten Sie GnuCash neu. \n"
 "Nennen Sie bitte diesen Fehlertext: »%s« (errno %d)"
 
-#: ../src/engine/gnc-filepath-utils.c:384
+#: ../src/engine/gnc-filepath-utils.c:368
 #, c-format
 msgid ""
 "The permissions are wrong on the directory\n"
@@ -3378,36 +3528,40 @@
 msgid "Orphan"
 msgstr "Ausbuchungskonto"
 
-#: ../src/engine/Scrub.c:430 ../src/import-export/generic-import.glade.h:35
+#: ../src/engine/Scrub.c:430
 msgid "Imbalance"
 msgstr "Ausgleichskonto"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../src/engine/Split.c:1220 ../src/engine/Split.c:1237
-#: ../intl-scm/guile-strings.c:2548 ../intl-scm/guile-strings.c:2570
+#: ../src/engine/Split.c:1229 ../src/engine/Split.c:1246
+#: ../intl-scm/guile-strings.c:3882 ../intl-scm/guile-strings.c:3904
+#: ../intl-scm/guile-strings.c:5032 ../intl-scm/guile-strings.c:5054
 msgid "-- Split Transaction --"
 msgstr "-- Mehrteilige Buchung --"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/engine/Split.c:1253 ../src/gnome/druid-stock-split.c:448
+#: ../src/engine/Split.c:1262 ../src/gnome/druid-stock-split.c:455
 #: ../src/gnome/glade/register.glade.h:67
-#: ../src/gnome/gnc-plugin-page-register.c:331
-#: ../src/register/ledger-core/split-register.c:2048
-#: ../intl-scm/guile-strings.c:2166
+#: ../src/gnome/gnc-plugin-page-register.c:328
+#: ../src/register/ledger-core/split-register.c:2070
+#: ../intl-scm/guile-strings.c:3500 ../intl-scm/guile-strings.c:4650
 msgid "Split"
 msgstr "Vollständig"
 
-#: ../src/engine/Transaction.c:1733
+#: ../src/engine/Transaction.c:1728
 msgid "Voided transaction"
 msgstr "Ungültige Buchung"
 
 #. Dirtying taken care of by SetReadOnly
-#: ../src/engine/Transaction.c:1744
+#: ../src/engine/Transaction.c:1739
 msgid "Transaction Voided"
 msgstr "Buchung ungültig gemacht"
 
-#: ../src/gnome/dialog-chart-export.c:234
+#: ../src/gnome/dialog-chart-export.c:233
 msgid "Export Chart of Accounts to QSF XML"
 msgstr "Kontenhierarchie nach QSF XML exportieren"
 
@@ -3435,7 +3589,7 @@
 msgid "Delete commodity?"
 msgstr "Währung/Aktie löschen?"
 
-#: ../src/gnome/dialog-fincalc.c:315
+#: ../src/gnome/dialog-fincalc.c:308
 msgid ""
 "This program can only calculate one value at a time. You must enter values "
 "for all but one quantity."
@@ -3443,7 +3597,7 @@
 "Es kann nur einer der Werte berechnet werden. Sie müssen für alle Werte "
 "außer einem jeweils eine Zahl eintragen."
 
-#: ../src/gnome/dialog-fincalc.c:317
+#: ../src/gnome/dialog-fincalc.c:310
 msgid ""
 "GnuCash cannot determine the value in one of the fields. You must enter a "
 "valid expression."
@@ -3451,15 +3605,15 @@
 "Die eingegebenen Werte können nicht ausgewertet werden. Sie müssen einen "
 "korrekten Zahlenausdruck eingeben."
 
-#: ../src/gnome/dialog-fincalc.c:356
+#: ../src/gnome/dialog-fincalc.c:349
 msgid "The interest rate cannot be zero."
 msgstr "Der Zinssatz kann nicht Null sein."
 
-#: ../src/gnome/dialog-fincalc.c:375
+#: ../src/gnome/dialog-fincalc.c:368
 msgid "The number of payments cannot be zero."
 msgstr "Die Anzahl der Zahlungen kann nicht Null sein"
 
-#: ../src/gnome/dialog-fincalc.c:380
+#: ../src/gnome/dialog-fincalc.c:373
 msgid "The number of payments cannot be negative."
 msgstr "Die Anzahl der Zahlungen kann nicht negativ sein"
 
@@ -3470,33 +3624,47 @@
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/cash-flow.scm
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/report/standard-reports/budget.scm
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
 #: ../src/gnome/dialog-find-transactions.c:103
-#: ../src/gnome/glade/stocks.glade.h:3 ../src/gnome-utils/dialog-account.c:647
-#: ../src/gnome-utils/gnc-icons.c:16
-#: ../src/import-export/generic-import.glade.h:11
-#: ../src/import-export/hbci/gnc-hbci-utils.c:592
-#: ../src/import-export/qif-import/qif.glade.h:2
+#: ../src/gnome/druid-stock-split.c:610 ../src/gnome-utils/gnc-icons.c:16
+#: ../src/import-export/hbci/gnc-hbci-utils.c:593
+#: ../src/import-export/import-main-matcher.c:418
+#: ../src/import-export/import-match-picker.c:332
+#: ../src/import-export/qif-import/dialog-account-picker.c:288
+#: ../src/import-export/qif-import/druid-qif-import.c:2130
 #: ../src/register/ledger-core/split-register-model.c:177
-#: ../intl-scm/guile-strings.c:1282 ../intl-scm/guile-strings.c:1304
-#: ../intl-scm/guile-strings.c:1730 ../intl-scm/guile-strings.c:2028
-#: ../intl-scm/guile-strings.c:2250 ../intl-scm/guile-strings.c:2560
-#: ../intl-scm/guile-strings.c:2604 ../intl-scm/guile-strings.c:2670
-#: ../intl-scm/guile-strings.c:3394
+#: ../intl-scm/guile-strings.c:1992 ../intl-scm/guile-strings.c:2014
+#: ../intl-scm/guile-strings.c:2440 ../intl-scm/guile-strings.c:2616
+#: ../intl-scm/guile-strings.c:2638 ../intl-scm/guile-strings.c:3064
+#: ../intl-scm/guile-strings.c:3362 ../intl-scm/guile-strings.c:3584
+#: ../intl-scm/guile-strings.c:3894 ../intl-scm/guile-strings.c:3938
+#: ../intl-scm/guile-strings.c:4004 ../intl-scm/guile-strings.c:4512
+#: ../intl-scm/guile-strings.c:4734 ../intl-scm/guile-strings.c:5044
+#: ../intl-scm/guile-strings.c:5088 ../intl-scm/guile-strings.c:5154
+#: ../intl-scm/guile-strings.c:6120 ../intl-scm/guile-strings.c:6644
 msgid "Account"
 msgstr "Konto"
 
 #: ../src/gnome/dialog-find-transactions.c:106
+#: ../src/import-export/import-match-picker.c:337
 msgid "Balanced"
 msgstr "Ausgeglichene Buchungen"
 
 #: ../src/gnome/dialog-find-transactions.c:109
-#: ../src/gnome/gnc-plugin-page-register.c:334
-#: ../src/gnome/window-reconcile.c:1174
+#: ../src/gnome/gnc-plugin-page-register.c:331
+#: ../src/gnome/window-reconcile.c:1173
 msgid "Reconcile"
 msgstr "Abgleichen"
 
@@ -3506,50 +3674,63 @@
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #: ../src/gnome/dialog-find-transactions.c:113
-#: ../src/gnome/glade/stocks.glade.h:13
+#: ../src/gnome/druid-stock-split.c:622
 #: ../src/register/ledger-core/split-register-model.c:240
-#: ../intl-scm/guile-strings.c:1284 ../intl-scm/guile-strings.c:1498
-#: ../intl-scm/guile-strings.c:2036 ../intl-scm/guile-strings.c:2198
-#: ../intl-scm/guile-strings.c:2254 ../intl-scm/guile-strings.c:2472
-#: ../intl-scm/guile-strings.c:2564 ../intl-scm/guile-strings.c:2610
+#: ../intl-scm/guile-strings.c:1994 ../intl-scm/guile-strings.c:2208
+#: ../intl-scm/guile-strings.c:2618 ../intl-scm/guile-strings.c:2832
+#: ../intl-scm/guile-strings.c:3370 ../intl-scm/guile-strings.c:3532
+#: ../intl-scm/guile-strings.c:3588 ../intl-scm/guile-strings.c:3806
+#: ../intl-scm/guile-strings.c:3898 ../intl-scm/guile-strings.c:3944
+#: ../intl-scm/guile-strings.c:4520 ../intl-scm/guile-strings.c:4682
+#: ../intl-scm/guile-strings.c:4738 ../intl-scm/guile-strings.c:4956
+#: ../intl-scm/guile-strings.c:5048 ../intl-scm/guile-strings.c:5094
 msgid "Shares"
 msgstr "Anteile"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #: ../src/gnome/dialog-find-transactions.c:115
-#: ../src/gnome/glade/lots.glade.h:25
-#: ../src/gnome/glade/sched-xact.glade.h:190 ../intl-scm/guile-strings.c:1740
-#: ../intl-scm/guile-strings.c:2042
+#: ../src/gnome/glade/lots.glade.h:18
+#: ../src/gnome/glade/sched-xact.glade.h:215 ../intl-scm/guile-strings.c:2450
+#: ../intl-scm/guile-strings.c:3074 ../intl-scm/guile-strings.c:3376
+#: ../intl-scm/guile-strings.c:4526
 msgid "Value"
 msgstr "Wert"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
 #: ../src/gnome/dialog-find-transactions.c:124
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:11
-#: ../intl-scm/guile-strings.c:2368
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:10
+#: ../intl-scm/guile-strings.c:3702 ../intl-scm/guile-strings.c:4852
 msgid "Number"
 msgstr "Nummer"
 
 #: ../src/gnome/dialog-find-transactions.c:169
-#: ../src/gnome-search/dialog-search.c:1076
+#: ../src/gnome-search/dialog-search.c:1085
 msgid "Find Transaction"
 msgstr "Buchungen suchen"
 
 #. Translators: %d is the number of prices. This
 #. is a ngettext(3) message.
-#: ../src/gnome/dialog-price-edit-db.c:171
+#: ../src/gnome/dialog-price-edit-db.c:172
 #, c-format
 msgid "Are you sure you want to delete the %d selected price?"
 msgid_plural "Are you sure you want to delete the %d selected prices?"
 msgstr[0] "Sind Sie sicher, dass Sie den %d gewählten Preis löschen wollen?"
 msgstr[1] "Sind Sie sicher, dass Sie die %d gewählten Preise löschen wollen?"
 
-#: ../src/gnome/dialog-price-edit-db.c:179
+#: ../src/gnome/dialog-price-edit-db.c:180
 msgid "Delete prices?"
 msgstr "Preise löschen?"
 
@@ -3562,7 +3743,7 @@
 msgstr "Sie müssen eine Währung auswählen."
 
 #: ../src/gnome/dialog-price-editor.c:190
-#: ../src/gnome-utils/dialog-transfer.c:1403
+#: ../src/gnome-utils/dialog-transfer.c:1404
 msgid "You must enter a valid amount."
 msgstr "Sie müssen einen gültigen Betrag eingeben."
 
@@ -3570,58 +3751,49 @@
 msgid "Complete"
 msgstr "Komplett"
 
-#. Toplevel
-#: ../src/gnome/dialog-scheduledxaction.c:242
-#: ../src/gnome/dialog-sxsincelast.c:401 ../src/gnome/glade/price.glade.h:22
+#: ../src/gnome/dialog-sx-editor.c:176 ../src/gnome/glade/price.glade.h:22
 #: ../src/gnome/glade/register.glade.h:85
-#: ../src/gnome/glade/sched-xact.glade.h:203
-#: ../src/gnome-utils/gnc-main-window.c:212
-#: ../src/gnome/window-reconcile.c:2025
-#: ../src/report/report-gnome/report.glade.h:20
+#: ../src/gnome-utils/gnc-main-window.c:216
+#: ../src/gnome/window-reconcile.c:2027
+#: ../src/report/report-gnome/report.glade.h:17
 msgid "_Edit"
 msgstr "_Bearbeiten"
 
-#: ../src/gnome/dialog-scheduledxaction.c:243
-#: ../src/gnome/dialog-sxsincelast.c:402 ../src/gnome/window-reconcile.c:1985
+#: ../src/gnome/dialog-sx-editor.c:177 ../src/gnome/window-reconcile.c:1987
 msgid "_Transaction"
 msgstr "_Buchung"
 
-#: ../src/gnome/dialog-scheduledxaction.c:244
-#: ../src/gnome/dialog-sxsincelast.c:403 ../src/gnome/glade/lots.glade.h:27
-#: ../src/gnome/glade/register.glade.h:101
-#: ../src/gnome-utils/gnc-main-window.c:213
+#: ../src/gnome/dialog-sx-editor.c:178 ../src/gnome/glade/register.glade.h:101
+#: ../src/gnome-utils/gnc-main-window.c:217
 msgid "_View"
 msgstr "_Ansicht"
 
-#: ../src/gnome/dialog-scheduledxaction.c:245
-#: ../src/gnome/dialog-sxsincelast.c:404
-#: ../src/gnome/glade/register.glade.h:74
-#: ../src/gnome-utils/gnc-main-window.c:214
+#: ../src/gnome/dialog-sx-editor.c:179 ../src/gnome/glade/register.glade.h:74
+#: ../src/gnome-utils/gnc-main-window.c:218
 msgid "_Actions"
 msgstr "A_ktionen"
 
-#: ../src/gnome/dialog-scheduledxaction.c:328
+#: ../src/gnome/dialog-sx-editor.c:211
 msgid "This SX has changed; are you sure you want to cancel?"
 msgstr ""
 "Diese terminierte Buchung wurde geändert. Sind Sie sicher, dass Sie\n"
 "abbrechen wollen?"
 
-#: ../src/gnome/dialog-scheduledxaction.c:794
+#: ../src/gnome/dialog-sx-editor.c:631
 #, c-format
 msgid "Couldn't parse credit formula for split \"%s\"."
 msgstr ""
 "Die Berechnungsformel für die Minderungsbuchung konnte nicht verarbeitet "
 "werden im Buchungsteil »%s«. "
 
-#: ../src/gnome/dialog-scheduledxaction.c:820
+#: ../src/gnome/dialog-sx-editor.c:657
 #, c-format
 msgid "Couldn't parse debit formula for split \"%s\"."
 msgstr ""
 "Die Berechnungsformel für die Mehrungsbuchung konnte nicht verarbeitet "
 "werden im Buchungsteil »%s«. "
 
-#: ../src/gnome/dialog-scheduledxaction.c:858
-#: ../src/gnome/dialog-sx-from-trans.c:269
+#: ../src/gnome/dialog-sx-editor.c:694 ../src/gnome/dialog-sx-from-trans.c:258
 msgid ""
 "The Scheduled Transaction Editor cannot automatically balance this "
 "transaction. Should it still be entered?"
@@ -3629,11 +3801,11 @@
 "Der Terminierte-Buchungen-Editor kann diese Buchung nicht automatisch "
 "ausgeglichen erstellen. Soll sie trotzdem erstellt werden?"
 
-#: ../src/gnome/dialog-scheduledxaction.c:877
+#: ../src/gnome/dialog-sx-editor.c:713
 msgid "Please name the Scheduled Transaction."
 msgstr "Bitte geben Sie der terminierten Buchung einen Namen."
 
-#: ../src/gnome/dialog-scheduledxaction.c:903
+#: ../src/gnome/dialog-sx-editor.c:739
 #, c-format
 msgid ""
 "A Scheduled Transaction with the name \"%s\" already exists. Are you sure "
@@ -3642,12 +3814,12 @@
 "Eine terminierte Buchung mit dem Namen »%s« existiert bereits. Sind Sie "
 "sicher, dass die aktuelle den gleichen Namen erhalten soll?"
 
-#: ../src/gnome/dialog-scheduledxaction.c:932
+#: ../src/gnome/dialog-sx-editor.c:768
 msgid "Scheduled Transactions with variables cannot be automatically created."
 msgstr ""
 "Terminierte Buchungen mit Variablen können nicht automatisch erstellt werden."
 
-#: ../src/gnome/dialog-scheduledxaction.c:941
+#: ../src/gnome/dialog-sx-editor.c:777
 msgid ""
 "Scheduled Transactions without a template transaction cannot be "
 "automatically created."
@@ -3655,15 +3827,15 @@
 "Terminierte Buchungen ohne Buchungsvorlage können nicht automatisch erstellt "
 "werden."
 
-#: ../src/gnome/dialog-scheduledxaction.c:955
+#: ../src/gnome/dialog-sx-editor.c:791
 msgid "Please provide a valid end selection."
 msgstr "Bitte geben Sie ein gültiges Enddatum ein."
 
-#: ../src/gnome/dialog-scheduledxaction.c:971
+#: ../src/gnome/dialog-sx-editor.c:807
 msgid "There must be some number of occurrences."
 msgstr "Es muss eine Anzahl des Auftretens geben."
 
-#: ../src/gnome/dialog-scheduledxaction.c:979
+#: ../src/gnome/dialog-sx-editor.c:815
 #, c-format
 msgid ""
 "The number of remaining occurrences (%d) is greater than the number of total "
@@ -3672,7 +3844,7 @@
 "Die Zahl des verbleibenden Auftretens (%d) ist größer als die Zahl des "
 "totalen Auftretens (%d)."
 
-#: ../src/gnome/dialog-scheduledxaction.c:1013
+#: ../src/gnome/dialog-sx-editor.c:849
 msgid ""
 "You have attempted to create a Scheduled Transaction which will never run. "
 "Do you really want to do this?"
@@ -3680,40 +3852,23 @@
 "Sie versuchen gerade, eine Terminierte Buchung zu erstellen, die nie "
 "auftritt. Wollen Sie wirklich fortsetzen?"
 
-#: ../src/gnome/dialog-scheduledxaction.c:1677
+#: ../src/gnome/dialog-sx-editor.c:1318
 msgid "(never)"
 msgstr "(niemals)"
 
-#: ../src/gnome/dialog-scheduledxaction.c:1838
+#: ../src/gnome/dialog-sx-editor.c:1466
 msgid ""
-"The following transactions are presently being edited; are you sure you want "
-"to delete them?"
-msgstr ""
-"Die folgenden Buchungssätze werden zur Zeit bearbeitet; wollen Sie diese "
-"wirklich löschen?"
-
-#: ../src/gnome/dialog-scheduledxaction.c:1841
-msgid "Delete the selected Scheduled Transactions?"
-msgstr "Ausgewählte terminierte Buchung löschen?"
-
-#: ../src/gnome/dialog-scheduledxaction.c:2089
-#: ../src/gnome/glade/sched-xact.glade.h:123
-msgid "Not scheduled"
-msgstr "Nicht vorgemerkt"
-
-#: ../src/gnome/dialog-scheduledxaction.c:2183
-msgid ""
 "The current template transaction has been changed. Would you like to record "
 "the changes?"
 msgstr ""
 "Die aktuelle Buchungsvorlage wurde verändert. Soll sie gespeichert werden?"
 
-#: ../src/gnome/dialog-scheduledxaction.c:2594
-#: ../src/gnome/glade/sched-xact.glade.h:157
+#: ../src/gnome/dialog-sx-editor.c:1695
+#: ../src/gnome/gnc-plugin-page-sx-list.c:194
 msgid "Scheduled Transactions"
 msgstr "Terminierte Buchungen"
 
-#: ../src/gnome/dialog-sx-from-trans.c:566
+#: ../src/gnome/dialog-sx-from-trans.c:550
 msgid ""
 "The Scheduled Transaction is unbalanced. You are strongly encouraged to "
 "correct this situation."
@@ -3721,7 +3876,7 @@
 "Diese Terminierte Buchung ist nicht ausgeglichen. Bitte korrigieren Sie "
 "diese Buchung."
 
-#: ../src/gnome/dialog-sx-from-trans.c:811
+#: ../src/gnome/dialog-sx-from-trans.c:754
 msgid ""
 "Cannot create a Scheduled Transaction from a Transaction currently being "
 "edited. Please Enter the Transaction before Scheduling."
@@ -3732,8 +3887,8 @@
 
 #. Translators: %d is the number of transactions. This is a
 #. ngettext(3) message.
-#: ../src/gnome/dialog-sxsincelast.c:424
-#: ../src/gnome/gnc-plugin-basic-commands.c:459
+#: ../src/gnome/dialog-sx-since-last-run.c:818
+#: ../src/gnome/gnc-plugin-basic-commands.c:473
 #, c-format
 msgid ""
 "There are no Scheduled Transactions to be entered at this time. (%d "
@@ -3748,45 +3903,11 @@
 "Es gibt keine terminierten Buchungen, die erstellt werden sollen. (%d "
 "Buchungen automatisch erstellt)"
 
-#: ../src/gnome/dialog-sxsincelast.c:1438
-msgid ""
-"Canceling the Since-Last-Run dialog will revert all changes. Are you sure "
-"you want to lose all Scheduled Transaction changes?"
-msgstr ""
-"Wenn Sie den Seit-Letztem-Aufruf Dialog abbrechen, werden alle Änderungen "
-"rückgängig gemacht. Sind Sie sicher, dass Sie alle Änderungen in den "
-"Terminierten Buchungen verwerfen wollen?"
+#: ../src/gnome/dialog-sx-since-last-run.c:1016
+msgid "Created Transactions"
+msgstr "Buchungen erstellt"
 
-#: ../src/gnome/dialog-sxsincelast.c:1871
-msgid "Ready to create"
-msgstr "Bereit zum Erstellen"
-
-#. READY_TEXT
-#: ../src/gnome/dialog-sxsincelast.c:1872
-msgid "Needs values for variables"
-msgstr "Werte für Variablen benötigt"
-
-#: ../src/gnome/dialog-sxsincelast.c:1876
-msgid "Ignored"
-msgstr "Ignoriert"
-
-#: ../src/gnome/dialog-sxsincelast.c:1879
-msgid "Postponed"
-msgstr "Auf später verschoben"
-
-#: ../src/gnome/dialog-sxsincelast.c:1989
-msgid "Obsolete"
-msgstr "Veraltet"
-
-#: ../src/gnome/dialog-sxsincelast.c:4021
-msgid ""
-"The following errors were encountered while creating the Scheduled "
-"Transactions:\n"
-msgstr ""
-"Die folgenden Fehler sind aufgetreten, als die Terminierten Buchungen "
-"erstellt werden sollen:\n"
-
-#: ../src/gnome/dialog-tax-info.c:723
+#: ../src/gnome/dialog-tax-info.c:715
 msgid "Form"
 msgstr "Formular"
 
@@ -3839,7 +3960,7 @@
 #. replaced by one single message? Either this closing went
 #. successfully ("success", "congratulations") or something else
 #. should be displayed anyway.
-#: ../src/gnome/druid-acct-period.c:492
+#: ../src/gnome/druid-acct-period.c:493
 #, c-format
 msgid ""
 "%s\n"
@@ -3849,154 +3970,147 @@
 "Sie sind mit dem Schließen der Bücher fertig."
 
 #. Change the text so that its more mainingful for this druid
-#: ../src/gnome/druid-acct-period.c:547
+#: ../src/gnome/druid-acct-period.c:548
 msgid "Period:"
 msgstr "Periode:"
 
-#: ../src/gnome/druid-acct-period.c:548
+#: ../src/gnome/druid-acct-period.c:549
 msgid "Closing Date:"
 msgstr "Abschlußdatum:"
 
-#: ../src/gnome/druid-hierarchy.c:389
+#: ../src/gnome/druid-hierarchy.c:399
 msgid "Selected"
 msgstr "Ausgewähltes"
 
-#: ../src/gnome/druid-hierarchy.c:401
-#: ../src/gnome-utils/gnc-tree-view-account.c:1879
+#: ../src/gnome/druid-hierarchy.c:411
+#: ../src/gnome-utils/gnc-tree-view-account.c:1875
 msgid "Account Types"
 msgstr "Kontoarten"
 
-#: ../src/gnome/druid-hierarchy.c:477
+#. Translators: '%s' is the name of the selected account hierarchy template.
+#: ../src/gnome/druid-hierarchy.c:489
 #, c-format
-msgid "<b>Accounts in '%s'</b>"
-msgstr "<b>Konten in »%s«</b>"
+msgid "Accounts in '%s'"
+msgstr "Konten in »%s«"
 
-#: ../src/gnome/druid-hierarchy.c:494
-msgid "<b>Accounts in Category</b>"
-msgstr "<b>Konten in Kategorie</b>"
+#: ../src/gnome/druid-hierarchy.c:508
+msgid "Accounts in Category"
+msgstr "Konten in Kategorie"
 
-#: ../src/gnome/druid-hierarchy.c:703
+#: ../src/gnome/druid-hierarchy.c:719
 msgid "zero"
 msgstr "Null"
 
-#: ../src/gnome/druid-hierarchy.c:714
+#: ../src/gnome/druid-hierarchy.c:730
 msgid "existing account"
 msgstr "Existierendes Konto"
 
-#: ../src/gnome/druid-hierarchy.c:888
-#: ../src/gnome-utils/gnc-tree-view-account.c:647
+#: ../src/gnome/druid-hierarchy.c:904
+#: ../src/gnome-utils/gnc-tree-view-account.c:643
 msgid "Placeholder"
 msgstr "Platzhalter"
 
-#: ../src/gnome/druid-hierarchy.c:919
+#: ../src/gnome/druid-hierarchy.c:935
 msgid "Use Existing"
 msgstr "Existierendes verwenden"
 
-#: ../src/gnome/druid-loan.c:552
-msgid "Fixed"
-msgstr "Festverzinslich"
+#. { name, default txn memo, throughEscrowP, specSrcAcctP }
+#: ../src/gnome/druid-loan.c:161
+msgid "Taxes"
+msgstr "Steuern"
 
-#: ../src/gnome/druid-loan.c:552
-msgid "A Fixed-Rate loan"
-msgstr "Ein festverzinsliches Darlehen"
+#: ../src/gnome/druid-loan.c:161
+msgid "Tax Payment"
+msgstr "Steuern"
 
-#: ../src/gnome/druid-loan.c:553
-msgid "3/1 Year"
-msgstr "3/1 ARM"
+#: ../src/gnome/druid-loan.c:162
+msgid "Insurance"
+msgstr "Versicherung"
 
-#. Translators: ARM = Adjustable Rate Mortgage; that is a
-#. loan where the rate is constant for the period before
-#. the '/', e.g. 5 years, and then may change. See also
-#. http://www.fanniemae.com/tools/glossary.jhtml
-#: ../src/gnome/druid-loan.c:558
-msgid "A 3/1 Year ARM"
-msgstr "3/1 jährige Adjustable Rate Mortgage (zinsvariable Hypothek)"
+#: ../src/gnome/druid-loan.c:162
+msgid "Insurance Payment"
+msgstr "Versicherung"
 
-#: ../src/gnome/druid-loan.c:559
-msgid "5/1 Year"
-msgstr "5/1 ARM"
+#. Translators: PMI stands for Private Mortgage Insurance.
+#: ../src/gnome/druid-loan.c:164
+msgid "PMI"
+msgstr "Hypothekenversicherung"
 
-#: ../src/gnome/druid-loan.c:559
-msgid "A 5/1 Year ARM"
-msgstr "5/1 jährige Adjustable Rate Mortgage (zinsvariable Hypothek)"
+#: ../src/gnome/druid-loan.c:164
+msgid "PMI Payment"
+msgstr "Hypothekenversicherung"
 
-#: ../src/gnome/druid-loan.c:560
-msgid "7/1 Year"
-msgstr "7/1 ARM"
+#: ../src/gnome/druid-loan.c:165
+msgid "Other Expense"
+msgstr "Anderes"
 
-#: ../src/gnome/druid-loan.c:560
-msgid "A 7/1 Year ARM"
-msgstr "7/1 jährige Adjustable Rate Mortgage (zinsvariable Hypothek)"
+#: ../src/gnome/druid-loan.c:165
+msgid "Miscellaneous Payment"
+msgstr "Anderes"
 
-#: ../src/gnome/druid-loan.c:561
-msgid "10/1 Year"
-msgstr "10/1 ARM"
-
-#: ../src/gnome/druid-loan.c:561
-msgid "A 10/1 Year ARM"
-msgstr "10/1 jährige Adjustable Rate Mortgage (zinsvariable Hypothek)"
-
 #. Add payment checkbox.
 #. Translators: %s is "Taxes",
 #. * "Insurance", or similar.
-#: ../src/gnome/druid-loan.c:644
+#: ../src/gnome/druid-loan.c:632
 #, c-format
 msgid "... pay \"%s\"?"
 msgstr "... »%s« zahlen?"
 
-#: ../src/gnome/druid-loan.c:656
+#: ../src/gnome/druid-loan.c:644
 msgid "via Escrow account?"
 msgstr "über Treuhandkonto?"
 
-#: ../src/gnome/druid-loan.c:820
-#: ../src/register/ledger-core/split-register.c:2002
+#: ../src/gnome/druid-loan.c:808
+#: ../src/register/ledger-core/split-register.c:2024
 msgid "Loan"
 msgstr "Darlehen"
 
-#: ../src/gnome/druid-loan.c:1048
+#: ../src/gnome/druid-loan.c:1038
 msgid "Are you sure you want to cancel the Mortgage/Loan Setup Druid?"
 msgstr "Wollen Sie den Darlehen-Assistent wirklich abbrechen?"
 
-#: ../src/gnome/druid-loan.c:1165
+#: ../src/gnome/druid-loan.c:1157
 msgid "Please select a valid loan account."
 msgstr "Sie müssen ein gültiges Darlehen-Konto auswählen."
 
-#: ../src/gnome/druid-loan.c:1251
+#: ../src/gnome/druid-loan.c:1243
 msgid "Please select a valid Escrow Account."
 msgstr "Sie müssen ein gültiges Treuhand-Konto auswählen."
 
-#: ../src/gnome/druid-loan.c:1317 ../src/gnome/druid-loan.c:1536
+#: ../src/gnome/druid-loan.c:1309 ../src/gnome/druid-loan.c:1528
 msgid "Please select a valid \"from\" account."
 msgstr "Sie müssen ein gültiges Herkunftskonto angeben."
 
-#: ../src/gnome/druid-loan.c:1324 ../src/gnome/druid-loan.c:1545
+#: ../src/gnome/druid-loan.c:1316 ../src/gnome/druid-loan.c:1537
 msgid "Please select a valid \"to\" account."
 msgstr "Sie müssen ein gültiges Zielkonto angeben."
 
-#: ../src/gnome/druid-loan.c:1331
+#: ../src/gnome/druid-loan.c:1323
 msgid "Please select a valid \"interest\" account."
 msgstr "Sie müssen ein gültiges Zinskonto angeben."
 
 #. Translators: %s is "Taxes", or "Insurance", or similar
-#: ../src/gnome/druid-loan.c:1443
+#: ../src/gnome/druid-loan.c:1435
 #, c-format
 msgid "Payment: \"%s\""
 msgstr "Zahlung: »%s«"
 
-#: ../src/gnome/druid-loan.c:1781 ../src/gnome/druid-loan.c:2378
+#: ../src/gnome/druid-loan.c:1795 ../src/gnome/druid-loan.c:2391
 msgid "Principal"
 msgstr "Endbetrag Kapital"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
-#: ../src/gnome/druid-loan.c:1782 ../src/gnome/druid-loan.c:2399
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
+#: ../src/gnome/druid-loan.c:1801 ../src/gnome/druid-loan.c:2412
 #: ../src/import-export/qif/qif-defaults.c:130
-#: ../src/register/ledger-core/split-register.c:2010
-#: ../intl-scm/guile-strings.c:3072 ../intl-scm/guile-strings.c:3094
+#: ../src/register/ledger-core/split-register.c:2032
+#: ../intl-scm/guile-strings.c:5740 ../intl-scm/guile-strings.c:5762
+#: ../intl-scm/guile-strings.c:5784
 msgid "Interest"
 msgstr "Zinsen"
 
-#: ../src/gnome/druid-loan.c:2279
+#: ../src/gnome/druid-loan.c:2292
 msgid "Escrow "
 msgstr "Treuhand "
 
@@ -4014,7 +4128,8 @@
 "gespeichert werden."
 
 #: ../src/gnome/druid-merge.c:223
-msgid "Error: the Commit operation failed."
+#, fuzzy, c-format
+msgid "Error: the Commit operation failed, error code %d."
 msgstr "Fehler: Das Speichern der Änderung ist fehlgeschlagen."
 
 #. Translators: %i is the number of conflicts. This is a
@@ -4054,216 +4169,221 @@
 msgid "Original data : %s\n"
 msgstr "Originaldaten : %s\n"
 
-#: ../src/gnome/druid-stock-split.c:268
-#: ../src/gnome-utils/dialog-transfer.c:541 ../src/gnome-utils/gnc-html.c:113
+#: ../src/gnome/druid-stock-split.c:275
+#: ../src/gnome-utils/dialog-transfer.c:542 ../src/gnome-utils/gnc-html.c:114
 msgid "Error"
 msgstr "Fehler"
 
-#: ../src/gnome/druid-stock-split.c:293
+#: ../src/gnome/druid-stock-split.c:300
 msgid "You must enter a valid distribution amount."
 msgstr "Sie müssen einen gültigen Betrag eingeben."
 
-#: ../src/gnome/druid-stock-split.c:302
+#: ../src/gnome/druid-stock-split.c:309
 msgid "You must enter a distribution amount."
 msgstr "Sie müssen einen Betrag angeben."
 
-#: ../src/gnome/druid-stock-split.c:310
+#: ../src/gnome/druid-stock-split.c:317
 msgid "You must either enter a valid price or leave it blank."
 msgstr ""
 "Sie müssen entweder einen gültigen Preis angeben oder das Feld frei lassen."
 
-#: ../src/gnome/druid-stock-split.c:319
+#: ../src/gnome/druid-stock-split.c:326
 msgid "The price must be positive."
 msgstr "Der Preis muss eine positive Zahl sein."
 
-#: ../src/gnome/druid-stock-split.c:357
+#: ../src/gnome/druid-stock-split.c:364
 msgid "You must either enter a valid cash amount or leave it blank."
 msgstr ""
 "Sie müssen entweder einen gültigen Betrag eingeben oder das Eingabefeld leer "
 "lassen."
 
-#: ../src/gnome/druid-stock-split.c:366
+#: ../src/gnome/druid-stock-split.c:373
 msgid "The cash distribution must be positive."
 msgstr "Der Ausgleichsbetrag muss positiv sein."
 
-#: ../src/gnome/druid-stock-split.c:378
+#: ../src/gnome/druid-stock-split.c:385
 msgid "You must select an income account for the cash distribution."
 msgstr "Sie müssen ein Ertragskonto für den Ausgleichsbetrag angeben."
 
-#: ../src/gnome/druid-stock-split.c:387
+#: ../src/gnome/druid-stock-split.c:394
 msgid "You must select an asset account for the cash distribution."
 msgstr "Sie müssen ein Aktiva-Konto für den Ausgleichsbetrag angeben."
 
-#: ../src/gnome/druid-stock-split.c:479
+#: ../src/gnome/druid-stock-split.c:486
 msgid "Error adding price."
 msgstr "Fehler beim Hinzufügen des Preises."
 
-#: ../src/gnome/druid-stock-split.c:754
+#. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/advanced-portfolio.scm
+#: ../src/gnome/druid-stock-split.c:616
+#: ../src/gnome-utils/gnc-tree-view-commodity.c:399
+#: ../intl-scm/guile-strings.c:2442 ../intl-scm/guile-strings.c:3066
+#: ../intl-scm/guile-strings.c:3366 ../intl-scm/guile-strings.c:4516
+msgid "Symbol"
+msgstr "Symbol"
+
+#: ../src/gnome/druid-stock-split.c:789
 msgid "You don't have any stock accounts with balances!"
 msgstr "Sie haben keine Aktienkonten mit mehr als Null Aktien."
 
 #: ../src/gnome/glade/account.glade.h:1
-msgid "1"
-msgstr "1"
-
-#: ../src/gnome/glade/account.glade.h:2
-msgid "1/10"
-msgstr "1/10"
-
-#: ../src/gnome/glade/account.glade.h:3
-msgid "1/100"
-msgstr "1/100"
-
-#: ../src/gnome/glade/account.glade.h:4
-msgid "1/1000"
-msgstr "1/1000"
-
-#: ../src/gnome/glade/account.glade.h:5
-msgid "1/10000"
-msgstr "1/10000"
-
-#: ../src/gnome/glade/account.glade.h:6
-msgid "1/100000"
-msgstr "1/100000"
-
-#: ../src/gnome/glade/account.glade.h:7
-msgid "1/1000000"
-msgstr "1/1000000"
-
-#: ../src/gnome/glade/account.glade.h:8
 msgid "<b>Acco_unt Type</b>"
 msgstr "<b>Konto_art</b>"
 
-#: ../src/gnome/glade/account.glade.h:9
+#: ../src/gnome/glade/account.glade.h:2
 msgid "<b>Balance Information</b>"
 msgstr "<b>Saldo-Informationen</b>"
 
-#: ../src/gnome/glade/account.glade.h:10
+#: ../src/gnome/glade/account.glade.h:3
 msgid "<b>Categories</b>"
 msgstr "<b>Kategorien</b>"
 
-#: ../src/gnome/glade/account.glade.h:11
+#: ../src/gnome/glade/account.glade.h:4
 msgid "<b>Category Description</b>"
 msgstr "<b>Kategorie-Beschreibung</b>"
 
-#: ../src/gnome/glade/account.glade.h:12
+#: ../src/gnome/glade/account.glade.h:5
 msgid "<b>Contained Accounts</b>"
 msgstr "<b>Enthaltene Konten</b>"
 
-#: ../src/gnome/glade/account.glade.h:13
+#: ../src/gnome/glade/account.glade.h:6
 msgid "<b>Description</b>"
 msgstr "<b>Beschreibung</b>"
 
-#: ../src/gnome/glade/account.glade.h:14
+#: ../src/gnome/glade/account.glade.h:7
 msgid "<b>Identification</b>"
 msgstr "<b>Identifizierung</b>"
 
-#: ../src/gnome/glade/account.glade.h:15
+#: ../src/gnome/glade/account.glade.h:8
 msgid "<b>Initial Balance Transfer</b>"
 msgstr "<b>Buchung Anfangssaldo</b>"
 
-#: ../src/gnome/glade/account.glade.h:16
+#: ../src/gnome/glade/account.glade.h:9
 msgid "<b>New Account Currency</b>"
 msgstr "<b>Standardwährung für neue Konten</b>"
 
-#: ../src/gnome/glade/account.glade.h:17
+#: ../src/gnome/glade/account.glade.h:10
 msgid "<b>Sub-account Transactions</b>"
-msgstr "<b>Buchungen in Unterkonten"
+msgstr "<b>Buchungen in Unterkonten</b>"
 
-#: ../src/gnome/glade/account.glade.h:18
+#: ../src/gnome/glade/account.glade.h:11
 msgid "<b>Sub-accounts</b>"
 msgstr "<b>Unterkonten</b>"
 
-#: ../src/gnome/glade/account.glade.h:19
-#: ../src/gnome/glade/sched-xact.glade.h:40
+#: ../src/gnome/glade/account.glade.h:12
+#: ../src/gnome/glade/sched-xact.glade.h:43
 msgid "<b>Transactions</b>"
 msgstr "<b>Buchungen</b>"
 
-#: ../src/gnome/glade/account.glade.h:20
+#: ../src/gnome/glade/account.glade.h:13
 msgid "<b>_Parent Account</b>"
 msgstr "<b>_Hauptkonto</b>"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../src/gnome/glade/account.glade.h:21 ../intl-scm/guile-strings.c:1904
+#: ../src/gnome/glade/account.glade.h:14 ../intl-scm/guile-strings.c:3238
+#: ../intl-scm/guile-strings.c:4388
 msgid "Account Type"
 msgstr "Kontoart"
 
-#: ../src/gnome/glade/account.glade.h:22
+#: ../src/gnome/glade/account.glade.h:15
 msgid "Account _name:"
 msgstr "Konto_bezeichnung:"
 
-#: ../src/gnome/glade/account.glade.h:23
+#: ../src/gnome/glade/account.glade.h:16
 msgid "C_lear All"
 msgstr "_Keine auswählen"
 
-#: ../src/gnome/glade/account.glade.h:24
+#: ../src/gnome/glade/account.glade.h:17
 msgid "Choose Currency"
 msgstr "Währung wählen"
 
-#: ../src/gnome/glade/account.glade.h:25
+#: ../src/gnome/glade/account.glade.h:18
 msgid "Choose accounts to create"
 msgstr "Zu erstellende Konten wählen"
 
-#: ../src/gnome/glade/account.glade.h:26
+#: ../src/gnome/glade/account.glade.h:19
 msgid "Delete Account"
 msgstr "Konto löschen"
 
-#: ../src/gnome/glade/account.glade.h:27
+#: ../src/gnome/glade/account.glade.h:20
 msgid "Delete all _subaccounts"
 msgstr "Alle _Unterkonten löschen"
 
-#: ../src/gnome/glade/account.glade.h:28
+#: ../src/gnome/glade/account.glade.h:21
 msgid "Delete all _transactions"
 msgstr "Alle _Buchungen löschen"
 
-#: ../src/gnome/glade/account.glade.h:29
+#: ../src/gnome/glade/account.glade.h:22
 msgid "Examples:"
 msgstr "Beispiele:"
 
-#: ../src/gnome/glade/account.glade.h:30
+#: ../src/gnome/glade/account.glade.h:23
 msgid "Filter By..."
 msgstr "Filtern nach..."
 
-#: ../src/gnome/glade/account.glade.h:31
+#: ../src/gnome/glade/account.glade.h:24
 msgid "Finish Account Setup"
 msgstr "Konteneinrichten fertigstellen"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
 #. src/report/report-system/report.scm
 #. src/report/utility-reports/view-column.scm
+#. src/report/utility-reports/gnucash/report/view-column.scm
 #. src/report/standard-reports/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/equity-statement.scm
 #. src/report/standard-reports/register.scm
-#: ../src/gnome/glade/account.glade.h:32
-#: ../src/gnome-utils/glade/preferences.glade.h:63
-#: ../intl-scm/guile-strings.c:194 ../intl-scm/guile-strings.c:200
-#: ../intl-scm/guile-strings.c:206 ../intl-scm/guile-strings.c:212
-#: ../intl-scm/guile-strings.c:320 ../intl-scm/guile-strings.c:324
-#: ../intl-scm/guile-strings.c:328 ../intl-scm/guile-strings.c:332
-#: ../intl-scm/guile-strings.c:406 ../intl-scm/guile-strings.c:412
-#: ../intl-scm/guile-strings.c:418 ../intl-scm/guile-strings.c:424
-#: ../intl-scm/guile-strings.c:532 ../intl-scm/guile-strings.c:536
-#: ../intl-scm/guile-strings.c:540 ../intl-scm/guile-strings.c:544
-#: ../intl-scm/guile-strings.c:618 ../intl-scm/guile-strings.c:624
-#: ../intl-scm/guile-strings.c:630 ../intl-scm/guile-strings.c:820
-#: ../intl-scm/guile-strings.c:928 ../intl-scm/guile-strings.c:934
-#: ../intl-scm/guile-strings.c:1420 ../intl-scm/guile-strings.c:1422
-#: ../intl-scm/guile-strings.c:2110 ../intl-scm/guile-strings.c:2112
-#: ../intl-scm/guile-strings.c:2576
+#: ../src/gnome/glade/account.glade.h:25
+#: ../src/gnome-utils/glade/preferences.glade.h:70
+#: ../intl-scm/guile-strings.c:242 ../intl-scm/guile-strings.c:248
+#: ../intl-scm/guile-strings.c:254 ../intl-scm/guile-strings.c:260
+#: ../intl-scm/guile-strings.c:368 ../intl-scm/guile-strings.c:372
+#: ../intl-scm/guile-strings.c:376 ../intl-scm/guile-strings.c:380
+#: ../intl-scm/guile-strings.c:454 ../intl-scm/guile-strings.c:460
+#: ../intl-scm/guile-strings.c:466 ../intl-scm/guile-strings.c:472
+#: ../intl-scm/guile-strings.c:580 ../intl-scm/guile-strings.c:584
+#: ../intl-scm/guile-strings.c:588 ../intl-scm/guile-strings.c:592
+#: ../intl-scm/guile-strings.c:666 ../intl-scm/guile-strings.c:672
+#: ../intl-scm/guile-strings.c:678 ../intl-scm/guile-strings.c:684
+#: ../intl-scm/guile-strings.c:792 ../intl-scm/guile-strings.c:796
+#: ../intl-scm/guile-strings.c:800 ../intl-scm/guile-strings.c:804
+#: ../intl-scm/guile-strings.c:878 ../intl-scm/guile-strings.c:884
+#: ../intl-scm/guile-strings.c:890 ../intl-scm/guile-strings.c:896
+#: ../intl-scm/guile-strings.c:1004 ../intl-scm/guile-strings.c:1008
+#: ../intl-scm/guile-strings.c:1012 ../intl-scm/guile-strings.c:1016
+#: ../intl-scm/guile-strings.c:1090 ../intl-scm/guile-strings.c:1096
+#: ../intl-scm/guile-strings.c:1102 ../intl-scm/guile-strings.c:1130
+#: ../intl-scm/guile-strings.c:1136 ../intl-scm/guile-strings.c:1142
+#: ../intl-scm/guile-strings.c:1332 ../intl-scm/guile-strings.c:1450
+#: ../intl-scm/guile-strings.c:1456 ../intl-scm/guile-strings.c:1472
+#: ../intl-scm/guile-strings.c:1478 ../intl-scm/guile-strings.c:2130
+#: ../intl-scm/guile-strings.c:2132 ../intl-scm/guile-strings.c:2754
+#: ../intl-scm/guile-strings.c:2756 ../intl-scm/guile-strings.c:3444
+#: ../intl-scm/guile-strings.c:3446 ../intl-scm/guile-strings.c:3910
+#: ../intl-scm/guile-strings.c:4594 ../intl-scm/guile-strings.c:4596
+#: ../intl-scm/guile-strings.c:5060
 msgid "General"
 msgstr "Allgemein"
 
-#: ../src/gnome/glade/account.glade.h:33
+#: ../src/gnome/glade/account.glade.h:26
 msgid "H_idden"
 msgstr "_Versteckt"
 
-#: ../src/gnome/glade/account.glade.h:34
+#: ../src/gnome/glade/account.glade.h:27
 msgid "Hide accounts which have a zero total value."
 msgstr "Konten nicht anzeigen, die Kontostand Null haben."
 
-#: ../src/gnome/glade/account.glade.h:35
+#: ../src/gnome/glade/account.glade.h:28
 msgid ""
 "If you would like an account to have an opening balance, click on the "
 "account and enter the starting balance in the box on the right. All accounts "
@@ -4274,7 +4394,7 @@
 "rechten Kasten ein. Jede Kontoart außer Eigenkapital und Platzhalter kann "
 "einen Anfangsbestand haben."
 
-#: ../src/gnome/glade/account.glade.h:36
+#: ../src/gnome/glade/account.glade.h:29
 msgid ""
 "If you would like an account to have an opening balance, click on the row "
 "containing the account, click again in the opening balances column, and then "
@@ -4292,32 +4412,32 @@
 "Wenn Sie ein Konto als Platzhalter verwenden wollen, klicken Sie auf das "
 "entsprechende Häkchen in der Kontozeile.\n"
 
-#: ../src/gnome/glade/account.glade.h:40
+#: ../src/gnome/glade/account.glade.h:33
 msgid "Interval:"
 msgstr "Intervall:"
 
-#: ../src/gnome/glade/account.glade.h:41
+#: ../src/gnome/glade/account.glade.h:34
 msgid "M_ove to:"
 msgstr "_Verschieben nach:"
 
-#: ../src/gnome/glade/account.glade.h:42
-#: ../src/gnome-utils/dialog-account.c:1400
+#: ../src/gnome/glade/account.glade.h:35
+#: ../src/gnome-utils/dialog-account.c:1351
 msgid "New Account"
 msgstr "_Neues Konto"
 
-#: ../src/gnome/glade/account.glade.h:43
+#: ../src/gnome/glade/account.glade.h:36
 msgid "New Account (not implemented)"
 msgstr "Neues Konto (unfertig)"
 
-#: ../src/gnome/glade/account.glade.h:44
+#: ../src/gnome/glade/account.glade.h:37
 msgid "New Account Hierarchy Setup"
 msgstr "Neuen Kontenrahmen erstellen"
 
-#: ../src/gnome/glade/account.glade.h:45
+#: ../src/gnome/glade/account.glade.h:38
 msgid "No_tes:"
 msgstr "Be_merkung:"
 
-#: ../src/gnome/glade/account.glade.h:46
+#: ../src/gnome/glade/account.glade.h:39
 msgid ""
 "One or more sub-accounts contain read-only transactions which may not be "
 "deleted."
@@ -4325,7 +4445,7 @@
 "Ein Unterkonto (oder mehrere) dieses Kontos enthalten schreibgeschützte "
 "Buchungen. Sie können diese nicht löschen. "
 
-#: ../src/gnome/glade/account.glade.h:47
+#: ../src/gnome/glade/account.glade.h:40
 msgid ""
 "One or more sub-accounts contain transactions. What would you like to do "
 "with these transactions?"
@@ -4334,26 +4454,29 @@
 "Sie mit diesen Buchungen machen?"
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../src/gnome/glade/account.glade.h:49
-#: ../src/gnome/glade/sched-xact.glade.h:134 ../intl-scm/guile-strings.c:1706
-#: ../intl-scm/guile-strings.c:2882
+#: ../src/gnome/glade/account.glade.h:42
+#: ../src/gnome/glade/sched-xact.glade.h:160 ../intl-scm/guile-strings.c:2416
+#: ../intl-scm/guile-strings.c:3040 ../intl-scm/guile-strings.c:4220
+#: ../intl-scm/guile-strings.c:5370
 msgid "Other"
 msgstr "Weitere"
 
-#: ../src/gnome/glade/account.glade.h:50
+#: ../src/gnome/glade/account.glade.h:43
 msgid "Placeholde_r"
 msgstr "_Platzhalter"
 
-#: ../src/gnome/glade/account.glade.h:51
+#: ../src/gnome/glade/account.glade.h:44
 msgid "Please choose the currency to use for new accounts."
 msgstr "Wählen Sie eine Währung für neue Konten."
 
-#: ../src/gnome/glade/account.glade.h:52
+#: ../src/gnome/glade/account.glade.h:45
 msgid "Prefix:"
 msgstr "Prefix:"
 
-#: ../src/gnome/glade/account.glade.h:53
+#: ../src/gnome/glade/account.glade.h:46
 msgid ""
 "Press `Apply' to create your new accounts.\n"
 "\n"
@@ -4368,17 +4491,17 @@
 "Drücken Sie »Abbrechen«, um den Assistenten zu schließen, ohne neue Konten "
 "zu erstellen."
 
-#: ../src/gnome/glade/account.glade.h:58
+#: ../src/gnome/glade/account.glade.h:51
 msgid "Renumber sub-accounts"
 msgstr "Unterkonten neu nummerieren"
 
-#: ../src/gnome/glade/account.glade.h:59
-#: ../src/import-export/generic-import.glade.h:51
-#: ../src/import-export/qif-import/qif.glade.h:73
+#: ../src/gnome/glade/account.glade.h:52
+#: ../src/import-export/generic-import.glade.h:44
+#: ../src/import-export/qif-import/qif.glade.h:63
 msgid "Select Account"
 msgstr "Konto auswählen"
 
-#: ../src/gnome/glade/account.glade.h:60
+#: ../src/gnome/glade/account.glade.h:53
 msgid ""
 "Select categories that correspond to the ways that you will use GnuCash.  "
 "Each category you select will cause several accounts to be created.  Select "
@@ -4389,36 +4512,36 @@
 "gewählte Kategorie wird einige Konten erzeugen. Sie können jederzeit auch "
 "später Konten anlegen. "
 
-#: ../src/gnome/glade/account.glade.h:61
-#: ../src/import-export/qif-import/qif.glade.h:75
+#: ../src/gnome/glade/account.glade.h:54
+#: ../src/import-export/qif-import/qif.glade.h:65
 msgid "Select or add a GnuCash account"
 msgstr "Auswählen oder Hinzufügen eines GnuCash Kontos"
 
-#: ../src/gnome/glade/account.glade.h:62
+#: ../src/gnome/glade/account.glade.h:55
 msgid "Setup new accounts"
 msgstr "Neue Konten einrichten"
 
-#: ../src/gnome/glade/account.glade.h:63
+#: ../src/gnome/glade/account.glade.h:56
 msgid "Show _hidden accounts"
 msgstr "_Versteckte Konten anzeigen"
 
-#: ../src/gnome/glade/account.glade.h:64
+#: ../src/gnome/glade/account.glade.h:57
 msgid "Show _zero total accounts"
 msgstr "Konten mit Saldo _Null anzeigen"
 
-#: ../src/gnome/glade/account.glade.h:65
+#: ../src/gnome/glade/account.glade.h:58
 msgid "Smallest _fraction:"
 msgstr "Kleinste _Stückelung:"
 
-#: ../src/gnome/glade/account.glade.h:66
+#: ../src/gnome/glade/account.glade.h:59
 msgid "Smallest fraction of this commodity that can be referenced."
 msgstr "Kleinste Stückelung, in der diese Währung/Aktie gehandelt werden kann."
 
-#: ../src/gnome/glade/account.glade.h:67
+#: ../src/gnome/glade/account.glade.h:60
 msgid "Ta_x related"
 msgstr "Steuer_relevant"
 
-#: ../src/gnome/glade/account.glade.h:68
+#: ../src/gnome/glade/account.glade.h:61
 msgid ""
 "This account (and any sub-accounts) will be hidden in the account tree and "
 "will not appear in the popup account list in the register.  To reset this "
@@ -4437,25 +4560,25 @@
 "versteckten Konten wieder angezeigt und Sie können diese bearbeiten, um "
 "diese Option wieder zu deaktivieren."
 
-#: ../src/gnome/glade/account.glade.h:69
+#: ../src/gnome/glade/account.glade.h:62
 msgid "This account contains read-only transactions which may not be deleted."
 msgstr ""
 "Dieses Konto enthält schreibgeschützte Buchungen.  Sie können diese nicht "
 "löschen."
 
-#: ../src/gnome/glade/account.glade.h:70
+#: ../src/gnome/glade/account.glade.h:63
 msgid ""
 "This account contains sub-accounts.  What would you like to do with these "
 "sub-accounts?"
 msgstr "Dieses Konto enthält Unterkonten. Was möchten Sie mit diesen machen?"
 
-#: ../src/gnome/glade/account.glade.h:71
+#: ../src/gnome/glade/account.glade.h:64
 msgid ""
 "This account contains transactions. What would you like to do with these "
 "transactions?"
 msgstr "Dieses Konto enthält Buchungen. Was möchten Sie mit diesen machen?"
 
-#: ../src/gnome/glade/account.glade.h:72
+#: ../src/gnome/glade/account.glade.h:65
 msgid ""
 "This account is present solely as a placeholder in the hierarchy.  "
 "Transactions may not be posted to this account, only to sub-accounts of this "
@@ -4464,7 +4587,7 @@
 "Dieses Konto dient als Platzhalter in der Kontenhierarchie. Buchungen können "
 "nicht auf dieses Konto gebucht werden, sondern nur auf Unterkonten davon."
 
-#: ../src/gnome/glade/account.glade.h:73
+#: ../src/gnome/glade/account.glade.h:66
 msgid ""
 "This druid will help you create a set of GnuCash accounts for your assets "
 "(such as investments, checking or savings accounts), liabilities (such as "
@@ -4478,9 +4601,17 @@
 "\n"
 "Drücken Sie »Abbrechen«, wenn Sie keine neuen Konten erstellen möchten."
 
-#: ../src/gnome/glade/account.glade.h:76
-msgid "Use Commodity Value"
-msgstr "Währungseinstellung benutzen"
+#: ../src/gnome/glade/account.glade.h:69
+msgid ""
+"Use Commodity Value\n"
+"1\n"
+"1/10\n"
+"1/100\n"
+"1/1000\n"
+"1/10000\n"
+"1/100000\n"
+"1/1000000"
+msgstr ""
 
 #: ../src/gnome/glade/account.glade.h:77
 msgid "_Account code:"
@@ -4492,7 +4623,7 @@
 
 #: ../src/gnome/glade/account.glade.h:79 ../src/gnome/glade/price.glade.h:21
 #: ../src/gnome/glade/print.glade.h:22 ../src/gnome/glade/register.glade.h:81
-#: ../src/gnome/glade/stocks.glade.h:20
+#: ../src/gnome/glade/stocks.glade.h:17
 #: ../src/gnome-utils/glade/exchange-dialog.glade.h:5
 msgid "_Date:"
 msgstr "_Datum:"
@@ -4510,49 +4641,53 @@
 msgstr "_Verschieben nach:"
 
 #: ../src/gnome/glade/account.glade.h:83
-#: ../src/gnome-utils/dialog-commodity.c:260
+msgid "_Renumber"
+msgstr "Neu _nummerieren"
+
+#: ../src/gnome/glade/account.glade.h:84
+#: ../src/gnome-utils/dialog-commodity.c:270
 msgid "_Security/currency:"
 msgstr "_Aktie/Währung:"
 
-#: ../src/gnome/glade/account.glade.h:84
+#: ../src/gnome/glade/account.glade.h:85
 #: ../src/gnome-utils/glade/dialog-reset-warnings.glade.h:6
 msgid "_Select All"
 msgstr "_Alle auswählen"
 
-#: ../src/gnome/glade/account.glade.h:85
+#: ../src/gnome/glade/account.glade.h:86
 msgid "_Select transfer account"
 msgstr "_Herkunftskonto auswählen"
 
-#: ../src/gnome/glade/account.glade.h:86
+#: ../src/gnome/glade/account.glade.h:87
 msgid "_Use equity 'Opening Balances' account"
 msgstr "Benutze _Ausgleichskonto für Anfangsbestand"
 
-#: ../src/gnome/glade/acctperiod.glade.h:2
+#: ../src/gnome/glade/acctperiod.glade.h:1
 msgid "Book Closing Dates"
 msgstr "Datum Buchabschluß"
 
-#: ../src/gnome/glade/acctperiod.glade.h:3
+#: ../src/gnome/glade/acctperiod.glade.h:2
 msgid "Close Book"
 msgstr "Buch abschließen"
 
-#: ../src/gnome/glade/acctperiod.glade.h:4
+#: ../src/gnome/glade/acctperiod.glade.h:3
 msgid "Enter a title for this book."
 msgstr "Geben Sie einen beschreibenden Namen für dieses Buch ein."
 
-#: ../src/gnome/glade/acctperiod.glade.h:5
+#: ../src/gnome/glade/acctperiod.glade.h:4
 msgid "Enter notes that describe this book."
 msgstr "Geben Sie Bemerkungen ein, die dieses Buch beschreiben."
 
-#: ../src/gnome/glade/acctperiod.glade.h:6
+#: ../src/gnome/glade/acctperiod.glade.h:5
 msgid "Finish Closing Books"
 msgstr "Buchabschluß abgeschlossen"
 
-#: ../src/gnome/glade/acctperiod.glade.h:7
+#: ../src/gnome/glade/acctperiod.glade.h:6
 #: ../src/gnome/glade/budget.glade.h:13
 msgid "Notes:"
 msgstr "Bemerkung:"
 
-#: ../src/gnome/glade/acctperiod.glade.h:8
+#: ../src/gnome/glade/acctperiod.glade.h:7
 msgid ""
 "Select an accounting period and the closing date for the period.  Books will "
 "be closed on midnight of the selected date."
@@ -4560,11 +4695,11 @@
 "Wählen Sie einen Buchungszeitraum und ein Abschlußdatum für diesen Zeitraum. "
 "Der Buchabschluß wird für Mitternacht jenes Datums gespeichert."
 
-#: ../src/gnome/glade/acctperiod.glade.h:9
+#: ../src/gnome/glade/acctperiod.glade.h:8
 msgid "Setup Accounting Periods"
 msgstr "Buchführungsperioden einrichten"
 
-#: ../src/gnome/glade/acctperiod.glade.h:10
+#: ../src/gnome/glade/acctperiod.glade.h:9
 msgid ""
 "This druid will help you setup and use accouting periods. \n"
 " \n"
@@ -4578,11 +4713,11 @@
 "wahrscheinlich nur krass falsch. Es könnte sogar Ihre Daten absolut kaputt "
 "machen. Bitte sorgen Sie für ein konkret rechtzeitiges Backup."
 
-#: ../src/gnome/glade/acctperiod.glade.h:13
+#: ../src/gnome/glade/acctperiod.glade.h:12
 msgid "Title:"
 msgstr "Titel:"
 
-#: ../src/gnome/glade/acctperiod.glade.h:14
+#: ../src/gnome/glade/acctperiod.glade.h:13
 msgid "xxx"
 msgstr "xxx"
 
@@ -4599,8 +4734,8 @@
 msgstr "Budgetname:"
 
 #: ../src/gnome/glade/budget.glade.h:4
-#: ../src/gnome/gnc-plugin-page-budget.c:143
-#: ../src/gnome/gnc-plugin-page-budget.c:829
+#: ../src/gnome/gnc-plugin-page-budget.c:139
+#: ../src/gnome/gnc-plugin-page-budget.c:825
 msgid "Budget Options"
 msgstr "Budget Optionen"
 
@@ -4625,7 +4760,7 @@
 msgstr "Budget abschätzen"
 
 #: ../src/gnome/glade/budget.glade.h:10
-#: ../src/gnome/glade/sched-xact.glade.h:79
+#: ../src/gnome/glade/sched-xact.glade.h:85
 msgid "Every "
 msgstr "Alle "
 
@@ -4663,9 +4798,9 @@
 msgstr "Gewähltes Budget öffnen"
 
 #: ../src/gnome/glade/budget.glade.h:17 ../src/gnome/glade/print.glade.h:10
-#: ../src/gnome/glade/sched-xact.glade.h:133
-#: ../src/gnome/gnc-plugin-page-budget.c:170
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:976
+#: ../src/gnome/glade/sched-xact.glade.h:159
+#: ../src/gnome/gnc-plugin-page-budget.c:166
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:986
 msgid "Options"
 msgstr "Optionen"
 
@@ -4674,7 +4809,7 @@
 msgstr "Signifikante Dezimalstellen:"
 
 #: ../src/gnome/glade/budget.glade.h:19
-#: ../src/gnome/glade/sched-xact.glade.h:169
+#: ../src/gnome/glade/sched-xact.glade.h:194
 msgid "Start Date:"
 msgstr "Anfangsdatum:"
 
@@ -4772,6 +4907,8 @@
 
 #: ../src/gnome/glade/commodities.glade.h:3
 #: ../src/gnome/gnc-plugin-page-account-tree.c:219
+#: ../src/gnome/gnc-plugin-page-sx-list.c:118
+#: ../src/import-export/import-main-matcher.c:427
 msgid "Edit"
 msgstr "Bearbeiten"
 
@@ -4812,233 +4949,241 @@
 msgstr "Jährlich"
 
 #: ../src/gnome/glade/fincalc.glade.h:7
+msgid ""
+"Annual\n"
+"Semi-annual\n"
+"Tri-annual\n"
+"Quarterly\n"
+"Bi-monthly\n"
+"Monthly\n"
+"Semi-monthly\n"
+"Bi-weekly\n"
+"Weekly\n"
+"Daily (360)\n"
+"Daily (365)"
+msgstr ""
+
+#: ../src/gnome/glade/fincalc.glade.h:18
 msgid "Beginning"
 msgstr "Anfangend an"
 
-#: ../src/gnome/glade/fincalc.glade.h:8
+#: ../src/gnome/glade/fincalc.glade.h:19
 msgid "Bi-monthly"
 msgstr "Zweimonatlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:9
+#: ../src/gnome/glade/fincalc.glade.h:20
 msgid "Bi-weekly"
 msgstr "Zweiwöchentlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:10
+#: ../src/gnome/glade/fincalc.glade.h:21
 msgid "Calculate"
 msgstr "Berechnen"
 
-#: ../src/gnome/glade/fincalc.glade.h:11
+#: ../src/gnome/glade/fincalc.glade.h:22
 msgid "Clear the entry"
 msgstr "Löschen des Eintrages"
 
-#: ../src/gnome/glade/fincalc.glade.h:12
+#: ../src/gnome/glade/fincalc.glade.h:23
 msgid "Co_mpounding:"
 msgstr "Ver_zinsung:"
 
-#: ../src/gnome/glade/fincalc.glade.h:13
+#: ../src/gnome/glade/fincalc.glade.h:24
 msgid "Continuous"
 msgstr "Kontinuierlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:14
+#: ../src/gnome/glade/fincalc.glade.h:25
 msgid "Daily (360)"
 msgstr "Täglich (360)"
 
-#: ../src/gnome/glade/fincalc.glade.h:15
+#: ../src/gnome/glade/fincalc.glade.h:26
 msgid "Daily (365)"
 msgstr "Täglich (365)"
 
-#: ../src/gnome/glade/fincalc.glade.h:16
+#: ../src/gnome/glade/fincalc.glade.h:27
 msgid "Discrete"
 msgstr "Schrittweise"
 
-#: ../src/gnome/glade/fincalc.glade.h:17
+#: ../src/gnome/glade/fincalc.glade.h:28
 msgid "End"
 msgstr "Ende"
 
-#: ../src/gnome/glade/fincalc.glade.h:18
+#: ../src/gnome/glade/fincalc.glade.h:29
 msgid "Financial Calculator"
 msgstr "Finanzrechner"
 
-#: ../src/gnome/glade/fincalc.glade.h:19
-#: ../src/gnome/glade/sched-xact.glade.h:88
+#: ../src/gnome/glade/fincalc.glade.h:30
+#: ../src/gnome/glade/sched-xact.glade.h:95
 msgid "Frequency:"
 msgstr "Häufigkeit:"
 
-#: ../src/gnome/glade/fincalc.glade.h:20
+#: ../src/gnome/glade/fincalc.glade.h:31
 msgid "Future value"
 msgstr "Zukünftiger Wert"
 
-#: ../src/gnome/glade/fincalc.glade.h:21
+#: ../src/gnome/glade/fincalc.glade.h:32
 msgid "Interest rate"
 msgstr "Zinssatz"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/fincalc.glade.h:22
-#: ../src/gnome/glade/sched-xact.glade.h:114 ../intl-scm/guile-strings.c:2388
-#: ../intl-scm/guile-strings.c:2390
+#: ../src/gnome/glade/fincalc.glade.h:33
+#: ../src/gnome/glade/sched-xact.glade.h:132 ../intl-scm/guile-strings.c:3722
+#: ../intl-scm/guile-strings.c:3724 ../intl-scm/guile-strings.c:4872
+#: ../intl-scm/guile-strings.c:4874
 msgid "Monthly"
 msgstr "Monatlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:23
+#: ../src/gnome/glade/fincalc.glade.h:34
 msgid "Payment Total:"
 msgstr "Zahlungsbetrag:"
 
-#: ../src/gnome/glade/fincalc.glade.h:24
+#: ../src/gnome/glade/fincalc.glade.h:35
 msgid "Payment periods"
 msgstr "Zahlungsintervalle"
 
-#: ../src/gnome/glade/fincalc.glade.h:25
+#: ../src/gnome/glade/fincalc.glade.h:36
 msgid "Periodic payment"
 msgstr "Periodische Zahlung"
 
-#: ../src/gnome/glade/fincalc.glade.h:26
+#: ../src/gnome/glade/fincalc.glade.h:37
 msgid "Present value"
 msgstr "Aktueller Wert"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/fincalc.glade.h:27
-#: ../src/gnome/glade/sched-xact.glade.h:146 ../intl-scm/guile-strings.c:2392
-#: ../intl-scm/guile-strings.c:2394
+#: ../src/gnome/glade/fincalc.glade.h:38
+#: ../src/gnome/glade/sched-xact.glade.h:172 ../intl-scm/guile-strings.c:3726
+#: ../intl-scm/guile-strings.c:3728 ../intl-scm/guile-strings.c:4876
+#: ../intl-scm/guile-strings.c:4878
 msgid "Quarterly"
 msgstr "Vierteljährlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:28
+#: ../src/gnome/glade/fincalc.glade.h:39
 msgid "Recalculate the (single) blank entry in the above fields."
 msgstr "Den einen leeren Eintrag in den Feldern ausrechnen."
 
-#: ../src/gnome/glade/fincalc.glade.h:29
+#: ../src/gnome/glade/fincalc.glade.h:40
 #: ../src/gnome/glade/register.glade.h:41
-#: ../src/gnome/gnc-plugin-page-register.c:332
+#: ../src/gnome/gnc-plugin-page-register.c:329
 msgid "Schedule"
 msgstr "Terminiert"
 
-#: ../src/gnome/glade/fincalc.glade.h:30
+#: ../src/gnome/glade/fincalc.glade.h:41
 msgid "Semi-annual"
 msgstr "Halbjährlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:31
+#: ../src/gnome/glade/fincalc.glade.h:42
 msgid "Semi-monthly"
 msgstr "Halbmonatlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:32
+#: ../src/gnome/glade/fincalc.glade.h:43
 msgid "Tri-annual"
 msgstr "Dreimal pro Jahr"
 
-#: ../src/gnome/glade/fincalc.glade.h:33
-#: ../src/gnome/glade/sched-xact.glade.h:186
+#: ../src/gnome/glade/fincalc.glade.h:44
+#: ../src/gnome/glade/sched-xact.glade.h:211
 msgid "Type:"
 msgstr "Typ:"
 
-#: ../src/gnome/glade/fincalc.glade.h:34
-#: ../src/gnome/glade/sched-xact.glade.h:195
+#: ../src/gnome/glade/fincalc.glade.h:45
+#: ../src/gnome/glade/sched-xact.glade.h:220
 msgid "Weekly"
 msgstr "Wöchentlich"
 
-#: ../src/gnome/glade/fincalc.glade.h:35
+#: ../src/gnome/glade/fincalc.glade.h:46
 msgid "When paid:"
 msgstr "Zahlungsdatum:"
 
-#: ../src/gnome/glade/fincalc.glade.h:36
+#: ../src/gnome/glade/fincalc.glade.h:47
 msgid "_Effective Date:"
 msgstr "_Tatsächliches Datum:"
 
-#: ../src/gnome/glade/fincalc.glade.h:37
+#: ../src/gnome/glade/fincalc.glade.h:48
 msgid "_Initial Payment:"
 msgstr "_Anfängliche Zahlung:"
 
-#: ../src/gnome/glade/fincalc.glade.h:38
+#: ../src/gnome/glade/fincalc.glade.h:49
 msgid "_Payments:"
 msgstr "Z_ahlungen:"
 
-#: ../src/gnome/glade/fincalc.glade.h:39
+#: ../src/gnome/glade/fincalc.glade.h:50
 msgid "total"
 msgstr "Betrag"
 
-#: ../src/gnome/glade/lots.glade.h:2
+#: ../src/gnome/glade/lots.glade.h:1
 msgid "<b>_Lots in This Account</b>"
 msgstr "<b>_Posten in diesem Konto</b>"
 
-#: ../src/gnome/glade/lots.glade.h:3
+#: ../src/gnome/glade/lots.glade.h:2
 msgid "<b>_Mini-Viewer</b>"
 msgstr "<b>_Mini-Anzeige</b>"
 
-#: ../src/gnome/glade/lots.glade.h:4
+#: ../src/gnome/glade/lots.glade.h:3
 msgid "<b>_Notes</b>"
 msgstr "<b>Be_schreibung</b>"
 
-#: ../src/gnome/glade/lots.glade.h:5
+#: ../src/gnome/glade/lots.glade.h:4
 msgid "<b>_Title</b>"
 msgstr "<b>_Name</b>"
 
-#: ../src/gnome/glade/lots.glade.h:6
-msgid "A list of all of the lots in this account."
-msgstr "Eine Liste der Posten in diesem Konto."
-
-#: ../src/gnome/glade/lots.glade.h:7
+#: ../src/gnome/glade/lots.glade.h:5
 msgid "A summary of all of the transactions in the selected lot"
 msgstr "Eine Zusammenfassung aller Buchungen in dem gewählten Posten"
 
 #. src/report/report-system/html-utilities.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/owner-report.scm
-#: ../src/gnome/glade/lots.glade.h:9
-#: ../src/gnome-utils/gnc-tree-view-account.c:558
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/gnome/glade/lots.glade.h:7 ../src/gnome/lot-viewer.c:625
+#: ../src/gnome-utils/gnc-tree-view-account.c:554
 #: ../src/register/ledger-core/split-register-model.c:163
 #: ../src/register/ledger-core/split-register-model.c:303
-#: ../intl-scm/guile-strings.c:890 ../intl-scm/guile-strings.c:1950
-#: ../intl-scm/guile-strings.c:2264 ../intl-scm/guile-strings.c:2568
-#: ../intl-scm/guile-strings.c:3422
+#: ../intl-scm/guile-strings.c:1404 ../intl-scm/guile-strings.c:3284
+#: ../intl-scm/guile-strings.c:3598 ../intl-scm/guile-strings.c:3902
+#: ../intl-scm/guile-strings.c:4434 ../intl-scm/guile-strings.c:4748
+#: ../intl-scm/guile-strings.c:5052 ../intl-scm/guile-strings.c:6148
+#: ../intl-scm/guile-strings.c:6672
 msgid "Balance"
 msgstr "Saldo"
 
-#: ../src/gnome/glade/lots.glade.h:12
+#: ../src/gnome/glade/lots.glade.h:9
 msgid "Delete the highlighted lot"
 msgstr "Ausgewählter Posten löschen"
 
-#: ../src/gnome/glade/lots.glade.h:14
+#: ../src/gnome/glade/lots.glade.h:11
 msgid "Enter a name for the highlighted lot."
 msgstr "Bitte geben Sie einen Namen für den Posten ein"
 
-#: ../src/gnome/glade/lots.glade.h:15
+#: ../src/gnome/glade/lots.glade.h:12
 msgid "Enter any notes you want to make about this lot."
 msgstr ""
 "Geben Sie hier alle Notizen ein, die Sie zu diesem Posten speichern wollen."
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../src/gnome/glade/lots.glade.h:16 ../intl-scm/guile-strings.c:2726
+#: ../src/gnome/glade/lots.glade.h:13 ../intl-scm/guile-strings.c:4064
+#: ../intl-scm/guile-strings.c:5214
 msgid "Gain/Loss"
 msgstr "Wertzuwachs/Verlust"
 
-#: ../src/gnome/glade/lots.glade.h:17
-msgid "Gains"
-msgstr "Wertzuwachs"
-
-#: ../src/gnome/glade/lots.glade.h:18
+#: ../src/gnome/glade/lots.glade.h:14
 msgid "Lot Viewer"
 msgstr "Posten anzeigen"
 
-#: ../src/gnome/glade/lots.glade.h:20
-msgid "Open a register showing the transactions in this lot"
-msgstr "Ein Kontofenster öffnen, das alle Buchungen in diesem Posten anzeigt"
-
-#: ../src/gnome/glade/lots.glade.h:22
+#: ../src/gnome/glade/lots.glade.h:16
 msgid "Scrub _Account"
 msgstr "K_onto überprüfen"
 
-#: ../src/gnome/glade/lots.glade.h:23
+#: ../src/gnome/glade/lots.glade.h:17
 msgid "Scrub the highlighted lot"
 msgstr "Den gewählten Posten überprüfen und reparieren"
 
-#. src/report/standard-reports/general-journal.scm
-#. src/report/standard-reports/register.scm
-#: ../src/gnome/glade/lots.glade.h:24 ../intl-scm/guile-strings.c:1272
-#: ../intl-scm/guile-strings.c:2578
-msgid "Title"
-msgstr "Titel"
-
-#: ../src/gnome/glade/lots.glade.h:26
+#: ../src/gnome/glade/lots.glade.h:19
 msgid "_Scrub"
 msgstr "Über_prüfen"
 
@@ -5224,7 +5369,7 @@
 "Unbekannt"
 
 #: ../src/gnome/glade/price.glade.h:7
-#: ../src/gnome-utils/dialog-commodity.c:269
+#: ../src/gnome-utils/dialog-commodity.c:279
 msgid "Cu_rrency:"
 msgstr "_Währung:"
 
@@ -5297,7 +5442,7 @@
 msgstr "_Preis:"
 
 #: ../src/gnome/glade/price.glade.h:24
-#: ../src/gnome-utils/dialog-commodity.c:264
+#: ../src/gnome-utils/dialog-commodity.c:274
 msgid "_Security:"
 msgstr "_Aktie:"
 
@@ -5369,7 +5514,7 @@
 msgid "_Date format:"
 msgstr "_Datumsformat:"
 
-#: ../src/gnome/glade/print.glade.h:23 ../src/gnome/glade/stocks.glade.h:21
+#: ../src/gnome/glade/print.glade.h:23 ../src/gnome/glade/stocks.glade.h:18
 msgid "_Memo:"
 msgstr "Buchungs_text:"
 
@@ -5405,7 +5550,7 @@
 msgid "<b>Reconcile Information</b>"
 msgstr "<b>Informationen zum Kontenabgleich</b>"
 
-#: ../src/gnome/glade/reconcile.glade.h:2 ../src/gnome/window-reconcile.c:721
+#: ../src/gnome/glade/reconcile.glade.h:2 ../src/gnome/window-reconcile.c:720
 msgid "Enter _Interest Payment..."
 msgstr "Zahlung Haben_zins eingeben..."
 
@@ -5414,7 +5559,7 @@
 msgstr "_Unterkonten mit einbeziehen"
 
 #. starting balance title/value
-#: ../src/gnome/glade/reconcile.glade.h:4 ../src/gnome/window-reconcile.c:1663
+#: ../src/gnome/glade/reconcile.glade.h:4 ../src/gnome/window-reconcile.c:1664
 msgid "Starting Balance:"
 msgstr "Anfangssaldo:"
 
@@ -5443,7 +5588,7 @@
 msgstr "Bes_tätigt"
 
 #: ../src/gnome/glade/register.glade.h:7
-#: ../src/gnome/gnc-plugin-page-register.c:210
+#: ../src/gnome/gnc-plugin-page-register.c:207
 msgid "Cancel the current transaction"
 msgstr "Aktuelle Buchung abbrechen"
 
@@ -5460,7 +5605,7 @@
 msgstr "Ausgewählte Buchung kopieren"
 
 #: ../src/gnome/glade/register.glade.h:11
-#: ../src/gnome/gnc-plugin-page-register.c:250
+#: ../src/gnome/gnc-plugin-page-register.c:247
 msgid ""
 "Create a Scheduled Transaction with the current transaction as a template"
 msgstr "Terminierte Buchung erstellen mit aktuellem Buchungssatz als Vorlage"
@@ -5474,7 +5619,7 @@
 msgstr "Ausgewählten Buchungssatz ausschneiden"
 
 #: ../src/gnome/glade/register.glade.h:17
-#: ../src/gnome/gnc-plugin-page-register.c:201
+#: ../src/gnome/gnc-plugin-page-register.c:198
 msgid "Delete the current transaction"
 msgstr "Aktuellen Buchungssatz löschen"
 
@@ -5483,7 +5628,7 @@
 msgstr "Buchung duplizieren..."
 
 #: ../src/gnome/glade/register.glade.h:21
-#: ../src/import-export/generic-import.glade.h:20
+#: ../src/import-export/generic-import.glade.h:17
 msgid "Duplicate Transaction"
 msgstr "Doppelte Buchung"
 
@@ -5512,7 +5657,7 @@
 msgstr "Gegen"
 
 #: ../src/gnome/glade/register.glade.h:29
-#: ../src/gnome/gnc-plugin-page-register.c:247
+#: ../src/gnome/gnc-plugin-page-register.c:244
 msgid "Jump to the corresponding transaction in the other account"
 msgstr "Zur passenden Gegenbuchung im Gegenkonto gehen"
 
@@ -5521,12 +5666,12 @@
 msgstr "Beibehalten der normalen Kontoreihenfolge"
 
 #: ../src/gnome/glade/register.glade.h:31
-#: ../src/gnome/gnc-plugin-page-register.c:198
+#: ../src/gnome/gnc-plugin-page-register.c:195
 msgid "Make a copy of the current transaction"
 msgstr "Eine Kopie des aktuellen Buchungssatze erstellen"
 
 #: ../src/gnome/glade/register.glade.h:32
-#: ../src/gnome/gnc-plugin-page-register.c:241
+#: ../src/gnome/gnc-plugin-page-register.c:238
 msgid "Move to the blank transaction at the bottom of the register"
 msgstr "Zur freien Buchungszeile am Ende dieses Kontobuchs gehen"
 
@@ -5539,7 +5684,7 @@
 msgstr "Buchung einfügen"
 
 #: ../src/gnome/glade/register.glade.h:35
-#: ../src/gnome/gnc-plugin-page-register.c:195
+#: ../src/gnome/gnc-plugin-page-register.c:192
 msgid "Paste the transaction from the clipboard"
 msgstr "Den Buchungssatz von der Zwischenablage einfügen"
 
@@ -5548,7 +5693,7 @@
 msgstr "Begründung für Buchung ungültig machen:"
 
 #: ../src/gnome/glade/register.glade.h:37
-#: ../src/gnome/gnc-plugin-page-register.c:207
+#: ../src/gnome/gnc-plugin-page-register.c:204
 msgid "Record the current transaction"
 msgstr "Änderungen des aktuellen Buchungssatzes übernehmen"
 
@@ -5557,7 +5702,7 @@
 msgstr "Buchungsteile entfernen"
 
 #: ../src/gnome/glade/register.glade.h:39
-#: ../src/gnome/gnc-plugin-page-register.c:275
+#: ../src/gnome/gnc-plugin-page-register.c:272
 #: ../src/gnome-utils/gnc-icons.c:22
 msgid "S_plit Transaction"
 msgstr "Mehrteilige Buchung"
@@ -5583,22 +5728,22 @@
 msgstr "_Alle anzeigen"
 
 #: ../src/gnome/glade/register.glade.h:46
-#: ../src/gnome/gnc-plugin-page-register.c:276
+#: ../src/gnome/gnc-plugin-page-register.c:273
 msgid "Show all splits in the current transaction"
 msgstr "Alle Buchungen im aktuellen Buchungssatz anzeigen"
 
 #: ../src/gnome/glade/register.glade.h:47
-#: ../src/gnome/gnc-plugin-page-register.c:291
+#: ../src/gnome/gnc-plugin-page-register.c:288
 msgid "Show expanded transactions with all splits"
 msgstr "Alle Buchungssätze vollständig mit allen Teilen anzeigen"
 
 #: ../src/gnome/glade/register.glade.h:48
-#: ../src/gnome/gnc-plugin-page-register.c:285
+#: ../src/gnome/gnc-plugin-page-register.c:282
 msgid "Show transactions on one or two lines"
 msgstr "Alle Buchungssätze einzeilig anzeigen"
 
 #: ../src/gnome/glade/register.glade.h:49
-#: ../src/gnome/gnc-plugin-page-register.c:288
+#: ../src/gnome/gnc-plugin-page-register.c:285
 msgid ""
 "Show transactions on one or two lines and expand the current transaction"
 msgstr ""
@@ -5606,8 +5751,8 @@
 "Buchungssatz vollständig anzeigen."
 
 #: ../src/gnome/glade/register.glade.h:50
-#: ../src/gnome/gnc-plugin-page-register.c:272
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:36
+#: ../src/gnome/gnc-plugin-page-register.c:269
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:38
 msgid "Show two lines of information for each transaction"
 msgstr ""
 "Alle Buchungssätze mit Bemerkung anzeigen, also zwei Zeilen pro Buchung "
@@ -5637,23 +5782,31 @@
 msgid "Sort by action field"
 msgstr "Sortiere nach Aktion"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/register.glade.h:58 ../intl-scm/guile-strings.c:2362
+#: ../src/gnome/glade/register.glade.h:58 ../intl-scm/guile-strings.c:3696
+#: ../intl-scm/guile-strings.c:4846
 msgid "Sort by amount"
 msgstr "Sortieren nach Summe"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/register.glade.h:59 ../intl-scm/guile-strings.c:2338
+#: ../src/gnome/glade/register.glade.h:59 ../intl-scm/guile-strings.c:3672
+#: ../intl-scm/guile-strings.c:4822
 msgid "Sort by date"
 msgstr "Nach Datum sortieren"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/register.glade.h:60 ../intl-scm/guile-strings.c:2366
+#: ../src/gnome/glade/register.glade.h:60 ../intl-scm/guile-strings.c:3700
+#: ../intl-scm/guile-strings.c:4850
 msgid "Sort by description"
 msgstr "Sortieren nach Beschreibung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/register.glade.h:61 ../intl-scm/guile-strings.c:2374
+#: ../src/gnome/glade/register.glade.h:61 ../intl-scm/guile-strings.c:3708
+#: ../intl-scm/guile-strings.c:4858
 msgid "Sort by memo"
 msgstr "Sortiere nach Buchungstext"
 
@@ -5709,18 +5862,18 @@
 
 #. Translators: This is a menu item in the View menu
 #: ../src/gnome/glade/register.glade.h:76
-#: ../src/gnome/gnc-plugin-page-register.c:287
+#: ../src/gnome/gnc-plugin-page-register.c:284
 msgid "_Auto-Split Ledger"
 msgstr "_Aktive vollständig"
 
 #. Translators: This is a menu item in the View menu
 #: ../src/gnome/glade/register.glade.h:77
-#: ../src/gnome/gnc-plugin-page-register.c:284
+#: ../src/gnome/gnc-plugin-page-register.c:281
 msgid "_Basic Ledger"
 msgstr "_Einzeilig"
 
 #: ../src/gnome/glade/register.glade.h:83
-#: ../src/gnome/gnc-plugin-page-register.c:271
+#: ../src/gnome/gnc-plugin-page-register.c:268
 msgid "_Double Line"
 msgstr "_Bemerkung anzeigen"
 
@@ -5733,7 +5886,7 @@
 msgstr "_Fixiert"
 
 #: ../src/gnome/glade/register.glade.h:88
-#: ../src/gnome/gnc-plugin-page-register.c:246
+#: ../src/gnome/gnc-plugin-page-register.c:243
 #: ../src/gnome-utils/gnc-icons.c:23
 msgid "_Jump"
 msgstr "Gegenbuchung"
@@ -5795,644 +5948,552 @@
 msgstr "... Treuhandkonto für Zahlungen verwenden?"
 
 #: ../src/gnome/glade/sched-xact.glade.h:5
-msgid "10th"
-msgstr "10."
+msgid ""
+"1st\n"
+"2nd\n"
+"3rd\n"
+"4th\n"
+"5th\n"
+"6th\n"
+"7th\n"
+"8th\n"
+"9th\n"
+"10th\n"
+"11th\n"
+"12th\n"
+"13th\n"
+"14th\n"
+"15th\n"
+"16th\n"
+"17th\n"
+"18th\n"
+"19th\n"
+"20th\n"
+"21st\n"
+"22nd\n"
+"23rd\n"
+"24th\n"
+"25th\n"
+"26th\n"
+"27th\n"
+"28th\n"
+"[29th/last]\n"
+"[30th/last]\n"
+"[31st/last]"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:6
-msgid "11th"
-msgstr "11."
-
-#: ../src/gnome/glade/sched-xact.glade.h:7
-msgid "12th"
-msgstr "12."
-
-#: ../src/gnome/glade/sched-xact.glade.h:8
-msgid "13th"
-msgstr "13."
-
-#: ../src/gnome/glade/sched-xact.glade.h:9
-msgid "14th"
-msgstr "14."
-
-#: ../src/gnome/glade/sched-xact.glade.h:10
-msgid "15th"
-msgstr "15."
-
-#: ../src/gnome/glade/sched-xact.glade.h:11
-msgid "16th"
-msgstr "16."
-
-#: ../src/gnome/glade/sched-xact.glade.h:12
-msgid "17th"
-msgstr "17."
-
-#: ../src/gnome/glade/sched-xact.glade.h:13
-msgid "18th"
-msgstr "18."
-
-#: ../src/gnome/glade/sched-xact.glade.h:14
-msgid "19th"
-msgstr "19."
-
-#: ../src/gnome/glade/sched-xact.glade.h:15
-msgid "1st"
-msgstr "1."
-
-#: ../src/gnome/glade/sched-xact.glade.h:16
-msgid "20th"
-msgstr "20."
-
-#: ../src/gnome/glade/sched-xact.glade.h:17
-msgid "21st"
-msgstr "21."
-
-#: ../src/gnome/glade/sched-xact.glade.h:18
-msgid "22nd"
-msgstr "22."
-
-#: ../src/gnome/glade/sched-xact.glade.h:19
-msgid "23rd"
-msgstr "23."
-
-#: ../src/gnome/glade/sched-xact.glade.h:20
-msgid "24th"
-msgstr "24."
-
-#: ../src/gnome/glade/sched-xact.glade.h:21
-msgid "25th"
-msgstr "25."
-
-#: ../src/gnome/glade/sched-xact.glade.h:22
-msgid "26th"
-msgstr "26."
-
-#: ../src/gnome/glade/sched-xact.glade.h:23
-msgid "27th"
-msgstr "27."
-
-#: ../src/gnome/glade/sched-xact.glade.h:24
-msgid "28th"
-msgstr "28."
-
-#: ../src/gnome/glade/sched-xact.glade.h:25
-msgid "2nd"
-msgstr "2."
-
-#: ../src/gnome/glade/sched-xact.glade.h:26
-msgid "3rd"
-msgstr "3."
-
-#: ../src/gnome/glade/sched-xact.glade.h:27
-msgid "4th"
-msgstr "4."
-
-#: ../src/gnome/glade/sched-xact.glade.h:28
-msgid "5th"
-msgstr "5."
-
-#: ../src/gnome/glade/sched-xact.glade.h:29
-msgid "6th"
-msgstr "6."
-
-#: ../src/gnome/glade/sched-xact.glade.h:30
-msgid "7th"
-msgstr "7."
-
-#: ../src/gnome/glade/sched-xact.glade.h:31
-msgid "8th"
-msgstr "8."
-
-#: ../src/gnome/glade/sched-xact.glade.h:32
-msgid "9th"
-msgstr "9."
-
-#: ../src/gnome/glade/sched-xact.glade.h:33
+#: ../src/gnome/glade/sched-xact.glade.h:36
 msgid "<b>Name</b>"
 msgstr "<b>Name</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:34
+#: ../src/gnome/glade/sched-xact.glade.h:37
 msgid "<b>Occurrences</b>"
 msgstr "<b>Auftreten</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:35
+#: ../src/gnome/glade/sched-xact.glade.h:38
 msgid "<b>Options</b>"
 msgstr "<b>Optionen</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:36
+#: ../src/gnome/glade/sched-xact.glade.h:39
 msgid "<b>Recurrence Frequency</b>"
 msgstr "<b>Häufigkeit der Wiederholung</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:37
+#: ../src/gnome/glade/sched-xact.glade.h:40
 msgid "<b>Since Last Run Dialog</b>"
 msgstr "<b>Seit-letztem-Aufruf Fenster</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:38
+#: ../src/gnome/glade/sched-xact.glade.h:41
 msgid "<b>Template Transaction</b>"
 msgstr "<b>Buchungsvorlage</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:39
+#: ../src/gnome/glade/sched-xact.glade.h:42
 msgid "<b>Transaction Editor Defaults</b>"
 msgstr "<b>Voreinstellungen Buchungseditor</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:41
+#: ../src/gnome/glade/sched-xact.glade.h:44
 msgid "<b>Upcoming</b>"
 msgstr "<b>Bevorstehend</b>"
 
-#: ../src/gnome/glade/sched-xact.glade.h:42
+#: ../src/gnome/glade/sched-xact.glade.h:45
 msgid "Account Deletion"
 msgstr "Kontenlöschung"
 
-#: ../src/gnome/glade/sched-xact.glade.h:43
+#: ../src/gnome/glade/sched-xact.glade.h:46
 msgid "Advanced..."
 msgstr "Erweitert..."
 
-#: ../src/gnome/glade/sched-xact.glade.h:44
-#: ../src/gnome-utils/glade/transfer.glade.h:6
+#: ../src/gnome/glade/sched-xact.glade.h:47
+#: ../src/gnome-utils/glade/transfer.glade.h:5
 msgid "Amount:"
 msgstr "Betrag:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:45
-msgid "Apr, Aug, Dec"
-msgstr "Apr, Aug, Dez"
-
-#: ../src/gnome/glade/sched-xact.glade.h:46
-msgid "Apr, Oct"
-msgstr "Apr, Okt"
-
-#: ../src/gnome/glade/sched-xact.glade.h:47
-msgid "April"
-msgstr "April"
-
 #: ../src/gnome/glade/sched-xact.glade.h:48
-msgid "August"
-msgstr "August"
-
-#: ../src/gnome/glade/sched-xact.glade.h:49
 msgid "Auto-Created Transactions Notification"
 msgstr "Benachrichtigung über automatisch erstellte Buchungen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:50
+#: ../src/gnome/glade/sched-xact.glade.h:49
 msgid "Begin notifications this many days before the transaction is created."
 msgstr ""
 "Benachrichtigung bereits diese Anzahl Tage vor der Erstellung der Buchungen "
 "anzeigen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:51
+#: ../src/gnome/glade/sched-xact.glade.h:50
 msgid "Bi-Weekly"
 msgstr "Zweiwöchentlich"
 
-#: ../src/gnome/glade/sched-xact.glade.h:52
+#: ../src/gnome/glade/sched-xact.glade.h:51
 msgid "Conditional on splits not having variables"
 msgstr "Abhängig davon, dass Buchungen keine Variablen haben"
 
-#: ../src/gnome/glade/sched-xact.glade.h:53
+#: ../src/gnome/glade/sched-xact.glade.h:52
 msgid "Crea_te in advance, days:"
 msgstr "Anzahl Tage, um im _Voraus zu erstellen:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:54
+#: ../src/gnome/glade/sched-xact.glade.h:53
 msgid "Create"
 msgstr "Erstellen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:55
+#: ../src/gnome/glade/sched-xact.glade.h:54
 msgid "Create as scheduled"
 msgstr "Erstellen wie terminiert"
 
-#: ../src/gnome/glade/sched-xact.glade.h:56
+#: ../src/gnome/glade/sched-xact.glade.h:55
 msgid "Create automatically"
 msgstr "Automatisch erstellen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:57
+#: ../src/gnome/glade/sched-xact.glade.h:56
 msgid "Create in advance:"
 msgstr "Im Voraus erstellen:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:58
+#: ../src/gnome/glade/sched-xact.glade.h:57
 msgid "Create the transaction this many days before its effective date."
 msgstr ""
 "Buchungen um diese Anzahl der Tage im Voraus vor dem eigentlichen "
 "Buchungsdatum erstellen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:59
+#: ../src/gnome/glade/sched-xact.glade.h:58
 msgid "Created Transaction Review"
 msgstr "Buchungsübersicht erstellt"
 
-#: ../src/gnome/glade/sched-xact.glade.h:60
+#: ../src/gnome/glade/sched-xact.glade.h:59
 msgid "Creating transactions..."
 msgstr "Buchungen erstellen..."
 
-#: ../src/gnome/glade/sched-xact.glade.h:61
+#: ../src/gnome/glade/sched-xact.glade.h:60
 msgid "Creation State"
 msgstr "Erstellen Status"
 
-#: ../src/gnome/glade/sched-xact.glade.h:62
-msgid "Current Year"
-msgstr "Dieses Jahr"
+#: ../src/gnome/glade/sched-xact.glade.h:61
+msgid ""
+"Current Year\n"
+"Now + 1 Year\n"
+"Whole Loan\n"
+"Custom"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:63
-msgid "Custom"
-msgstr "Benutzerdefiniert"
+#: ../src/gnome/glade/sched-xact.glade.h:66
+msgid ""
+"Daily\n"
+"Weekly\n"
+"Bi-Weekly\n"
+"Monthly\n"
+"Quarterly\n"
+"Yearly"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:65
+#: ../src/gnome/glade/sched-xact.glade.h:72
 msgid "Daily [M-F]"
 msgstr "Täglich [Mo-Fr]"
 
 #. src/business/business-reports/owner-report.scm
-#: ../src/gnome/glade/sched-xact.glade.h:66 ../intl-scm/guile-strings.c:3488
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/gnome/glade/sched-xact.glade.h:73 ../intl-scm/guile-strings.c:6214
+#: ../intl-scm/guile-strings.c:6738
 msgid "Date Range"
 msgstr "Datumsbereich"
 
 #. src/report/report-system/options-utilities.scm
-#: ../src/gnome/glade/sched-xact.glade.h:67 ../intl-scm/guile-strings.c:666
-#: ../intl-scm/guile-strings.c:668
+#: ../src/gnome/glade/sched-xact.glade.h:74 ../intl-scm/guile-strings.c:1178
+#: ../intl-scm/guile-strings.c:1180
 msgid "Day"
 msgstr "Tag"
 
-#: ../src/gnome/glade/sched-xact.glade.h:69
+#: ../src/gnome/glade/sched-xact.glade.h:76
 msgid "Days Away"
 msgstr "Tage in der Zukunft"
 
-#: ../src/gnome/glade/sched-xact.glade.h:70
-msgid "December"
-msgstr "Dezember"
-
-#: ../src/gnome/glade/sched-xact.glade.h:71
+#: ../src/gnome/glade/sched-xact.glade.h:77
 msgid "Disposition?"
 msgstr "Auswahl:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:72
+#: ../src/gnome/glade/sched-xact.glade.h:78
 msgid "Do you..."
 msgstr "Möchten Sie..."
 
-#: ../src/gnome/glade/sched-xact.glade.h:73
+#: ../src/gnome/glade/sched-xact.glade.h:79
 msgid "Edit Scheduled Transaction"
 msgstr "Terminierte Buchungen bearbeiten"
 
-#: ../src/gnome/glade/sched-xact.glade.h:74
+#: ../src/gnome/glade/sched-xact.glade.h:80
 msgid "End "
 msgstr "Ende "
 
-#: ../src/gnome/glade/sched-xact.glade.h:75
+#: ../src/gnome/glade/sched-xact.glade.h:81
 msgid "End Date:"
 msgstr "Enddatum:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:76
+#: ../src/gnome/glade/sched-xact.glade.h:82
 msgid "Ended On"
 msgstr "Beendet am"
 
-#: ../src/gnome/glade/sched-xact.glade.h:77
+#: ../src/gnome/glade/sched-xact.glade.h:83
 msgid "Escrow Account:"
 msgstr "Treuhandkonto:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:78
+#: ../src/gnome/glade/sched-xact.glade.h:84
 msgid "Every"
 msgstr "Alle"
 
-#: ../src/gnome/glade/sched-xact.glade.h:80
-msgid "Feb, Aug"
-msgstr "Feb, Aug"
-
-#: ../src/gnome/glade/sched-xact.glade.h:81
-msgid "Feb, Jun, Oct"
-msgstr "Feb, Jun, Okt"
-
-#: ../src/gnome/glade/sched-xact.glade.h:82
-msgid "Feb, May, Aug, Nov"
-msgstr "Feb, Mai, Aug, Nov"
-
-#: ../src/gnome/glade/sched-xact.glade.h:83
-msgid "February"
-msgstr "Februar"
-
-#: ../src/gnome/glade/sched-xact.glade.h:84
+#: ../src/gnome/glade/sched-xact.glade.h:86
 msgid "First on the:"
 msgstr "Zuerst am:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:85
+#: ../src/gnome/glade/sched-xact.glade.h:87
+msgid ""
+"Fixed Rate\n"
+"3/1 Year ARM\n"
+"5/1 Year ARM\n"
+"7/1 Year ARM\n"
+"10/1 Year ARM"
+msgstr ""
+
+#: ../src/gnome/glade/sched-xact.glade.h:92
 msgid "For:"
 msgstr "Für:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:86
+#: ../src/gnome/glade/sched-xact.glade.h:93
 msgid "Forever"
 msgstr "Immer"
 
-#: ../src/gnome/glade/sched-xact.glade.h:87
-#: ../src/gnome-utils/gnc-dense-cal.c:281
+#: ../src/gnome/glade/sched-xact.glade.h:94
+#: ../src/gnome-utils/gnc-dense-cal.c:264
 msgid "Frequency"
 msgstr "Häufigkeit"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:89 ../intl-scm/guile-strings.c:2818
+#: ../src/gnome/glade/sched-xact.glade.h:96 ../intl-scm/guile-strings.c:4156
+#: ../intl-scm/guile-strings.c:5306
 msgid "Friday"
 msgstr "Freitag"
 
-#: ../src/gnome/glade/sched-xact.glade.h:90
+#: ../src/gnome/glade/sched-xact.glade.h:97
 msgid "Ignore"
 msgstr "Ignorieren"
 
-#: ../src/gnome/glade/sched-xact.glade.h:91
+#: ../src/gnome/glade/sched-xact.glade.h:98
 msgid "Interest Rate Change Frequency"
 msgstr "Änderungshäufigkeit des Zinssatzes"
 
-#: ../src/gnome/glade/sched-xact.glade.h:92
+#: ../src/gnome/glade/sched-xact.glade.h:99
 msgid "Interest Rate:"
 msgstr "Zinssatz:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:93
+#: ../src/gnome/glade/sched-xact.glade.h:100
 msgid "Interest To:"
 msgstr "Zinsen nach:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:94
-msgid "Jan, Apr, Jul, Oct"
-msgstr "Jan, Apr, Jul, Okt"
+#: ../src/gnome/glade/sched-xact.glade.h:101
+msgid ""
+"Jan, Apr, Jul, Oct\n"
+"Feb, May, Aug, Nov\n"
+"Mar, Jun, Sep, Dec"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:95
-msgid "Jan, Jul"
-msgstr "Jan, Jul"
+#: ../src/gnome/glade/sched-xact.glade.h:104
+msgid ""
+"Jan, Jul\n"
+"Feb, Aug\n"
+"Mar, Sep\n"
+"Apr, Oct\n"
+"May, Nov\n"
+"Jun, Dec"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:96
-msgid "Jan, May, Sep"
-msgstr "Jan, Mai, Sep"
+#: ../src/gnome/glade/sched-xact.glade.h:110
+msgid ""
+"Jan, May, Sep\n"
+"Feb, Jun, Oct\n"
+"Mar, Jul, Nov"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:97
-msgid "January"
-msgstr "Januar"
+#: ../src/gnome/glade/sched-xact.glade.h:113
+msgid ""
+"January\n"
+"February\n"
+"March\n"
+"April\n"
+"May\n"
+"June\n"
+"July\n"
+"August\n"
+"September\n"
+"October\n"
+"November\n"
+"December"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:98
-msgid "July"
-msgstr "Juli"
-
-#: ../src/gnome/glade/sched-xact.glade.h:99
-msgid "Jun, Dec"
-msgstr "Jun, Dez"
-
-#: ../src/gnome/glade/sched-xact.glade.h:100
-msgid "June"
-msgstr "Juni"
-
-#: ../src/gnome/glade/sched-xact.glade.h:101
+#: ../src/gnome/glade/sched-xact.glade.h:125
 msgid "Last Occurred: "
 msgstr "Zuletzt aufgetreten: "
 
-#: ../src/gnome/glade/sched-xact.glade.h:102
+#: ../src/gnome/glade/sched-xact.glade.h:126
 msgid "Length:"
 msgstr "Länge:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:103
+#: ../src/gnome/glade/sched-xact.glade.h:127
 msgid "Loan Account:"
 msgstr "Darlehenskonto:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:104
+#: ../src/gnome/glade/sched-xact.glade.h:128
 msgid "Loan Information"
 msgstr "Darlehen Informationen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:105
+#: ../src/gnome/glade/sched-xact.glade.h:129
 msgid "Make Scheduled Transaction"
 msgstr "Terminierte Buchung erstellen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:106
-msgid "Mar, Jul, Nov"
-msgstr "Mär, Jul, Nov"
-
-#: ../src/gnome/glade/sched-xact.glade.h:107
-msgid "Mar, Jun, Sep, Dec"
-msgstr "Mär, Jun, Sep, Dez"
-
-#: ../src/gnome/glade/sched-xact.glade.h:108
-msgid "Mar, Sep"
-msgstr "Mär, Sep"
-
-#: ../src/gnome/glade/sched-xact.glade.h:109
-msgid "March"
-msgstr "März"
-
-#: ../src/gnome/glade/sched-xact.glade.h:110
-msgid "May"
-msgstr "Mai"
-
-#: ../src/gnome/glade/sched-xact.glade.h:111
-msgid "May, Nov"
-msgstr "Mai, Nov"
-
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:112 ../intl-scm/guile-strings.c:2810
+#: ../src/gnome/glade/sched-xact.glade.h:130 ../intl-scm/guile-strings.c:4148
+#: ../intl-scm/guile-strings.c:5298
 msgid "Monday"
 msgstr "Montag"
 
 #. src/report/report-system/options-utilities.scm
-#: ../src/gnome/glade/sched-xact.glade.h:113 ../intl-scm/guile-strings.c:678
-#: ../intl-scm/guile-strings.c:680
+#: ../src/gnome/glade/sched-xact.glade.h:131 ../intl-scm/guile-strings.c:1190
+#: ../intl-scm/guile-strings.c:1192
 msgid "Month"
 msgstr "Monat"
 
-#: ../src/gnome/glade/sched-xact.glade.h:115
+#: ../src/gnome/glade/sched-xact.glade.h:133
 msgid "Months Remaining:"
 msgstr "Restliche Monate:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:116
+#: ../src/gnome/glade/sched-xact.glade.h:134
 msgid "Mortgage/Loan Druid"
-msgstr "Hypothek/Darlehen Druide"
+msgstr "Hypothek/Darlehen Assistent"
 
-#: ../src/gnome/glade/sched-xact.glade.h:117
+#: ../src/gnome/glade/sched-xact.glade.h:135
 msgid "Mortgage/Loan Repayment Setup"
 msgstr "Einrichtung Hypothek/Darlehen-Tilgung"
 
-#: ../src/gnome/glade/sched-xact.glade.h:119
+#: ../src/gnome/glade/sched-xact.glade.h:137
 msgid "Name:"
 msgstr "Name:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:120
+#: ../src/gnome/glade/sched-xact.glade.h:138
 msgid "Never End"
 msgstr "Endet nicht"
 
-#: ../src/gnome/glade/sched-xact.glade.h:121
-msgid "Next Occurrence"
-msgstr "Nächstes Auftreten"
+#: ../src/gnome/glade/sched-xact.glade.h:140
+msgid ""
+"None\n"
+"Once\n"
+"Daily\n"
+"Daily [M-F]\n"
+"Weekly\n"
+"Bi-Weekly\n"
+"Semi-Monthly\n"
+"Monthly\n"
+"Quarterly\n"
+"Tri-Yearly\n"
+"Semi-Yearly\n"
+"Yearly"
+msgstr ""
 
-#: ../src/gnome/glade/sched-xact.glade.h:124
+#: ../src/gnome/glade/sched-xact.glade.h:152
+msgid "Not scheduled"
+msgstr "Nicht vorgemerkt"
+
+#: ../src/gnome/glade/sched-xact.glade.h:153
 msgid "Notify me when created"
 msgstr "Bei Erstellung benachrichtigen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:125
-msgid "November"
-msgstr "November"
-
-#: ../src/gnome/glade/sched-xact.glade.h:126
-msgid "Now + 1 Year"
-msgstr "Heute plus ein Jahr"
-
-#: ../src/gnome/glade/sched-xact.glade.h:127
+#: ../src/gnome/glade/sched-xact.glade.h:154
 msgid "Number of Occurrences:"
 msgstr "Anzahl des Auftretens:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:128
+#: ../src/gnome/glade/sched-xact.glade.h:155
 msgid "Obsolete Scheduled Transactions"
 msgstr "Terminierte Buchung löschen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:129
+#: ../src/gnome/glade/sched-xact.glade.h:156
 msgid "Occuring in"
 msgstr "In den Monaten"
 
-#: ../src/gnome/glade/sched-xact.glade.h:130
-msgid "October"
-msgstr "Oktober"
-
-#: ../src/gnome/glade/sched-xact.glade.h:131
+#: ../src/gnome/glade/sched-xact.glade.h:157
 msgid "On the"
 msgstr "Am"
 
-#: ../src/gnome/glade/sched-xact.glade.h:132
+#: ../src/gnome/glade/sched-xact.glade.h:158
 msgid "Once"
 msgstr "Einmal"
 
-#: ../src/gnome/glade/sched-xact.glade.h:135
+#: ../src/gnome/glade/sched-xact.glade.h:161
 msgid "Part of Payment Transaction"
 msgstr "Teil einer Zahlung"
 
-#: ../src/gnome/glade/sched-xact.glade.h:136
+#: ../src/gnome/glade/sched-xact.glade.h:162
 msgid "Payment Frequency"
 msgstr "Zahlungshäufigkeit"
 
-#: ../src/gnome/glade/sched-xact.glade.h:137
+#: ../src/gnome/glade/sched-xact.glade.h:163
 msgid "Payment From (Escrow):"
 msgstr "Zahlung von (Treuhandkonto):"
 
-#: ../src/gnome/glade/sched-xact.glade.h:138
+#: ../src/gnome/glade/sched-xact.glade.h:164
 msgid "Payment From:"
 msgstr "Zahlung von:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:139
+#: ../src/gnome/glade/sched-xact.glade.h:165
 msgid "Payment To (Escrow):"
 msgstr "Zahlung an (Treuhandkonto):"
 
-#: ../src/gnome/glade/sched-xact.glade.h:140
+#: ../src/gnome/glade/sched-xact.glade.h:166
 msgid "Payment To:"
 msgstr "Zahlung an:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:141
+#: ../src/gnome/glade/sched-xact.glade.h:167
 msgid "Postpone"
 msgstr "Zurückstellen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:143
+#: ../src/gnome/glade/sched-xact.glade.h:169
 msgid "Press Apply to create these transactions."
 msgstr "Klicken Sie »Anwenden«, um diese Buchungen zu erstellen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:144
+#: ../src/gnome/glade/sched-xact.glade.h:170
 msgid "Press apply to commit these changes."
 msgstr "Klicken Sie »Anwenden«, um die Änderungen zu speichern."
 
-#: ../src/gnome/glade/sched-xact.glade.h:145
+#: ../src/gnome/glade/sched-xact.glade.h:171
 msgid "Principal To:"
 msgstr "Endbetrag Kapital an:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:147
+#: ../src/gnome/glade/sched-xact.glade.h:173
 msgid "R_emind in advance, days:"
 msgstr "Anzahl Tage, um im v_oraus zu erinnern:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:148
+#: ../src/gnome/glade/sched-xact.glade.h:174
 msgid "Range: "
 msgstr "Bereich: "
 
-#: ../src/gnome/glade/sched-xact.glade.h:149
+#: ../src/gnome/glade/sched-xact.glade.h:175
 msgid "Remind in advance:"
 msgstr "Im Voraus erinnern:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:150
+#: ../src/gnome/glade/sched-xact.glade.h:176
 msgid "Repayment"
 msgstr "Tilgung"
 
-#: ../src/gnome/glade/sched-xact.glade.h:151
+#: ../src/gnome/glade/sched-xact.glade.h:177
 msgid "Repayment Frequency"
 msgstr "Tilgungshäufigkeit"
 
-#: ../src/gnome/glade/sched-xact.glade.h:152
+#: ../src/gnome/glade/sched-xact.glade.h:178
 msgid "Repayment Type"
 msgstr "Rückzahlungsart"
 
-#: ../src/gnome/glade/sched-xact.glade.h:153
+#: ../src/gnome/glade/sched-xact.glade.h:179
 msgid "Repeats:"
 msgstr "Wiederholungen:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:154
+#: ../src/gnome/glade/sched-xact.glade.h:180
 msgid "Review"
 msgstr "Kontrolle"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:155 ../intl-scm/guile-strings.c:2820
+#: ../src/gnome/glade/sched-xact.glade.h:181 ../intl-scm/guile-strings.c:4158
+#: ../intl-scm/guile-strings.c:5308
 msgid "Saturday"
 msgstr "Samstag"
 
-#: ../src/gnome/glade/sched-xact.glade.h:156
+#: ../src/gnome/glade/sched-xact.glade.h:182
 msgid "Scheduled Transaction"
 msgstr "Terminierte Buchung"
 
-#: ../src/gnome/glade/sched-xact.glade.h:158
-#: ../src/gnome-utils/dialog-options.c:883
-#: ../src/gnome-utils/dialog-options.c:1010
+#: ../src/gnome/glade/sched-xact.glade.h:183
+#: ../src/gnome-utils/dialog-options.c:870
+#: ../src/gnome-utils/dialog-options.c:988
 msgid "Select All"
 msgstr "Alle auswählen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:159
+#: ../src/gnome/glade/sched-xact.glade.h:184
 msgid "Select initial date, above."
 msgstr "Wählen Sie oben ein Anfangsdatum."
 
-#: ../src/gnome/glade/sched-xact.glade.h:160
+#: ../src/gnome/glade/sched-xact.glade.h:185
 msgid "Select occurrence date above."
 msgstr "Wählen Sie oben ein Datum des Auftretens."
 
-#: ../src/gnome/glade/sched-xact.glade.h:161
+#: ../src/gnome/glade/sched-xact.glade.h:186
 msgid "Semi-Monthly"
 msgstr "Halbmonatlich"
 
-#: ../src/gnome/glade/sched-xact.glade.h:162
+#: ../src/gnome/glade/sched-xact.glade.h:187
 msgid "Semi-Yearly"
 msgstr "Halbjährlich"
 
-#: ../src/gnome/glade/sched-xact.glade.h:163
-msgid "September"
-msgstr "September"
-
-#: ../src/gnome/glade/sched-xact.glade.h:164
+#: ../src/gnome/glade/sched-xact.glade.h:188
 msgid "Set the 'auto-create' flag on newly created scheduled transactions."
 msgstr ""
 "»Automatisch erstellen« für neue terminierte Buchungen als Voreinstellung "
 "wählen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:165
+#: ../src/gnome/glade/sched-xact.glade.h:189
 msgid "Set the 'notify' flag on newly created scheduled transactions."
 msgstr ""
 "»Benachrichtigen« für neue terminierte Buchungen als Voreinstellung wählen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:166
+#: ../src/gnome/glade/sched-xact.glade.h:190
 msgid "Show the \"since last run\" window when a file is opened."
 msgstr ""
 "Das Fenster »Seit letztem Aufruf« anzeigen, wenn eine Datei geöffnet wird "
 "oder beim Programmstart von GnuCash."
 
-#: ../src/gnome/glade/sched-xact.glade.h:167
+#: ../src/gnome/glade/sched-xact.glade.h:191
 msgid "Since Last Run"
 msgstr "Seit letztem Aufruf"
 
-#: ../src/gnome/glade/sched-xact.glade.h:168
+#: ../src/gnome/glade/sched-xact.glade.h:192
+msgid "Since Last Run..."
+msgstr "Seit letztem Aufruf..."
+
+#: ../src/gnome/glade/sched-xact.glade.h:193
 msgid "Specify Source Account"
 msgstr "Herkunftskonto auswählen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:170
+#: ../src/gnome/glade/sched-xact.glade.h:195
 msgid "Start Date: "
 msgstr "Anfangsdatum: "
 
-#: ../src/gnome/glade/sched-xact.glade.h:171
+#: ../src/gnome/glade/sched-xact.glade.h:196
 msgid "State"
 msgstr "Status"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:172 ../intl-scm/guile-strings.c:2808
+#: ../src/gnome/glade/sched-xact.glade.h:197 ../intl-scm/guile-strings.c:4146
+#: ../intl-scm/guile-strings.c:5296
 msgid "Sunday"
 msgstr "Sonntag"
 
-#: ../src/gnome/glade/sched-xact.glade.h:173
+#: ../src/gnome/glade/sched-xact.glade.h:198
 msgid "Template Transaction (Read-Only)"
 msgstr "Buchungsvorlage (schreibgeschützt)"
 
-#: ../src/gnome/glade/sched-xact.glade.h:174
+#: ../src/gnome/glade/sched-xact.glade.h:199
 msgid ""
 "The following Scheduled Transactions reference the deleted account, and must "
 "now be corrected.  Press OK to edit them."
@@ -6440,7 +6501,7 @@
 "Die folgenden terminierten Buchungen gehören zu dem gelöschten Konto und "
 "müssen nun geändert werden. Klicken Sie Ok, um sie zu ändern."
 
-#: ../src/gnome/glade/sched-xact.glade.h:175
+#: ../src/gnome/glade/sched-xact.glade.h:200
 msgid ""
 "The following scheduled transactions have expired.  Select those you wish to "
 "delete."
@@ -6448,7 +6509,7 @@
 "Die folgenden terminierten Buchungen sind abgelaufen. Bitte wählen Sie jene, "
 "die Sie löschen möchten."
 
-#: ../src/gnome/glade/sched-xact.glade.h:176
+#: ../src/gnome/glade/sched-xact.glade.h:201
 msgid ""
 "The listed Scheduled Transactions are to-be created soon.  Select any which "
 "you would like to create now, and click \"Forward\" to create them."
@@ -6457,7 +6518,7 @@
 "Wählen Sie jene, die jetzt erstellt werden sollen, und klicken Sie »Vor«, um "
 "Sie jetzt erstellen zu lassen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:177
+#: ../src/gnome/glade/sched-xact.glade.h:202
 msgid ""
 "This druid will walk you through any scheduled transactions that should be "
 "created."
@@ -6465,7 +6526,7 @@
 "Dieser Assistent führt Sie schrittweise durch die Erstellung neuer "
 "terminierter Buchungen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:178
+#: ../src/gnome/glade/sched-xact.glade.h:203
 msgid ""
 "This is a step-by-step method of creating a loan repayment setup within "
 "GnuCash.  In this Druid, you can input the parameters of your loan and its "
@@ -6483,136 +6544,133 @@
 "Wenn Sie einen Irrtum machen oder später Änderungen machen möchten, können "
 "Sie die erstellte Terminierte Buchung direkt ändern."
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:181 ../intl-scm/guile-strings.c:2816
+#: ../src/gnome/glade/sched-xact.glade.h:206 ../intl-scm/guile-strings.c:4154
+#: ../intl-scm/guile-strings.c:5304
 msgid "Thursday"
 msgstr "Donnerstag"
 
-#: ../src/gnome/glade/sched-xact.glade.h:182
+#: ../src/gnome/glade/sched-xact.glade.h:207
 msgid "To-Create Transaction Preparation"
 msgstr "Vorbereitung der zu erstellenden Buchungen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:183
+#: ../src/gnome/glade/sched-xact.glade.h:208
 msgid "Transaction Reminders"
 msgstr "Buchungserinnerungen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:184
+#: ../src/gnome/glade/sched-xact.glade.h:209
 msgid "Tri-Yearly"
 msgstr "Dreimal pro Jahr"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:185 ../intl-scm/guile-strings.c:2812
+#: ../src/gnome/glade/sched-xact.glade.h:210 ../intl-scm/guile-strings.c:4150
+#: ../intl-scm/guile-strings.c:5300
 msgid "Tuesday"
 msgstr "Dienstag"
 
-#: ../src/gnome/glade/sched-xact.glade.h:187
+#: ../src/gnome/glade/sched-xact.glade.h:212
 msgid "Unselect All"
 msgstr "Keine auswählen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:188
+#: ../src/gnome/glade/sched-xact.glade.h:213
 msgid "Until:"
 msgstr "Bis:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:189
+#: ../src/gnome/glade/sched-xact.glade.h:214
 msgid "Use Escrow Account"
 msgstr "Treuhandkonto benutzen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:191
+#: ../src/gnome/glade/sched-xact.glade.h:216
 msgid "Value:"
 msgstr "Wert:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:192
+#: ../src/gnome/glade/sched-xact.glade.h:217
 msgid "Variable"
 msgstr "Variable"
 
-#: ../src/gnome/glade/sched-xact.glade.h:193
+#: ../src/gnome/glade/sched-xact.glade.h:218
 msgid "Variables"
 msgstr "Variablen"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../src/gnome/glade/sched-xact.glade.h:194 ../intl-scm/guile-strings.c:2814
+#: ../src/gnome/glade/sched-xact.glade.h:219 ../intl-scm/guile-strings.c:4152
+#: ../intl-scm/guile-strings.c:5302
 msgid "Wednesday"
 msgstr "Mittwoch"
 
-#: ../src/gnome/glade/sched-xact.glade.h:196
+#: ../src/gnome/glade/sched-xact.glade.h:221
 msgid "What to do, what to do?"
 msgstr "Was ist zu tun?"
 
-#: ../src/gnome/glade/sched-xact.glade.h:197
-msgid "Whole Loan"
-msgstr "Vollständiges Darlehen"
-
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome/glade/sched-xact.glade.h:198 ../intl-scm/guile-strings.c:2396
-#: ../intl-scm/guile-strings.c:2398
+#: ../src/gnome/glade/sched-xact.glade.h:222 ../intl-scm/guile-strings.c:3730
+#: ../intl-scm/guile-strings.c:3732 ../intl-scm/guile-strings.c:4880
+#: ../intl-scm/guile-strings.c:4882
 msgid "Yearly"
 msgstr "Jährlich"
 
-#: ../src/gnome/glade/sched-xact.glade.h:199
-msgid "[29th/last]"
-msgstr "(29./Monatsende)"
-
-#: ../src/gnome/glade/sched-xact.glade.h:200
-msgid "[30th/last]"
-msgstr "(30./Monatsende)"
-
-#: ../src/gnome/glade/sched-xact.glade.h:201
-msgid "[31st/last]"
-msgstr "(31./Monatsende)"
-
-#: ../src/gnome/glade/sched-xact.glade.h:202
+#: ../src/gnome/glade/sched-xact.glade.h:223
 msgid "_Auto-create new transactions"
 msgstr "Neue Buchungen _automatisch erstellen"
 
-#: ../src/gnome/glade/sched-xact.glade.h:204
+#: ../src/gnome/glade/sched-xact.glade.h:224
 msgid "_Notify before transactions are created "
 msgstr "Be_nachrichtigen, bevor neue Buchungen erstellt werden"
 
-#: ../src/gnome/glade/sched-xact.glade.h:205
+#: ../src/gnome/glade/sched-xact.glade.h:225
+#, fuzzy
+msgid "_Review created transactions"
+msgstr "Bestätigte Buchungen automatisch abgleichen"
+
+#: ../src/gnome/glade/sched-xact.glade.h:226
 msgid "_Run when data file opened"
 msgstr "Seit-Letztem-Aufruf Fenster starten, wenn eine _Datei geöffnet wird"
 
-#: ../src/gnome/glade/sched-xact.glade.h:206
-#: ../src/gnome-utils/glade/preferences.glade.h:144
+#: ../src/gnome/glade/sched-xact.glade.h:227
+#: ../src/gnome-utils/glade/preferences.glade.h:156
 msgid "days"
 msgstr "Tage"
 
-#: ../src/gnome/glade/sched-xact.glade.h:207
+#: ../src/gnome/glade/sched-xact.glade.h:228
 msgid "days."
 msgstr "Tage."
 
-#: ../src/gnome/glade/sched-xact.glade.h:208
-msgid "months"
-msgstr "Monate"
+#: ../src/gnome/glade/sched-xact.glade.h:229
+msgid ""
+"months\n"
+"years"
+msgstr ""
+"Monate\n"
+"Jahre"
 
-#: ../src/gnome/glade/sched-xact.glade.h:209
+#: ../src/gnome/glade/sched-xact.glade.h:231
 msgid "months."
 msgstr "Monate."
 
-#: ../src/gnome/glade/sched-xact.glade.h:210
+#: ../src/gnome/glade/sched-xact.glade.h:232
 msgid "occurrences"
 msgstr "Auftreten"
 
-#: ../src/gnome/glade/sched-xact.glade.h:211
+#: ../src/gnome/glade/sched-xact.glade.h:233
 msgid "remaining"
 msgstr "verbleibende"
 
-#: ../src/gnome/glade/sched-xact.glade.h:212
+#: ../src/gnome/glade/sched-xact.glade.h:234
 msgid "then on the:"
 msgstr "dann am:"
 
-#: ../src/gnome/glade/sched-xact.glade.h:213
+#: ../src/gnome/glade/sched-xact.glade.h:235
 msgid "weeks."
 msgstr "Wochen."
 
-#: ../src/gnome/glade/sched-xact.glade.h:214
+#: ../src/gnome/glade/sched-xact.glade.h:236
 msgid "year(s)."
 msgstr "Jahre."
 
-#: ../src/gnome/glade/sched-xact.glade.h:215
-msgid "years"
-msgstr "Jahre"
-
 #: ../src/gnome/glade/stocks.glade.h:1
 msgid "<b>A_sset Account</b>"
 msgstr "<b>_Aktiva Konto</b>"
@@ -6621,19 +6679,19 @@
 msgid "<b>_Income Account</b>"
 msgstr "<b>_Ertragskonto</b>"
 
-#: ../src/gnome/glade/stocks.glade.h:4
+#: ../src/gnome/glade/stocks.glade.h:3
 msgid "Cash In Lieu"
 msgstr "Ausgleichsbetrag"
 
-#: ../src/gnome/glade/stocks.glade.h:5
+#: ../src/gnome/glade/stocks.glade.h:4
 msgid "Currenc_y:"
 msgstr "_Währung:"
 
-#: ../src/gnome/glade/stocks.glade.h:6
+#: ../src/gnome/glade/stocks.glade.h:5
 msgid "Desc_ription:"
 msgstr "_Beschreibung:"
 
-#: ../src/gnome/glade/stocks.glade.h:7
+#: ../src/gnome/glade/stocks.glade.h:6
 msgid ""
 "Enter the date and the number of shares you gained or lost from the stock "
 "split or merger. For stock mergers (negative splits) use a negative value "
@@ -6645,7 +6703,7 @@
 "Sie eine negative Zahl ein.  Sie können auch eine Beschreibung des "
 "Buchungssatzes eingeben."
 
-#: ../src/gnome/glade/stocks.glade.h:8
+#: ../src/gnome/glade/stocks.glade.h:7
 msgid ""
 "If you are finished creating the stock split or merger, press `Apply'. You "
 "may also press `Back' to review your choices, or `Cancel' to quit without "
@@ -6656,7 +6714,7 @@
 "oder »Abbrechen«, um diesen Dialog zu beenden, ohne die Änderungen zu "
 "speichern."
 
-#: ../src/gnome/glade/stocks.glade.h:9
+#: ../src/gnome/glade/stocks.glade.h:8
 msgid ""
 "If you received a cash disbursement as a result of the stock split, enter "
 "the details of that payment here. Otherwise, just click `Forward'."
@@ -6665,7 +6723,7 @@
 "erhalten haben, geben Sie diese Zahlung hier ein. Wenn Sie keinen "
 "Ausgleichsbetrag erhalten haben, klicken Sie »Vor«."
 
-#: ../src/gnome/glade/stocks.glade.h:10
+#: ../src/gnome/glade/stocks.glade.h:9
 msgid ""
 "If you want to record a stock price for the split, enter it below. You may "
 "safely leave it blank."
@@ -6673,47 +6731,39 @@
 "Wenn Sie einen Aktienkurs für die Buchung eingeben wollen, geben Sie den "
 "Kurs unten an. Sie können das Kurseingabefeld auch leer lassen."
 
-#: ../src/gnome/glade/stocks.glade.h:11
+#: ../src/gnome/glade/stocks.glade.h:10
 msgid "New _Price:"
 msgstr "Neuer _Preis:"
 
-#: ../src/gnome/glade/stocks.glade.h:12
+#: ../src/gnome/glade/stocks.glade.h:11
 msgid ""
 "Select the account for which you want to record a stock split or merger."
 msgstr "Wählen Sie das Konto, für das Sie eine Aktienteilung eingeben möchten."
 
-#: ../src/gnome/glade/stocks.glade.h:14
+#: ../src/gnome/glade/stocks.glade.h:12
 msgid "Stock Account"
 msgstr "Aktiendepot"
 
-#: ../src/gnome/glade/stocks.glade.h:15
+#: ../src/gnome/glade/stocks.glade.h:13
 msgid "Stock Split"
 msgstr "Aktienteilung"
 
-#: ../src/gnome/glade/stocks.glade.h:16
+#: ../src/gnome/glade/stocks.glade.h:14
 msgid "Stock Split Details"
 msgstr "Aktienteilung Details"
 
-#. src/report/standard-reports/portfolio.scm
-#. src/report/standard-reports/advanced-portfolio.scm
-#: ../src/gnome/glade/stocks.glade.h:17
-#: ../src/gnome-utils/gnc-tree-view-commodity.c:399
-#: ../intl-scm/guile-strings.c:1732 ../intl-scm/guile-strings.c:2032
-msgid "Symbol"
-msgstr "Symbol"
-
-#: ../src/gnome/glade/stocks.glade.h:18
+#: ../src/gnome/glade/stocks.glade.h:15
 msgid "This druid will help you record a stock split or stock merger."
 msgstr ""
 "Dieser Assistent hilft Ihnen, eine Aktienteilung oder einen "
 "Aktienzusammenschluß einzugeben."
 
-#: ../src/gnome/glade/stocks.glade.h:19
+#: ../src/gnome/glade/stocks.glade.h:16
 #: ../src/gnome-utils/glade/exchange-dialog.glade.h:4
 msgid "_Amount:"
 msgstr "_Betrag:"
 
-#: ../src/gnome/glade/stocks.glade.h:22
+#: ../src/gnome/glade/stocks.glade.h:19
 msgid "_Shares:"
 msgstr "_Anteile:"
 
@@ -6794,154 +6844,159 @@
 msgstr "Neue Konto-Hierarchie Ansicht öffnen"
 
 #. File menu
-#: ../src/gnome/gnc-plugin-basic-commands.c:103
+#: ../src/gnome/gnc-plugin-basic-commands.c:96
 msgid "New _File"
 msgstr "Neue _Datei"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:104
+#: ../src/gnome/gnc-plugin-basic-commands.c:97
 msgid "Create a new file"
 msgstr "Eine neue Datei anlegen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:106
+#: ../src/gnome/gnc-plugin-basic-commands.c:99
 msgid "_Open..."
 msgstr "Ö_ffnen..."
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:107
+#: ../src/gnome/gnc-plugin-basic-commands.c:100
 msgid "Open an existing GnuCash file"
 msgstr "Eine existierende GnuCash-Datei öffnen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:109
+#: ../src/gnome/gnc-plugin-basic-commands.c:102
 msgid "_Save"
 msgstr "_Speichern"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:110
+#: ../src/gnome/gnc-plugin-basic-commands.c:103
 msgid "Save the current file"
 msgstr "Aktuelle Datei speichern"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:112
+#: ../src/gnome/gnc-plugin-basic-commands.c:105
 msgid "Save _As..."
 msgstr "Speichern _unter..."
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:117
+#: ../src/gnome/gnc-plugin-basic-commands.c:109
 msgid "_QSF Import"
 msgstr "_QSF-Import"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:118
+#: ../src/gnome/gnc-plugin-basic-commands.c:110
 msgid "Import a QSF object file"
 msgstr "QSF-Datei importieren"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:122
+#: ../src/gnome/gnc-plugin-basic-commands.c:113
 msgid "Export _Accounts"
 msgstr "_Konten exportieren"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:123
+#: ../src/gnome/gnc-plugin-basic-commands.c:114
 msgid "Export the account hierarchy to a new GnuCash datafile"
 msgstr "Die Konten-Hierarchie in eine neue GnuCash-Datei exportieren"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:127
+#: ../src/gnome/gnc-plugin-basic-commands.c:117
 msgid "Export _Chart of Accounts to QSF"
 msgstr "Kontenhierarchie nach _QSF XML exportieren"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:128
+#: ../src/gnome/gnc-plugin-basic-commands.c:118
 msgid "Export the chart of accounts for a date with balances as QSF"
 msgstr "Kontenhierarchie mit Salden eines bestimmten Tages als QSF exportieren"
 
 #. Edit menu
-#: ../src/gnome/gnc-plugin-basic-commands.c:134
+#: ../src/gnome/gnc-plugin-basic-commands.c:123
 msgid "_Find..."
 msgstr "_Suchen..."
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:135
+#: ../src/gnome/gnc-plugin-basic-commands.c:124
 msgid "Find transactions with a search"
 msgstr "Finde Buchungssätze"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:137
+#: ../src/gnome/gnc-plugin-basic-commands.c:126
 msgid "Ta_x Options"
 msgstr "Steuer_relevante Optionen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:138
+#: ../src/gnome/gnc-plugin-basic-commands.c:127
 msgid "Setup tax information for all income and expense accounts"
 msgstr ""
 "Steuerrelevante Informationen für Ertrags- und Aufwandskonten einrichten"
 
 #. Actions menu
-#: ../src/gnome/gnc-plugin-basic-commands.c:143
+#: ../src/gnome/gnc-plugin-basic-commands.c:132
 msgid "_Scheduled Transactions"
 msgstr "_Terminierte Buchungen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:144
+#: ../src/gnome/gnc-plugin-basic-commands.c:133
 msgid "_Scheduled Transaction Editor"
 msgstr "Terminierte Buchungen Editor"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:145
+#: ../src/gnome/gnc-plugin-basic-commands.c:134
 msgid "The list of Scheduled Transactions"
 msgstr "Die Liste der terminierten Buchungen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:147
-msgid "_Since Last Run..."
-msgstr "Seit letztem Aufruf..."
+#: ../src/gnome/gnc-plugin-basic-commands.c:136
+msgid "Since _Last Run..."
+msgstr "Seit _letztem Aufruf..."
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:148
+#: ../src/gnome/gnc-plugin-basic-commands.c:137
 msgid "Create Scheduled Transactions since the last time run"
 msgstr ""
 "Alle terminierten Buchungen seit dem letzten Aufruf von GnuCash erstellen."
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:150
+#: ../src/gnome/gnc-plugin-basic-commands.c:139
 msgid "_Mortgage & Loan Repayment..."
-msgstr "_Hypothek & Darlehen Druide..."
+msgstr "_Hypothek & Darlehen Assistent..."
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:151
+#: ../src/gnome/gnc-plugin-basic-commands.c:140
 msgid "Setup scheduled transactions for repayment of a loan"
 msgstr "Terminierte Buchungen einrichten, die ein Darlehen tilgen sollen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:154
+#: ../src/gnome/gnc-plugin-basic-commands.c:142
 msgid "Close _Books"
 msgstr "_Buchabschluß"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:155
+#: ../src/gnome/gnc-plugin-basic-commands.c:143
 msgid "Archive old data using accounting periods"
 msgstr "Alte Daten abschließen und in vorigen Buchführungsperioden speichern."
 
 #. Tools menu
-#: ../src/gnome/gnc-plugin-basic-commands.c:161
+#: ../src/gnome/gnc-plugin-basic-commands.c:148
 msgid "_Price Editor"
 msgstr "_Preis-Editor"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:162
+#: ../src/gnome/gnc-plugin-basic-commands.c:149
 msgid "View and edit the prices for stocks and mutual funds"
 msgstr "Preise für Währungen/Wertpapiere anzeigen und bearbeiten"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:164
+#: ../src/gnome/gnc-plugin-basic-commands.c:151
 msgid "_Security Editor"
 msgstr "_Aktien-Editor"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:165
+#: ../src/gnome/gnc-plugin-basic-commands.c:152
 msgid "View and edit the commodities for stocks and mutual funds"
 msgstr ""
 "Wertpapiere für Aktienkonten und Investmentfonds anzeigen und bearbeiten"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:167
+#: ../src/gnome/gnc-plugin-basic-commands.c:154
 msgid "_Financial Calculator"
 msgstr "_Finanzrechner"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:168
+#: ../src/gnome/gnc-plugin-basic-commands.c:155
 msgid "Use the financial calculator"
 msgstr "Den Finanzrechner benutzen"
 
 #. Help menu
-#: ../src/gnome/gnc-plugin-basic-commands.c:173
+#: ../src/gnome/gnc-plugin-basic-commands.c:160
 msgid "_Tips Of The Day"
 msgstr "_Tipp des Tages"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:174
+#: ../src/gnome/gnc-plugin-basic-commands.c:161
 msgid "View the Tips of the Day"
 msgstr "Anzeigen des »Tipp des Tages?«"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:392
+#: ../src/gnome/gnc-plugin-basic-commands.c:372
+#, c-format
+msgid "Error: Loading failed, error code %d - %s."
+msgstr ""
+
+#: ../src/gnome/gnc-plugin-basic-commands.c:394
 msgid "Select the QSF file to import into GnuCash"
 msgstr "Zu ladende QIF-Datei auswählen"
 
-#: ../src/gnome/gnc-plugin-basic-commands.c:447
+#: ../src/gnome/gnc-plugin-basic-commands.c:449
 msgid "There are no Scheduled Transactions to be entered at this time."
 msgstr "Es gibt keine terminierten Buchungen, die gebucht werden sollten."
 
@@ -6979,33 +7034,33 @@
 
 #. File menu
 #: ../src/gnome/gnc-plugin-page-account-tree.c:153
-#: ../src/gnome/gnc-plugin-page-budget.c:131
+#: ../src/gnome/gnc-plugin-page-budget.c:127
 msgid "Open _Account"
 msgstr "_Konto öffnen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:154
-#: ../src/gnome/gnc-plugin-page-budget.c:132
+#: ../src/gnome/gnc-plugin-page-budget.c:128
 msgid "Open the selected account"
 msgstr "Gewähltes Konto öffnen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:156
-#: ../src/gnome/gnc-plugin-page-budget.c:135
+#: ../src/gnome/gnc-plugin-page-budget.c:131
 msgid "Open _Subaccounts"
 msgstr "_Unterkonten öffnen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:157
-#: ../src/gnome/gnc-plugin-page-budget.c:136
+#: ../src/gnome/gnc-plugin-page-budget.c:132
 msgid "Open the selected account and all its subaccounts"
 msgstr "Öffne das gewählte Konto und alle Unterkonten"
 
 #. Edit menu
 #: ../src/gnome/gnc-plugin-page-account-tree.c:161
-#: ../src/gnome-utils/gnc-icons.c:18 ../src/gnome/window-reconcile.c:2009
-msgid "_Edit Account"
+#: ../src/gnome/gnc-plugin-page-register.c:179
+msgid "Edit _Account"
 msgstr "Konto _bearbeiten"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:162
-#: ../src/gnome/gnc-plugin-page-register.c:183
+#: ../src/gnome/gnc-plugin-page-register.c:180
 msgid "Edit the selected account"
 msgstr "Ausgewähltes Konto bearbeiten"
 
@@ -7027,43 +7082,43 @@
 
 #. View menu
 #: ../src/gnome/gnc-plugin-page-account-tree.c:172
-#: ../src/gnome/gnc-plugin-page-budget.c:152
-#: ../src/gnome/gnc-plugin-page-register.c:223
-#: ../src/gnome-utils/gnc-main-window.c:259
+#: ../src/gnome/gnc-plugin-page-budget.c:148
+#: ../src/gnome/gnc-plugin-page-register.c:220
+#: ../src/gnome-utils/gnc-main-window.c:263
 msgid "_Filter By..."
 msgstr "_Filtern nach..."
 
 #. Actions menu
 #: ../src/gnome/gnc-plugin-page-account-tree.c:176
-#: ../src/gnome/gnc-plugin-page-register.c:231
+#: ../src/gnome/gnc-plugin-page-register.c:228
 msgid "_Reconcile..."
 msgstr "Ab_gleichen..."
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:177
-#: ../src/gnome/gnc-plugin-page-register.c:232
+#: ../src/gnome/gnc-plugin-page-register.c:229
 msgid "Reconcile the selected account"
 msgstr "Gewähltes Konto abgleichen"
 
 #. Actions menu
 #: ../src/gnome/gnc-plugin-page-account-tree.c:179
-#: ../src/gnome/gnc-plugin-page-register.c:228
-#: ../src/gnome-utils/gnc-icons.c:21 ../src/gnome/window-reconcile.c:2012
+#: ../src/gnome/gnc-plugin-page-register.c:225
+#: ../src/gnome-utils/gnc-icons.c:21 ../src/gnome/window-reconcile.c:2014
 msgid "_Transfer..."
 msgstr "_Buchen..."
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:180
-#: ../src/gnome/gnc-plugin-page-register.c:229
-#: ../src/gnome/window-reconcile.c:2013
+#: ../src/gnome/gnc-plugin-page-register.c:226
+#: ../src/gnome/window-reconcile.c:2015
 msgid "Transfer funds from one account to another"
 msgstr "Beträge von einem Konto zu einem anderen umbuchen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:182
-#: ../src/gnome/gnc-plugin-page-register.c:234
+#: ../src/gnome/gnc-plugin-page-register.c:231
 msgid "Stoc_k Split..."
 msgstr "A_ktienteilung..."
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:183
-#: ../src/gnome/gnc-plugin-page-register.c:235
+#: ../src/gnome/gnc-plugin-page-register.c:232
 msgid "Record a stock split or a stock merger"
 msgstr "Buchen einer Aktienteilung oder eines Aktienzusammenschlusses"
 
@@ -7072,7 +7127,7 @@
 msgstr "_Posten anzeigen..."
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:186
-#: ../src/gnome/gnc-plugin-page-register.c:238
+#: ../src/gnome/gnc-plugin-page-register.c:235
 msgid "Bring up the lot viewer/editor window"
 msgstr "Den Editor für die Posten dieses Kontos öffnen"
 
@@ -7081,7 +7136,7 @@
 msgstr "_Konto überprüfen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:189
-#: ../src/gnome/window-reconcile.c:2016
+#: ../src/gnome/window-reconcile.c:2018
 msgid ""
 "Check for and repair unbalanced transactions and orphan splits in this "
 "account"
@@ -7089,7 +7144,7 @@
 "Überprüfen und Reparieren von unvollständigen Buchungssätzen in diesem Konto"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:191
-msgid "Check & Repair Su_baccount"
+msgid "Check & Repair Su_baccounts"
 msgstr "_Unterkonten überprüfen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:192
@@ -7112,13 +7167,14 @@
 "Überprüfen und Reparieren von unvollständigen Buchungssätzen in allen Konten"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:218
-#: ../src/gnome/gnc-plugin-page-budget.c:168 ../src/gnome/lot-viewer.c:436
-#: ../src/gnome-utils/gnc-file.c:97 ../src/gnome-utils/gnc-file.c:839
+#: ../src/gnome/gnc-plugin-page-budget.c:164 ../src/gnome/lot-viewer.c:434
+#: ../src/gnome-utils/gnc-file.c:95 ../src/gnome-utils/gnc-file.c:841
 #: ../src/gnome/window-reconcile.c:1564
 msgid "Open"
 msgstr "Öffnen"
 
 #: ../src/gnome/gnc-plugin-page-account-tree.c:220
+#: ../src/gnome/gnc-plugin-page-sx-list.c:116
 msgid "New"
 msgstr "Neu"
 
@@ -7126,289 +7182,299 @@
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/category-barchart.scm
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
 #: ../src/gnome/gnc-plugin-page-account-tree.c:309
-#: ../src/gnome-utils/glade/preferences.glade.h:31
-#: ../intl-scm/guile-strings.c:822 ../intl-scm/guile-strings.c:1214
-#: ../intl-scm/guile-strings.c:1676 ../intl-scm/guile-strings.c:1724
-#: ../intl-scm/guile-strings.c:2022 ../intl-scm/guile-strings.c:2702
-#: ../intl-scm/guile-strings.c:2750 ../intl-scm/guile-strings.c:2782
-#: ../intl-scm/guile-strings.c:2856
+#: ../src/gnome-utils/glade/preferences.glade.h:33
+#: ../intl-scm/guile-strings.c:1334 ../intl-scm/guile-strings.c:1926
+#: ../intl-scm/guile-strings.c:2386 ../intl-scm/guile-strings.c:2434
+#: ../intl-scm/guile-strings.c:2550 ../intl-scm/guile-strings.c:3010
+#: ../intl-scm/guile-strings.c:3058 ../intl-scm/guile-strings.c:3356
+#: ../intl-scm/guile-strings.c:4040 ../intl-scm/guile-strings.c:4088
+#: ../intl-scm/guile-strings.c:4120 ../intl-scm/guile-strings.c:4194
+#: ../intl-scm/guile-strings.c:4506 ../intl-scm/guile-strings.c:5190
+#: ../intl-scm/guile-strings.c:5238 ../intl-scm/guile-strings.c:5270
+#: ../intl-scm/guile-strings.c:5344
 msgid "Accounts"
 msgstr "Konten"
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:917
+#: ../src/gnome/gnc-plugin-page-account-tree.c:867
 msgid "(no name)"
 msgstr "(unbenannt)"
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:939
+#: ../src/gnome/gnc-plugin-page-account-tree.c:889
 #, c-format
 msgid "Deleting account %s"
 msgstr "Konto %s löschen"
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1031
+#: ../src/gnome/gnc-plugin-page-account-tree.c:981
 #, c-format
 msgid "The account %s will be deleted."
 msgstr "Das Konto %s wird gelöscht."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1041
+#: ../src/gnome/gnc-plugin-page-account-tree.c:991
 #, c-format
 msgid "All transactions in this account will be moved to the account %s."
 msgstr "Alle Buchungen in diesem Konto werden in das Konto %s verschoben."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1045
+#: ../src/gnome/gnc-plugin-page-account-tree.c:995
 msgid "All transactions in this account will be deleted."
 msgstr "Alle Buchungen in diesem Konto werden gelöscht."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1052
+#: ../src/gnome/gnc-plugin-page-account-tree.c:1002
 #, c-format
 msgid "All of its sub-accounts will be moved to the account %s."
 msgstr "Alle Unterkonten werden zum Konto %s verschoben."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1056
+#: ../src/gnome/gnc-plugin-page-account-tree.c:1006
 msgid "All of its subaccounts will be deleted."
 msgstr "Alle Unterkonten werden ebenfalls gelöscht."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1060
+#: ../src/gnome/gnc-plugin-page-account-tree.c:1010
 #, c-format
 msgid "All sub-account transactions will be moved to the account %s."
 msgstr "Alle Buchungen in Unterkonten werden in das Konto %s verschoben."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1064
+#: ../src/gnome/gnc-plugin-page-account-tree.c:1014
 msgid "All sub-account transactions will be deleted."
 msgstr "Alle Buchungen in Unterkonten werden ebenfalls gelöscht."
 
-#: ../src/gnome/gnc-plugin-page-account-tree.c:1069
+#: ../src/gnome/gnc-plugin-page-account-tree.c:1019
 msgid "Are you sure you want to do this?"
 msgstr "Soll diese Aktion durchgeführt werden?"
 
 #. Edit menu
-#: ../src/gnome/gnc-plugin-page-budget.c:140
+#: ../src/gnome/gnc-plugin-page-budget.c:136
 msgid "_Delete Budget"
 msgstr "Budget _löschen"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:141
+#: ../src/gnome/gnc-plugin-page-budget.c:137
 msgid "Delete this budget"
 msgstr "Dieses Budget löschen"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:144
+#: ../src/gnome/gnc-plugin-page-budget.c:140
 msgid "Edit this budget's options"
 msgstr "Budget-Optionen ändern"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:146
+#: ../src/gnome/gnc-plugin-page-budget.c:142
 msgid "Estimate Budget"
 msgstr "Budget abschätzen"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:148
+#: ../src/gnome/gnc-plugin-page-budget.c:144
 msgid ""
 "Estimate a budget value for the selected accounts from past transactions"
 msgstr ""
 "Die Budgetwerte für die gewählten Konten abschätzen, basierenden auf den "
 "früheren Buchungen"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:171
+#: ../src/gnome/gnc-plugin-page-budget.c:167
 msgid "Estimate"
 msgstr "Abschätzen"
 
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../src/gnome/gnc-plugin-page-budget.c:279 ../intl-scm/guile-strings.c:2678
-#: ../intl-scm/guile-strings.c:2680
+#: ../src/gnome/gnc-plugin-page-budget.c:275 ../intl-scm/guile-strings.c:4012
+#: ../intl-scm/guile-strings.c:4014 ../intl-scm/guile-strings.c:5162
+#: ../intl-scm/guile-strings.c:5164
 msgid "Budget"
 msgstr "Budget"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:774
+#: ../src/gnome/gnc-plugin-page-budget.c:770
 msgid "Set the budget options using this dialog."
 msgstr "Mit diesem Dialog können Sie die Budgetoptionen bearbeiten."
 
-#: ../src/gnome/gnc-plugin-page-budget.c:853
+#: ../src/gnome/gnc-plugin-page-budget.c:849
 #, c-format
 msgid "Delete %s?"
 msgstr "»%s« löschen?"
 
-#: ../src/gnome/gnc-plugin-page-budget.c:917
+#: ../src/gnome/gnc-plugin-page-budget.c:913
 msgid "You must select at least one account to estimate."
 msgstr "Sie müssen mindestens ein Konto auswählen, das geschätzt werden soll."
 
 #. File menu
-#: ../src/gnome/gnc-plugin-page-register.c:168
+#: ../src/gnome/gnc-plugin-page-register.c:165
 msgid "_Print Check..."
-msgstr "_Scheck drucken..."
+msgstr "Schec_k drucken..."
 
 #. Edit menu
-#: ../src/gnome/gnc-plugin-page-register.c:173
-#: ../src/gnome-utils/gnc-main-window.c:242
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:935
+#: ../src/gnome/gnc-plugin-page-register.c:170
+#: ../src/gnome-utils/gnc-main-window.c:246
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:945
 msgid "Cu_t"
 msgstr "_Ausschneiden"
 
-#: ../src/gnome/gnc-plugin-page-register.c:174
-#: ../src/gnome-utils/gnc-main-window.c:243
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:936
+#: ../src/gnome/gnc-plugin-page-register.c:171
+#: ../src/gnome-utils/gnc-main-window.c:247
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:946
 msgid "Cut the current selection and copy it to clipboard"
 msgstr "Auswahl ausschneiden und in die Zwischenablage kopieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:176
-#: ../src/gnome-utils/gnc-main-window.c:245
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:938
+#: ../src/gnome/gnc-plugin-page-register.c:173
+#: ../src/gnome-utils/gnc-main-window.c:249
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:948
 msgid "_Copy"
 msgstr "_Kopieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:177
-#: ../src/gnome-utils/gnc-main-window.c:246
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:939
+#: ../src/gnome/gnc-plugin-page-register.c:174
+#: ../src/gnome-utils/gnc-main-window.c:250
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:949
 msgid "Copy the current selection to clipboard"
 msgstr "Auswahl in die Zwischenablage kopieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:180
-#: ../src/gnome-utils/gnc-main-window.c:249
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:942
+#: ../src/gnome/gnc-plugin-page-register.c:177
+#: ../src/gnome-utils/gnc-main-window.c:253
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:952
 msgid "Paste the clipboard content at the cursor position"
 msgstr "Zwischenablage an Cursor-Position einfügen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:182
-#: ../src/gnome-utils/dialog-account.c:1387
-msgid "Edit Account"
-msgstr "Konto bearbeiten"
-
 #. Transaction menu
-#: ../src/gnome/gnc-plugin-page-register.c:188
+#: ../src/gnome/gnc-plugin-page-register.c:185
 msgid "Cu_t Transaction"
 msgstr "Buchung auss_chneiden"
 
-#: ../src/gnome/gnc-plugin-page-register.c:189
+#: ../src/gnome/gnc-plugin-page-register.c:186
 msgid "Cut the selected transaction into clipboard"
 msgstr "Buchung ausschneiden und in die Zwischenablage kopieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:191
+#: ../src/gnome/gnc-plugin-page-register.c:188
 msgid "_Copy Transaction"
 msgstr "Buchung _kopieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:192
+#: ../src/gnome/gnc-plugin-page-register.c:189
 msgid "Copy the selected transaction into clipboard"
 msgstr "Buchung in die Zwischenablage kopieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:194
+#: ../src/gnome/gnc-plugin-page-register.c:191
 msgid "_Paste Transaction"
 msgstr "Buchung _einfügen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:197
+#: ../src/gnome/gnc-plugin-page-register.c:194
 msgid "Dup_licate Transaction"
 msgstr "Buchung dupli_zieren"
 
-#: ../src/gnome/gnc-plugin-page-register.c:200
+#: ../src/gnome/gnc-plugin-page-register.c:197
 #: ../src/gnome/gnc-split-reg.c:1164
 msgid "_Delete Transaction"
 msgstr "_Buchung löschen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:203
+#: ../src/gnome/gnc-plugin-page-register.c:200
 msgid "Remo_ve Transaction Splits"
 msgstr "Buchungsteile entfernen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:204
+#: ../src/gnome/gnc-plugin-page-register.c:201
 msgid "Remove all splits in the current transaction"
 msgstr "Alle Buchungsteile im aktuellen Buchungssatz entfernen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:206
+#: ../src/gnome/gnc-plugin-page-register.c:203
 msgid "_Enter Transaction"
 msgstr "Buchung eingeben"
 
-#: ../src/gnome/gnc-plugin-page-register.c:209
+#: ../src/gnome/gnc-plugin-page-register.c:206
 msgid "Ca_ncel Transaction"
 msgstr "Buchung _abbrechen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:212
+#: ../src/gnome/gnc-plugin-page-register.c:209
 msgid "_Void Transaction"
 msgstr "Buchung _ungültig machen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:214
+#: ../src/gnome/gnc-plugin-page-register.c:211
 msgid "_Unvoid Transaction"
 msgstr "Ungültige Buchung wieder_herstellen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:216
+#: ../src/gnome/gnc-plugin-page-register.c:213
 msgid "Add _Reversing Transaction"
 msgstr "Stornierungsbuchung _hinzufügen"
 
 #. View menu
-#: ../src/gnome/gnc-plugin-page-register.c:221
-#: ../src/gnome-utils/gnc-main-window.c:257
+#: ../src/gnome/gnc-plugin-page-register.c:218
+#: ../src/gnome-utils/gnc-main-window.c:261
 msgid "_Sort By..."
 msgstr "_Sortieren nach..."
 
-#: ../src/gnome/gnc-plugin-page-register.c:237
+#: ../src/gnome/gnc-plugin-page-register.c:234
 msgid "_Lot Viewer..."
 msgstr "_Posten anzeigen..."
 
-#: ../src/gnome/gnc-plugin-page-register.c:240
+#: ../src/gnome/gnc-plugin-page-register.c:237
 msgid "_Blank Transaction"
 msgstr "_Leere Buchung"
 
-#: ../src/gnome/gnc-plugin-page-register.c:243
+#: ../src/gnome/gnc-plugin-page-register.c:240
 msgid "Edit E_xchange Rate"
 msgstr "Wechsel_kurs bearbeiten"
 
-#: ../src/gnome/gnc-plugin-page-register.c:244
-msgid "Exit the exchange rate for the current transaction"
+#: ../src/gnome/gnc-plugin-page-register.c:241
+msgid "Edit the exchange rate for the current transaction"
 msgstr "Den Wechselkurs für die gewählte Buchung bearbeiten"
 
-#: ../src/gnome/gnc-plugin-page-register.c:249
+#: ../src/gnome/gnc-plugin-page-register.c:246
 msgid "Sche_dule..."
 msgstr "_Terminiert..."
 
-#: ../src/gnome/gnc-plugin-page-register.c:252
+#: ../src/gnome/gnc-plugin-page-register.c:249
 msgid "_All transactions"
 msgstr "Alle Buchungssätze"
 
-#: ../src/gnome/gnc-plugin-page-register.c:255
+#: ../src/gnome/gnc-plugin-page-register.c:252
 msgid "_This transaction"
 msgstr "_Dieser Buchungssatz"
 
 #. Reports menu
-#: ../src/gnome/gnc-plugin-page-register.c:261
+#: ../src/gnome/gnc-plugin-page-register.c:258
 msgid "Account Report"
 msgstr "Kontenbericht"
 
+#: ../src/gnome/gnc-plugin-page-register.c:259
 #: ../src/gnome/gnc-plugin-page-register.c:262
-#: ../src/gnome/gnc-plugin-page-register.c:265
 msgid "Open a register report window for this transaction"
 msgstr "Kontobuch als Bericht für diesen Buchungssatz öffnen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:264
+#: ../src/gnome/gnc-plugin-page-register.c:261
 msgid "Account Transaction Report"
 msgstr "Buchungsbericht"
 
 #. Translators: This is a menu item in the View menu
-#: ../src/gnome/gnc-plugin-page-register.c:290
+#: ../src/gnome/gnc-plugin-page-register.c:287
 msgid "Transaction _Journal"
 msgstr "_Vollständig"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../src/gnome/gnc-plugin-page-register.c:326
-#: ../src/register/ledger-core/split-register.c:1979
+#: ../src/gnome/gnc-plugin-page-register.c:323
+#: ../src/register/ledger-core/split-register.c:2001
 #: ../src/register/ledger-core/split-register-layout.c:571
 #: ../src/register/ledger-core/split-register-model.c:184
-#: ../intl-scm/guile-strings.c:2562
+#: ../intl-scm/guile-strings.c:3896 ../intl-scm/guile-strings.c:5046
 msgid "Transfer"
 msgstr "Buchen"
 
 #. src/report/standard-reports/general-ledger.scm
-#: ../src/gnome/gnc-plugin-page-register.c:544
-#: ../src/gnome/gnc-plugin-page-register.c:1144
-#: ../src/gnome/gnc-plugin-page-register.c:1676
-#: ../intl-scm/guile-strings.c:1468
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#: ../src/gnome/gnc-plugin-page-register.c:541
+#: ../src/gnome/gnc-plugin-page-register.c:1141
+#: ../src/gnome/gnc-plugin-page-register.c:1673
+#: ../intl-scm/guile-strings.c:2178 ../intl-scm/guile-strings.c:2802
 msgid "General Ledger"
 msgstr "Journal"
 
 #. Translators: %s is the name
 #. of the tab page
-#: ../src/gnome/gnc-plugin-page-register.c:1083
+#: ../src/gnome/gnc-plugin-page-register.c:1080
 #, c-format
 msgid "Save changes to %s?"
 msgstr "Änderungen in %s speichern?"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1087
+#: ../src/gnome/gnc-plugin-page-register.c:1084
 msgid ""
 "This register has pending changes to a transaction.  Would you like to save "
 "the changes to this transaction, discard the transaction, or cancel the "
@@ -7418,85 +7484,111 @@
 "Schließen der Seite die Änderungen in der Buchung speichern oder verwerfen "
 "oder möchten Sie abbrechen?"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1090
+#: ../src/gnome/gnc-plugin-page-register.c:1087
 msgid "_Discard Transaction"
 msgstr "Buchungsänderungen ver_werfen"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1094
+#: ../src/gnome/gnc-plugin-page-register.c:1091
 msgid "_Save Transaction"
 msgstr "Buchung _speichern"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1125
-#: ../src/gnome/gnc-plugin-page-register.c:1157
-#: ../src/import-export/hbci/gnc-hbci-utils.c:577
-#: ../src/import-export/hbci/gnc-hbci-utils.c:579
+#: ../src/gnome/gnc-plugin-page-register.c:1122
+#: ../src/gnome/gnc-plugin-page-register.c:1154
+#: ../src/import-export/hbci/gnc-hbci-utils.c:578
+#: ../src/import-export/hbci/gnc-hbci-utils.c:580
 msgid "unknown"
 msgstr "unbekannt"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1146
-#: ../src/gnome/gnc-plugin-page-register.c:1682
+#: ../src/gnome/gnc-plugin-page-register.c:1143
+#: ../src/gnome/gnc-plugin-page-register.c:1679
 msgid "Portfolio"
 msgstr "Portfolio"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1148
-#: ../src/gnome/gnc-plugin-page-register.c:1688
+#: ../src/gnome/gnc-plugin-page-register.c:1145
+#: ../src/gnome/gnc-plugin-page-register.c:1685
 msgid "Search Results"
 msgstr "Suchergebnisse"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1678
+#: ../src/gnome/gnc-plugin-page-register.c:1675
 msgid "General Ledger Report"
 msgstr "Journal Bericht"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1684
+#: ../src/gnome/gnc-plugin-page-register.c:1681
 msgid "Portfolio Report"
 msgstr "Portfolio Bericht"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1690
+#: ../src/gnome/gnc-plugin-page-register.c:1687
 msgid "Search Results Report"
 msgstr "Suchergebnisse Bericht"
 
 #. src/report/standard-reports/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../src/gnome/gnc-plugin-page-register.c:1694
-#: ../src/gnome-utils/glade/preferences.glade.h:83
-#: ../intl-scm/guile-strings.c:1266 ../intl-scm/guile-strings.c:2662
+#: ../src/gnome/gnc-plugin-page-register.c:1691
+#: ../src/gnome-utils/glade/preferences.glade.h:91
+#: ../intl-scm/guile-strings.c:1978 ../intl-scm/guile-strings.c:2602
+#: ../intl-scm/guile-strings.c:3996 ../intl-scm/guile-strings.c:5146
 msgid "Register"
 msgstr "Kontobuch"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../src/gnome/gnc-plugin-page-register.c:1696
-#: ../intl-scm/guile-strings.c:2582
+#: ../src/gnome/gnc-plugin-page-register.c:1693
+#: ../intl-scm/guile-strings.c:3916 ../intl-scm/guile-strings.c:5066
 msgid "Register Report"
 msgstr "Bericht zum Kontobuch"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1712
+#: ../src/gnome/gnc-plugin-page-register.c:1709
 msgid "and subaccounts"
 msgstr "und Unterkonten"
 
-#: ../src/gnome/gnc-plugin-page-register.c:1978
+#: ../src/gnome/gnc-plugin-page-register.c:1975
 msgid "You cannot void a transaction with reconciled or cleared splits."
 msgstr ""
 "Sie können eine Buchung mit abgeglichenen oder bestätigten Buchungsteilen "
 "nicht ungültig machen."
 
-#: ../src/gnome/gnc-plugin-page-register.c:2046
+#: ../src/gnome/gnc-plugin-page-register.c:2043
 #: ../src/gnome/gnc-split-reg.c:908
 msgid "A reversing entry has already been created for this transaction."
 msgstr "Zu dieser Buchung wurde bereits eine Stornierungsbuchung hinzugefügt."
 
 #. Translations: The %s is the name of the plugin page
-#: ../src/gnome/gnc-plugin-page-register.c:2094
+#: ../src/gnome/gnc-plugin-page-register.c:2091
 #, c-format
 msgid "Sort %s by..."
 msgstr "%s sortieren nach..."
 
 #. Translators: The %s is the name of the plugin page
-#: ../src/gnome/gnc-plugin-page-register.c:2146
-#: ../src/gnome-utils/gnc-tree-view-account.c:1842
+#: ../src/gnome/gnc-plugin-page-register.c:2143
+#: ../src/gnome-utils/gnc-tree-view-account.c:1838
 #, c-format
 msgid "Filter %s by..."
 msgstr "%s filtern nach..."
 
+#. This seems to be the one that initially gets used, the InactiveDateCell
+#. is set to, and subsequently displayed.
+#: ../src/gnome/gnc-plugin-page-sx-list.c:115
+#: ../src/register/ledger-core/split-register-model.c:806
+msgid "Scheduled"
+msgstr "Terminiert"
+
+#: ../src/gnome/gnc-plugin-page-sx-list.c:117
+#, fuzzy
+msgid "Create a new scheduled transaction"
+msgstr "Bitte geben Sie der terminierten Buchung einen Namen."
+
+#: ../src/gnome/gnc-plugin-page-sx-list.c:119
+#, fuzzy
+msgid "Edit the selected scheduled transaction"
+msgstr "Ausgewählte terminierte Buchung löschen?"
+
+#: ../src/gnome/gnc-plugin-page-sx-list.c:121
+#, fuzzy
+msgid "Delete the selected scheduled transaction"
+msgstr "Ausgewählte terminierte Buchung löschen?"
+
 #: ../src/gnome/gnc-plugin-register.c:48
 msgid "_General Ledger"
 msgstr "_Journal"
@@ -7607,39 +7699,39 @@
 "Beachten Sie, dass Sie einen Buchungssatz mit abgeglichenen Buchungen "
 "löschen würden. Dies bedeutet, dass ihr abgeglichener Saldo verändert wird."
 
-#: ../src/gnome/gnc-split-reg.c:1795
+#: ../src/gnome/gnc-split-reg.c:1794
 msgid "Present:"
 msgstr "Aktueller Wert:"
 
-#: ../src/gnome/gnc-split-reg.c:1796
+#: ../src/gnome/gnc-split-reg.c:1795
 msgid "Future:"
 msgstr "Zukünftiger Wert:"
 
-#: ../src/gnome/gnc-split-reg.c:1797
+#: ../src/gnome/gnc-split-reg.c:1796
 msgid "Cleared:"
 msgstr "Bestätigt:"
 
-#: ../src/gnome/gnc-split-reg.c:1798
+#: ../src/gnome/gnc-split-reg.c:1797
 msgid "Reconciled:"
 msgstr "Abgeglichen:"
 
-#: ../src/gnome/gnc-split-reg.c:1799
+#: ../src/gnome/gnc-split-reg.c:1798
 msgid "Projected Minimum:"
 msgstr "Voraussichtliches Minimum:"
 
-#: ../src/gnome/gnc-split-reg.c:1803
+#: ../src/gnome/gnc-split-reg.c:1802
 msgid "Shares:"
 msgstr "Anteile:"
 
-#: ../src/gnome/gnc-split-reg.c:1804
+#: ../src/gnome/gnc-split-reg.c:1803
 msgid "Current Value:"
 msgstr "Aktueller Wert:"
 
-#: ../src/gnome/gnc-split-reg.c:1876
+#: ../src/gnome/gnc-split-reg.c:1875
 msgid "This account register is read-only."
 msgstr "Dieses Konto ist schreibgeschützt."
 
-#: ../src/gnome/gnc-split-reg.c:1910
+#: ../src/gnome/gnc-split-reg.c:1909
 msgid ""
 "This account may not be edited.  If you want to edit transactions in this "
 "register, please open the account options and turn off the placeholder "
@@ -7649,7 +7741,7 @@
 "Konto bearbeiten möchten, öffnen Sie bitte das Dialogfenster »Konto "
 "Eigenschaften« und deaktivieren Sie die Option »Platzhalter-Konto«."
 
-#: ../src/gnome/gnc-split-reg.c:1917
+#: ../src/gnome/gnc-split-reg.c:1916
 msgid ""
 "One of the sub-accounts selected may not be edited.  If you want to edit "
 "transactions in this register, please open the sub-account options and turn "
@@ -7669,7 +7761,21 @@
 msgid "Manage your finances, accounts, and investments"
 msgstr "Der Finanzmanager für Buchführung, Online-Banking und Investments"
 
-#: ../src/gnome/lot-viewer.c:596
+#. src/report/standard-reports/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/register.scm
+#. src/report/standard-reports/register.scm
+#: ../src/gnome/lot-viewer.c:620 ../intl-scm/guile-strings.c:1984
+#: ../intl-scm/guile-strings.c:2608 ../intl-scm/guile-strings.c:3912
+#: ../intl-scm/guile-strings.c:5062
+msgid "Title"
+msgstr "Titel"
+
+#: ../src/gnome/lot-viewer.c:630
+msgid "Gains"
+msgstr "Wertzuwachs"
+
+#: ../src/gnome/lot-viewer.c:652
 #, c-format
 msgid "Lots in Account %s"
 msgstr "Posten im Konto %s"
@@ -7756,7 +7862,7 @@
 "unterschritten wurde."
 
 #: ../src/gnome/schemas/apps_gnucash_dialog_common.schemas.in.h:3
-#: ../src/gnome-utils/glade/preferences.glade.h:47
+#: ../src/gnome-utils/glade/preferences.glade.h:50
 msgid "Default to 'new search' if fewer than this number of items is returned."
 msgstr ""
 "Voreinstellung 'Neue Suche' wählen, wenn diese Anzahl an Ergebnissen "
@@ -7794,7 +7900,7 @@
 msgstr "Spalten aufsteigend oder absteigend sortieren"
 
 #: ../src/gnome/schemas/apps_gnucash_dialog_common.schemas.in.h:11
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:6
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:10
 #: ../src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in.h:10
 msgid ""
 "The X,Y coordinates of the top left corner of the dialog when it was last "
@@ -7804,7 +7910,7 @@
 "geöffnet war."
 
 #: ../src/gnome/schemas/apps_gnucash_dialog_common.schemas.in.h:12
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:7
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:11
 #: ../src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in.h:11
 msgid "The width and size of the dialog when it was last closed."
 msgstr "Größe des Dialogs beim letzten Schließen"
@@ -7844,13 +7950,13 @@
 "sortiert wird. Mögliche Werte sind die Namen der Spalten oder »none« (keine)."
 
 #: ../src/gnome/schemas/apps_gnucash_dialog_common.schemas.in.h:17
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:9
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:17
 #: ../src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in.h:17
 msgid "Window geometry"
 msgstr "Fenstergröße"
 
 #: ../src/gnome/schemas/apps_gnucash_dialog_common.schemas.in.h:18
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:10
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:18
 #: ../src/import-export/schemas/apps_gnucash_import_generic_matcher.schemas.in.h:18
 msgid "Window position"
 msgstr "Fensterposition"
@@ -8052,7 +8158,7 @@
 msgstr "Bestätigte Buchungen zum Abgleichen vorwählen"
 
 #: ../src/gnome/schemas/apps_gnucash_dialog_reconcile.schemas.in.h:4
-#: ../src/gnome-utils/glade/preferences.glade.h:81
+#: ../src/gnome-utils/glade/preferences.glade.h:88
 msgid ""
 "Prior to reconciling an account which charges or pays interest, prompt the "
 "user to enter a transaction for the interest charge or payment. Currently "
@@ -8072,6 +8178,66 @@
 msgid "Prompt for interest charges"
 msgstr "Nach Eingabe Sollzins fragen"
 
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:1
+msgid "How many days in advance to notify the user."
+msgstr ""
+"Anzahl der Tage im Voraus, mit denen über die Terminierte Buchungen "
+"benachrichtigt werden soll."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:2
+msgid "How many days in advance to remind the user."
+msgstr ""
+"Anzahl der Tage im Voraus, die an Terminierte Buchungen erinnert werden soll."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:3
+msgid ""
+"If active, any newly created scheduled transaction will have its 'auto "
+"create' flag set active by default. The user can change this flag during "
+"transaction creation, or at any later time by editing the scheduled "
+"transaction."
+msgstr ""
+"Wenn aktiviert, werden neu erstellte Terminierte Buchungen »Automatisch "
+"erstellen« als Voreinstellung aktiviert haben. Diese Einstellung kann bei "
+"jeder Terminierten Buchung geändert werden."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:4
+msgid ""
+"If active, any newly created scheduled transaction will have its 'notify' "
+"flag set by default. The user can change this flag during transaction "
+"creation, or at any later time by editing the scheduled transaction. This "
+"setting only has meaning if the create_auto setting is active."
+msgstr ""
+"Wenn aktiviert, werden neu erstellte Terminierte Buchungen »Benachrichtigen« "
+"als Voreinstellung aktiviert haben. Diese Einstellung kann bei jeder "
+"Terminierten Buchung geändert werden. Diese Einstellung hat nur Bedeutung, "
+"wenn »Automatisch erstellen« aktiviert ist."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:5
+msgid "Set the \"auto create\" flag by default"
+msgstr ""
+"»Automatisch erstellen« für neue terminierte Buchungen als Voreinstellung "
+"wählen."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:6
+msgid "Set the \"notify\" flag by default"
+msgstr ""
+"»Benachrichtigen« für neue terminierte Buchungen als Voreinstellung wählen."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:7
+msgid "Show \"since last run\" dialog when a file is opened."
+msgstr ""
+"Das Fenster »Seit letztem Aufruf« anzeigen, wenn eine Datei geöffnet wird "
+"oder beim Programmstart von GnuCash."
+
+#: ../src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in.h:8
+msgid ""
+"This setting controls whether the scheduled transactions \"since last run\" "
+"dialog is shown automatically when a data file is opened. This includes the "
+"initial opening of the data file when GnuCash starts. If this setting is "
+"active, show the dialog, otherwise it is not shown."
+msgstr ""
+"Ob das Fenster »Seit letztem Aufruf« beim Öffnen einer Datei angezeigt wird."
+
 #: ../src/gnome/schemas/apps_gnucash_dialog_totd.schemas.in.h:1
 msgid ""
 "Enables the \"Tip Of The Day\" when GnuCash starts up. If active, the dialog "
@@ -8151,7 +8317,7 @@
 msgstr "Alte Log/Sicherungsdateien nach so vielen Tagen löschen (0 = niemals)."
 
 #: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:16
-#: ../src/gnome-utils/glade/preferences.glade.h:52
+#: ../src/gnome-utils/glade/preferences.glade.h:55
 msgid "Display negative amounts in red"
 msgstr "Negative Beträge in rot anzeigen"
 
@@ -8268,16 +8434,21 @@
 msgstr "Anzahl automatische Dezimalstellen"
 
 #: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:32
+#, fuzzy
+msgid "Position of the notebook tabs"
+msgstr "Position der Datumszeile"
+
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:33
 msgid "Save window sizes and locations"
 msgstr "Fenstergröße und -positionen speichern"
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:33
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:34
 msgid "Show close buttons on notebook tabs"
 msgstr "Den Knopf »Schließen« bei Karteikarten-Ansicht anzeigen"
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:34
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:35
 msgid ""
-"Show horizontal borders between cells in a register. If active the border "
+"Show horizontal borders between rows in a register. If active the border "
 "between cells will be indicated with a heavy line. Otherwise the border "
 "between cells will not be marked."
 msgstr ""
@@ -8285,11 +8456,15 @@
 "deutlichen Linie gezeichnet. Andernfalls wird die Begrenzung zwischen Zeilen "
 "nicht mit einer Linie markiert."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:35
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:36
 msgid "Show horizontal borders in a register"
 msgstr "Horizontale Begrenzungen im Kontofenster anzeigen"
 
 #: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:37
+msgid "Show splash screen"
+msgstr ""
+
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:39
 msgid ""
 "Show two lines of information for each transaction in a register. This is "
 "the default setting for when a register is first opened. The setting can be "
@@ -8300,9 +8475,9 @@
 "Kontofenster kann diese Einstellung jederzeit über das Menü »Anzeige/Zwei "
 "Zeilen« geändert werden."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:38
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:40
 msgid ""
-"Show vertical borders between cells in a register. If active the border "
+"Show vertical borders between columns in a register. If active the border "
 "between cells will be indicated with a heavy line. Otherwise the border "
 "between cells will not be marked."
 msgstr ""
@@ -8310,19 +8485,19 @@
 "deutlichen Linie gezeichnet. Andernfalls wird die Begrenzung zwischen "
 "Spalten nicht mit einer Linie markiert."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:39
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:41
 msgid "Show vertical borders in a register"
 msgstr "Vertikale Begrenzungen im Kontofenster anzeigen"
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:40
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:42
 msgid "Source of default account currency"
 msgstr "Auswahl Standardwährung für Konten"
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:41
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:43
 msgid "Source of default report currency"
 msgstr "Auswahl Standardwährung für Berichte"
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:43
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:45
 msgid ""
 "This field sets the number of rows to show in a register. It does not "
 "actually affect the display of the contents of the window. It is only used "
@@ -8332,7 +8507,7 @@
 "Kontofenster gezeigt werden. Diese Zahl wird nur verwendet, wenn das Fenster "
 "das erste Mal neu geöffnet wird."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:44
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:46
 msgid ""
 "This field specifies the default view style when opening a new register "
 "window. Possible values are \"ledger\", \"auto-ledger\" and \"journal\". The "
@@ -8345,13 +8520,13 @@
 "Kontenfenster an. Mögliche Werte sind »ledger« (Einzeilig), »auto-"
 "ledger« (Aktive vollständig) und »journal« (Vollständig)."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:45
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:47
 msgid ""
 "This field specifies the number of automatic decimal places that will be "
 "filled in."
 msgstr "Diese Einstellung gibt die Anzahl der automatischen Dezimalstellen an."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:46
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:48
 msgid ""
 "This setting allows certain accounts to have their balances reversed in sign "
 "from positive to negative, or vice versa. The setting \"income_expense\" is "
@@ -8365,7 +8540,7 @@
 "Einnahme-/Ausgabenkonten, »credit« für Aktiva-/Passivakonten und »none« für "
 "keine Vorzeichenumkehr."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:47
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:49
 msgid ""
 "This setting chooses the way dates are displayed in GnuCash. Possible values "
 "for this setting are \"locale\" to use the system locale setting, \"ce\" for "
@@ -8377,7 +8552,7 @@
 "Kontinentaleuropa, »iso« für den ISO-8601 Standard, »uk« für Großbritannien "
 "und »us« für den USA-Stil für die Datumsanzeige."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:48
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:50
 msgid ""
 "This setting controls how the labels on toolbar buttons are shown. If set to "
 "\"system\" then GnuCash will use the desktop setting for how to draw toolbar "
@@ -8392,7 +8567,7 @@
 "für alle Symbole, wobei die wichtigsten Knöpfe noch einen nebenstehenden "
 "Text zeigen."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:49
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:51
 msgid ""
 "This setting controls the default currency used for reports. If set to "
 "\"locale\" then GnuCash will retrieve the default currency from the user's "
@@ -8404,7 +8579,7 @@
 "voreingestellte Währung der Systemeinstellungen (locale). Wenn auf »other« "
 "gesetzt, wird die Einstellung von »currency_other« verwendet."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:50
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:52
 msgid ""
 "This setting controls the source of the default currency for new accounts. "
 "If set to \"locale\" then GnuCash will retrieve the default currency from "
@@ -8416,7 +8591,7 @@
 "Währung der Systemeinstellungen (locale). Wenn auf »other« gesetzt, wird die "
 "Einstellung von »currency_other« verwendet."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:51
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:53
 msgid ""
 "This setting determines the character that will be used between components "
 "of an account name. Possible values are any single non-alphanumeric unicode "
@@ -8427,8 +8602,20 @@
 "Zeichen wählen, das kein Buchstabe oder Zahl ist, zum Beispiel »:«, »/« oder "
 "»-«."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:52
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:54
 msgid ""
+"This setting determines the edge at which the tabs for switching pages in "
+"notebooks are drawn. Possible values are \"top\", \"left\", \"bottom\" and "
+"\"right\". It defaults to \"top\"."
+msgstr ""
+
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:55
+msgid ""
+"This setting determines whether GnuCash will show a splash screen at startup."
+msgstr ""
+
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:56
+msgid ""
 "This setting specifies the default currency used for new accounts if the "
 "currency_choice setting is set to \"other\". This field must contain the "
 "three letter ISO 4217 code for a currency (e.g. USD, GBP, RUB)."
@@ -8438,7 +8625,7 @@
 "muss den Drei-Buchstaben-Code aus ISO 4217 für die Währung enthalten, z. B. "
 "EUR, USD oder RUB."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:53
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:57
 msgid ""
 "This setting specifies the default currency used for reports if the "
 "currency_choice setting is set to \"other\". This field must contain the "
@@ -8449,7 +8636,7 @@
 "Einstellung muss den Drei-Buchstaben-Code aus ISO 4217 für die Währung "
 "enthalten, z. B. EUR, USD oder RUB."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:54
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:58
 msgid ""
 "This setting specifies the number of days after which old log/backup files "
 "will be deleted (0 = never)."
@@ -8457,11 +8644,11 @@
 "Diese Einstellung gibt die Anzahl Tage an, nach denen alte Log/Backup-"
 "Dateien gelöscht werden. 0 entspricht niemals Löschen."
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:55
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:59
 msgid "Use 24 hour time format"
 msgstr "24-Stunden-Format zur Zeitanzeige"
 
-#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:56
+#: ../src/gnome/schemas/apps_gnucash_general.schemas.in.h:60
 msgid "Use formal account labels"
 msgstr "Ãœberschriften aus Rechnungswesen verwenden"
 
@@ -8573,8 +8760,9 @@
 "des Kontos verändern."
 
 #: ../src/gnome/schemas/apps_gnucash_warnings.schemas.in.h:21
+#, fuzzy
 msgid ""
-"This dialog is presented before allowing you to remove a reconciled splits "
+"This dialog is presented before allowing you to remove a reconciled split "
 "from a transaction. Doing so will throw off the reconciled value of the "
 "register and can make it hard to perform future reconciliations."
 msgstr ""
@@ -8774,132 +8962,131 @@
 msgid "Width of a column in the dialog"
 msgstr "Spaltenbreite in einem Dialog"
 
-#: ../src/gnome-search/dialog-search.c:147
+#: ../src/gnome-search/dialog-search.c:155
 msgid "You must select an item from the list"
 msgstr "Sie müssen ein Kriterium der Liste auswählen"
 
-#: ../src/gnome-search/dialog-search.c:264
+#: ../src/gnome-search/dialog-search.c:272
 msgid "Select"
 msgstr "Auswählen"
 
-#: ../src/gnome-search/dialog-search.c:787
+#: ../src/gnome-search/dialog-search.c:806
 msgid "all criteria are met"
 msgstr "Alle Kriterien werden erfüllt"
 
-#: ../src/gnome-search/dialog-search.c:792
+#: ../src/gnome-search/dialog-search.c:807
 msgid "any criteria are met"
 msgstr "Irgendeines der Kriterien wird erfüllt"
 
 #. Translators: %s is either "item" or the name of some other
 #. * item, e.g. "Customer" or "Invoice".
-#: ../src/gnome-search/dialog-search.c:833
+#: ../src/gnome-search/dialog-search.c:842
 #, c-format
 msgid "New %s"
 msgstr "Neu: %s"
 
-#: ../src/gnome-search/dialog-search.c:833
+#: ../src/gnome-search/dialog-search.c:842
 msgid "item"
 msgstr "Kriterium"
 
-#: ../src/gnome-search/search-account.c:167
+#: ../src/gnome-search/search-account.c:170
 msgid "You have not selected any accounts"
 msgstr "Sie haben keine Konten ausgewählt"
 
-#: ../src/gnome-search/search-account.c:212
+#: ../src/gnome-search/search-account.c:190
 msgid "matches all accounts"
 msgstr "entspricht allen Konten"
 
-#: ../src/gnome-search/search-account.c:215
+#: ../src/gnome-search/search-account.c:193
 msgid "matches any account"
 msgstr "entspricht irgendeinem Konto"
 
-#. Force one
-#: ../src/gnome-search/search-account.c:217
+#: ../src/gnome-search/search-account.c:194
 msgid "matches no accounts"
 msgstr "entspricht keinem Konto"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../src/gnome-search/search-account.c:236 ../intl-scm/guile-strings.c:1324
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../src/gnome-search/search-account.c:211 ../intl-scm/guile-strings.c:2034
+#: ../intl-scm/guile-strings.c:2658
 msgid "Selected Accounts"
 msgstr "Ausgewählte Konten"
 
-#: ../src/gnome-search/search-account.c:237
+#: ../src/gnome-search/search-account.c:212
 msgid "Choose Accounts"
 msgstr "Konten wählen"
 
 #. Create the label
-#: ../src/gnome-search/search-account.c:269
+#: ../src/gnome-search/search-account.c:244
 msgid "Select Accounts to Match"
 msgstr "Konten wählen, die den Kriterien entsprechen"
 
-#: ../src/gnome-search/search-account.c:273
+#: ../src/gnome-search/search-account.c:248
 msgid "Select the Accounts to Compare"
 msgstr "Konten wählen, die verglichen werden sollen"
 
 #. Build and connect the toggle
-#: ../src/gnome-search/search-boolean.c:230
+#: ../src/gnome-search/search-boolean.c:201
 msgid "set true"
 msgstr "auf wahr setzen"
 
-#: ../src/gnome-search/search-date.c:214
+#: ../src/gnome-search/search-date.c:191
 msgid "is before"
 msgstr "vor"
 
-#. Force one
-#: ../src/gnome-search/search-date.c:216
+#: ../src/gnome-search/search-date.c:192
 msgid "is before or on"
 msgstr "vor oder am"
 
-#: ../src/gnome-search/search-date.c:217
+#: ../src/gnome-search/search-date.c:193
 msgid "is on"
 msgstr "am"
 
-#: ../src/gnome-search/search-date.c:218
+#: ../src/gnome-search/search-date.c:194
 msgid "is not on"
 msgstr "nicht am"
 
-#: ../src/gnome-search/search-date.c:219
+#: ../src/gnome-search/search-date.c:195
 msgid "is after"
 msgstr "nach"
 
-#: ../src/gnome-search/search-date.c:220
+#: ../src/gnome-search/search-date.c:196
 msgid "is on or after"
 msgstr "nach oder am"
 
-#: ../src/gnome-search/search-double.c:206
-#: ../src/gnome-search/search-int64.c:209
-#: ../src/gnome-search/search-numeric.c:246
+#: ../src/gnome-search/search-double.c:183
+#: ../src/gnome-search/search-int64.c:185
+#: ../src/gnome-search/search-numeric.c:216
 msgid "is less than"
 msgstr "weniger als"
 
-#. Force one
-#: ../src/gnome-search/search-double.c:208
-#: ../src/gnome-search/search-int64.c:211
-#: ../src/gnome-search/search-numeric.c:251
+#: ../src/gnome-search/search-double.c:184
+#: ../src/gnome-search/search-int64.c:186
+#: ../src/gnome-search/search-numeric.c:220
 msgid "is less than or equal to"
 msgstr "weniger als oder gleich"
 
-#: ../src/gnome-search/search-double.c:209
-#: ../src/gnome-search/search-int64.c:212
-#: ../src/gnome-search/search-numeric.c:254
+#: ../src/gnome-search/search-double.c:185
+#: ../src/gnome-search/search-int64.c:187
+#: ../src/gnome-search/search-numeric.c:223
 msgid "equals"
 msgstr "gleich"
 
-#: ../src/gnome-search/search-double.c:210
-#: ../src/gnome-search/search-int64.c:213
-#: ../src/gnome-search/search-numeric.c:257
+#: ../src/gnome-search/search-double.c:186
+#: ../src/gnome-search/search-int64.c:188
+#: ../src/gnome-search/search-numeric.c:226
 msgid "does not equal"
 msgstr "nicht gleich"
 
-#: ../src/gnome-search/search-double.c:211
-#: ../src/gnome-search/search-int64.c:214
-#: ../src/gnome-search/search-numeric.c:260
+#: ../src/gnome-search/search-double.c:187
+#: ../src/gnome-search/search-int64.c:189
+#: ../src/gnome-search/search-numeric.c:229
 msgid "is greater than"
 msgstr "größer als"
 
-#: ../src/gnome-search/search-double.c:212
-#: ../src/gnome-search/search-int64.c:215
-#: ../src/gnome-search/search-numeric.c:264
+#: ../src/gnome-search/search-double.c:188
+#: ../src/gnome-search/search-int64.c:190
+#: ../src/gnome-search/search-numeric.c:233
 msgid "is greater than or equal to"
 msgstr "größer als oder gleich"
 
@@ -8951,74 +9138,73 @@
 msgstr "Suchtyp"
 
 #: ../src/gnome-search/search.glade.h:12
-msgid "_New item ..."
+msgid "_New item..."
 msgstr "_Neuer Eintrag..."
 
-#: ../src/gnome-search/search-numeric.c:246
+#: ../src/gnome-search/search-numeric.c:216
 msgid "less than"
 msgstr "kleiner"
 
-#: ../src/gnome-search/search-numeric.c:250
+#: ../src/gnome-search/search-numeric.c:219
 msgid "less than or equal to"
 msgstr "kleiner oder gleich"
 
-#: ../src/gnome-search/search-numeric.c:254
+#: ../src/gnome-search/search-numeric.c:223
 msgid "equal to"
 msgstr "gleich"
 
-#: ../src/gnome-search/search-numeric.c:257
+#: ../src/gnome-search/search-numeric.c:226
 msgid "not equal to"
 msgstr "ungleich"
 
-#: ../src/gnome-search/search-numeric.c:260
+#: ../src/gnome-search/search-numeric.c:229
 msgid "greater than"
 msgstr "größer"
 
-#: ../src/gnome-search/search-numeric.c:263
+#: ../src/gnome-search/search-numeric.c:232
 msgid "greater than or equal to"
 msgstr "größer oder gleich"
 
-#: ../src/gnome-search/search-numeric.c:285
+#: ../src/gnome-search/search-numeric.c:249
 msgid "has credits or debits"
 msgstr "hat Haben oder Soll"
 
-#. Force one
-#: ../src/gnome-search/search-numeric.c:288
+#: ../src/gnome-search/search-numeric.c:250
 msgid "has debits"
 msgstr "hat Soll"
 
-#: ../src/gnome-search/search-numeric.c:290
+#: ../src/gnome-search/search-numeric.c:251
 msgid "has credits"
 msgstr "hat Haben"
 
 #. Build and connect the toggles
-#: ../src/gnome-search/search-reconciled.c:251
+#: ../src/gnome-search/search-reconciled.c:222
 msgid "Not Cleared"
 msgstr "Unbestätigt"
 
-#: ../src/gnome-search/search-reconciled.c:254
-#: ../src/gnome-utils/gnc-tree-view-account.c:578
+#: ../src/gnome-search/search-reconciled.c:225
+#: ../src/gnome-utils/gnc-tree-view-account.c:574
 msgid "Cleared"
 msgstr "Bestätigt"
 
-#: ../src/gnome-search/search-reconciled.c:257
-#: ../src/gnome-utils/gnc-tree-view-account.c:591
+#: ../src/gnome-search/search-reconciled.c:228
+#: ../src/gnome-utils/gnc-tree-view-account.c:587
 msgid "Reconciled"
 msgstr "Abgeglichen"
 
-#: ../src/gnome-search/search-reconciled.c:260
+#: ../src/gnome-search/search-reconciled.c:231
 msgid "Frozen"
 msgstr "Fixiert"
 
-#: ../src/gnome-search/search-reconciled.c:263
+#: ../src/gnome-search/search-reconciled.c:234
 msgid "Voided"
 msgstr "Storniert"
 
-#: ../src/gnome-search/search-string.c:183
+#: ../src/gnome-search/search-string.c:186
 msgid "You need to enter a string value"
 msgstr "Sie müssen einen Suchausdruck angeben"
 
-#: ../src/gnome-search/search-string.c:210
+#: ../src/gnome-search/search-string.c:213
 #, c-format
 msgid ""
 "Error in regular expression '%s':\n"
@@ -9027,24 +9213,20 @@
 "Fehler im regulären Ausdruck '%s':\n"
 "%s"
 
-#: ../src/gnome-search/search-string.c:274
+#: ../src/gnome-search/search-string.c:257
 msgid "contains"
 msgstr "enthält"
 
-#: ../src/gnome-search/search-string.c:277
-msgid "does not contain"
-msgstr "enthält nicht"
-
-#: ../src/gnome-search/search-string.c:281
+#: ../src/gnome-search/search-string.c:258
 msgid "matches regex"
 msgstr "entspricht regulärem Ausdruck"
 
-#: ../src/gnome-search/search-string.c:285
+#: ../src/gnome-search/search-string.c:260
 msgid "does not match regex"
 msgstr "entspricht nicht regulärem Ausdruck"
 
 #. Build and connect the toggle button
-#: ../src/gnome-search/search-string.c:353
+#: ../src/gnome-search/search-string.c:322
 msgid "Case Insensitive?"
 msgstr "Groß-/Kleinschreibung ignorieren?"
 
@@ -9053,22 +9235,22 @@
 msgid "Entity Not Found: %s"
 msgstr "Entity nicht gefunden: %s"
 
-#: ../src/gnome/top-level.c:143
+#: ../src/gnome/top-level.c:144
 #, c-format
 msgid "Transaction with no Accounts: %s"
 msgstr "Buchungssatz ohne Konto: %s"
 
-#: ../src/gnome/top-level.c:154
+#: ../src/gnome/top-level.c:155
 #, c-format
 msgid "Unsupported entity type: %s"
 msgstr "Unbekannter Entity Typ: %s"
 
-#: ../src/gnome/top-level.c:184
+#: ../src/gnome/top-level.c:185
 #, c-format
 msgid "No such price: %s"
 msgstr "Kein Preis gefunden: %s"
 
-#: ../src/gnome/top-level.c:369
+#: ../src/gnome/top-level.c:353
 #, c-format
 msgid ""
 "Error: Failure saving state file.\n"
@@ -9077,57 +9259,66 @@
 "Fehler beim Speichern des Status-file.\n"
 "  %s"
 
-#: ../src/gnome-utils/dialog-account.c:411
+#: ../src/gnome-utils/dialog-account.c:420
 msgid "Could not create opening balance."
 msgstr "Anfangsbestand kann nicht erstellt werden."
 
-#: ../src/gnome-utils/dialog-account.c:648
-msgid "Field"
-msgstr "Feld"
+#. primary label
+#: ../src/gnome-utils/dialog-account.c:612
+msgid "Give the children the same type?"
+msgstr ""
+"Soll die Kontoart der Unterkonten zur gleichen Kontoart geändert werden?"
 
-#: ../src/gnome-utils/dialog-account.c:649
-msgid "Old Value"
-msgstr "Alter Wert"
+#. secondary label
+#: ../src/gnome-utils/dialog-account.c:630
+#, c-format
+msgid ""
+"The children of the edited account have to be changed to type \"%s\" to make "
+"them compatible."
+msgstr ""
+"Die Kontoart der Unterkonten des aktuell bearbeiteten Kontos muss zur "
+"Kontoart »%s« geändert werden, damit die Kontoarten wieder zueinander passen."
 
-#: ../src/gnome-utils/dialog-account.c:650
-msgid "New Value"
-msgstr "Neuer Wert"
+#. children
+#: ../src/gnome-utils/dialog-account.c:641
+msgid "_Show children accounts"
+msgstr "_Unterkonten anzeigen"
 
-#: ../src/gnome-utils/dialog-account.c:676
-msgid "Verify Changes"
-msgstr "Änderungen überprüfen"
-
-#: ../src/gnome-utils/dialog-account.c:689
-msgid "The following changes must be made. Continue?"
-msgstr "Die folgenden Änderungen müssen gemacht werden. Fortsetzen?"
-
-#: ../src/gnome-utils/dialog-account.c:757
+#: ../src/gnome-utils/dialog-account.c:714
 msgid "The account must be given a name."
 msgstr "Das Konto muss einen Namen erhalten."
 
-#: ../src/gnome-utils/dialog-account.c:779
+#: ../src/gnome-utils/dialog-account.c:736
 msgid "There is already an account with that name."
 msgstr "Es gibt bereits ein Konto mit diesem Namen."
 
-#: ../src/gnome-utils/dialog-account.c:787
+#: ../src/gnome-utils/dialog-account.c:744
 msgid "You must choose a valid parent account."
 msgstr "Wählen Sie ein gültiges Hauptkonto"
 
-#: ../src/gnome-utils/dialog-account.c:795
+#: ../src/gnome-utils/dialog-account.c:752
 msgid "You must select an account type."
 msgstr "Wählen Sie eine Kontoart"
 
-#: ../src/gnome-utils/dialog-account.c:805
+#: ../src/gnome-utils/dialog-account.c:761
+msgid ""
+"The selected account type is incompatible with the one of the selected "
+"parent."
+msgstr ""
+"Die gewählte Kontoart passt nicht zu der Kontoart des Hauptkontos von diesem "
+"Konto."
+
+#: ../src/gnome-utils/dialog-account.c:772
 msgid "You must choose a commodity."
 msgstr "Sie müssen eine Währung/Aktie auswählen."
 
-#: ../src/gnome-utils/dialog-account.c:928
+#: ../src/gnome-utils/dialog-account.c:824
 msgid "You must enter a valid opening balance or leave it blank."
 msgstr ""
 "Sie müssen entweder einen gültigen Anfangsbestand angeben \n"
 "oder das Feld freilassen."
 
-#: ../src/gnome-utils/dialog-account.c:952
+#: ../src/gnome-utils/dialog-account.c:848
 msgid ""
 "You must select a transfer account or choose the opening balances equity "
 "account."
@@ -9135,12 +9326,16 @@
 "Sie müssen ein Herkunftskonto wählen oder das Ausgleichskonto für den "
 "Anfangsbestand benutzen."
 
-#: ../src/gnome-utils/dialog-account.c:1390
+#: ../src/gnome-utils/dialog-account.c:1338
+msgid "Edit Account"
+msgstr "Konto bearbeiten"
+
+#: ../src/gnome-utils/dialog-account.c:1341
 #, c-format
 msgid "(%d) New Accounts"
 msgstr "(%d) Neue Konten"
 
-#: ../src/gnome-utils/dialog-account.c:1897
+#: ../src/gnome-utils/dialog-account.c:1846
 #, c-format
 msgid ""
 "Renumber the immediate sub-accounts of %s?  This will replace the account "
@@ -9149,7 +9344,7 @@
 "Das Unterkonto von %s neu nummerieren?  Dies wird das Kontonummer-Feld von "
 "jedem Unterkonto mit dem entsprechenden neuen Wert überschreiben."
 
-#: ../src/gnome-utils/dialog-commodity.c:161
+#: ../src/gnome-utils/dialog-commodity.c:166
 msgid ""
 "\n"
 "Please select a commodity to match:"
@@ -9157,7 +9352,7 @@
 "\n"
 "Geben Sie eine Währung/Aktie an, die passt:"
 
-#: ../src/gnome-utils/dialog-commodity.c:168
+#: ../src/gnome-utils/dialog-commodity.c:173
 msgid ""
 "\n"
 "Commodity: "
@@ -9165,7 +9360,7 @@
 "\n"
 "Währung/Aktie: "
 
-#: ../src/gnome-utils/dialog-commodity.c:170
+#: ../src/gnome-utils/dialog-commodity.c:175
 msgid ""
 "\n"
 "Exchange code (CUSIP or similar): "
@@ -9173,7 +9368,7 @@
 "\n"
 "Tickersymbol (CUSIP oder ähnliches): "
 
-#: ../src/gnome-utils/dialog-commodity.c:172
+#: ../src/gnome-utils/dialog-commodity.c:177
 msgid ""
 "\n"
 "Mnemonic(Ticker symbol or similar): "
@@ -9181,57 +9376,57 @@
 "\n"
 "Abkürzung/Tickersymbol: "
 
-#: ../src/gnome-utils/dialog-commodity.c:259
+#: ../src/gnome-utils/dialog-commodity.c:269
 msgid "Select security/currency"
 msgstr "Bitte wählen Sie die Aktie/Währung"
 
-#: ../src/gnome-utils/dialog-commodity.c:263
+#: ../src/gnome-utils/dialog-commodity.c:273
 msgid "Select security"
 msgstr "Bitte wählen Sie die Aktie"
 
-#: ../src/gnome-utils/dialog-commodity.c:268
+#: ../src/gnome-utils/dialog-commodity.c:278
 msgid "Select currency"
 msgstr "Bitte wählen Sie die Währung"
 
-#: ../src/gnome-utils/dialog-commodity.c:487
+#: ../src/gnome-utils/dialog-commodity.c:510
 msgid "You must select a commodity. To create a new one, click \"New\""
 msgstr ""
 "Sie müssen eine Währung/Aktie auswählen. Wenn Sie eine neue anlegen möchten, "
 "klicken Sie auf »Neu«."
 
-#: ../src/gnome-utils/dialog-commodity.c:812
+#: ../src/gnome-utils/dialog-commodity.c:841
 msgid "Use local time"
 msgstr "Lokale Zeit benutzen"
 
-#: ../src/gnome-utils/dialog-commodity.c:935
+#: ../src/gnome-utils/dialog-commodity.c:955
 msgid "Edit currency"
 msgstr "Währung bearbeiten"
 
-#: ../src/gnome-utils/dialog-commodity.c:936
+#: ../src/gnome-utils/dialog-commodity.c:956
 msgid "Currency Information"
 msgstr "Währungsinformationen"
 
-#: ../src/gnome-utils/dialog-commodity.c:939
+#: ../src/gnome-utils/dialog-commodity.c:959
 msgid "Edit security"
 msgstr "Aktie bearbeiten"
 
-#: ../src/gnome-utils/dialog-commodity.c:939
+#: ../src/gnome-utils/dialog-commodity.c:959
 msgid "New security"
 msgstr "Neue Aktie/Währung"
 
-#: ../src/gnome-utils/dialog-commodity.c:940
+#: ../src/gnome-utils/dialog-commodity.c:960
 msgid "Security Information"
 msgstr "Aktieninformationen"
 
-#: ../src/gnome-utils/dialog-commodity.c:1184
+#: ../src/gnome-utils/dialog-commodity.c:1206
 msgid "You may not create a new national currency."
 msgstr "Sie können keine neue nationale Währung erstellen."
 
-#: ../src/gnome-utils/dialog-commodity.c:1196
+#: ../src/gnome-utils/dialog-commodity.c:1218
 msgid "That commodity already exists."
 msgstr "Diese Währung/Aktie existiert bereits."
 
-#: ../src/gnome-utils/dialog-commodity.c:1238
+#: ../src/gnome-utils/dialog-commodity.c:1261
 msgid ""
 "You must enter a non-empty \"Full name\", \"Symbol/abbreviation\", and \"Type"
 "\" for the commodity."
@@ -9239,70 +9434,65 @@
 "Sie müssen in den Feldern »Voller Name«, »Symbol/Abkürzung« und »Typ« für "
 "die Währung/Aktie etwas angeben."
 
-#: ../src/gnome-utils/dialog-options.c:885
+#: ../src/gnome-utils/dialog-options.c:872
 msgid "Select all accounts."
 msgstr "Alle Konten auswählen."
 
-#: ../src/gnome-utils/dialog-options.c:890
-#: ../src/gnome-utils/dialog-options.c:1017
+#: ../src/gnome-utils/dialog-options.c:877
+#: ../src/gnome-utils/dialog-options.c:995
 msgid "Clear All"
 msgstr "Keine auswählen"
 
-#: ../src/gnome-utils/dialog-options.c:892
+#: ../src/gnome-utils/dialog-options.c:879
 msgid "Clear the selection and unselect all accounts."
 msgstr "Auswahl löschen und gar keine Konten auswählen."
 
-#: ../src/gnome-utils/dialog-options.c:898
-#: ../src/gnome-utils/dialog-options.c:1024
+#: ../src/gnome-utils/dialog-options.c:885
+#: ../src/gnome-utils/dialog-options.c:1002
 msgid "Select Default"
 msgstr "Voreinstellung"
 
-#: ../src/gnome-utils/dialog-options.c:900
+#: ../src/gnome-utils/dialog-options.c:887
 msgid "Select the default account selection."
 msgstr "Die voreingestellte Kontenauswahl auswählen."
 
-#: ../src/gnome-utils/dialog-options.c:1012
+#: ../src/gnome-utils/dialog-options.c:990
 msgid "Select all entries."
 msgstr "Alle Einträge auswählen."
 
-#: ../src/gnome-utils/dialog-options.c:1019
+#: ../src/gnome-utils/dialog-options.c:997
 msgid "Clear the selection and unselect all entries."
 msgstr "Auswahl löschen und gar keine Einträge auswählen."
 
-#: ../src/gnome-utils/dialog-options.c:1026
+#: ../src/gnome-utils/dialog-options.c:1004
 msgid "Select the default selection."
 msgstr "Die voreingestellte Auswahl auswählen."
 
 #. The reset button on each option page
-#: ../src/gnome-utils/dialog-options.c:1178
+#: ../src/gnome-utils/dialog-options.c:1156
 msgid "Defaults"
 msgstr "Voreinstellung"
 
-#: ../src/gnome-utils/dialog-options.c:1180
+#: ../src/gnome-utils/dialog-options.c:1158
 msgid "Reset all values to their defaults."
 msgstr "Alle Werte auf ihre Voreinstellung zurücksetzen."
 
-#: ../src/gnome-utils/dialog-options.c:2038
+#: ../src/gnome-utils/dialog-options.c:1998
 msgid "Clear"
 msgstr "Zurücksetzen"
 
-#: ../src/gnome-utils/dialog-options.c:2039
+#: ../src/gnome-utils/dialog-options.c:1999
 msgid "Clear any selected image file."
 msgstr "Auswahl der Bilddatei wieder löschen."
 
-#: ../src/gnome-utils/dialog-options.c:2042
+#: ../src/gnome-utils/dialog-options.c:2001
 msgid "Select image"
 msgstr "Bild auswählen"
 
-#: ../src/gnome-utils/dialog-options.c:2044
-#: ../src/gnome-utils/dialog-options.c:2060
+#: ../src/gnome-utils/dialog-options.c:2003
 msgid "Select an image file."
 msgstr "Bilddatei auswählen."
 
-#: ../src/gnome-utils/dialog-options.c:2058
-msgid "Select pixmap"
-msgstr "Bild auswählen"
-
 #. Translators: Both %s will be the account separator character; the
 #. resulting string is a demonstration how the account separator
 #. character will look like. You can replace these three account
@@ -9314,11 +9504,11 @@
 msgid "Income%sSalary%sTaxable"
 msgstr "Erträge%sEinkommen%szu versteuern"
 
-#: ../src/gnome-utils/dialog-transfer.c:448
+#: ../src/gnome-utils/dialog-transfer.c:449
 msgid "Show the income and expense accounts"
 msgstr "Anzeige der Ertrags- und Aufwand-Konten"
 
-#: ../src/gnome-utils/dialog-transfer.c:1356
+#: ../src/gnome-utils/dialog-transfer.c:1357
 msgid ""
 "You must specify an account to transfer from, or to, or both, for this "
 "transaction. Otherwise, it will not be recorded."
@@ -9326,11 +9516,11 @@
 "Sie müssen ein Konto angeben, zu dem oder von dem umgebucht werden soll. "
 "Andernfalls wird kein Buchungssatz gespeichert."
 
-#: ../src/gnome-utils/dialog-transfer.c:1366
+#: ../src/gnome-utils/dialog-transfer.c:1367
 msgid "You can't transfer from and to the same account!"
 msgstr "Herkunfts- und Zielkonto können nicht identisch sein."
 
-#: ../src/gnome-utils/dialog-transfer.c:1392
+#: ../src/gnome-utils/dialog-transfer.c:1393
 msgid ""
 "You can't transfer from a non-currency account.  Try reversing the \"from\" "
 "and \"to\" accounts and making the \"amount\" negative."
@@ -9339,56 +9529,56 @@
 "normaler Währung. Sie sollten Sie die Von/Nach-Konten vertauschen und den "
 "Betrag negativ eingeben."
 
-#: ../src/gnome-utils/dialog-transfer.c:1417
+#: ../src/gnome-utils/dialog-transfer.c:1418
 msgid "You must enter an amount to transfer."
 msgstr "Sie müssen einen Betrag angeben."
 
-#: ../src/gnome-utils/dialog-transfer.c:1432
+#: ../src/gnome-utils/dialog-transfer.c:1433
 msgid "You must enter a valid price."
 msgstr "Sie müssen einen gültigen Preis angeben."
 
-#: ../src/gnome-utils/dialog-transfer.c:1444
+#: ../src/gnome-utils/dialog-transfer.c:1445
 msgid "You must enter a valid `to' amount."
 msgstr "Sie müssen einen gültigen Betrag eingeben."
 
-#: ../src/gnome-utils/dialog-transfer.c:1738
+#: ../src/gnome-utils/dialog-transfer.c:1740
 msgid "Debit Account"
 msgstr "Sollkonto"
 
-#: ../src/gnome-utils/dialog-transfer.c:1755
+#: ../src/gnome-utils/dialog-transfer.c:1757
 msgid "Transfer From"
 msgstr "Herkunftskonto"
 
-#: ../src/gnome-utils/dialog-transfer.c:1759
+#: ../src/gnome-utils/dialog-transfer.c:1761
 msgid "Transfer To"
 msgstr "Buchen nach"
 
-#: ../src/gnome-utils/dialog-transfer.c:1820
+#: ../src/gnome-utils/dialog-transfer.c:1822
 msgid "Debit Amount:"
 msgstr "Soll Betrag:"
 
-#: ../src/gnome-utils/dialog-transfer.c:1824
-#: ../src/gnome-utils/glade/transfer.glade.h:14
+#: ../src/gnome-utils/dialog-transfer.c:1826
+#: ../src/gnome-utils/glade/transfer.glade.h:13
 msgid "To Amount:"
 msgstr "zum Betrag:"
 
-#: ../src/gnome-utils/dialog-utils.c:959
+#: ../src/gnome-utils/dialog-utils.c:955
 msgid "Remember and don't _ask me again."
 msgstr "_Antwort speichern und nicht wieder anzeigen."
 
-#: ../src/gnome-utils/dialog-utils.c:960
+#: ../src/gnome-utils/dialog-utils.c:956
 msgid "Don't _tell me again."
 msgstr "_Nicht wieder anzeigen."
 
-#: ../src/gnome-utils/dialog-utils.c:963
+#: ../src/gnome-utils/dialog-utils.c:959
 msgid "Remember and don't ask me again this _session."
 msgstr "Antwort speichern und in _dieser Sitzung nicht wieder anzeigen."
 
-#: ../src/gnome-utils/dialog-utils.c:964
+#: ../src/gnome-utils/dialog-utils.c:960
 msgid "Don't tell me again this _session."
 msgstr "In dieser _Sitzung nicht wieder anzeigen."
 
-#: ../src/gnome-utils/druid-gconf-setup.c:403
+#: ../src/gnome-utils/druid-gconf-setup.c:409
 msgid ""
 "When you click Apply, GnuCash will modify your ~/.gconf.path file and "
 "restart the gconf backend."
@@ -9396,7 +9586,7 @@
 "Wenn Sie »Anwenden« klicken, wird GnuCash Ihre ~/.gconf.path Datei anpassen "
 "und den gconf-Server neu starten."
 
-#: ../src/gnome-utils/druid-gconf-setup.c:406
+#: ../src/gnome-utils/druid-gconf-setup.c:412
 #, c-format
 msgid ""
 "When you click Apply, GnuCash will install the gconf data into your local ~/."
@@ -9407,7 +9597,7 @@
 "gconf Datei schreiben und den gconf-Server neu starten. Das Skript %s muss "
 "dazu in Ihrem Suchpfad zu finden sein, damit dies korrekt funktioniert."
 
-#: ../src/gnome-utils/druid-gconf-setup.c:410
+#: ../src/gnome-utils/druid-gconf-setup.c:416
 msgid ""
 "You have chosen to correct the problem by yourself.  When you click Apply, "
 "GnuCash will exit.  Please correct the problem and restart the gconf backend "
@@ -9421,7 +9611,7 @@
 "dem Kommando »gconftool-2 --shutdown«. Sie können noch den Knopf »Zurück« "
 "klicken, um den notwendigen Text zu kopieren."
 
-#: ../src/gnome-utils/druid-gconf-setup.c:416
+#: ../src/gnome-utils/druid-gconf-setup.c:422
 #, c-format
 msgid ""
 "You have chosen to correct the problem by yourself.  When you click Apply, "
@@ -9432,7 +9622,7 @@
 "klicken, wird sich GnuCash beenden. Bitte starten Sie das Skript %s was die "
 "notwendigen Daten schreibt und den gconf-Server neu startet."
 
-#: ../src/gnome-utils/druid-gconf-setup.c:420
+#: ../src/gnome-utils/druid-gconf-setup.c:426
 msgid ""
 "You have already corrected the problem and restarted the gconf backend with "
 "the command 'gconftool-2 --shutdown'.  When you click Apply, GnuCash will "
@@ -9444,21 +9634,24 @@
 
 #: ../src/gnome-utils/druid-gnc-xml-import.c:189
 msgid ""
-"The file you tried to load does not specify an encoding, so GnuCash is "
-"unable to unambiguously interpret it. This is typical for files created with "
-"GnuCash prior to 2.0.\n"
+"The file you are trying to load is from an older version of GnuCash. The "
+"file format in the older versions was missing the detailed specification of "
+"the character encoding being used. This means the text in your data file "
+"could be read in multiple ambiguous ways. This ambiguity cannot be resolved "
+"automatically, but the new GnuCash 2.0.0 file format will include all "
+"necessary specifications so that you do not have to go through this step "
+"again.\n"
 "\n"
-"On the next page you will be asked to select the best looking decoded string "
-"for every ambiguous word GnuCash found while trying to open your file. "
-"Therefore GnuCash has guessed what encodings you might have used. So "
-"probably everything will look just fine and you can simply click 'Forward'.\n"
+"GnuCash will try to guess the correct character encoding for your data file. "
+"On the next page GnuCash will show the resulting texts when using this "
+"guess. You have to check whether the words look as expected. Either "
+"everything looks fine and you can simply press 'Forward'. Or the words "
+"contain unexpected characters, in which case you should select different "
+"character encodings to see different results. You may have to edit the list "
+"of character encodings by clicking on the respective button.\n"
 "\n"
-"If it does not work for you, try to change the default encoding at the top. "
-"Maybe you even have to edit the list of encodings by clicking on the button "
-"in the top right corner.\n"
-"\n"
-"The page is not overly complicated, just take the time until you feel "
-"comfortable with it. You can always come back and read this message again."
+"Press 'Forward' now to select the correct character encoding for your data "
+"file."
 msgstr ""
 "Die zu öffnende Datei enthält keine Angaben zu der verwendeten "
 "Zeichenkodierung. Dies ist bei allen Dateien der GnuCash-Version 1.9 oder "
@@ -9482,11 +9675,11 @@
 "\n"
 "Klicken Sie nun »Vor«."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:203
-msgid "Missing file encoding"
+#: ../src/gnome-utils/druid-gnc-xml-import.c:209
+msgid "Ambiguous character encoding"
 msgstr "Zeichenkodierung der Datei unbekannt"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:206
+#: ../src/gnome-utils/druid-gnc-xml-import.c:212
 msgid ""
 "The file has been loaded successfully. If you click 'Apply' it will be saved "
 "and reloaded into the main application. That way you will have a working "
@@ -9500,153 +9693,153 @@
 "\n"
 "Wenn Sie die Einstellungen noch ändern möchten, können Sie »Zurück« klicken."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:228
+#: ../src/gnome-utils/druid-gnc-xml-import.c:234
 msgid "Unicode"
 msgstr "Unicode"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:230
+#: ../src/gnome-utils/druid-gnc-xml-import.c:236
 msgid "European"
 msgstr "Europäisch"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:231
+#: ../src/gnome-utils/druid-gnc-xml-import.c:237
 msgid "ISO-8859-1 (West European)"
 msgstr "ISO-8859-1 (Westeuropäisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:232
+#: ../src/gnome-utils/druid-gnc-xml-import.c:238
 msgid "ISO-8859-2 (East European)"
 msgstr "ISO-8859-2 (Osteuropäisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:233
+#: ../src/gnome-utils/druid-gnc-xml-import.c:239
 msgid "ISO-8859-3 (South European)"
 msgstr "ISO-8859-3 (Südeuropäisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:234
+#: ../src/gnome-utils/druid-gnc-xml-import.c:240
 msgid "ISO-8859-4 (North European)"
 msgstr "ISO-8859-4 (Nordeuropäisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:235
+#: ../src/gnome-utils/druid-gnc-xml-import.c:241
 msgid "ISO-8859-5 (Cyrillic)"
 msgstr "ISO-8859-5 (Kyrillisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:236
+#: ../src/gnome-utils/druid-gnc-xml-import.c:242
 msgid "ISO-8859-6 (Arabic)"
 msgstr "ISO-8859-6 (Arabisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:237
+#: ../src/gnome-utils/druid-gnc-xml-import.c:243
 msgid "ISO-8859-7 (Greek)"
 msgstr "ISO-8859-7 (Griechisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:238
+#: ../src/gnome-utils/druid-gnc-xml-import.c:244
 msgid "ISO-8859-8 (Hebrew)"
 msgstr "ISO-8859-8 (Hebräisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:239
+#: ../src/gnome-utils/druid-gnc-xml-import.c:245
 msgid "ISO-8859-9 (Turkish)"
 msgstr "ISO-8859-9 (Türkisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:240
+#: ../src/gnome-utils/druid-gnc-xml-import.c:246
 msgid "ISO-8859-10 (Nordic)"
 msgstr "ISO-8859-10 (Skandinavisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:241
+#: ../src/gnome-utils/druid-gnc-xml-import.c:247
 msgid "ISO-8859-11 (Thai)"
 msgstr "ISO-8859-11 (Thai)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:242
+#: ../src/gnome-utils/druid-gnc-xml-import.c:248
 msgid "ISO-8859-13 (Baltic)"
 msgstr "ISO-8859-13 (Baltisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:243
+#: ../src/gnome-utils/druid-gnc-xml-import.c:249
 msgid "ISO-8859-14 (Celtic)"
 msgstr "ISO-8859-14 (Keltisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:244
+#: ../src/gnome-utils/druid-gnc-xml-import.c:250
 msgid "ISO-8859-15 (West European, Euro sign)"
 msgstr "ISO-8859-15 (Westeuropäisch, Euro-Zeichen)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:245
+#: ../src/gnome-utils/druid-gnc-xml-import.c:251
 msgid "ISO-8859-16 (South-East European)"
 msgstr "ISO-8859-16 (Südost-Europäisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:246
+#: ../src/gnome-utils/druid-gnc-xml-import.c:252
 msgid "Cyrillic"
 msgstr "Kyrillisch"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:247
+#: ../src/gnome-utils/druid-gnc-xml-import.c:253
 msgid "KOI8-R (Russian)"
 msgstr "KOI8-R (Russisch)"
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:248
+#: ../src/gnome-utils/druid-gnc-xml-import.c:254
 msgid "KOI8-U (Ukrainian)"
 msgstr "KOI8-U (Ukraninisch)"
 
 #. Translators: Please insert encodings here that are typically used in your
 #. * locale, separated by spaces. No need for ASCII or UTF-8, check `locale -m`
 #. * for assistance with spelling.
-#: ../src/gnome-utils/druid-gnc-xml-import.c:571
+#: ../src/gnome-utils/druid-gnc-xml-import.c:577
 msgid "ISO-8859-1 KOI8-U"
 msgstr "ISO-8859-1 ISO-8859-15"
 
 #. another error, cannot handle this here
-#: ../src/gnome-utils/druid-gnc-xml-import.c:692
-#: ../src/gnome-utils/druid-gnc-xml-import.c:711
-msgid "The file could not be reopen."
+#: ../src/gnome-utils/druid-gnc-xml-import.c:698
+#: ../src/gnome-utils/druid-gnc-xml-import.c:717
+msgid "The file could not be reopened."
 msgstr "Die Datei konnte nicht neu geöffnet werden."
 
 #. try to load once again
-#: ../src/gnome-utils/druid-gnc-xml-import.c:699
-#: ../src/gnome-utils/gnc-file.c:746 ../src/gnome-utils/gnc-file.c:758
+#: ../src/gnome-utils/druid-gnc-xml-import.c:705
+#: ../src/gnome-utils/gnc-file.c:748 ../src/gnome-utils/gnc-file.c:760
 msgid "Reading file..."
 msgstr "Datei wird gelesen..."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:719
+#: ../src/gnome-utils/druid-gnc-xml-import.c:725
 msgid "Parsing file..."
 msgstr "Datei wird verarbeitet..."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:726
+#: ../src/gnome-utils/druid-gnc-xml-import.c:732
 msgid "There was an error parsing the file."
 msgstr "Beim Verarbeiten der Datei ist ein Fehler aufgetreten."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:749
-#: ../src/gnome-utils/gnc-file.c:972
+#: ../src/gnome-utils/druid-gnc-xml-import.c:755
+#: ../src/gnome-utils/gnc-file.c:970
 msgid "Writing file..."
 msgstr "Datei wird geschrieben..."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:827
+#: ../src/gnome-utils/druid-gnc-xml-import.c:833
 #, c-format
 msgid "There are %d unassigned and %d undecodable words. Please add encodings."
 msgstr ""
 "Es gibt %d nicht zugewiesene und %d nicht dekodierbare Worte. Bitte wählen "
 "Sie jeweils eine Zeichenkodierung aus."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:833
+#: ../src/gnome-utils/druid-gnc-xml-import.c:839
 #, c-format
 msgid "There are %d unassigned words. Please decide on them or add encodings."
 msgstr ""
 "Es gibt %d nicht zugewiesene Worte. Bitte wählen Sie jeweils einen der "
 "Wortvorschläge oder wählen eine Zeichenkodierung."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:841
+#: ../src/gnome-utils/druid-gnc-xml-import.c:847
 #, c-format
 msgid "There are %d undecodable words. Please add encodings."
 msgstr ""
 "Es gibt %d nicht dekodierbare Worte. Bitte wählen Sie eine Zeichenkodierung "
 "aus."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:1029
+#: ../src/gnome-utils/druid-gnc-xml-import.c:1035
 msgid "That GnuCash XML file is already loaded. Please select another file."
 msgstr ""
 "Diese GnuCash-Datei ist bereits geöffnet. Bitte wählen Sie eine andere Datei."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:1330
+#: ../src/gnome-utils/druid-gnc-xml-import.c:1336
 msgid "This encoding has been added to the list already."
 msgstr "Diese Zeichenkodierung existiert bereits in der Liste."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:1340
+#: ../src/gnome-utils/druid-gnc-xml-import.c:1346
 msgid "This is an invalid encoding."
 msgstr "Dies ist keine gültige Zeichenkodierung."
 
-#: ../src/gnome-utils/druid-gnc-xml-import.c:1475
+#: ../src/gnome-utils/druid-gnc-xml-import.c:1481
 msgid "No files to merge. Please add ones by clicking on 'Load another file'."
 msgstr ""
 "Keine Dateien, die zusammengefügt werden können. Bitte wählen Sie welche, "
@@ -9700,32 +9893,22 @@
 "entsprechen, inklusive Groß/Kleinschreibung."
 
 #: ../src/gnome-utils/glade/commodity.glade.h:8
-msgid ""
-"Enter the type of commodity. For stocks, this is often an exchange on which "
-"the stock is traded. You can choose an existing type from the list or enter "
-"a new type with the keyboard."
-msgstr ""
-"Geben Sie den Typ der Währung/Aktie an. Für Aktien ist dies in der Regel die "
-"Börse, an der die Aktie gehandelt wird. Sie können einen Typ aus der Liste "
-"auswählen oder einen neuen Typ eingeben."
-
-#: ../src/gnome-utils/glade/commodity.glade.h:9
 msgid "F_raction traded:"
 msgstr "_Handelbare Stückelung:"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:10
+#: ../src/gnome-utils/glade/commodity.glade.h:9
 msgid "Select security/currency "
 msgstr "Bitte wählen Sie die Aktie/Währung"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:11
+#: ../src/gnome-utils/glade/commodity.glade.h:10
 msgid "Select user information here..."
 msgstr "Benutzerinformationen hier wählen..."
 
-#: ../src/gnome-utils/glade/commodity.glade.h:12
+#: ../src/gnome-utils/glade/commodity.glade.h:11
 msgid "Si_ngle:"
 msgstr "_Einzel:"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:13
+#: ../src/gnome-utils/glade/commodity.glade.h:12
 msgid ""
 "These are F::Q quote sources that retrieve information from a single site on "
 "the internet.  If that site is unavailable, you will not be able to retrieve "
@@ -9735,7 +9918,7 @@
 "einzigen Webseite im Internet ab. Falls diese Webseite nicht verfügbar ist, "
 "können Sie keine Kurse abrufen."
 
-#: ../src/gnome-utils/glade/commodity.glade.h:14
+#: ../src/gnome-utils/glade/commodity.glade.h:13
 msgid ""
 "These are F::Q quote sources that retrieve information from multiple sites "
 "on the internet.  If one of the sites is unavailable, F::Q will attempt to "
@@ -9745,7 +9928,7 @@
 "Internetseiten ab. Wenn eine Seite nicht verfügbar ist, versucht Finance::"
 "Quote, von den anderen Seiten abzurufen."
 
-#: ../src/gnome-utils/glade/commodity.glade.h:15
+#: ../src/gnome-utils/glade/commodity.glade.h:14
 msgid ""
 "These are quote sources that were recently added to F::Q.  GnuCash does not "
 "know if these sources retrieve information from a single site or from "
@@ -9755,35 +9938,35 @@
 "nicht bekannt, ob diese Kursquellen von einer oder mehreren Internetseiten "
 "ihre Informationen beziehen."
 
-#: ../src/gnome-utils/glade/commodity.glade.h:16
+#: ../src/gnome-utils/glade/commodity.glade.h:15
 msgid "Time_zone:"
 msgstr "_Zeitzone"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:17
+#: ../src/gnome-utils/glade/commodity.glade.h:16
 msgid "Type of quote source:"
 msgstr "Art der Kursabruf-Quelle:"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:18
+#: ../src/gnome-utils/glade/commodity.glade.h:17
 msgid "Warning: Finance::Quote not installed properly."
 msgstr "Warnung: Modul Finance::Quote ist nicht korrekt installiert."
 
-#: ../src/gnome-utils/glade/commodity.glade.h:19
+#: ../src/gnome-utils/glade/commodity.glade.h:18
 msgid "_Full name:"
 msgstr "_Voller Name:"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:20
+#: ../src/gnome-utils/glade/commodity.glade.h:19
 msgid "_Get Online Quotes"
 msgstr "_Börsenkurse online abrufen"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:21
+#: ../src/gnome-utils/glade/commodity.glade.h:20
 msgid "_Multiple:"
 msgstr "_Mehrere Kursquellen"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:22
+#: ../src/gnome-utils/glade/commodity.glade.h:21
 msgid "_Symbol/abbreviation:"
 msgstr "_Symbol/Abkürzung:"
 
-#: ../src/gnome-utils/glade/commodity.glade.h:24
+#: ../src/gnome-utils/glade/commodity.glade.h:23
 msgid "_Unknown:"
 msgstr "_Unbekannt:"
 
@@ -10010,7 +10193,7 @@
 "this if you have saved your accounts to separate GnuCash files.\n"
 "\n"
 "Click \"Forward\" to finish loading files and move to the next step of the "
-"GnuCash XML import process."
+"GnuCash Datafile import process."
 msgstr ""
 "Wenn Sie jetzt noch mehr Dateien importieren möchten, klicken Sie bitte "
 "»Eine andere Datei laden«. Das ist insbesondere sinnvoll, wenn Sie Ihre "
@@ -10036,24 +10219,24 @@
 msgstr "Die Liste der Zeichenkodierungen bearbeiten"
 
 #: ../src/gnome-utils/glade/druid-gnc-xml-import.glade.h:12
-msgid "Finish GnuCash XML Import"
+msgid "Finish GnuCash Datafile Import"
 msgstr "GnuCash-Datei Import abschließen"
 
 #: ../src/gnome-utils/glade/druid-gnc-xml-import.glade.h:13
-msgid "GnuCash XML Import Druid"
+msgid "GnuCash Datafile Import Druid"
 msgstr "GnuCash-Datei Import-Assistent"
 
 #: ../src/gnome-utils/glade/druid-gnc-xml-import.glade.h:14
-msgid "GnuCash XML files you have loaded"
+msgid "GnuCash data files you have loaded"
 msgstr "GnuCash-Dateien, die Sie geladen haben"
 
 #: ../src/gnome-utils/glade/druid-gnc-xml-import.glade.h:15
-#: ../src/import-export/qif-import/qif.glade.h:48
+#: ../src/import-export/qif-import/qif.glade.h:42
 msgid "Load another file"
 msgstr "Eine weitere Datei öffnen"
 
 #: ../src/gnome-utils/glade/druid-gnc-xml-import.glade.h:16
-#: ../src/import-export/qif-import/qif.glade.h:94
+#: ../src/import-export/qif-import/qif.glade.h:84
 msgid "Unload selected file"
 msgstr "Gewählte Datei wieder entladen"
 
@@ -10114,37 +10297,37 @@
 msgid "%Y-%m-%d"
 msgstr "%Y-%m-%d"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:4
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:3
 msgid "Abbreviation"
 msgstr "Abkürzung"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:5
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:4
 msgid "Date format:"
 msgstr "Datumsformat:"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:6
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:5
 msgid "December 31, 2000"
 msgstr "December 31, 2000"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:7
-#: ../src/import-export/generic-import.glade.h:32
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:6
+#: ../src/import-export/generic-import.glade.h:28
 msgid "Format:"
 msgstr "Format:"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:8
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:7
 msgid "Include Century"
 msgstr "Jahrhundert angeben"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:9
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:8
 msgid "Months:"
 msgstr "Monate:"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:12
-#: ../src/gnome-utils/glade/preferences.glade.h:88
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:11
+#: ../src/gnome-utils/glade/preferences.glade.h:96
 msgid "Sample:"
 msgstr "Beispiel:"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:13
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:12
 msgid ""
 "US (12/31/2001)\n"
 "UK (31/12/2001)\n"
@@ -10162,7 +10345,7 @@
 "Länderspezifisch (Locale)\n"
 "Benutzerdefiniert\n"
 
-#: ../src/gnome-utils/glade/gnc-date-format.glade.h:21
+#: ../src/gnome-utils/glade/gnc-date-format.glade.h:20
 msgid "Years:"
 msgstr "Jahre:"
 
@@ -10187,20 +10370,20 @@
 msgstr "Mit 'Eingabe' gehen Sie zur leeren Buchung"
 
 #: ../src/gnome-utils/glade/preferences.glade.h:2
-msgid "07/31/05"
-msgstr "07/31/05"
+msgid "07/31/2005"
+msgstr "07/31/2005"
 
 #: ../src/gnome-utils/glade/preferences.glade.h:3
 msgid "2005-07-31"
 msgstr "2005-07-31"
 
 #: ../src/gnome-utils/glade/preferences.glade.h:4
-msgid "31.07.05"
-msgstr "31.07.05"
+msgid "31.07.2005"
+msgstr "31.07.2005"
 
 #: ../src/gnome-utils/glade/preferences.glade.h:5
-msgid "31/07/05"
-msgstr "31/07/05"
+msgid "31/07/2005"
+msgstr "31/07/2005"
 
 #: ../src/gnome-utils/glade/preferences.glade.h:6
 #: ../src/import-export/generic-import.glade.h:5
@@ -10208,102 +10391,112 @@
 msgstr "<b>Aktionen</b>"
 
 #: ../src/gnome-utils/glade/preferences.glade.h:7
+#, fuzzy
+msgid "<b>Close Button</b>"
+msgstr "<b>Farben</b>"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:8
 msgid "<b>Date Format</b>"
 msgstr "<b>Datum</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:8
+#: ../src/gnome-utils/glade/preferences.glade.h:9
 msgid "<b>Default Currency</b>"
 msgstr "<b>Standardwährung</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:9
+#: ../src/gnome-utils/glade/preferences.glade.h:10
 msgid "<b>Default Report Currency</b>"
 msgstr "<b>Standardwährung für Berichte</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:10
+#: ../src/gnome-utils/glade/preferences.glade.h:11
 msgid "<b>Default Style</b>"
 msgstr "<b>Voreinstellung Buchungsansicht</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:11
+#: ../src/gnome-utils/glade/preferences.glade.h:12
 msgid "<b>End Date</b>"
 msgstr "<b>Enddatum</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:12
+#: ../src/gnome-utils/glade/preferences.glade.h:13
 msgid "<b>Fancy Date Format</b>"
 msgstr "<b>Ausführliches Datumsformat</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:13
+#: ../src/gnome-utils/glade/preferences.glade.h:14
 msgid "<b>Files</b>"
 msgstr "<b>Dateien</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:14
+#: ../src/gnome-utils/glade/preferences.glade.h:15
 msgid "<b>General</b>"
 msgstr "<b>Allgemein</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:15
+#: ../src/gnome-utils/glade/preferences.glade.h:16
 msgid "<b>Graphics</b>"
 msgstr "<b>Grafik</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:16
+#: ../src/gnome-utils/glade/preferences.glade.h:17
 msgid "<b>Labels</b>"
 msgstr "<b>Beschriftungen</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:17
+#: ../src/gnome-utils/glade/preferences.glade.h:18
 msgid "<b>Location</b>"
 msgstr "<b>Position</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:18
+#: ../src/gnome-utils/glade/preferences.glade.h:19
 msgid "<b>Numbers</b>"
 msgstr "<b>Zahlen</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:19
+#: ../src/gnome-utils/glade/preferences.glade.h:20
 msgid "<b>Other Defaults</b>"
 msgstr "<b>Andere Voreinstellungen</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:20
+#: ../src/gnome-utils/glade/preferences.glade.h:21
 msgid "<b>Reconciling</b>"
 msgstr "<b>Kontenabgleich</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:21
+#: ../src/gnome-utils/glade/preferences.glade.h:22
 msgid "<b>Reverse Balanced Accounts</b>"
 msgstr "<b>Betrags-Vorzeichen umkehren für Kontentypen</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:22
+#: ../src/gnome-utils/glade/preferences.glade.h:23
 msgid "<b>Search Dialog</b>"
 msgstr "<b>Such-Dialog</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:23
+#: ../src/gnome-utils/glade/preferences.glade.h:24
 msgid "<b>Separator Character</b>"
 msgstr "<b>Trennzeichen</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:24
+#: ../src/gnome-utils/glade/preferences.glade.h:25
 msgid "<b>Start Date</b>"
 msgstr "<b>Anfangsdatum</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:25
+#: ../src/gnome-utils/glade/preferences.glade.h:26
 msgid "<b>Summarybar Content</b>"
 msgstr "<b>Inhalt Zusammenfassungsleiste</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:26
+#: ../src/gnome-utils/glade/preferences.glade.h:27
+#, fuzzy
+msgid "<b>Tab Position</b>"
+msgstr "<b>Buchungen</b>"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:28
 msgid "<b>Time Format</b>"
 msgstr "<b>Zeit</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:27
+#: ../src/gnome-utils/glade/preferences.glade.h:29
 msgid "<b>Toolbar Style</b>"
 msgstr "<b>Werkzeugleiste</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:28
+#: ../src/gnome-utils/glade/preferences.glade.h:30
 msgid "<b>Window Geometry</b>"
 msgstr "<b>Fenster-Einstellungen</b>"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:29
+#: ../src/gnome-utils/glade/preferences.glade.h:31
 msgid "Ab_solute:"
 msgstr "Ab_solut:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:30
+#: ../src/gnome-utils/glade/preferences.glade.h:32
 msgid "Accounting Period"
 msgstr "Buchführungsperioden"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:32
+#: ../src/gnome-utils/glade/preferences.glade.h:34
 msgid ""
 "After reconciling a credit card statement, prompt the user to enter a credit "
 "card payment."
@@ -10311,13 +10504,13 @@
 "Nach Abgleich einer Kreditkartenrechnung eine Ãœberweisung zum Bezahlen "
 "vorschlagen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:33
+#: ../src/gnome-utils/glade/preferences.glade.h:35
 msgid "All transactions are expanded to show all splits."
 msgstr ""
 "Alle Buchungen werden vollständig angezeigt, so dass alle Buchungszeilen "
 "sichtbar sind."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:34
+#: ../src/gnome-utils/glade/preferences.glade.h:36
 msgid ""
 "Alternate the primary and secondary colors by transaction instead of by "
 "alternating by row."
@@ -10325,15 +10518,15 @@
 "Im Zweizeilenstil Farben nur mit jedem Buchungssatz abwechseln, anstatt mit "
 "jeder Zeile."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:35
+#: ../src/gnome-utils/glade/preferences.glade.h:37
 msgid "Automatic _interest transfer"
 msgstr "Automatische _Zinsbuchungen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:36
+#: ../src/gnome-utils/glade/preferences.glade.h:38
 msgid "Automatic credit card _payment"
 msgstr "Automatische _Kreditkartenbezahlungen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:37
+#: ../src/gnome-utils/glade/preferences.glade.h:39
 msgid ""
 "Automatically expand the current transaction to show all splits.  All other "
 "transactions are shown on one line. (Two in double line mode.)"
@@ -10342,7 +10535,7 @@
 "Alle anderen Buchungen werden einzeilig angezeigt. (Bzw. zweizeilig, wenn "
 "die Bemerkung angezeigt werden soll.)"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:38
+#: ../src/gnome-utils/glade/preferences.glade.h:40
 msgid ""
 "Automatically insert a decimal point into values that are entered without "
 "one."
@@ -10350,115 +10543,140 @@
 "Automatisches Einfügen eines Kommas, sobald Werte ohne Komma eingegeben "
 "werden. (Z.B. '2000' wird zu '20,00'.)"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:39
+#: ../src/gnome-utils/glade/preferences.glade.h:41
 msgid "Automatically raise the list of accounts or actions during input."
 msgstr ""
 "Automatisches Öffnen der Konten- oder Auswahlliste während der Eingabe."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:40
+#: ../src/gnome-utils/glade/preferences.glade.h:42
+#, fuzzy
+msgid "B_ottom"
+msgstr "_Drehung"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:43
 msgid "C_redit accounts"
 msgstr "_Habenkonten"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:41
+#: ../src/gnome-utils/glade/preferences.glade.h:44
 msgid "Ch_oose:"
 msgstr "_Auswahl:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:42
+#: ../src/gnome-utils/glade/preferences.glade.h:45
 msgid "Character:"
 msgstr "Zeichen:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:43
+#: ../src/gnome-utils/glade/preferences.glade.h:46
 msgid "Check cleared _transactions"
 msgstr "Bestätigte Buchungen automatisch abgleichen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:44
+#: ../src/gnome-utils/glade/preferences.glade.h:47
 msgid "Com_press files"
 msgstr "Datei _komprimieren"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:45
+#: ../src/gnome-utils/glade/preferences.glade.h:48
 msgid "Compress the data file with gzip when saving it to disk."
 msgstr "Die Datei mit den Kontodaten mit gzip komprimiert speichern."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:46
+#: ../src/gnome-utils/glade/preferences.glade.h:49
 msgid "Date/Time"
 msgstr "Datum und Zeit"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:48
+#: ../src/gnome-utils/glade/preferences.glade.h:51
 msgid "Delete old log/backup files after this many days (0 = never)."
 msgstr "Alte Log/Sicherungsdateien nach so vielen Tagen löschen (0 = niemals)."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:49
+#: ../src/gnome-utils/glade/preferences.glade.h:52
 msgid "Display \"_tip of the day\" dialog"
 msgstr "Anzeigen des »Tipp des Tages«"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:50
+#: ../src/gnome-utils/glade/preferences.glade.h:53
 msgid "Display hints for using GnuCash at startup"
 msgstr "Anzeigen von Hinweisen beim Start von GnuCash"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:51
+#: ../src/gnome-utils/glade/preferences.glade.h:54
 msgid "Display ne_gative amounts in red"
 msgstr "Negative Beträge in rot anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:53
+#: ../src/gnome-utils/glade/preferences.glade.h:56
+#, fuzzy
+msgid "Display the notebook tabs at the bottom of the window."
+msgstr "Zur freien Zeile am Ende dieser Rechnung gehen"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:57
+msgid "Display the notebook tabs at the left of the window."
+msgstr ""
+
+#: ../src/gnome-utils/glade/preferences.glade.h:58
+msgid "Display the notebook tabs at the right of the window."
+msgstr ""
+
+#: ../src/gnome-utils/glade/preferences.glade.h:59
+msgid "Display the notebook tabs at the top of the window."
+msgstr ""
+
+#: ../src/gnome-utils/glade/preferences.glade.h:60
 msgid "Display this many rows when a register is created."
 msgstr ""
 "Anzahl der Zeilen, die beim Öffnen eines neuen Kontofensters angezeigt "
 "werden."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:54
+#: ../src/gnome-utils/glade/preferences.glade.h:61
 msgid "Display toolbar items as icons only."
 msgstr "Nur Icons in der Werkzeugleiste anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:55
+#: ../src/gnome-utils/glade/preferences.glade.h:62
 msgid "Display toolbar items as text only."
 msgstr "Nur Texte in der Werkzeugleiste anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:56
+#: ../src/gnome-utils/glade/preferences.glade.h:63
 msgid ""
 "Display toolbar items with the text label below the icon.  Labels are show "
 "for all items."
 msgstr ""
-"Unterhalb jedes Icons in der Werkzeugleiste seine Beschreibung anzeigen"
+"Unterhalb jedes Icons in der Werkzeugleiste seine Beschreibung anzeigen.  "
+"Beschreibungen werden für alle Icons angezeigt."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:57
+#: ../src/gnome-utils/glade/preferences.glade.h:64
 msgid ""
 "Display toolbar items with the text label beside the icon.  Labels are only "
-"shown for the most frequently used items."
-msgstr "Neben jedem Icon in der Werkzeugleiste seine Beschreibung anzeigen"
+"shown for the most important items."
+msgstr ""
+"Neben jedem Icon in der Werkzeugleiste seine Beschreibung anzeigen.  "
+"Beschreibungen werden aber nur für die wichtigsten Icons angezeigt."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:58
+#: ../src/gnome-utils/glade/preferences.glade.h:65
 msgid "Don't sign reverse any accounts."
 msgstr "Keine Vorzeichenumkehr"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:59
+#: ../src/gnome-utils/glade/preferences.glade.h:66
 msgid "Double _mode colors alternate with transactions"
 msgstr "Zweizeilenstil: Farben abwechselnd pro Buchungssatz"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:60
+#: ../src/gnome-utils/glade/preferences.glade.h:67
 msgid "Draw _vertical lines between columns"
 msgstr "_Vertikale Linien zwischen Spalten zeichnen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:61
+#: ../src/gnome-utils/glade/preferences.glade.h:68
 msgid "Draw hori_zontal lines between rows"
 msgstr "_Horizontale Linien zwischen Zeilen zeichnen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:62
+#: ../src/gnome-utils/glade/preferences.glade.h:69
 msgid "Enables support for the European Union EURO currency."
 msgstr "Aktiviert die Unterstützung der Währung EURO"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:64
+#: ../src/gnome-utils/glade/preferences.glade.h:71
 msgid "GnuCash Options"
 msgstr "GnuCash Optionen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:65
+#: ../src/gnome-utils/glade/preferences.glade.h:72
 msgid "GnuCash Preferences"
 msgstr "GnuCash Einstellungen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:66
+#: ../src/gnome-utils/glade/preferences.glade.h:73
 msgid "How many automatic decimal places will be filled in."
 msgstr "Wieviele Dezimalstellen automatisch ausgefüllt werden."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:67
+#: ../src/gnome-utils/glade/preferences.glade.h:74
 msgid ""
 "If checked, each register will be opened in its own top level window.  If "
 "clear, the register will be opened in the current window."
@@ -10467,7 +10685,7 @@
 "Wenn nicht aktiviert, wird jedes Kontofenster als Karteikarte im aktuellen "
 "Fenster geöffnet."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:68
+#: ../src/gnome-utils/glade/preferences.glade.h:75
 msgid ""
 "If checked, each report will be opened in its own top level window.  If "
 "clear, the report will be opened in the current window."
@@ -10475,7 +10693,7 @@
 "Falls angeklickt wird jeder Bericht in einem neuen Top-Level-Fenster "
 "angezeigt. Ansonsten wird er in dem aktuellen Fenster geöffnet."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:69
+#: ../src/gnome-utils/glade/preferences.glade.h:76
 msgid ""
 "If checked, non-currency commodities will be shown in the summary bar.  If "
 "clear, only currencies will be shown."
@@ -10483,7 +10701,7 @@
 "Wenn aktiviert, werden Aktien in der Zusammenfassungs-Zeile angezeigt, die "
 "keine Währungen sind. Wenn nicht aktiviert, werden nur Währungen angezeigt."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:70
+#: ../src/gnome-utils/glade/preferences.glade.h:77
 msgid ""
 "If checked, pressing the 'Enter' key will move to the blank transaction at "
 "the bottom of the register.  If clear, pressing the 'Enter' key will move "
@@ -10492,7 +10710,7 @@
 "Wenn aktiviert, nach Drücken von 'Eingabe' zum leeren Buchungssatz gehen. "
 "Ansonsten nur eine Zeile nach unten gehen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:71
+#: ../src/gnome-utils/glade/preferences.glade.h:78
 msgid ""
 "If checked, the system color theme will be applied to register windows.  If "
 "clear, the original GnuCash register colors will be used."
@@ -10501,35 +10719,35 @@
 "Kontofenstern verwendet. Wenn nicht aktiviert, werden GnuCash-spezifische "
 "Farben in den Kontofenstern verwendet."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:72
+#: ../src/gnome-utils/glade/preferences.glade.h:79
 msgid "Include _grand total"
 msgstr "_Gesamtsumme anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:73
+#: ../src/gnome-utils/glade/preferences.glade.h:80
 msgid "Include _non-currency totals"
 msgstr "_Aktien-Gesamtsumme anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:74
+#: ../src/gnome-utils/glade/preferences.glade.h:81
 msgid "Loc_ale:"
 msgstr "_Systemeinstellung:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:75
+#: ../src/gnome-utils/glade/preferences.glade.h:82
 msgid "New search _limit:"
 msgstr "Ergebnisanzahl für Neue Suche:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:77
+#: ../src/gnome-utils/glade/preferences.glade.h:84
 msgid "Number of _transactions:"
 msgstr "Anzahl Buchungen:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:78
+#: ../src/gnome-utils/glade/preferences.glade.h:85
 msgid "Perform account list _setup on new file"
 msgstr "Konteneinrichtung bei neuer Datei"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:79
+#: ../src/gnome-utils/glade/preferences.glade.h:86
 msgid "Pre-check cleared transactions when creating a reconcile dialog."
 msgstr "Bestätigte Buchungen automatisch als Abgeglichen markieren."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:80
+#: ../src/gnome-utils/glade/preferences.glade.h:87
 msgid ""
 "Present the new account list dialog when you choose \"New File\" from the "
 "\"File\" menu"
@@ -10537,27 +10755,31 @@
 "Assistent für neue Konteneinrichtung öffnen, wenn »Neue Datei« im Menü "
 "»Datei« gewählt wird"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:82
+#: ../src/gnome-utils/glade/preferences.glade.h:89
+msgid "Priority text besi_de icons"
+msgstr "Text _neben wichtigen Icons"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:90
 msgid "Re_lative:"
 msgstr "Re_lativ:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:84
+#: ../src/gnome-utils/glade/preferences.glade.h:92
 msgid "Register Defaults"
 msgstr "Voreinstellungen Kontobuch"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:85
+#: ../src/gnome-utils/glade/preferences.glade.h:93
 msgid "Register opens in a new _window"
 msgstr "Kontobuch in neuem Fenster öffnen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:86
+#: ../src/gnome-utils/glade/preferences.glade.h:94
 msgid "Report opens in a new _window"
 msgstr "Bericht in neuem _Fenster öffnen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:87
+#: ../src/gnome-utils/glade/preferences.glade.h:95
 msgid "Reports"
 msgstr "Berichte"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:89
+#: ../src/gnome-utils/glade/preferences.glade.h:97
 msgid ""
 "Show a close button on each notebook tab.  These function identically to the "
 "'Close' menu item."
@@ -10565,28 +10787,37 @@
 "Einen Knopf »Schließen« auf jeder Karteikarte anzeigen. Die Schließen-"
 "Funktion kann auch im gleichnamigen Menüpunkt erreicht werden."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:90
+#: ../src/gnome-utils/glade/preferences.glade.h:98
 msgid ""
 "Show a grand total of all accounts converted to the default report currency."
 msgstr ""
 "Gesamtsumme für alle Konten anzeigen, umgerechnet in die voreingestellte "
 "Währung für Berichte."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:91
+#: ../src/gnome-utils/glade/preferences.glade.h:99
 msgid "Show all transactions on one line. (Two in double line mode.)"
 msgstr ""
 "Alle Buchungssätze einzeilig anzeigen. (Zweizeilig, wenn die Bemerkung "
 "angezeigt werden soll.)"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:92
+#: ../src/gnome-utils/glade/preferences.glade.h:100
 msgid "Show close button on _notebook tabs"
 msgstr "Den Knopf »Schließen« bei _Karteikarten-Ansicht anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:93
+#: ../src/gnome-utils/glade/preferences.glade.h:101
 msgid "Show horizontal borders on the cells."
 msgstr "Horizontale Begrenzungen anzeigen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:94
+#: ../src/gnome-utils/glade/preferences.glade.h:102
+msgid "Show splash scree_n"
+msgstr ""
+
+#: ../src/gnome-utils/glade/preferences.glade.h:103
+#, fuzzy
+msgid "Show splash screen at startup."
+msgstr "Tipps beim Programmstart _anzeigen"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:104
 msgid ""
 "Show this many transactions in a register. A value of zero means show all "
 "transactions."
@@ -10594,7 +10825,7 @@
 "Diese Anzahl Buchungen in einem Kontofenster anzeigen. Der Wert Null "
 "bedeutet alle Buchungen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:95
+#: ../src/gnome-utils/glade/preferences.glade.h:105
 msgid ""
 "Show two lines of information for each transaction instead of one.  Does not "
 "affect expanded transactions."
@@ -10602,32 +10833,28 @@
 "Zwei Zeilen pro Buchung anzeigen anstatt einer. Dies betrifft nicht die "
 "ausgeklappten Buchungen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:96
+#: ../src/gnome-utils/glade/preferences.glade.h:106
 msgid "Show vertical borders on the cells."
 msgstr "Vertikale Begrenzungen anzeigen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:97
+#: ../src/gnome-utils/glade/preferences.glade.h:107
 msgid "Sign reverse balances on income and expense accounts."
 msgstr "Ertrags- und Aufwandskonten mit umgekehrten Vorzeichen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:98
+#: ../src/gnome-utils/glade/preferences.glade.h:108
 msgid ""
 "Sign reverse balances on the following: Credit Card, Payable, Liability, "
 "Equity, and Income."
 msgstr "Passiva-, Eigenkapitals- und Ertragskonten mit umgekehrten Vorzeichen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:99
+#: ../src/gnome-utils/glade/preferences.glade.h:109
 msgid "Text _below icons"
 msgstr "Text _unter Icons"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:100
-msgid "Text besi_de icons"
-msgstr "Text _neben Icons"
-
-#: ../src/gnome-utils/glade/preferences.glade.h:101
+#: ../src/gnome-utils/glade/preferences.glade.h:110
 msgid ""
-"The character that will be used between components of an account name.  "
-"Legal values are any single non-alphanumeric unicode character, or any of "
+"The character that will be used between components of an account name.  A "
+"legal value is any single character except letters and numbers, or any of "
 "the following strings: \"colon\" \"slash\", \"backslash\", \"dash\" and "
 "\"period\"."
 msgstr ""
@@ -10635,178 +10862,196 @@
 "Zeichen wählen, das kein Buchstabe oder Zahl ist, zum Beispiel »:«, »/« oder "
 "»-«."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:102
+#: ../src/gnome-utils/glade/preferences.glade.h:111
+#, fuzzy
+msgid "To_p"
+msgstr "Bis"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:112
 msgid "Transaction _journal"
 msgstr "Buchungsjournal"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:103
+#: ../src/gnome-utils/glade/preferences.glade.h:113
 msgid "US Dollars (USD)"
 msgstr "US Dollars (USD)"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:104
+#: ../src/gnome-utils/glade/preferences.glade.h:114
 msgid "U_K:"
 msgstr "U_K:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:105
+#: ../src/gnome-utils/glade/preferences.glade.h:115
 msgid "U_se 24-hour clock"
 msgstr "24-Stunden-_Format"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:106
+#: ../src/gnome-utils/glade/preferences.glade.h:116
 msgid "Use _formal accounting labels"
 msgstr "Buchungsüberschriften aus _Rechnungswesen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:107
+#: ../src/gnome-utils/glade/preferences.glade.h:117
 msgid "Use a 24 hour (instead of a 12 hour) time format."
 msgstr "24 Stunden-Format statt 12 Stunden-Format"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:108
+#: ../src/gnome-utils/glade/preferences.glade.h:118
 msgid "Use only 'debit' and 'credit' instead of informal synonyms"
 msgstr "Nur 'Soll' und 'Haben' anstatt informeller Bezeichnungen benutzen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:109
-msgid "Use s_ystem _default"
+#: ../src/gnome-utils/glade/preferences.glade.h:119
+#, fuzzy
+msgid "Use s_ystem default"
 msgstr "_GNOME-Voreinstellung"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:110
-msgid "Use the date format comon in continental Europe."
-msgstr "Das auf dem europäischen Kontinent übliche Datumsformat benutzen"
+#: ../src/gnome-utils/glade/preferences.glade.h:120
+msgid "Use the date format common in continental Europe."
+msgstr "Das auf dem europäischen Kontinent übliche Datumsformat benutzen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:111
-msgid "Use the date format comon in the United Kingdom."
-msgstr "Das in Großbritannien übliche Datumsformat benutzen"
+#: ../src/gnome-utils/glade/preferences.glade.h:121
+msgid "Use the date format common in the United Kingdom."
+msgstr "Das in Großbritannien übliche Datumsformat benutzen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:112
-msgid "Use the date format comon in the United States."
+#: ../src/gnome-utils/glade/preferences.glade.h:122
+msgid "Use the date format common in the United States."
 msgstr ""
-"Das in den Vereinigten Staaten von Amerika übliche Datumsformat benutzen"
+"Das in den Vereinigten Staaten von Amerika übliche Datumsformat benutzen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:113
+#: ../src/gnome-utils/glade/preferences.glade.h:123
 msgid "Use the date format specified by the ISO-8601 standard."
-msgstr "Das in dem ISO-Standard 8601 beschriebene Datumsformat benutzen"
+msgstr "Das in dem ISO-Standard 8601 beschriebene Datumsformat benutzen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:114
+#: ../src/gnome-utils/glade/preferences.glade.h:124
 msgid "Use the date format specified by the system locale."
-msgstr "Das Datumsformat aus den Systemeinstellungen übernehmen"
+msgstr "Das Datumsformat aus den Systemeinstellungen übernehmen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:115
+#: ../src/gnome-utils/glade/preferences.glade.h:125
 msgid ""
 "Use the specified absolute ending date for profit/loss calculations.  Also "
 "use this date for net assets calculations."
-msgstr "Absolutes Enddatum für Gewinn/Verlustrechnung und Datum für Bilanz"
+msgstr ""
+"Absolutes Enddatum für Gewinn/Verlustrechnung und Datum für Bilanz.  Ebenso "
+"Enddatum für die Berechnung des Reingewinns."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:116
+#: ../src/gnome-utils/glade/preferences.glade.h:126
 msgid "Use the specified absolute starting date for profit/loss calculations."
-msgstr "Absolutes Anfangsdatum für Gewinn/Verlustrechnung"
+msgstr "Absolutes Anfangsdatum für Gewinn/Verlustrechnung."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:117
+#: ../src/gnome-utils/glade/preferences.glade.h:127
 msgid "Use the specified currency for all newly created accounts."
 msgstr "Standard-Währung für neue Konten."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:118
+#: ../src/gnome-utils/glade/preferences.glade.h:128
 msgid "Use the specified currency for all newly created reports."
 msgstr "Standard-Währung für neue Berichte."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:119
+#: ../src/gnome-utils/glade/preferences.glade.h:129
 msgid ""
 "Use the specified relative ending date for profit/loss calculations.  Also "
 "use this date for net assets calculations."
 msgstr "Relatives Enddatum für Gewinn/Verlustrechnung und Datum für Bilanz"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:120
+#: ../src/gnome-utils/glade/preferences.glade.h:130
 msgid "Use the specified relative starting date for profit/loss calculations."
 msgstr "Relatives Anfangsdatum für Gewinn/Verlustrechnung"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:121
+#: ../src/gnome-utils/glade/preferences.glade.h:131
 msgid "Use the system locale currency for all newly created accounts."
 msgstr "Die systemweit voreingestellte Währung für neue Konten benutzen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:122
+#: ../src/gnome-utils/glade/preferences.glade.h:132
 msgid "Use the system locale currency for all newly created reports."
 msgstr "Die systemweit voreingestellte Währung für neue Berichte benutzen."
 
-#: ../src/gnome-utils/glade/preferences.glade.h:123
+#: ../src/gnome-utils/glade/preferences.glade.h:133
 msgid "Use the system setting for displaying toolbar items."
 msgstr ""
 "Die GNOME-Voreinstellung für die Anzeige der Icons in der Werkzeugleiste "
 "benutzen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:124
+#: ../src/gnome-utils/glade/preferences.glade.h:134
 msgid "Windows"
 msgstr "Fenster"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:125
+#: ../src/gnome-utils/glade/preferences.glade.h:135
 msgid "_Absolute:"
 msgstr "_Absolut:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:126
+#: ../src/gnome-utils/glade/preferences.glade.h:136
 msgid "_Auto-raise lists"
 msgstr "Listen automatisch aufklappen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:127
+#: ../src/gnome-utils/glade/preferences.glade.h:137
 msgid "_Auto-split ledger"
 msgstr "_Aktive vollständig"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:128
+#: ../src/gnome-utils/glade/preferences.glade.h:138
 msgid "_Automatic decimal point"
 msgstr "Automatische _Dezimalstellen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:129
+#: ../src/gnome-utils/glade/preferences.glade.h:139
 msgid "_Basic ledger"
 msgstr "_Einzeilig"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:130
+#: ../src/gnome-utils/glade/preferences.glade.h:140
 msgid "_Decimal places:"
 msgstr "Komma_stellen:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:131
+#: ../src/gnome-utils/glade/preferences.glade.h:141
 msgid "_Double line mode"
 msgstr "_Bemerkung anzeigen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:132
+#: ../src/gnome-utils/glade/preferences.glade.h:142
 msgid "_Enable euro support"
 msgstr "_EURO-Unterstützung aktivieren"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:133
+#: ../src/gnome-utils/glade/preferences.glade.h:143
 msgid "_Europe:"
 msgstr "_Europa:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:134
+#: ../src/gnome-utils/glade/preferences.glade.h:144
 msgid "_ISO:"
 msgstr "_ISO:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:135
+#: ../src/gnome-utils/glade/preferences.glade.h:145
 msgid "_Icons only"
 msgstr "Nur _Icons"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:136
+#: ../src/gnome-utils/glade/preferences.glade.h:146
 msgid "_Income & expense"
 msgstr "_Erträge & Aufwendungen"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:137
+#: ../src/gnome-utils/glade/preferences.glade.h:147
+#, fuzzy
+msgid "_Left"
+msgstr "Links"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:148
 msgid "_None"
 msgstr "_Keine"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:138
+#: ../src/gnome-utils/glade/preferences.glade.h:149
 msgid "_Relative:"
 msgstr "_Relativ:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:139
+#: ../src/gnome-utils/glade/preferences.glade.h:150
 msgid "_Retain log files:"
 msgstr "Logdateien au_fbewahren"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:140
+#: ../src/gnome-utils/glade/preferences.glade.h:151
+#, fuzzy
+msgid "_Right"
+msgstr "Rechts"
+
+#: ../src/gnome-utils/glade/preferences.glade.h:152
 msgid "_Save window size and position"
 msgstr "_Fenstergrößen und -positionen speichern"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:141
+#: ../src/gnome-utils/glade/preferences.glade.h:153
 msgid "_Text only"
 msgstr "Nur _Text"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:142
+#: ../src/gnome-utils/glade/preferences.glade.h:154
 msgid "_US:"
 msgstr "_USA:"
 
-#: ../src/gnome-utils/glade/preferences.glade.h:143
+#: ../src/gnome-utils/glade/preferences.glade.h:155
 msgid "_Use system theme colors"
 msgstr "Farben der _systemweiten Einstellungen verwenden"
 
@@ -10822,82 +11067,91 @@
 msgid "_Show tips at startup"
 msgstr "Tipps beim Programmstart _anzeigen"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:2
+#: ../src/gnome-utils/glade/transfer.glade.h:1
 msgid "<b>Basic Information</b>"
 msgstr "<b>Informationen</b>"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:3
+#: ../src/gnome-utils/glade/transfer.glade.h:2
 msgid "<b>Currency Transfer</b>"
 msgstr "<b>Währungsbuchung</b>"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:4
+#: ../src/gnome-utils/glade/transfer.glade.h:3
 msgid "<b>Transfer From</b>"
 msgstr "<b>Herkunftskonto</b>"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:5
+#: ../src/gnome-utils/glade/transfer.glade.h:4
 msgid "<b>Transfer To</b>"
 msgstr "<b>Buchen nach</b>"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:7
+#: ../src/gnome-utils/glade/transfer.glade.h:6
 msgid "Currency:"
 msgstr "Währung:"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:8
+#: ../src/gnome-utils/glade/transfer.glade.h:7
 msgid "Date:"
 msgstr "Datum:"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:9
+#: ../src/gnome-utils/glade/transfer.glade.h:8
 msgid "Description:"
 msgstr "Beschreibung:"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:10
+#: ../src/gnome-utils/glade/transfer.glade.h:9
 msgid "Exchange Rate:"
 msgstr "Wechselkurs:"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:11
+#: ../src/gnome-utils/glade/transfer.glade.h:10
 msgid "Memo:"
 msgstr "Buchungstext:"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:12
+#: ../src/gnome-utils/glade/transfer.glade.h:11
 msgid "Num:"
 msgstr "Nummer:"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
-#: ../src/gnome-utils/glade/transfer.glade.h:13
-#: ../intl-scm/guile-strings.c:1132 ../intl-scm/guile-strings.c:1216
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../src/gnome-utils/glade/transfer.glade.h:12
+#: ../intl-scm/guile-strings.c:1844 ../intl-scm/guile-strings.c:1928
+#: ../intl-scm/guile-strings.c:2468 ../intl-scm/guile-strings.c:2552
 msgid "Show Income/Expense"
 msgstr "Erträge/Aufwendungen anzeigen"
 
-#: ../src/gnome-utils/glade/transfer.glade.h:15
+#: ../src/gnome-utils/glade/transfer.glade.h:14
 msgid "Transfer Funds"
 msgstr "Buchen"
 
 #. create the button.
-#: ../src/gnome-utils/gnc-account-sel.c:476
+#: ../src/gnome-utils/gnc-account-sel.c:382
 msgid "New..."
 msgstr "Neu..."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../src/gnome-utils/gnc-date-delta.c:218 ../intl-scm/guile-strings.c:1170
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../src/gnome-utils/gnc-date-delta.c:216 ../intl-scm/guile-strings.c:1882
+#: ../intl-scm/guile-strings.c:2506
 msgid "Weeks"
 msgstr "Wochen"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../src/gnome-utils/gnc-date-delta.c:219 ../intl-scm/guile-strings.c:1174
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../src/gnome-utils/gnc-date-delta.c:218 ../intl-scm/guile-strings.c:1886
+#: ../intl-scm/guile-strings.c:2510
 msgid "Months"
 msgstr "Monate"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../src/gnome-utils/gnc-date-delta.c:220 ../intl-scm/guile-strings.c:1176
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../src/gnome-utils/gnc-date-delta.c:220 ../intl-scm/guile-strings.c:1888
+#: ../intl-scm/guile-strings.c:2512
 msgid "Years"
 msgstr "Jahre"
 
-#: ../src/gnome-utils/gnc-date-delta.c:263
+#: ../src/gnome-utils/gnc-date-delta.c:244
 msgid "Ago"
 msgstr "Vor"
 
-#: ../src/gnome-utils/gnc-date-delta.c:264
+#: ../src/gnome-utils/gnc-date-delta.c:246
 msgid "From Now"
 msgstr "Von jetzt"
 
@@ -10908,12 +11162,15 @@
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../src/gnome-utils/gnc-dense-cal.c:286 ../intl-scm/guile-strings.c:400
-#: ../intl-scm/guile-strings.c:612
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../src/gnome-utils/gnc-dense-cal.c:252 ../intl-scm/guile-strings.c:448
+#: ../intl-scm/guile-strings.c:660 ../intl-scm/guile-strings.c:872
+#: ../intl-scm/guile-strings.c:1084
 msgid "Date: "
 msgstr "Datum:"
 
-#: ../src/gnome-utils/gnc-dense-cal.c:1065
+#: ../src/gnome-utils/gnc-dense-cal.c:1057
 msgid "(unnamed)"
 msgstr "(unbenannt)"
 
@@ -10922,74 +11179,74 @@
 msgid "Failed to process file: %s"
 msgstr "Kann Datei nicht verarbeiten: %s"
 
-#: ../src/gnome-utils/gnc-druid-provider-file-gnome.c:131
+#: ../src/gnome-utils/gnc-druid-provider-file-gnome.c:132
 #, c-format
 msgid "Failed to open file: %s: %s"
 msgstr "Kann Datei %s nicht öffnen: %s"
 
-#: ../src/gnome-utils/gnc-file.c:101 ../src/gnome-utils/gnc-main-window.c:226
+#: ../src/gnome-utils/gnc-file.c:99 ../src/gnome-utils/gnc-main-window.c:230
 msgid "_Import"
 msgstr "_Importieren"
 
-#: ../src/gnome-utils/gnc-file.c:103 ../src/gnome-utils/gnc-file.c:261
+#: ../src/gnome-utils/gnc-file.c:101 ../src/gnome-utils/gnc-file.c:254
 msgid "Import"
 msgstr "Import"
 
-#: ../src/gnome-utils/gnc-file.c:109 ../src/gnome-utils/gnc-file.c:1020
+#: ../src/gnome-utils/gnc-file.c:107 ../src/gnome-utils/gnc-file.c:1018
 msgid "Save"
 msgstr "Speichern"
 
-#: ../src/gnome-utils/gnc-file.c:113 ../src/gnome-utils/gnc-main-window.c:227
+#: ../src/gnome-utils/gnc-file.c:111 ../src/gnome-utils/gnc-main-window.c:231
 msgid "_Export"
 msgstr "E_xportieren"
 
-#: ../src/gnome-utils/gnc-file.c:116 ../src/gnome-utils/gnc-file.c:277
-#: ../src/gnome-utils/gnc-file.c:877
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:975
+#: ../src/gnome-utils/gnc-file.c:114 ../src/gnome-utils/gnc-file.c:270
+#: ../src/gnome-utils/gnc-file.c:876
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:985
 msgid "Export"
 msgstr "Exportieren"
 
-#: ../src/gnome-utils/gnc-file.c:159
+#: ../src/gnome-utils/gnc-file.c:152
 msgid "All files"
 msgstr "Alle Dateien"
 
 #. Just in case
-#: ../src/gnome-utils/gnc-file.c:201
+#: ../src/gnome-utils/gnc-file.c:194
 #: ../src/import-export/hbci/druid-hbci-utils.c:159
 #: ../src/import-export/hbci/druid-hbci-utils.c:173
 msgid "(null)"
 msgstr "(keine)"
 
-#: ../src/gnome-utils/gnc-file.c:210
+#: ../src/gnome-utils/gnc-file.c:203
 #, c-format
 msgid "No suitable backend was found for %s."
 msgstr "Kein passendes Dateimodul wurde gefunden für %s."
 
-#: ../src/gnome-utils/gnc-file.c:215
+#: ../src/gnome-utils/gnc-file.c:208
 #, c-format
 msgid "The URL %s is not supported by this version of GnuCash."
 msgstr "Die URL »%s« kann von dieser GnuCash Version nicht verarbeitet werden."
 
-#: ../src/gnome-utils/gnc-file.c:220
+#: ../src/gnome-utils/gnc-file.c:213
 #, c-format
 msgid "Can't parse the URL %s."
 msgstr "Folgende URL konnte nicht verarbeitet werden: %s"
 
-#: ../src/gnome-utils/gnc-file.c:225
+#: ../src/gnome-utils/gnc-file.c:218
 #, c-format
 msgid "Can't connect to %s. The host, username or password were incorrect."
 msgstr ""
 "Verbindung konnte nicht aufgebaut werden zu Rechner »%s«. Der Rechnername, "
 "Benutzername oder Passwort waren falsch."
 
-#: ../src/gnome-utils/gnc-file.c:231
+#: ../src/gnome-utils/gnc-file.c:224
 #, c-format
 msgid "Can't connect to %s. Connection was lost, unable to send data."
 msgstr ""
 "Verbindung konnte nicht aufgebaut werden zu Rechner »%s«. Verbindung "
 "verloren. Daten konnten nicht gesendet werden."
 
-#: ../src/gnome-utils/gnc-file.c:237
+#: ../src/gnome-utils/gnc-file.c:230
 msgid ""
 "This file/URL appears to be from a newer version of GnuCash. You must "
 "upgrade your version of GnuCash to work with this data."
@@ -10997,13 +11254,13 @@
 "Diese Datei scheint von einer neueren Version von GnuCash zu sein. Sie "
 "brauchen eine neuere GnuCash Version, um die Datei lesen zu können."
 
-#: ../src/gnome-utils/gnc-file.c:244
+#: ../src/gnome-utils/gnc-file.c:237
 #, c-format
 msgid "The database %s doesn't seem to exist. Do you want to create it?"
 msgstr ""
 "Die Datenbank oder Datei »%s« existiert nicht. Möchten Sie sie erstellen?"
 
-#: ../src/gnome-utils/gnc-file.c:254
+#: ../src/gnome-utils/gnc-file.c:247
 #, c-format
 msgid ""
 "GnuCash could not obtain the lock for %s. That database may be in use by "
@@ -11016,7 +11273,7 @@
 "\n"
 "Möchten Sie trotzdem mit dem Öffnen der Datenbank fortfahren?"
 
-#: ../src/gnome-utils/gnc-file.c:262
+#: ../src/gnome-utils/gnc-file.c:255
 #, c-format
 msgid ""
 "GnuCash could not obtain the lock for %s. That database may be in use by "
@@ -11029,7 +11286,7 @@
 "\n"
 "Möchten Sie trotzdem mit dem Importieren der Datenbank fortfahren?"
 
-#: ../src/gnome-utils/gnc-file.c:270
+#: ../src/gnome-utils/gnc-file.c:263
 #, c-format
 msgid ""
 "GnuCash could not obtain the lock for %s. That database may be in use by "
@@ -11042,7 +11299,7 @@
 "\n"
 "Möchten Sie trotzdem mit dem Speichern der Datenbank fortfahren?"
 
-#: ../src/gnome-utils/gnc-file.c:278
+#: ../src/gnome-utils/gnc-file.c:271
 #, c-format
 msgid ""
 "GnuCash could not obtain the lock for %s. That database may be in use by "
@@ -11055,7 +11312,7 @@
 "\n"
 "Möchten Sie trotzdem mit dem Öffnen der Datei fortfahren?"
 
-#: ../src/gnome-utils/gnc-file.c:301
+#: ../src/gnome-utils/gnc-file.c:294
 #, c-format
 msgid ""
 "GnuCash could not write to %s. That database may be on a read-only file "
@@ -11065,14 +11322,14 @@
 "einem schreibgeschützten Dateisystem befinden oder Sie haben keine "
 "Schreibberechtigung in das Verzeichnis. "
 
-#: ../src/gnome-utils/gnc-file.c:308
+#: ../src/gnome-utils/gnc-file.c:301
 #, c-format
 msgid "The file/URL %s does not contain GnuCash data or the data is corrupt."
 msgstr ""
 "Die Datei/URL »%s« verweist nicht auf GnuCash-Daten oder diese Daten sind "
 "fehlerhaft."
 
-#: ../src/gnome-utils/gnc-file.c:314
+#: ../src/gnome-utils/gnc-file.c:307
 #, c-format
 msgid ""
 "The server at URL %s experienced an error or encountered bad or corrupt data."
@@ -11080,19 +11337,19 @@
 "Der Server unter der URL »%s« stiess auf einen Fehler oder benutzte falsche "
 "oder fehlerhafte Daten."
 
-#: ../src/gnome-utils/gnc-file.c:320
+#: ../src/gnome-utils/gnc-file.c:313
 #, c-format
 msgid "You do not have permission to access %s."
 msgstr "Sie haben keine Zugriffsberechtigung für die Datei »%s«."
 
-#: ../src/gnome-utils/gnc-file.c:325
+#: ../src/gnome-utils/gnc-file.c:318
 #: ../src/register/register-core/formulacell.c:116
 #: ../src/register/register-core/pricecell.c:180
 #, c-format
 msgid "An error occurred while processing %s."
 msgstr "Fehler aufgetreten beim Verarbeiten von »%s«."
 
-#: ../src/gnome-utils/gnc-file.c:331
+#: ../src/gnome-utils/gnc-file.c:324
 #, c-format
 msgid ""
 "Invalid QSF Object file! The QSF object file %s failed to validate against "
@@ -11103,7 +11360,7 @@
 "verglichen mit dem QSF Objekt-Schema. Die XML-Struktur ist entweder nicht "
 "wohlgeformt oder enthält ungültige Daten."
 
-#: ../src/gnome-utils/gnc-file.c:338
+#: ../src/gnome-utils/gnc-file.c:331
 #, c-format
 msgid ""
 "Invalid QSF Map file! The QSF map file %s failed to validate against the QSF "
@@ -11114,7 +11371,7 @@
 "Format, verglichen mit dem QSF Map-Schema. Die XML-Struktur ist entweder "
 "nicht wohlgeformt oder enthält ungültige Daten."
 
-#: ../src/gnome-utils/gnc-file.c:345
+#: ../src/gnome-utils/gnc-file.c:338
 #, c-format
 msgid ""
 "The QSF Map file %s was written for a different version of QOF.  It may need "
@@ -11125,7 +11382,7 @@
 "Sie in der Dokumentation der anderen Version, ob Sie Konvertierungsschritte "
 "durchführen müssen, um sie mit dieser Version zu lesen."
 
-#: ../src/gnome-utils/gnc-file.c:352
+#: ../src/gnome-utils/gnc-file.c:345
 #, c-format
 msgid ""
 "The selected QSF map %s contains unusable data. This is usually because not "
@@ -11136,7 +11393,7 @@
 "sein, wenn nicht für alle erforderlichen Parameter für die gewünschten "
 "Objekte alle notwendigen Berechnungsformeln in der Zuordnung angegeben waren."
 
-#: ../src/gnome-utils/gnc-file.c:359
+#: ../src/gnome-utils/gnc-file.c:352
 #, c-format
 msgid ""
 "The selected QSF object file %s contains one or more invalid GUIDs. The file "
@@ -11146,14 +11403,14 @@
 "GUIDs. Die Datei kann nicht verarbeitet werden. Versuchen Sie, eine "
 "korrigierte Datei zu erhalten."
 
-#: ../src/gnome-utils/gnc-file.c:366
+#: ../src/gnome-utils/gnc-file.c:359
 #, c-format
 msgid "The selected QSF Object file %s requires a map but it was not provided."
 msgstr ""
 "Die gewählte QSF-Objekt-Datei »%s« erfordert eine QSF-Zuordnung (Map), aber "
 "es ist keine verfügbar."
 
-#: ../src/gnome-utils/gnc-file.c:372
+#: ../src/gnome-utils/gnc-file.c:365
 #, c-format
 msgid ""
 "Wrong QSF map selected. The selected map %s validates but was written for "
@@ -11165,14 +11422,14 @@
 "in dieser Zuordnung enthält nicht alle Objekte, die in der aktuellen QSF-"
 "Objekt-Datei zu finden sind."
 
-#: ../src/gnome-utils/gnc-file.c:380
+#: ../src/gnome-utils/gnc-file.c:373
 #, c-format
 msgid "The selected file %s is a QSF map and cannot be opened as a QSF object."
 msgstr ""
 "Die gewählte Datei »%s« ist eine QSF-Zuordnung (Map) und kann nicht als QSF-"
 "Objekt geöffnet werden."
 
-#: ../src/gnome-utils/gnc-file.c:386
+#: ../src/gnome-utils/gnc-file.c:379
 #, c-format
 msgid ""
 "When converting XML strings into numbers, an overflow has been detected. The "
@@ -11183,7 +11440,7 @@
 "QSF-Datei »%s« enthält ungültige Daten in einem Feld, das eine Zahl "
 "enthalten soll."
 
-#: ../src/gnome-utils/gnc-file.c:393
+#: ../src/gnome-utils/gnc-file.c:386
 #, c-format
 msgid ""
 "The QSF object file %s is valid and contains GnuCash objects. However, "
@@ -11197,52 +11454,57 @@
 "GnuCash-Buch fusioniert werden muss. Bitte öffnen Sie eine GnuCash-Datei "
 "oder erstellen eine neue, und importieren dann diese QSF-Datei."
 
-#: ../src/gnome-utils/gnc-file.c:403
+#: ../src/gnome-utils/gnc-file.c:396
 msgid "There was an error reading the file. Do you want to continue?"
 msgstr "Es gab einen Fehler beim Öffnen der Datei. Möchten Sie fortfahren?"
 
-#: ../src/gnome-utils/gnc-file.c:409
+#: ../src/gnome-utils/gnc-file.c:402
 #, c-format
 msgid "There was an error parsing the file %s."
-msgstr "Beim Leser der Datei »%s« ist ein Fehler aufgetreten."
+msgstr "Beim Lesen der Datei »%s« ist ein Fehler aufgetreten."
 
-#: ../src/gnome-utils/gnc-file.c:414
+#: ../src/gnome-utils/gnc-file.c:407
 #, c-format
 msgid "The file %s is empty."
 msgstr "Die Datei »%s« ist leer."
 
-#: ../src/gnome-utils/gnc-file.c:419
+#: ../src/gnome-utils/gnc-file.c:415
 #, c-format
 msgid "The file %s could not be found."
 msgstr "Die Datei »%s« konnte nicht gefunden werden."
 
-#: ../src/gnome-utils/gnc-file.c:424
+#: ../src/gnome-utils/gnc-file.c:421
 msgid "This file is from an older version of GnuCash. Do you want to continue?"
 msgstr ""
 "Diese Datei ist von einer älteren Version von GnuCash. Möchten Sie "
 "fortfahren?"
 
-#: ../src/gnome-utils/gnc-file.c:430
+#: ../src/gnome-utils/gnc-file.c:427
 #, c-format
 msgid "The file type of file %s is unknown."
 msgstr "Der Dateityp der Datei »%s« ist unbekannt."
 
-#: ../src/gnome-utils/gnc-file.c:435
+#: ../src/gnome-utils/gnc-file.c:432
 #, c-format
 msgid "Could not make a backup of the file %s"
 msgstr "Von der Datei »%s« konnte kein Backup erstellt werden."
 
-#: ../src/gnome-utils/gnc-file.c:440
+#: ../src/gnome-utils/gnc-file.c:437
 #, c-format
 msgid ""
-"Could not write to file %s Check that you have permission to write to this "
+"Could not write to file %s.  Check that you have permission to write to this "
 "file and that there is sufficient space to create it."
 msgstr ""
 "Es konnte nicht in die Datei »%s« geschrieben werden. Stellen Sie sicher, "
 "dass Sie Schreibberechtigung für das Verzeichnis und diese Datei haben und "
 "dass genug Platz auf dem Datenträger frei ist."
 
-#: ../src/gnome-utils/gnc-file.c:447
+#: ../src/gnome-utils/gnc-file.c:444
+#, c-format
+msgid "No read permission to read from file %s."
+msgstr "Sie haben keine Leseberechtigung für die Datei »%s«."
+
+#: ../src/gnome-utils/gnc-file.c:449
 msgid ""
 "This database is from an older version of GnuCash. Do you want to want to "
 "upgrade the database to the current version?"
@@ -11250,7 +11512,7 @@
 "Diese Datei ist von einer älteren Version von GnuCash.  Möchten Sie die "
 "Datei zur aktuellen GnuCash-Version aktualisieren?"
 
-#: ../src/gnome-utils/gnc-file.c:454
+#: ../src/gnome-utils/gnc-file.c:456
 msgid ""
 "The SQL database is in use by other users, and the upgrade cannot be "
 "performed until they logoff. If there are currently no other users, consult "
@@ -11263,32 +11525,32 @@
 "Wenn keine anderen Anwender mehr im System sind, konsultieren Sie bitte das "
 "Handbuch, um Anweisungen zum Löschen von 'dangling login sessions' zu finden."
 
-#: ../src/gnome-utils/gnc-file.c:464
+#: ../src/gnome-utils/gnc-file.c:466
 #, c-format
 msgid "An unknown I/O error (%d) occurred."
 msgstr "Ein unbekannter Eingabe/Ausgabefehler (%d) ist aufgetreten."
 
-#: ../src/gnome-utils/gnc-file.c:553
+#: ../src/gnome-utils/gnc-file.c:555
 msgid "Save changes to the file?"
 msgstr "Änderungen in Datei speichern?"
 
-#: ../src/gnome-utils/gnc-file.c:556 ../src/gnome-utils/gnc-main-window.c:892
+#: ../src/gnome-utils/gnc-file.c:558 ../src/gnome-utils/gnc-main-window.c:966
 #, c-format
 msgid "If you don't save, changes from the past %d minutes will be discarded."
 msgstr ""
 "Wenn Sie nicht speichern, gehen die Änderungen der letzten %d Minuten "
 "verloren."
 
-#: ../src/gnome-utils/gnc-file.c:570
+#: ../src/gnome-utils/gnc-file.c:572
 msgid "Continue _Without Saving"
 msgstr "Schließen _ohne zu speichern"
 
-#: ../src/gnome-utils/gnc-file.c:650
+#: ../src/gnome-utils/gnc-file.c:652
 #, c-format
 msgid "GnuCash could not obtain the lock for %s."
 msgstr "GnuCash konnte keine exklusive Schreibberechtigung für %s erreichen."
 
-#: ../src/gnome-utils/gnc-file.c:652
+#: ../src/gnome-utils/gnc-file.c:654
 msgid ""
 "That database may be in use by another user, in which case you should not "
 "open the database. What would you like to do?"
@@ -11302,7 +11564,7 @@
 "\n"
 "Was möchten Sie tun?"
 
-#: ../src/gnome-utils/gnc-file.c:655
+#: ../src/gnome-utils/gnc-file.c:657
 msgid ""
 "That database may be on a read-only file system, or you may not have write "
 "permission for the directory. If you proceed you may not be able to save any "
@@ -11317,28 +11579,28 @@
 "\n"
 "Was möchten Sie tun?"
 
-#: ../src/gnome-utils/gnc-file.c:672
+#: ../src/gnome-utils/gnc-file.c:674
 msgid "_Open Anyway"
 msgstr "Tr_otzdem öffnen"
 
-#: ../src/gnome-utils/gnc-file.c:674
+#: ../src/gnome-utils/gnc-file.c:676
 msgid "_Create New File"
 msgstr "_Neue Datei anlegen"
 
-#: ../src/gnome-utils/gnc-file.c:913 ../src/gnome-utils/gnc-file.c:1109
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1327
+#: ../src/gnome-utils/gnc-file.c:911 ../src/gnome-utils/gnc-file.c:1107
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1341
 #, c-format
 msgid "The file %s already exists. Are you sure you want to overwrite it?"
 msgstr ""
 "Die Datei »%s« existiert bereits. Sind Sie sicher, dass sie überschrieben "
 "werden soll?"
 
-#: ../src/gnome-utils/gnc-file.c:928
+#: ../src/gnome-utils/gnc-file.c:926
 msgid "Exporting file..."
 msgstr "Datei exportieren..."
 
 #. %s is the strerror(3) error string of the error that occurred.
-#: ../src/gnome-utils/gnc-file.c:941
+#: ../src/gnome-utils/gnc-file.c:939
 #, c-format
 msgid ""
 "There was an error saving the file.\n"
@@ -11353,23 +11615,32 @@
 msgid "View..."
 msgstr "Ansicht..."
 
-#: ../src/gnome-utils/gnc-html.c:107
+#: ../src/gnome-utils/gnc-gnome-utils.c:247
+msgid ""
+"GnuCash could not find the files for the help documentation.  This is likely "
+"because the 'gnucash-docs' package is not installed."
+msgstr ""
+"Die Dateien für die Hilfe-Dokumentation konnten nicht gefunden werden. Das "
+"liegt vermutlich daran, dass das Paket »gnucash-docs« noch nicht installiert "
+"ist."
+
+#: ../src/gnome-utils/gnc-html.c:108
 msgid "Not found"
 msgstr "Nicht gefunden"
 
-#: ../src/gnome-utils/gnc-html.c:109
+#: ../src/gnome-utils/gnc-html.c:110
 msgid "The specified URL could not be loaded."
 msgstr "Die angegebene URL konnte nicht geladen werden."
 
-#: ../src/gnome-utils/gnc-html.c:115
+#: ../src/gnome-utils/gnc-html.c:116
 msgid "There was an error loading the specified URL."
 msgstr "Beim Laden der URL ist ein Fehler aufgetreten."
 
-#: ../src/gnome-utils/gnc-html.c:116
+#: ../src/gnome-utils/gnc-html.c:117
 msgid "Error message"
 msgstr "Fehlermeldung"
 
-#: ../src/gnome-utils/gnc-html.c:605 ../src/gnome-utils/gnc-html.c:1064
+#: ../src/gnome-utils/gnc-html.c:610 ../src/gnome-utils/gnc-html.c:1070
 msgid ""
 "Secure HTTP access is disabled. You can enable it in the Network section of "
 "the Preferences dialog."
@@ -11378,7 +11649,7 @@
 "Sie den Netzwerk Abschnitt der Einstellungen und aktivieren die "
 "entsprechende Option."
 
-#: ../src/gnome-utils/gnc-html.c:614 ../src/gnome-utils/gnc-html.c:1074
+#: ../src/gnome-utils/gnc-html.c:619 ../src/gnome-utils/gnc-html.c:1080
 msgid ""
 "Network HTTP access is disabled. You can enable it in the Network section of "
 "the Preferences dialog."
@@ -11387,7 +11658,7 @@
 "Menü »Voreinstellungen«einschalten"
 
 #. %s is a URL (some location somewhere).
-#: ../src/gnome-utils/gnc-html.c:1005
+#: ../src/gnome-utils/gnc-html.c:1010
 #, c-format
 msgid "There was an error accessing %s."
 msgstr "Beim Zugriff auf %s ist ein Fehler aufgetreten."
@@ -11396,320 +11667,298 @@
 msgid "_Delete Account"
 msgstr "_Konto löschen"
 
+#: ../src/gnome-utils/gnc-icons.c:18 ../src/gnome/window-reconcile.c:2011
+msgid "_Edit Account"
+msgstr "Konto _bearbeiten"
+
 #: ../src/gnome-utils/gnc-icons.c:19
 msgid "_New Account"
 msgstr "_Neues Konto"
 
 #. Account menu
-#: ../src/gnome-utils/gnc-icons.c:20 ../src/gnome/window-reconcile.c:2006
+#: ../src/gnome-utils/gnc-icons.c:20 ../src/gnome/window-reconcile.c:2008
 msgid "_Open Account"
 msgstr "_Konto öffnen"
 
 #. Toplevel
-#: ../src/gnome-utils/gnc-main-window.c:211
+#: ../src/gnome-utils/gnc-main-window.c:215
 msgid "_File"
 msgstr "_Datei"
 
-#: ../src/gnome-utils/gnc-main-window.c:215
+#: ../src/gnome-utils/gnc-main-window.c:219
 msgid "Tra_nsaction"
-msgstr "_Buchung"
+msgstr "B_uchung"
 
-#: ../src/gnome-utils/gnc-main-window.c:216
+#: ../src/gnome-utils/gnc-main-window.c:220
 msgid "_Reports"
 msgstr "Be_richte"
 
-#: ../src/gnome-utils/gnc-main-window.c:217
+#: ../src/gnome-utils/gnc-main-window.c:221
 msgid "_Tools"
 msgstr "_Werkzeuge"
 
-#: ../src/gnome-utils/gnc-main-window.c:218
+#: ../src/gnome-utils/gnc-main-window.c:222
 msgid "E_xtensions"
 msgstr "Er_weiterungen"
 
-#: ../src/gnome-utils/gnc-main-window.c:219
+#: ../src/gnome-utils/gnc-main-window.c:223
 msgid "_Windows"
 msgstr "_Fenster"
 
 #. Help menu
-#: ../src/gnome-utils/gnc-main-window.c:220
-#: ../src/gnome/window-reconcile.c:1986 ../src/gnome/window-reconcile.c:2034
+#: ../src/gnome-utils/gnc-main-window.c:224
+#: ../src/gnome/window-reconcile.c:1988 ../src/gnome/window-reconcile.c:2036
 msgid "_Help"
 msgstr "_Hilfe"
 
 #. File menu
 #. Transaction menu
-#: ../src/gnome-utils/gnc-main-window.c:224
-#: ../src/gnome/window-reconcile.c:2022
+#: ../src/gnome-utils/gnc-main-window.c:228
+#: ../src/gnome/window-reconcile.c:2024
 msgid "_New"
 msgstr "_Neu"
 
-#: ../src/gnome-utils/gnc-main-window.c:225
+#: ../src/gnome-utils/gnc-main-window.c:229
 msgid "_Open"
 msgstr "Ö_ffnen"
 
-#: ../src/gnome-utils/gnc-main-window.c:228
+#: ../src/gnome-utils/gnc-main-window.c:232
 msgid "_Print..."
 msgstr "_Drucken..."
 
-#: ../src/gnome-utils/gnc-main-window.c:229
+#: ../src/gnome-utils/gnc-main-window.c:233
 msgid "Print the currently active page"
 msgstr "Aktuelle Seite drucken"
 
-#: ../src/gnome-utils/gnc-main-window.c:230
+#: ../src/gnome-utils/gnc-main-window.c:234
 msgid "Proper_ties"
 msgstr "_Eigenschaften"
 
-#: ../src/gnome-utils/gnc-main-window.c:231
+#: ../src/gnome-utils/gnc-main-window.c:235
 msgid "Edit the properties of the current file"
 msgstr "Eigenschaften dieser Datei anzeigen und bearbeiten."
 
-#: ../src/gnome-utils/gnc-main-window.c:233
+#: ../src/gnome-utils/gnc-main-window.c:237
 msgid "_Close"
 msgstr "S_chließen"
 
-#: ../src/gnome-utils/gnc-main-window.c:234
+#: ../src/gnome-utils/gnc-main-window.c:238
 msgid "Close the currently active page"
 msgstr "Aktuelle Seite schließen"
 
-#: ../src/gnome-utils/gnc-main-window.c:236
+#: ../src/gnome-utils/gnc-main-window.c:240
 msgid "_Quit"
 msgstr "_Beenden"
 
-#: ../src/gnome-utils/gnc-main-window.c:237
+#: ../src/gnome-utils/gnc-main-window.c:241
 msgid "Quit this application"
 msgstr "GnuCash beenden"
 
-#: ../src/gnome-utils/gnc-main-window.c:251
+#: ../src/gnome-utils/gnc-main-window.c:255
 msgid "Pr_eferences"
 msgstr "_Einstellungen"
 
-#: ../src/gnome-utils/gnc-main-window.c:252
+#: ../src/gnome-utils/gnc-main-window.c:256
 msgid "Edit the global preferences of GnuCash"
 msgstr "Die globalen Einstellungen von GnuCash bearbeiten"
 
-#: ../src/gnome-utils/gnc-main-window.c:258
+#: ../src/gnome-utils/gnc-main-window.c:262
 msgid "Select sorting criteria for this page view"
 msgstr "Sortierungskriterien für die aktuelle Ansicht wählen"
 
-#: ../src/gnome-utils/gnc-main-window.c:260
+#: ../src/gnome-utils/gnc-main-window.c:264
 msgid "Select the account types that should be displayed."
 msgstr "Wählen Sie die Kontoarten, die in der Kontenansicht angezeigt werden."
 
-#: ../src/gnome-utils/gnc-main-window.c:261
+#: ../src/gnome-utils/gnc-main-window.c:265
 msgid "_Refresh"
 msgstr "Aktualisie_ren"
 
-#: ../src/gnome-utils/gnc-main-window.c:262
+#: ../src/gnome-utils/gnc-main-window.c:266
 msgid "Refresh this window"
 msgstr "Dieses Fenster aktualisieren"
 
 #. Actions menu
-#: ../src/gnome-utils/gnc-main-window.c:267
-#: ../src/gnome/window-reconcile.c:2015
+#: ../src/gnome-utils/gnc-main-window.c:271
+#: ../src/gnome/window-reconcile.c:2017
 msgid "_Check & Repair"
 msgstr "Überprüfen"
 
-#: ../src/gnome-utils/gnc-main-window.c:268
+#: ../src/gnome-utils/gnc-main-window.c:272
 msgid "Reset _Warnings..."
 msgstr "_Warnungen zurücksetzen..."
 
-#: ../src/gnome-utils/gnc-main-window.c:269
+#: ../src/gnome-utils/gnc-main-window.c:273
 msgid "Reset the state of all warning message so they will be shown again."
 msgstr ""
 "Den gespeicherten Status aller Warnungsmeldungen zurücksetzen, so dass alle "
 "wieder angezeigt werden."
 
-#: ../src/gnome-utils/gnc-main-window.c:271
+#: ../src/gnome-utils/gnc-main-window.c:275
 msgid "Re_name Page"
 msgstr "Seite umbe_nennen"
 
-#: ../src/gnome-utils/gnc-main-window.c:272
+#: ../src/gnome-utils/gnc-main-window.c:276
 msgid "Rename this page."
 msgstr "Diese Seite umbenennen."
 
 #. Windows menu
-#: ../src/gnome-utils/gnc-main-window.c:277
+#: ../src/gnome-utils/gnc-main-window.c:281
 msgid "_New Window"
 msgstr "_Neues Fenster"
 
-#: ../src/gnome-utils/gnc-main-window.c:278
+#: ../src/gnome-utils/gnc-main-window.c:282
 msgid "Open a new top-level GnuCash window."
 msgstr "Ein neues Top-Level GnuCash Fenster öffnen."
 
-#: ../src/gnome-utils/gnc-main-window.c:280
+#: ../src/gnome-utils/gnc-main-window.c:284
 msgid "New Window with _Page"
 msgstr "Neues Fenster mit _Seite"
 
-#: ../src/gnome-utils/gnc-main-window.c:281
+#: ../src/gnome-utils/gnc-main-window.c:285
 msgid "Move the current page to a new top-level GnuCash window."
 msgstr "Aktuelle Seite in ein neues Top-Level GnuCash Fenster verschieben."
 
 #. Help menu
-#: ../src/gnome-utils/gnc-main-window.c:286
+#: ../src/gnome-utils/gnc-main-window.c:290
 msgid "Tutorial and Concepts _Guide"
 msgstr "GnuCash-_Kurs und Konzepte"
 
-#: ../src/gnome-utils/gnc-main-window.c:287
+#: ../src/gnome-utils/gnc-main-window.c:291
 msgid "Open the GnuCash Tutorial"
 msgstr "Den GnuCash-Online-Kurs öffnen"
 
-#: ../src/gnome-utils/gnc-main-window.c:289
+#: ../src/gnome-utils/gnc-main-window.c:293
 msgid "_Contents"
 msgstr "I_nhalt"
 
-#: ../src/gnome-utils/gnc-main-window.c:290
+#: ../src/gnome-utils/gnc-main-window.c:294
 msgid "Open the GnuCash Help"
 msgstr "Die GnuCash-Hilfe öffnen"
 
-#: ../src/gnome-utils/gnc-main-window.c:292
+#: ../src/gnome-utils/gnc-main-window.c:296
 msgid "_About"
 msgstr "_Info"
 
-#: ../src/gnome-utils/gnc-main-window.c:293
+#: ../src/gnome-utils/gnc-main-window.c:297
 msgid "About GnuCash"
 msgstr "Info zu GnuCash"
 
-#: ../src/gnome-utils/gnc-main-window.c:303
+#: ../src/gnome-utils/gnc-main-window.c:307
 msgid "_Toolbar"
 msgstr "_Werkzeugleiste"
 
-#: ../src/gnome-utils/gnc-main-window.c:304
+#: ../src/gnome-utils/gnc-main-window.c:308
 msgid "Show/hide the toolbar on this window"
 msgstr "Die Werkzeugleiste in diesem Fenster anzeigen/verbergen"
 
-#: ../src/gnome-utils/gnc-main-window.c:306
+#: ../src/gnome-utils/gnc-main-window.c:310
 msgid "Su_mmary Bar"
 msgstr "_Zusammenfassungsleiste"
 
-#: ../src/gnome-utils/gnc-main-window.c:307
+#: ../src/gnome-utils/gnc-main-window.c:311
 msgid "Show/hide the summary bar on this window"
 msgstr "Die Zusammenfassungs-Leiste in diesem Fenster anzeigen/verbergen"
 
-#: ../src/gnome-utils/gnc-main-window.c:309
+#: ../src/gnome-utils/gnc-main-window.c:313
 msgid "Stat_us Bar"
 msgstr "_Statusleiste"
 
-#: ../src/gnome-utils/gnc-main-window.c:310
+#: ../src/gnome-utils/gnc-main-window.c:314
 msgid "Show/hide the status bar on this window"
 msgstr "Die Statusleiste in diesem Fenster anzeigen/verbergen"
 
-#: ../src/gnome-utils/gnc-main-window.c:320
+#: ../src/gnome-utils/gnc-main-window.c:324
 msgid "Window _1"
 msgstr "Fenster _1"
 
-#: ../src/gnome-utils/gnc-main-window.c:321
+#: ../src/gnome-utils/gnc-main-window.c:325
 msgid "Window _2"
 msgstr "Fenster _2"
 
-#: ../src/gnome-utils/gnc-main-window.c:322
+#: ../src/gnome-utils/gnc-main-window.c:326
 msgid "Window _3"
 msgstr "Fenster _3"
 
-#: ../src/gnome-utils/gnc-main-window.c:323
+#: ../src/gnome-utils/gnc-main-window.c:327
 msgid "Window _4"
 msgstr "Fenster _4"
 
-#: ../src/gnome-utils/gnc-main-window.c:324
+#: ../src/gnome-utils/gnc-main-window.c:328
 msgid "Window _5"
 msgstr "Fenster _5"
 
-#: ../src/gnome-utils/gnc-main-window.c:325
+#: ../src/gnome-utils/gnc-main-window.c:329
 msgid "Window _6"
 msgstr "Fenster _6"
 
-#: ../src/gnome-utils/gnc-main-window.c:326
+#: ../src/gnome-utils/gnc-main-window.c:330
 msgid "Window _7"
 msgstr "Fenster _7"
 
-#: ../src/gnome-utils/gnc-main-window.c:327
+#: ../src/gnome-utils/gnc-main-window.c:331
 msgid "Window _8"
 msgstr "Fenster _8"
 
-#: ../src/gnome-utils/gnc-main-window.c:328
+#: ../src/gnome-utils/gnc-main-window.c:332
 msgid "Window _9"
 msgstr "Fenster _9"
 
-#: ../src/gnome-utils/gnc-main-window.c:329
+#: ../src/gnome-utils/gnc-main-window.c:333
 msgid "Window _0"
 msgstr "Fenster _0"
 
-#: ../src/gnome-utils/gnc-main-window.c:889
+#: ../src/gnome-utils/gnc-main-window.c:963
 #, c-format
 msgid "Save changes to file %s before closing?"
 msgstr "Änderungen der Datei %s vor dem Schließen speichern?"
 
-#: ../src/gnome-utils/gnc-main-window.c:900
+#: ../src/gnome-utils/gnc-main-window.c:974
 msgid "<unknown>"
 msgstr "<unbekannt>"
 
-#: ../src/gnome-utils/gnc-main-window.c:916
+#: ../src/gnome-utils/gnc-main-window.c:990
 msgid "Close _Without Saving"
 msgstr "Schließen _ohne zu speichern"
 
-#: ../src/gnome-utils/gnc-main-window.c:987
-msgid "Quit GnuCash?"
-msgstr "GnuCash beenden?"
-
-#: ../src/gnome-utils/gnc-main-window.c:988
-msgid ""
-"You are attempting to close the last GnuCash window.  Doing so will quit the "
-"application.  Are you sure that this is what you want to do?"
-msgstr ""
-"Sie sind im Begriff, das letzte geöffnete GnuCash-Fenster zu schließen. Dies "
-"wird GnuCash beenden. Sind Sie sich sicher, dass Sie das wollen?"
-
-#: ../src/gnome-utils/gnc-main-window.c:1123
+#: ../src/gnome-utils/gnc-main-window.c:1178
 msgid "<no file>"
 msgstr "<Keine Datei>"
 
-#: ../src/gnome-utils/gnc-main-window.c:3215
+#: ../src/gnome-utils/gnc-main-window.c:3339
 msgid "The GnuCash personal finance manager. The GNU way to manage your money!"
 msgstr ""
 "GnuCash: Ihr privater Finanzmanager. Die freie Lösung zur Finanzverwaltung."
 
 #. Development version
-#: ../src/gnome-utils/gnc-main-window.c:3228
+#: ../src/gnome-utils/gnc-main-window.c:3352
 #, c-format
 msgid "%s  This copy was built from svn r%s on %s."
 msgstr "%s  Dieses Programm wurde aus SVN r%s am %s erstellt."
 
-#: ../src/gnome-utils/gnc-main-window.c:3231
+#: ../src/gnome-utils/gnc-main-window.c:3355
 #, c-format
 msgid "%s  This copy was built from r%s on %s."
 msgstr "%s  Dieses Programm wurde aus r%s am %s erstellt."
 
-#. Translators: Insert your translator's credits here so that
-#. they will be shown in the "About" dialog.
-#: ../src/gnome-utils/gnc-main-window.c:3243
-#: ../src/gnome-utils/gnc-main-window.c:3282
+#: ../src/gnome-utils/gnc-main-window.c:3367
 msgid "translator_credits"
 msgstr "Christian Stimming <stimming at tuhh.de>"
 
-#. Translators: This is the "About" message.
-#: ../src/gnome-utils/gnc-main-window.c:3260
-msgid ""
-"The GnuCash personal finance manager.\n"
-"The GNU way to manage your money!\n"
-"http://www.gnucash.org/"
-msgstr ""
-"GnuCash: Ihr privater Finanzmanager.\n"
-"Die freie Lösung zur Finanzverwaltung.\n"
-"http://www.gnucash.org"
-
 #. CY Strings
 #. src/app-utils/date-utilities.scm
 #: ../src/gnome-utils/gnc-period-select.c:66
-#: ../src/gnome-utils/gnc-period-select.c:81 ../intl-scm/guile-strings.c:170
+#: ../src/gnome-utils/gnc-period-select.c:81 ../intl-scm/guile-strings.c:218
 msgid "Today"
 msgstr "Heute"
 
 #. src/app-utils/date-utilities.scm
-#: ../src/gnome-utils/gnc-period-select.c:67 ../intl-scm/guile-strings.c:138
+#: ../src/gnome-utils/gnc-period-select.c:67 ../intl-scm/guile-strings.c:186
 msgid "Start of this month"
 msgstr "Anfang dieses Monats"
 
 #. src/app-utils/date-utilities.scm
-#: ../src/gnome-utils/gnc-period-select.c:68 ../intl-scm/guile-strings.c:146
+#: ../src/gnome-utils/gnc-period-select.c:68 ../intl-scm/guile-strings.c:194
 msgid "Start of previous month"
 msgstr "Anfang des vorherigen Monats"
 
@@ -11718,7 +11967,7 @@
 msgstr "Anfang dieses Quartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../src/gnome-utils/gnc-period-select.c:70 ../intl-scm/guile-strings.c:162
+#: ../src/gnome-utils/gnc-period-select.c:70 ../intl-scm/guile-strings.c:210
 msgid "Start of previous quarter"
 msgstr "Anfang des vorherigen Quartals"
 
@@ -11740,12 +11989,12 @@
 msgstr "Anfang des vorherigen Haushaltsjahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../src/gnome-utils/gnc-period-select.c:82 ../intl-scm/guile-strings.c:142
+#: ../src/gnome-utils/gnc-period-select.c:82 ../intl-scm/guile-strings.c:190
 msgid "End of this month"
 msgstr "Ende dieses Monats"
 
 #. src/app-utils/date-utilities.scm
-#: ../src/gnome-utils/gnc-period-select.c:83 ../intl-scm/guile-strings.c:150
+#: ../src/gnome-utils/gnc-period-select.c:83 ../intl-scm/guile-strings.c:198
 msgid "End of previous month"
 msgstr "Ende des vorherigen Monats"
 
@@ -11754,7 +12003,7 @@
 msgstr "Ende dieses Quartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../src/gnome-utils/gnc-period-select.c:85 ../intl-scm/guile-strings.c:166
+#: ../src/gnome-utils/gnc-period-select.c:85 ../intl-scm/guile-strings.c:214
 msgid "End of previous quarter"
 msgstr "Ende des vorherigen Quartals"
 
@@ -11797,139 +12046,167 @@
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../src/gnome-utils/gnc-tree-view-account.c:514
-#: ../intl-scm/guile-strings.c:1460 ../intl-scm/guile-strings.c:1486
-#: ../intl-scm/guile-strings.c:2190 ../intl-scm/guile-strings.c:2328
-#: ../intl-scm/guile-strings.c:2448 ../intl-scm/guile-strings.c:2954
-#: ../intl-scm/guile-strings.c:3044
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../src/gnome-utils/gnc-tree-view-account.c:510
+#: ../intl-scm/guile-strings.c:2170 ../intl-scm/guile-strings.c:2196
+#: ../intl-scm/guile-strings.c:2794 ../intl-scm/guile-strings.c:2820
+#: ../intl-scm/guile-strings.c:3524 ../intl-scm/guile-strings.c:3662
+#: ../intl-scm/guile-strings.c:3782 ../intl-scm/guile-strings.c:4674
+#: ../intl-scm/guile-strings.c:4812 ../intl-scm/guile-strings.c:4932
+#: ../intl-scm/guile-strings.c:5442 ../intl-scm/guile-strings.c:5532
+#: ../intl-scm/guile-strings.c:5622 ../intl-scm/guile-strings.c:5712
 msgid "Account Name"
 msgstr "Kontobezeichnung"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:523
+#: ../src/gnome-utils/gnc-tree-view-account.c:519
 msgid "Commodity"
 msgstr "Währung/Aktie"
 
 #. src/report/report-system/options-utilities.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/transaction.scm
-#: ../src/gnome-utils/gnc-tree-view-account.c:529
-#: ../intl-scm/guile-strings.c:770 ../intl-scm/guile-strings.c:1490
-#: ../intl-scm/guile-strings.c:1900 ../intl-scm/guile-strings.c:2222
-#: ../intl-scm/guile-strings.c:2332 ../intl-scm/guile-strings.c:2456
+#: ../src/gnome-utils/gnc-tree-view-account.c:525
+#: ../intl-scm/guile-strings.c:1282 ../intl-scm/guile-strings.c:2200
+#: ../intl-scm/guile-strings.c:2824 ../intl-scm/guile-strings.c:3234
+#: ../intl-scm/guile-strings.c:3556 ../intl-scm/guile-strings.c:3666
+#: ../intl-scm/guile-strings.c:3790 ../intl-scm/guile-strings.c:4384
+#: ../intl-scm/guile-strings.c:4706 ../intl-scm/guile-strings.c:4816
+#: ../intl-scm/guile-strings.c:4940
 msgid "Account Code"
 msgstr "Kontonummer"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:540
+#: ../src/gnome-utils/gnc-tree-view-account.c:536
 msgid "Last Num"
 msgstr "Letzte Nummer"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:545
+#: ../src/gnome-utils/gnc-tree-view-account.c:541
 msgid "Present"
 msgstr "Aktuell"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:552
+#: ../src/gnome-utils/gnc-tree-view-account.c:548
 msgid "Present (Report)"
 msgstr "Aktuell (als Bericht)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:565
+#: ../src/gnome-utils/gnc-tree-view-account.c:561
 msgid "Balance (Report)"
 msgstr "Bilanz (als Bericht)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:572
+#: ../src/gnome-utils/gnc-tree-view-account.c:568
 msgid "Balance (Period)"
 msgstr "Bilanz (Periodenbezogen)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:585
+#: ../src/gnome-utils/gnc-tree-view-account.c:581
 msgid "Cleared (Report)"
 msgstr "Bestätigt (als Bericht)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:598
+#: ../src/gnome-utils/gnc-tree-view-account.c:594
 msgid "Reconciled (Report)"
 msgstr "Abgeglichen (als Bericht)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:604
+#: ../src/gnome-utils/gnc-tree-view-account.c:600
 msgid "Future Minimum"
 msgstr "Zukünftiges Minimum"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:611
+#: ../src/gnome-utils/gnc-tree-view-account.c:607
 msgid "Future Minimum (Report)"
 msgstr "Zukünftiges Minimum (als Bericht)"
 
 #. src/report/report-system/html-acct-table.scm
 #. src/report/report-system/html-utilities.scm
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/aging.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/aging.scm
 #. src/business/business-reports/invoice.scm
-#: ../src/gnome-utils/gnc-tree-view-account.c:617
-#: ../intl-scm/guile-strings.c:846 ../intl-scm/guile-strings.c:886
-#: ../intl-scm/guile-strings.c:1742 ../intl-scm/guile-strings.c:2030
-#: ../intl-scm/guile-strings.c:2956 ../intl-scm/guile-strings.c:3046
-#: ../intl-scm/guile-strings.c:3204 ../intl-scm/guile-strings.c:3260
-#: ../intl-scm/guile-strings.c:3522 ../intl-scm/guile-strings.c:3578
-#: ../intl-scm/guile-strings.c:3756 ../intl-scm/guile-strings.c:3760
-#: ../intl-scm/guile-strings.c:3780 ../intl-scm/guile-strings.c:3836
+#: ../src/gnome-utils/gnc-tree-view-account.c:613
+#: ../intl-scm/guile-strings.c:1360 ../intl-scm/guile-strings.c:1400
+#: ../intl-scm/guile-strings.c:2452 ../intl-scm/guile-strings.c:3076
+#: ../intl-scm/guile-strings.c:3364 ../intl-scm/guile-strings.c:4514
+#: ../intl-scm/guile-strings.c:5444 ../intl-scm/guile-strings.c:5534
+#: ../intl-scm/guile-strings.c:5624 ../intl-scm/guile-strings.c:5714
+#: ../intl-scm/guile-strings.c:5930 ../intl-scm/guile-strings.c:5986
+#: ../intl-scm/guile-strings.c:6248 ../intl-scm/guile-strings.c:6304
+#: ../intl-scm/guile-strings.c:6454 ../intl-scm/guile-strings.c:6510
+#: ../intl-scm/guile-strings.c:6772 ../intl-scm/guile-strings.c:6828
+#: ../intl-scm/guile-strings.c:7006 ../intl-scm/guile-strings.c:7010
+#: ../intl-scm/guile-strings.c:7032 ../intl-scm/guile-strings.c:7088
+#: ../intl-scm/guile-strings.c:7246 ../intl-scm/guile-strings.c:7250
+#: ../intl-scm/guile-strings.c:7272 ../intl-scm/guile-strings.c:7328
 msgid "Total"
 msgstr "Betrag"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:624
+#: ../src/gnome-utils/gnc-tree-view-account.c:620
 msgid "Total (Report)"
 msgstr "Saldo (als Bericht)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:630
+#: ../src/gnome-utils/gnc-tree-view-account.c:626
 msgid "Total (Period)"
 msgstr "Saldo (Periodenbezogen)"
 
-#: ../src/gnome-utils/gnc-tree-view-account.c:642
+#: ../src/gnome-utils/gnc-tree-view-account.c:638
 msgid "Tax Info"
 msgstr "Steuerrelevante Information"
 
 #. Translators: This string has a context prefix; the translation
 #. must only contain the part after the | character.
-#: ../src/gnome-utils/gnc-tree-view-account.c:650
+#: ../src/gnome-utils/gnc-tree-view-account.c:646
 msgid "Column letter for 'Placeholder'|P"
 msgstr "P"
 
 #. Translators: %s is a currency mnemonic.
-#: ../src/gnome-utils/gnc-tree-view-account.c:1409
+#: ../src/gnome-utils/gnc-tree-view-account.c:1405
 #, c-format
 msgid "Present (%s)"
 msgstr "Aktuell (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: ../src/gnome-utils/gnc-tree-view-account.c:1412
+#: ../src/gnome-utils/gnc-tree-view-account.c:1408
 #, c-format
 msgid "Balance (%s)"
 msgstr "Saldo (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: ../src/gnome-utils/gnc-tree-view-account.c:1415
+#: ../src/gnome-utils/gnc-tree-view-account.c:1411
 #, c-format
 msgid "Cleared (%s)"
 msgstr "Bestätigt (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: ../src/gnome-utils/gnc-tree-view-account.c:1418
+#: ../src/gnome-utils/gnc-tree-view-account.c:1414
 #, c-format
 msgid "Reconciled (%s)"
 msgstr "Abgeglichen (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: ../src/gnome-utils/gnc-tree-view-account.c:1421
+#: ../src/gnome-utils/gnc-tree-view-account.c:1417
 #, c-format
 msgid "Future Minimum (%s)"
 msgstr "Zukünftiges Minimum (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: ../src/gnome-utils/gnc-tree-view-account.c:1424
+#: ../src/gnome-utils/gnc-tree-view-account.c:1420
 #, c-format
 msgid "Total (%s)"
 msgstr "Gesamt (%s)"
@@ -11981,22 +12258,39 @@
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
 #: ../src/gnome-utils/gnc-tree-view-price.c:465
-#: ../src/register/ledger-core/split-register.c:2036
+#: ../src/register/ledger-core/split-register.c:2058
 #: ../src/register/ledger-core/split-register-model.c:228
-#: ../intl-scm/guile-strings.c:1124 ../intl-scm/guile-strings.c:1198
-#: ../intl-scm/guile-strings.c:1286 ../intl-scm/guile-strings.c:1500
-#: ../intl-scm/guile-strings.c:1738 ../intl-scm/guile-strings.c:2038
-#: ../intl-scm/guile-strings.c:2202 ../intl-scm/guile-strings.c:2256
-#: ../intl-scm/guile-strings.c:2476 ../intl-scm/guile-strings.c:2566
-#: ../intl-scm/guile-strings.c:2616 ../intl-scm/guile-strings.c:3236
-#: ../intl-scm/guile-strings.c:3554 ../intl-scm/guile-strings.c:3812
+#: ../intl-scm/guile-strings.c:1836 ../intl-scm/guile-strings.c:1910
+#: ../intl-scm/guile-strings.c:1996 ../intl-scm/guile-strings.c:2210
+#: ../intl-scm/guile-strings.c:2448 ../intl-scm/guile-strings.c:2460
+#: ../intl-scm/guile-strings.c:2534 ../intl-scm/guile-strings.c:2620
+#: ../intl-scm/guile-strings.c:2834 ../intl-scm/guile-strings.c:3072
+#: ../intl-scm/guile-strings.c:3372 ../intl-scm/guile-strings.c:3536
+#: ../intl-scm/guile-strings.c:3590 ../intl-scm/guile-strings.c:3810
+#: ../intl-scm/guile-strings.c:3900 ../intl-scm/guile-strings.c:3950
+#: ../intl-scm/guile-strings.c:4522 ../intl-scm/guile-strings.c:4686
+#: ../intl-scm/guile-strings.c:4740 ../intl-scm/guile-strings.c:4960
+#: ../intl-scm/guile-strings.c:5050 ../intl-scm/guile-strings.c:5100
+#: ../intl-scm/guile-strings.c:5962 ../intl-scm/guile-strings.c:6280
+#: ../intl-scm/guile-strings.c:6486 ../intl-scm/guile-strings.c:6804
+#: ../intl-scm/guile-strings.c:7064 ../intl-scm/guile-strings.c:7304
 msgid "Price"
 msgstr "Preis"
 
@@ -12040,18 +12334,18 @@
 "deaktivieren. Dieser Wert kann maximal 10 betragen."
 
 #: ../src/gnome-utils/window-main-summarybar.c:316
-#, c-format
-msgid "%s, total:"
+#, fuzzy, c-format
+msgid "%s, Total:"
 msgstr "%s, Summe:"
 
 #: ../src/gnome-utils/window-main-summarybar.c:319
-#, c-format
-msgid "%s, non currency commodities total:"
+#, fuzzy, c-format
+msgid "%s, Non Currency Commodities Total:"
 msgstr "%s, Aktien gesamt:"
 
 #: ../src/gnome-utils/window-main-summarybar.c:322
-#, c-format
-msgid "%s, grand total:"
+#, fuzzy, c-format
+msgid "%s, Grand Total:"
 msgstr "%s, Gesamt:"
 
 #: ../src/gnome-utils/window-main-summarybar.c:326
@@ -12067,79 +12361,79 @@
 msgid "Profits:"
 msgstr "Gewinn:"
 
-#: ../src/gnome/window-reconcile.c:432
+#: ../src/gnome/window-reconcile.c:431
 msgid "Interest Payment"
 msgstr "Habenzinsen"
 
-#: ../src/gnome/window-reconcile.c:435
+#: ../src/gnome/window-reconcile.c:434
 msgid "Interest Charge"
 msgstr "Sollzinsen"
 
-#: ../src/gnome/window-reconcile.c:453
+#: ../src/gnome/window-reconcile.c:452
 msgid "Payment From"
 msgstr "Zahlung von"
 
-#: ../src/gnome/window-reconcile.c:457 ../src/gnome/window-reconcile.c:467
+#: ../src/gnome/window-reconcile.c:456 ../src/gnome/window-reconcile.c:466
 msgid "Reconcile Account"
 msgstr "Konto abgleichen"
 
-#: ../src/gnome/window-reconcile.c:472
+#: ../src/gnome/window-reconcile.c:471
 msgid "Payment To"
 msgstr "Zahlung an"
 
-#: ../src/gnome/window-reconcile.c:483
+#: ../src/gnome/window-reconcile.c:482
 msgid "No Auto Interest Payments for this Account"
 msgstr "Keine automatischen Habenzins-Zahlungen für dieses Konto"
 
-#: ../src/gnome/window-reconcile.c:484
+#: ../src/gnome/window-reconcile.c:483
 msgid "No Auto Interest Charges for this Account"
 msgstr "Keine automatischen Sollzins-Zahlungen für dieses Konto"
 
-#: ../src/gnome/window-reconcile.c:723
+#: ../src/gnome/window-reconcile.c:722
 msgid "Enter _Interest Charge..."
 msgstr "Zahlung _Sollzins eingeben..."
 
-#: ../src/gnome/window-reconcile.c:981
+#: ../src/gnome/window-reconcile.c:980
 msgid "Debits"
 msgstr "Soll"
 
 #. src/report/report-system/report-utilities.scm
-#: ../src/gnome/window-reconcile.c:991 ../intl-scm/guile-strings.c:852
+#: ../src/gnome/window-reconcile.c:990 ../intl-scm/guile-strings.c:1366
 msgid "Credits"
 msgstr "Haben"
 
-#: ../src/gnome/window-reconcile.c:1130
+#: ../src/gnome/window-reconcile.c:1129
 msgid "Are you sure you want to delete the selected transaction?"
 msgstr ""
 "Sind Sie sicher, dass Sie den ausgewählten Buchungssatz löschen wollen?"
 
 #. ending balance title/value
-#: ../src/gnome/window-reconcile.c:1673
+#: ../src/gnome/window-reconcile.c:1674
 msgid "Ending Balance:"
 msgstr "Schlußsaldo:"
 
 #. reconciled balance title/value
-#: ../src/gnome/window-reconcile.c:1683
+#: ../src/gnome/window-reconcile.c:1684
 msgid "Reconciled Balance:"
 msgstr "Abgeglichener Saldo:"
 
 #. difference title/value
-#: ../src/gnome/window-reconcile.c:1693
+#: ../src/gnome/window-reconcile.c:1694
 msgid "Difference:"
 msgstr "Differenz:"
 
-#: ../src/gnome/window-reconcile.c:1875
+#: ../src/gnome/window-reconcile.c:1877
 msgid "The account is not balanced. Are you sure you want to finish?"
 msgstr ""
 "Das Konto ist nicht ausgeglichen. Sind Sie sicher, dass Sie das Abgleichen "
 "beenden wollen?"
 
-#: ../src/gnome/window-reconcile.c:1932
+#: ../src/gnome/window-reconcile.c:1934
 msgid "Do you want to postpone this reconciliation and finish it later?"
 msgstr ""
 "Möchten Sie dieses Abgleichen jetzt unterbrechen und später fertigstellen?"
 
-#: ../src/gnome/window-reconcile.c:1966
+#: ../src/gnome/window-reconcile.c:1968
 msgid ""
 "You have made changes to this reconcile window. Are you sure you want to "
 "cancel?"
@@ -12148,67 +12442,67 @@
 "wollen?"
 
 #. Toplevel
-#: ../src/gnome/window-reconcile.c:1983
+#: ../src/gnome/window-reconcile.c:1985
 msgid "_Reconcile"
 msgstr "Ab_gleichen"
 
-#: ../src/gnome/window-reconcile.c:1984
+#: ../src/gnome/window-reconcile.c:1986
 msgid "_Account"
 msgstr "_Konto"
 
 #. Reconcile menu
-#: ../src/gnome/window-reconcile.c:1990
+#: ../src/gnome/window-reconcile.c:1992
 msgid "_Reconcile Information..."
 msgstr "_Informationen zum Abgleich..."
 
-#: ../src/gnome/window-reconcile.c:1991
+#: ../src/gnome/window-reconcile.c:1993
 msgid ""
 "Change the reconcile information including statement date and ending balance."
 msgstr ""
 "Informationen zum Abgleich ändern, zum Beispiel das Datum und der "
 "Schlußsaldo des Kontoauszugs."
 
-#: ../src/gnome/window-reconcile.c:1994
+#: ../src/gnome/window-reconcile.c:1996
 msgid "_Finish"
 msgstr "_Fertig"
 
-#: ../src/gnome/window-reconcile.c:1995
+#: ../src/gnome/window-reconcile.c:1997
 msgid "Finish the reconciliation of this account"
 msgstr "Kontoabstimmung beenden"
 
-#: ../src/gnome/window-reconcile.c:1997
+#: ../src/gnome/window-reconcile.c:1999
 msgid "_Postpone"
 msgstr "_Unterbrechen"
 
-#: ../src/gnome/window-reconcile.c:1998
+#: ../src/gnome/window-reconcile.c:2000
 msgid "Postpone the reconciliation of this account"
 msgstr "Das Abgleichen des Kontos unterbrechen"
 
-#: ../src/gnome/window-reconcile.c:2001
+#: ../src/gnome/window-reconcile.c:2003
 msgid "Cancel the reconciliation of this account"
 msgstr "Die Abstimmung dieses Kontos abbrechen"
 
-#: ../src/gnome/window-reconcile.c:2007
+#: ../src/gnome/window-reconcile.c:2009
 msgid "Open the account"
 msgstr "Konto öffnen"
 
-#: ../src/gnome/window-reconcile.c:2010
+#: ../src/gnome/window-reconcile.c:2012
 msgid "Edit the main account for this register"
 msgstr "Bearbeiten des Hauptkonto für dieses Kontobuch"
 
-#: ../src/gnome/window-reconcile.c:2023
+#: ../src/gnome/window-reconcile.c:2025
 msgid "Add a new transaction to the account"
 msgstr "Dem Konto einen neuen Buchungssatz hinzufügen"
 
-#: ../src/gnome/window-reconcile.c:2026
+#: ../src/gnome/window-reconcile.c:2028
 msgid "Edit the current transaction"
 msgstr "Aktuellen Buchungssatz bearbeiten"
 
-#: ../src/gnome/window-reconcile.c:2029
+#: ../src/gnome/window-reconcile.c:2031
 msgid "Delete the selected transaction"
 msgstr "Ausgewählten Buchungssatz löschen"
 
-#: ../src/gnome/window-reconcile.c:2035
+#: ../src/gnome/window-reconcile.c:2037
 msgid "Open the GnuCash help window"
 msgstr "Das GnuCash-Hilfe-Fenster öffnen"
 
@@ -12242,10 +12536,6 @@
 msgstr "<b>Buchungen importieren</b>"
 
 #: ../src/import-export/generic-import.glade.h:8
-msgid "A"
-msgstr "Neu"
-
-#: ../src/import-export/generic-import.glade.h:9
 msgid ""
 "A transaction whose best match's score is in the green zone (above or equal "
 "to the Auto-CLEAR threshold) will be CLEARed by default."
@@ -12254,7 +12544,7 @@
 "grünen Bereich liegt (größer oder gleich der Auto-Abgleich-Schwelle) hat als "
 "Voreinstellung 'Abgleichen'."
 
-#: ../src/import-export/generic-import.glade.h:10
+#: ../src/import-export/generic-import.glade.h:9
 msgid ""
 "A transaction whose best match's score is in the red zone (above the display "
 "threshold but below or equal to the Auto-ADD threshold) will be ADDed by "
@@ -12264,44 +12554,36 @@
 "roten Bereich liegt (größer als Anzeige-Schwelle, aber kleiner oder gleich "
 "der Auto-Hinzufügen-Schwelle), hat als Voreinstellung 'Hinzufügen'."
 
-#: ../src/import-export/generic-import.glade.h:13
+#: ../src/import-export/generic-import.glade.h:11
 msgid "Auto-_add threshold"
 msgstr "Entscheidungsschwelle für automatisches Hinzufügen"
 
-#: ../src/import-export/generic-import.glade.h:14
+#: ../src/import-export/generic-import.glade.h:12
 msgid "Auto-c_lear threshold"
 msgstr "Entscheidungsschwelle für automatisches Abgleichen"
 
-#: ../src/import-export/generic-import.glade.h:15
+#: ../src/import-export/generic-import.glade.h:13
 msgid "Choose a format"
 msgstr "Wählen Sie das Export-Format"
 
-#: ../src/import-export/generic-import.glade.h:16
+#: ../src/import-export/generic-import.glade.h:14
 msgid "Commercial ATM _fees threshold"
 msgstr "Auszahlungsgebühren"
 
-#: ../src/import-export/generic-import.glade.h:17
-msgid "Confidence"
-msgstr "Genauigkeit"
-
-#: ../src/import-export/generic-import.glade.h:21
-msgid "EDIT"
-msgstr "Bearbeiten"
-
-#: ../src/import-export/generic-import.glade.h:22
+#: ../src/import-export/generic-import.glade.h:18
 msgid "Enable edit match action"
 msgstr "»Bearbeiten«-Aktion aktivieren"
 
-#: ../src/import-export/generic-import.glade.h:23
+#: ../src/import-export/generic-import.glade.h:19
 msgid "Enable skip transaction action"
 msgstr "»Überspringen«-Aktion aktivieren "
 
-#: ../src/import-export/generic-import.glade.h:24
+#: ../src/import-export/generic-import.glade.h:20
 msgid "Enable the EDIT action in the transaction matcher.  NOT YET SUPPORTED"
 msgstr ""
 "»Bearbeiten«-Aktion im Buchungsimporter aktivieren. Noch nicht implementiert"
 
-#: ../src/import-export/generic-import.glade.h:25
+#: ../src/import-export/generic-import.glade.h:21
 msgid ""
 "Enable the SKIP action in the transaction matcher.  If enabled, a "
 "transaction whose best match's score is in the yellow zone (above the Auto-"
@@ -12312,7 +12594,7 @@
 "liegt (größer als die Auto-Hinzufügen-Schwelle, aber kleiner als die Auto-"
 "Abgleichen-Schwelle), hat als Voreinstellung »Überspringen«."
 
-#: ../src/import-export/generic-import.glade.h:26
+#: ../src/import-export/generic-import.glade.h:22
 msgid ""
 "For a new transaction, click on the \"Other Account\" entry to choose the "
 "other (destination) account of this transaction.\n"
@@ -12334,19 +12616,19 @@
 "Wenn allen neuen Buchungen ein »Anderes Konto« zugeordnet wurde und alle "
 "Duplikate richtig erkannt wurden, klicken Sie »Ok«."
 
-#: ../src/import-export/generic-import.glade.h:33
+#: ../src/import-export/generic-import.glade.h:29
 msgid "Generic import transaction matcher"
 msgstr "Buchungszuordnung für Allgemeinen Import"
 
-#: ../src/import-export/generic-import.glade.h:34
+#: ../src/import-export/generic-import.glade.h:30
 msgid "Green"
 msgstr "Grün"
 
-#: ../src/import-export/generic-import.glade.h:36
+#: ../src/import-export/generic-import.glade.h:31
 msgid "Imported transaction's first split:"
 msgstr "Erster Teil der importierten Buchung"
 
-#: ../src/import-export/generic-import.glade.h:37
+#: ../src/import-export/generic-import.glade.h:32
 msgid ""
 "In some places commercial ATMs (not belonging to a financial institution) "
 "are installed in places like convienience store.  These ATM add its fee "
@@ -12362,66 +12644,59 @@
 "existierende Buchung richtig zuzuordnen, können Sie hier die Höhe für solche "
 "zusätzlichen Auszahlungsgebühren in Ihrer lokalen Währung angeben."
 
-#: ../src/import-export/generic-import.glade.h:38
+#: ../src/import-export/generic-import.glade.h:33
 msgid "List of downloaded transactions (source split shown):"
 msgstr ""
 "Liste der importierten Buchungen (angezeigt wird die Herkunftsbuchung):"
 
-#: ../src/import-export/generic-import.glade.h:39
+#: ../src/import-export/generic-import.glade.h:34
 msgid "Match _display threshold"
 msgstr "Entscheidungsschwelle für Anzeige in Zuordnung"
 
-#: ../src/import-export/generic-import.glade.h:41
-#: ../src/import-export/hbci/glade/hbci.glade.h:38
-#: ../src/import-export/qif-import/qif.glade.h:53
+#: ../src/import-export/generic-import.glade.h:35
+#: ../src/import-export/hbci/druid-hbci-initial.c:707
+#: ../src/import-export/qif-import/dialog-account-picker.c:296
+#: ../src/import-export/qif-import/druid-qif-import.c:1056
 msgid "New?"
 msgstr "Neu?"
 
-#: ../src/import-export/generic-import.glade.h:42
+#: ../src/import-export/generic-import.glade.h:36
 msgid "Online account ID here..."
 msgstr "Online Kontonummer hier..."
 
-#: ../src/import-export/generic-import.glade.h:43
+#: ../src/import-export/generic-import.glade.h:37
 msgid "Other Account"
 msgstr "Anderes Konto"
 
-#: ../src/import-export/generic-import.glade.h:44
+#: ../src/import-export/generic-import.glade.h:38
 msgid "Please select or create an appropriate GnuCash account for:"
 msgstr "Auswählen oder Hinzufügen des passenden GnuCash Kontos:"
 
-#: ../src/import-export/generic-import.glade.h:45
+#: ../src/import-export/generic-import.glade.h:39
 msgid "Potential splits matching the selected transaction: "
 msgstr "Mögliche Buchungen, die zum aktuellen Buchungssatz passen: "
 
-#: ../src/import-export/generic-import.glade.h:47
-msgid "R"
-msgstr "Abgl"
-
-#: ../src/import-export/generic-import.glade.h:48
+#: ../src/import-export/generic-import.glade.h:41
 msgid "Red"
 msgstr "Rot"
 
-#: ../src/import-export/generic-import.glade.h:49
+#: ../src/import-export/generic-import.glade.h:42
 msgid "Select \"A\" to add the transaction as new."
 msgstr "Wählen Sie »Neu«, um die Buchung als neue Buchung zu importieren."
 
-#: ../src/import-export/generic-import.glade.h:50
+#: ../src/import-export/generic-import.glade.h:43
 msgid "Select \"R\" to reconcile a matching transaction."
 msgstr "Wählen Sie »Abgl«, um eine existierende Buchung abzugleichen"
 
-#: ../src/import-export/generic-import.glade.h:52
-msgid "Select Import Action"
-msgstr "Import-Aktion auswählen"
-
-#: ../src/import-export/generic-import.glade.h:53
+#: ../src/import-export/generic-import.glade.h:45
 msgid "Select matching existing transaction"
 msgstr "Wählen Sie die zugeordnete, schon existierende Buchung"
 
-#: ../src/import-export/generic-import.glade.h:54
+#: ../src/import-export/generic-import.glade.h:46
 msgid "Select neither to skip the transaction (it won't be imported at all)."
 msgstr "Ist keines der beiden gewählt, wird die Buchung nicht importiert."
 
-#: ../src/import-export/generic-import.glade.h:55
+#: ../src/import-export/generic-import.glade.h:47
 msgid ""
 "The minimum score a potential match must have to be displayed in the match "
 "list."
@@ -12430,116 +12705,121 @@
 "existierenden Buchung im Buchungs-Import überhaupt berücksichtigt und "
 "angezeigt wird."
 
-#: ../src/import-export/generic-import.glade.h:56
+#: ../src/import-export/generic-import.glade.h:48
 msgid ""
 "This transaction probably requires your intervention or it will be imported "
 "unbalanced."
 msgstr ""
 "Diese Buchung benötigt Ihre Auswahl oder sie würde unausgeglichen importiert."
 
-#: ../src/import-export/generic-import.glade.h:57
+#: ../src/import-export/generic-import.glade.h:49
 msgid "This transaction requires your intervention or it will NOT be imported."
 msgstr "Diese Buchung benötigt Ihre Auswahl oder sie würde nicht importiert."
 
-#: ../src/import-export/generic-import.glade.h:58
+#: ../src/import-export/generic-import.glade.h:50
 msgid ""
 "This transaction will be imported balanced (you may still want to double "
 "check the match or destination account)."
 msgstr "Diese Buchung wird ausgeglichen importiert."
 
-#: ../src/import-export/generic-import.glade.h:59
+#: ../src/import-export/generic-import.glade.h:51
 msgid "Transaction List Help"
 msgstr "Buchungsimport Hilfe"
 
-#: ../src/import-export/generic-import.glade.h:60
+#: ../src/import-export/generic-import.glade.h:52
 msgid "Use _bayesian matching"
 msgstr "_Bayes-Algorithmus verwenden"
 
-#: ../src/import-export/generic-import.glade.h:61
+#: ../src/import-export/generic-import.glade.h:53
 msgid ""
 "Use bayesian algorithms to match new transactions with existing accounts."
 msgstr ""
 "Bayes-Algorithmus verwenden, um importierte Buchungen mit existierenden "
 "abzugleichen."
 
-#: ../src/import-export/generic-import.glade.h:62
+#: ../src/import-export/generic-import.glade.h:54
 msgid "Yellow"
 msgstr "Gelb"
 
-#: ../src/import-export/generic-import.glade.h:63
+#: ../src/import-export/generic-import.glade.h:55
 msgid "do not translate"
 msgstr "do not translate"
 
-#: ../src/import-export/generic-import.glade.h:64
-#: ../src/import-export/qif-import/qif.glade.h:97
+#: ../src/import-export/generic-import.glade.h:56
+#: ../src/import-export/qif-import/qif.glade.h:87
 msgid "gnc-new-account"
 msgstr "gnc-new-account"
 
 #. Numeric formats
-#: ../src/import-export/gnc-import-format-gnome.c:91
+#: ../src/import-export/gnc-import-format-gnome.c:106
 msgid "Period-as-decimal (1,000.00)"
 msgstr "Punkt als Kommastelle (Englisch: 1,000.00)"
 
-#: ../src/import-export/gnc-import-format-gnome.c:92
+#: ../src/import-export/gnc-import-format-gnome.c:107
 msgid "Comma-as-decimal (1.000,00)"
 msgstr "Komma als Kommastelle (1.000,00)"
 
 #. Date formats
-#: ../src/import-export/gnc-import-format-gnome.c:95
+#: ../src/import-export/gnc-import-format-gnome.c:110
 msgid "m-d-y"
 msgstr "Monat-Tag-Jahr"
 
-#: ../src/import-export/gnc-import-format-gnome.c:96
+#: ../src/import-export/gnc-import-format-gnome.c:111
 msgid "d-m-y"
 msgstr "Tag-Monat-Jahr"
 
-#: ../src/import-export/gnc-import-format-gnome.c:97
+#: ../src/import-export/gnc-import-format-gnome.c:112
 msgid "y-m-d"
 msgstr "Jahr-Monat-Tag"
 
-#: ../src/import-export/gnc-import-format-gnome.c:98
+#: ../src/import-export/gnc-import-format-gnome.c:113
 msgid "y-d-m"
 msgstr "Jahr-Tag-Monat"
 
-#. Translators: Strings from this file are really only
-#. * needed inside Germany (HBCI is not supported anywhere
-#. * else). You may safely ignore strings from the
-#. * import-export/hbci subdirectory in other countries.
-#: ../src/import-export/hbci/dialog-hbcitrans.c:372
+#. Translators: Strings from this file are needed only in
+#. * countries that have one of aqbanking's Online Banking
+#. * techniques available. This is 'OFX DirectConnect'
+#. * (U.S. and others), 'HBCI' (in Germany), or 'YellowNet'
+#. * (Switzerland). If none of these techniques are available
+#. * in your country, you may safely ignore strings from the
+#. * import-export/hbci subdirectory.
+#: ../src/import-export/hbci/dialog-hbcitrans.c:375
 msgid "Enter an Online Direct Debit Note"
 msgstr "Online-Lastschrift eingeben"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:375
+#: ../src/import-export/hbci/dialog-hbcitrans.c:378
 msgid "Debited Account Owner"
 msgstr "Zahlungspflichtiger"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:377
+#: ../src/import-export/hbci/dialog-hbcitrans.c:380
 msgid "Debited Account Number"
 msgstr "Konto-Nr. des Zahlungspflichtigen"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:379
+#: ../src/import-export/hbci/dialog-hbcitrans.c:382
 msgid "Debited Account Bank Code"
 msgstr "BLZ des Zahlungspflichtigen"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:382
+#: ../src/import-export/hbci/dialog-hbcitrans.c:385
 msgid "Credited Account Owner"
 msgstr "Auftraggeber"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:384
+#: ../src/import-export/hbci/dialog-hbcitrans.c:387
 msgid "Credited Account Number"
 msgstr "Konto-Nr. des Auftraggebers"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:386
+#: ../src/import-export/hbci/dialog-hbcitrans.c:389
 msgid "Credited Account Bank Code"
 msgstr "BLZ des Auftraggebers"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:405
-#: ../src/import-export/hbci/dialog-hbcitrans.c:879
-#: ../src/import-export/hbci/dialog-hbcitrans.c:889
+#. Conversion was erroneous, so don't use the string
+#: ../src/import-export/hbci/dialog-hbcitrans.c:415
+#: ../src/import-export/hbci/dialog-hbcitrans.c:901
+#: ../src/import-export/hbci/dialog-hbcitrans.c:905
+#: ../src/import-export/hbci/dialog-hbcitrans.c:915
 msgid "(unknown)"
 msgstr "(unbekannt)"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:536
+#: ../src/import-export/hbci/dialog-hbcitrans.c:549
 msgid ""
 "The amount is zero or the amount field could not be interpreted correctly. "
 "You might have mixed up decimal point and comma, compared to your locale "
@@ -12555,7 +12835,7 @@
 "Dies ergibt keinen zulässigen Zahlungsauftrag. Wollen Sie den Auftrag erneut "
 "eingeben?"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:558
+#: ../src/import-export/hbci/dialog-hbcitrans.c:571
 msgid ""
 "You did not enter any transaction purpose. A purpose is required for an "
 "online transfer.\n"
@@ -12567,7 +12847,7 @@
 "\n"
 "Wollen Sie den Auftrag erneut eingeben?"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:693
+#: ../src/import-export/hbci/dialog-hbcitrans.c:706
 #, c-format
 msgid ""
 "The internal check of the destination account number '%s' at the specified "
@@ -12580,7 +12860,7 @@
 "Fehler enthält. Wollen Sie den Auftrag trotzdem mit dieser Kontonummer "
 "abschicken?"
 
-#: ../src/import-export/hbci/dialog-hbcitrans.c:799
+#: ../src/import-export/hbci/dialog-hbcitrans.c:812
 msgid ""
 "The job was sent to the bank successfully, but the bank is refusing to "
 "execute the job. Please check the log window for the exact error message of "
@@ -12600,37 +12880,43 @@
 msgid "The two passwords didn't match. Please try again."
 msgstr "Die beiden PINs haben nicht übereingestimmt. Bitte erneut eingeben."
 
-#: ../src/import-export/hbci/druid-hbci-initial.c:145
+#: ../src/import-export/hbci/druid-hbci-initial.c:133
 #, c-format
 msgid "%s at %s (code %s)"
 msgstr "%s bei %s (BLZ %s)"
 
-#: ../src/import-export/hbci/druid-hbci-initial.c:150
+#: ../src/import-export/hbci/druid-hbci-initial.c:138
 #, c-format
 msgid "%s at bank code %s"
 msgstr "%s bei %s"
 
-#: ../src/import-export/hbci/druid-hbci-initial.c:522
+#: ../src/import-export/hbci/druid-hbci-initial.c:478
 msgid "Choose AqBanking Backend"
 msgstr "AqBanking-Modul wählen"
 
-#: ../src/import-export/hbci/druid-hbci-initial.c:523
+#: ../src/import-export/hbci/druid-hbci-initial.c:479
 msgid "Please choose an AqBanking backend to be configured"
 msgstr "Wählen Sie das Modul von AqBanking, das Sie einrichten möchten."
 
-#: ../src/import-export/hbci/druid-hbci-initial.c:524
+#: ../src/import-export/hbci/druid-hbci-initial.c:480
 msgid "Co_nfigure"
 msgstr "_Einrichten"
 
-#. Each of the %s is the name of the backend, e.g. "aqhbci".
-#: ../src/import-export/hbci/druid-hbci-initial.c:642
+#: ../src/import-export/hbci/druid-hbci-initial.c:552
 #, c-format
 msgid ""
-"The external program \"%s Setup Wizard\" returned a nonzero exit code which "
-"means it has not been finished successfully. The further HBCI setup can only "
-"be finished if the %s Setup Wizard is run successfully. Please try to start "
-"and successfully finish the %s Setup Wizard program again."
+"The Windows version of GnuCash does not (yet) have the capability to start "
+"the external program \"%s Setup Wizard\". Please start it yourself from the "
+"location \"%s\" before you continue."
 msgstr ""
+
+#: ../src/import-export/hbci/druid-hbci-initial.c:616
+#, fuzzy
+msgid ""
+"The external program \"AqBanking Setup Wizard\" failed to run successfully.  "
+"Online Banking can only be setup if this wizard has run successfully.  "
+"Please try running the \"AqBanking Setup Wizard\" again."
+msgstr ""
 "Das externe Programm »%s Einrichtungs-Assistent« hat einen Fehlercode "
 "zurückgegeben, was bedeutet, dass die Einrichtung nicht erfolgreich "
 "abgeschlossen worden ist. Die weitere HBCI Einrichtung in GnuCash kann nur "
@@ -12639,13 +12925,14 @@
 "auszuführen."
 
 #. Each of the %s is the name of the backend, e.g. "aqhbci".
-#: ../src/import-export/hbci/druid-hbci-initial.c:655
-#, c-format
+#: ../src/import-export/hbci/druid-hbci-initial.c:627
+#, fuzzy
 msgid ""
-"The external program \"%s Setup Wizard\" has not been found. \n"
+"The external program \"AqBanking Setup Wizard\" has not been found. \n"
 "\n"
-"The package aqbanking is supposed to install the program \"%s-qt3-wizard\". "
-"Please check your installation of aqbanking."
+"The aqbanking package should include the program \"qt3-wizard\".  Please "
+"check your installation to ensure this program is present.  On some "
+"distributions this may require installing additional packages."
 msgstr ""
 "Das externe Programm »%s Einrichtungs-Assistent« konnte nicht gefunden "
 "werden. \n"
@@ -12654,6 +12941,15 @@
 "dann ein Programm namens »%s-qt3-wizard« installiert ist. Bitte "
 "kontrollieren Sie Ihre Installation der Bibliothek aqbanking."
 
+#: ../src/import-export/hbci/druid-hbci-initial.c:692
+#, fuzzy
+msgid "Online Banking Account Name"
+msgstr "Name des Gegenkontos"
+
+#: ../src/import-export/hbci/druid-hbci-initial.c:699
+msgid "GnuCash Account Name"
+msgstr "GnuCash Kontoname"
+
 #: ../src/import-export/hbci/druid-hbci-utils.c:158
 #, c-format
 msgid "The file %s does not exist. Would you like to create it now?"
@@ -12697,293 +12993,266 @@
 msgstr "Aktuelle Online-Buchung als neue Überweisungsvorlage hinzufügen"
 
 #: ../src/import-export/hbci/glade/hbci.glade.h:9
-msgid ""
-"AqHBCI \n"
-"Setup"
-msgstr ""
-"AqHBCI \n"
-"Einrichtung"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:11
 msgid "Bank Code"
 msgstr "Bankleitzahl"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:12
-msgid "Choose a HBCI Version to use with the selected bank:"
+#: ../src/import-export/hbci/glade/hbci.glade.h:10
+#, fuzzy
+msgid "Choose an Online Banking Version to use with the selected bank:"
 msgstr "Wählen Sie eine HBCI-Version, die benutzt werden soll:"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:13
+#: ../src/import-export/hbci/glade/hbci.glade.h:11
+#, fuzzy
 msgid ""
-"Click on the line of a HBCI account name if you want to match it to a "
-"GnuCash account. Click \"Forward\" when all desired accounts are matching."
+"Click on the line of an Online Banking account name if you want to match it "
+"to a GnuCash account. Click \"Forward\" when all desired accounts are "
+"matching."
 msgstr ""
 "Klicken Sie auf die Zeile eines HBCI-Kontos, um diesem HBCI-Konto ein "
 "GnuCash-Konto zuzuordnen. Klicken Sie »Vor«, wenn alle gewünschten Konten "
 "zugeordnet sind."
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:14
+#: ../src/import-export/hbci/glade/hbci.glade.h:12
 msgid "Close when finished"
 msgstr "Fenster nach Verbindungsende schließen"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:15
+#: ../src/import-export/hbci/glade/hbci.glade.h:13
 msgid "Current Action"
 msgstr "Momentane Aktion"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:16
+#: ../src/import-export/hbci/glade/hbci.glade.h:14
 msgid "Current Job"
 msgstr "Momentaner Auftrag"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:17
+#: ../src/import-export/hbci/glade/hbci.glade.h:15
 msgid "Date range of transactions to retrieve:"
 msgstr "Datumsbereich der abzurufenden Buchungen:"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:18
+#: ../src/import-export/hbci/glade/hbci.glade.h:16
 msgid "Delete the currently selected transaction template"
 msgstr "Ausgewählte Überweisungsvorlage löschen"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:19
+#: ../src/import-export/hbci/glade/hbci.glade.h:17
 msgid "E_nter date:"
 msgstr "D_atum eingeben:"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:20
+#: ../src/import-export/hbci/glade/hbci.glade.h:18
 msgid "Ente_r date:"
 msgstr "Datum _eingeben:"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:21
+#: ../src/import-export/hbci/glade/hbci.glade.h:19
 msgid "Enter an Online Transaction"
 msgstr "Online-Ãœberweisung eingeben"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:22
+#: ../src/import-export/hbci/glade/hbci.glade.h:20
 msgid "Enter name for new template:"
 msgstr "Bitte geben Sie einen Namen für die neue Überweisungsvorlage ein:"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:23
+#: ../src/import-export/hbci/glade/hbci.glade.h:21
 msgid "Execute Now"
 msgstr "Jetzt ausführen"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:24
+#: ../src/import-export/hbci/glade/hbci.glade.h:22
 msgid "Execute later (unimpl.)"
 msgstr "Später ausführen (unfertig)"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:25
+#: ../src/import-export/hbci/glade/hbci.glade.h:23
 msgid "Execute this online transaction now"
 msgstr "Diesen Auftrag jetzt online abschicken"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:26
+#: ../src/import-export/hbci/glade/hbci.glade.h:24
 msgid "Get Transactions Online"
 msgstr "Online Kontoumsätze abfragen"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:27
-#: ../src/import-export/qif-import/qif.glade.h:22
-msgid "GnuCash account name"
-msgstr "GnuCash Kontobezeichnung"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:28
-msgid "HBCI Connection Window"
-msgstr "HBCI Verbindungsfenster"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:29
-msgid "HBCI Setup"
-msgstr "HBCI Einrichtung"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:30
-msgid "HBCI Setup Finished"
-msgstr "HBCI Einrichtung beendet"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:31
-msgid "HBCI Version"
-msgstr "HBCI Version"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:32
-msgid "HBCI account name"
-msgstr "HBCI Kontobezeichnung"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:33
-msgid "Initial HBCI Setup"
+#: ../src/import-export/hbci/glade/hbci.glade.h:25
+#, fuzzy
+msgid "Initial Online Banking Setup"
 msgstr "Grundlegende HBCI Einrichtung"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:34
-msgid "Match HBCI accounts with GnuCash accounts"
+#: ../src/import-export/hbci/glade/hbci.glade.h:26
+#, fuzzy
+msgid "Match Online Banking accounts with GnuCash accounts"
 msgstr "HBCI Konten mit GnuCash Konten zuordnen"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:35
+#: ../src/import-export/hbci/glade/hbci.glade.h:27
 msgid "Move the selected transaction template one row down"
 msgstr "Gewählte Überweisungsvorlage eine Zeile nach unten umsortieren"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:36
+#: ../src/import-export/hbci/glade/hbci.glade.h:28
 msgid "Move the selected transaction template one row up"
 msgstr "Gewählte Überweisungsvorlage eine Zeile nach oben umsortieren"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:37
+#: ../src/import-export/hbci/glade/hbci.glade.h:29
 msgid "Name for new template"
 msgstr "Namen für neue Überweisungsvorlage"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:39
-msgid ""
-"Now the setup for all HBCI accounts that are matching to a GnuCash account "
-"is finished. You can now invoke HBCI actions on those accounts.\n"
-"\n"
-"If you want to add another HBCI bank, user, or account, you can start this "
-"druid again anytime.\n"
-"\n"
-"Press \"Apply\" now."
-msgstr ""
-"Die Einrichtung des HBCI Zugangs und die Zuordnung zu den passenden GnuCash "
-"Konten ist fertig gestellt. Sie können nun HBCI-Aktionen in diesen Konten "
-"aufrufen (Menü Aktionen: Online Aktionen).\n"
-"\n"
-"Wenn Sie eine neue HBCI-Bank, einen neuen Benutzer oder ein neues Konto "
-"hinzufügen möchten, können Sie diesen Assistenten (Druiden) jederzeit wieder "
-"aufrufen.\n"
-"\n"
-"Klicken Sie jetzt »Anwenden«."
+#: ../src/import-export/hbci/glade/hbci.glade.h:30
+msgid "Online Banking Connection Window"
+msgstr "Onlinebanking Verbindungsfenster"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:44
+#: ../src/import-export/hbci/glade/hbci.glade.h:31
+#, fuzzy
+msgid "Online Banking Setup Finished"
+msgstr "HBCI Einrichtung beendet"
+
+#: ../src/import-export/hbci/glade/hbci.glade.h:32
+#, fuzzy
+msgid "Online Banking Version"
+msgstr "Online-Auftrag Einzelüberweisung"
+
+#: ../src/import-export/hbci/glade/hbci.glade.h:33
 msgid "Online Transaction"
 msgstr "Online-Auftrag Einzelüberweisung"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:45
+#: ../src/import-export/hbci/glade/hbci.glade.h:34
 msgid "Originator Account Number"
 msgstr "Konto-Nr. des Auftraggebers"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:46
+#: ../src/import-export/hbci/glade/hbci.glade.h:35
 msgid "Originator Name"
 msgstr "Auftraggeber: Name, Vorname"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:47
+#: ../src/import-export/hbci/glade/hbci.glade.h:36
 msgid "Payment Purpose (only for recipient)"
 msgstr "Verwendungszweck - z.B. Kunden-Referenznummer - (nur für Empfänger)"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:48
+#: ../src/import-export/hbci/glade/hbci.glade.h:37
 msgid "Payment Purpose continued"
 msgstr "noch Verwendungszweck (ggf. noch Anschrift des Auftraggebers)"
 
+#. src/import-export/qif-import/qif-import/qif-file.scm
+#. src/import-export/qif-import/qif-import/qif-to-gnc.scm
+#. src/import-export/qif-import/qif-import/qif-merge-groups.scm
 #. src/import-export/qif-import/qif-file.scm
 #. src/import-export/qif-import/qif-to-gnc.scm
 #. src/import-export/qif-import/qif-merge-groups.scm
-#: ../src/import-export/hbci/glade/hbci.glade.h:49
-#: ../intl-scm/guile-strings.c:3114 ../intl-scm/guile-strings.c:3120
-#: ../intl-scm/guile-strings.c:3128
+#: ../src/import-export/hbci/glade/hbci.glade.h:38
+#: ../intl-scm/guile-strings.c:5804 ../intl-scm/guile-strings.c:5810
+#: ../intl-scm/guile-strings.c:5818 ../intl-scm/guile-strings.c:5822
+#: ../intl-scm/guile-strings.c:5828 ../intl-scm/guile-strings.c:5836
 msgid "Progress"
 msgstr "Verlauf"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:50
+#: ../src/import-export/hbci/glade/hbci.glade.h:39
 msgid "Recipient Account Number"
 msgstr "Konto-Nr. des Empfängers"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:51
+#: ../src/import-export/hbci/glade/hbci.glade.h:40
 msgid "Recipient Bank Code"
 msgstr "Bankleitzahl"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:52
+#: ../src/import-export/hbci/glade/hbci.glade.h:41
 msgid "Recipient Name"
 msgstr "Empfänger: Name, Vorname / Firma"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:53
+#: ../src/import-export/hbci/glade/hbci.glade.h:42
 msgid "Sort"
 msgstr "Sortieren"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:54
+#: ../src/import-export/hbci/glade/hbci.glade.h:43
 msgid "Sort the list of transaction templates alphabetically"
 msgstr "Die Liste der Ãœberweisungsvorlagen alphabetisch sortieren"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:55
-msgid "Start AqHBCI Setup Wizard"
-msgstr "AqHBCI Einrichtungs-Assistent starten"
+#: ../src/import-export/hbci/glade/hbci.glade.h:44
+msgid "Start AqBanking Setup Wizard"
+msgstr "AqBanking Einrichtungs-Assistent starten"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:56
-msgid "Start AqHBCI Wizard"
-msgstr "AqHBCI Einrichtungs-Assistenten starten"
+#: ../src/import-export/hbci/glade/hbci.glade.h:45
+msgid "Start AqBanking Wizard"
+msgstr "AqBanking Einrichtungs-Assistenten starten"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:57
+#: ../src/import-export/hbci/glade/hbci.glade.h:46
+msgid "Start Online Banking Wizard"
+msgstr "Onlinebanking Einrichtungs-Assistenten starten"
+
+#: ../src/import-export/hbci/glade/hbci.glade.h:47
 msgid ""
-"The Setup of your HBCI connection is handled by the external program "
-"\"AqHBCI Setup Wizard\". Please press the button below to start this program."
-"\t"
+"The Setup of your Online Banking connection is handled by the external "
+"program \"AqBanking Setup Wizard\". Please press the button below to start "
+"this program.\t"
+msgstr "Die Einrichtung Ihrer Onlinebanking-Verbindung (HBCI) wird von dem externen Programm »AqBanking Einrichtungs-Assistent« durchgeführt. Bitte klicken Sie den Knopf, um dieses Programm zu starten."
+
+#: ../src/import-export/hbci/glade/hbci.glade.h:48
+msgid ""
+"The setup for matching Online Banking accounts to GnuCash accounts is now "
+"finished.  You can now invoke Online Banking actions on those accounts.\n"
+"\n"
+"If you want to add another bank, user, or account, you can start this druid "
+"again anytime.\n"
+"\n"
+"Press \"Apply\" now."
 msgstr ""
-"Die Einrichtung Ihrer HBCI-Verbindung wird von dem externen Programm »AqHBCI "
-"Einrichtungs-Assistent« durchgeführt. Bitte klicken Sie den Knopf, um dieses "
-"Programm zu starten."
+"Die Einrichtung des Onlinebanking-Zugangs und die Zuordnung zu den passenden GnuCash Konten ist fertig gestellt. Sie können nun Onlinebanking-Aktionen in diesen Konten aufrufen (Menü Aktionen: Online Aktionen).\n"
+"\n"
+"Wenn Sie eine neue Bank, einen neuen Benutzer oder ein neues Konto hinzufügen möchten, können Sie diesen Assistenten (Druiden) jederzeit wieder aufrufen.\n"
+"\n"
+"Klicken Sie jetzt »Anwenden«."
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:58
+#: ../src/import-export/hbci/glade/hbci.glade.h:53
 msgid ""
-"This druid helps you setting up your HBCI connection with your bank.\n"
+"This druid helps you setting up your Online Banking connection with your "
+"bank.\n"
 "\n"
-"You first need to apply for HBCI access at your bank. If your bank  decides "
-"to grant you HBCI access, the bank will send you a letter,  containing \n"
+"You first need to apply for Online Banking access at your bank. If your "
+"bank  decides to grant you electronic access, they will send you a letter "
+"containing \n"
 "\n"
 "* The bank code of your bank\n"
 "* The user ID that identifies you to your bank\n"
-"* The Internet address of your bank's HBCI server\n"
-"* Information about the cryptographic public key of your bank (\"Ini-Letter"
-"\").\n"
+"* The Internet address of your bank's Online Banking server\n"
+"* For HBCI Online Banking, information about the cryptographic public key of "
+"your bank (\"Ini-Letter\").\n"
 "\n"
 "This information will be needed in the following. Press \"Forward\" now.\n"
 "\n"
-"NOTE: NO WARRANTIES FOR ANYTHING. Some banks are running a poorly "
-"implemented HBCI. You should not rely on time-critical transfers through "
-"HBCI, since sometimes your bank does not give you correct feedback when a "
-"transfer has been rejected.\n"
+"NOTE: NO WARRANTIES FOR ANYTHING. Some banks run a poorly implemented Online "
+"Banking server. You should not rely on time-critical transfers through "
+"Online Banking, because sometimes the bank does not give you correct "
+"feedback when a transfer is rejected.\n"
 "\n"
-"Press \"Cancel\" if you do not wish to setup any HBCI connection now."
+"Press \"Cancel\" if you do not wish to setup any Online Banking connection "
+"now."
 msgstr ""
-"Dieser Assistent hilft Ihnen, die HBCI Verbindung mit Ihrer Bank "
-"einzurichten.\n"
+"Dieser Assistent hilft Ihnen, die Online-Verbindung (HBCI) mit Ihrer Bank einzurichten.\n"
 "\n"
-"Zunächst müssen Sie bei Ihrer Bank die Freischaltung des HBCI Zugangs "
-"beantragt haben. Ihre Bank müsste Ihnen dann einen Brief zugesandt haben, "
-"der u.a. folgende Angaben enthält:\n"
+"Zunächst müssen Sie bei Ihrer Bank die Freischaltung des HBCI-Zugangs beantragt haben. Ihre Bank müsste Ihnen dann einen Brief zugesandt haben, der u.a. folgende Angaben enthält:\n"
 "\n"
 "* Die Bankleitzahl Ihrer Bank\n"
 "* Die Benutzerkennung, die Sie gegenüber Ihrer Bank identifiziert\n"
 "* Die Internetadresse des Bank-Servers \n"
-"* Informationen über die öffentlichen kryptographischen Schlüssel Ihrer Bank "
-"(»Ini-Brief«)\n"
+"* Informationen über die öffentlichen kryptographischen Schlüssel Ihrer Bank (»Ini-Brief«)\n"
 "\n"
 "Diese Informationen werden im folgenden benötigt. Klicken Sie jetzt »Vor«.\n"
 "\n"
-"ACHTUNG: Die Programmierer geben keine Garantie auf korrekte Funktion. "
-"Insbesondere kann bei manchen Bank-Servern eine schlechte HBCI-"
-"Implementierung dazu führen, dass Sie keine Fehlermeldung bei "
-"zurückgewiesenen Aufträgen erhalten. Sie sollten sich daher bei "
-"zeitkritischen Aufträgen nicht auf HBCI allein verlassen.\n"
+"ACHTUNG: Die Programmierer geben keine Garantie auf korrekte Funktion. Insbesondere kann bei manchen Bank-Servern eine schlechte HBCI-Implementierung dazu führen, dass Sie keine Fehlermeldung bei zurückgewiesenen Aufträgen erhalten. Sie sollten sich daher bei zeitkritischen Aufträgen nicht auf HBCI allein verlassen.\n"
 "\n"
-"Klicken Sie »Abbrechen«, wenn Sie jetzt keine HBCI Verbindung einrichten "
-"möchten."
+"Klicken Sie »Abbrechen«, wenn Sie jetzt keine HBCI Verbindung einrichten möchten."
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:72
-msgid ""
-"Update \n"
-"account list"
-msgstr ""
-"Kontoliste\n"
-"aktualisieren"
-
-#: ../src/import-export/hbci/glade/hbci.glade.h:74
+#: ../src/import-export/hbci/glade/hbci.glade.h:67
 msgid "Use Transaction Template"
 msgstr "Ãœberweisungsvorlage:"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:75
+#: ../src/import-export/hbci/glade/hbci.glade.h:68
 msgid "Version"
 msgstr "Version"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:76
+#: ../src/import-export/hbci/glade/hbci.glade.h:69
 msgid "_Earliest possible date"
 msgstr "_Frühestes mögliches Datum"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:77
+#: ../src/import-export/hbci/glade/hbci.glade.h:70
 msgid "_Last retrieval date"
 msgstr "_Letztes Abrufdatum"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:78
+#: ../src/import-export/hbci/glade/hbci.glade.h:71
 msgid "_Now"
 msgstr "_Jetzt"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:79
+#: ../src/import-export/hbci/glade/hbci.glade.h:72
 msgid "at Bank"
 msgstr "der Bank"
 
-#: ../src/import-export/hbci/glade/hbci.glade.h:80
+#: ../src/import-export/hbci/glade/hbci.glade.h:73
 msgid "something"
 msgstr "irgendwas"
 
@@ -13012,63 +13281,128 @@
 msgstr "Passwort:"
 
 #: ../src/import-export/hbci/glade/hbciprefs.glade.h:1
-msgid "<b>HBCI</b>"
-msgstr "<b>HBCI</b>"
+msgid "<b>Online Banking</b>"
+msgstr "<b>Onlinebanking</b>"
 
 #: ../src/import-export/hbci/glade/hbciprefs.glade.h:2
-msgid "Activate verbose debug messages for HBCI Online Banking."
-msgstr "Ausführliche Fehlermeldungen für HBCI Online Banking aktivieren."
+msgid "Activate verbose debug messages for Online Banking."
+msgstr "Ausführliche Fehlermeldungen für Onlinebanking aktivieren."
 
 #: ../src/import-export/hbci/glade/hbciprefs.glade.h:4
 msgid "Remember _PIN"
 msgstr "_PIN merken"
 
 #: ../src/import-export/hbci/glade/hbciprefs.glade.h:5
-msgid "Remember the PIN for HBCI in memory during a session."
-msgstr "Die PIN für HBCI während einer GnuCash-Sitzung im Speicher merken."
+msgid "Remember the Online Banking PIN in memory during a session."
+msgstr "Die PIN für Onlinebanking während einer GnuCash-Sitzung im Speicher merken."
 
 #: ../src/import-export/hbci/glade/hbciprefs.glade.h:6
 msgid "_Verbose debug messages"
 msgstr "Ausführliche _Fehlermeldungen"
 
-#. Translators: Strings from this file are really only
-#. * needed inside Germany (HBCI is not supported anywhere
-#. * else). You may safely ignore strings from the
-#. * import-export/hbci subdirectory in other countries.
-#.
-#: ../src/import-export/hbci/gnc-hbci-getbalance.c:265
+#: ../src/import-export/hbci/gnc-file-aqb-import.c:156
+#, fuzzy
+msgid "Select an DTAUS file to process"
+msgstr "Zu verarbeitende MT940-Datei auswählen"
+
+#: ../src/import-export/hbci/gnc-file-aqb-import.c:336
 msgid ""
-"The downloaded HBCI Balance was zero.\n"
+"No Online Banking account found for this gnucash account. These transactions "
+"will not be executed by Online Banking."
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-file-aqb-import.c:384
+#: ../src/import-export/hbci/gnc-hbci-transfer.c:136
+#, fuzzy
+msgid ""
+"The backend found an error during the preparation of the job. It is not "
+"possible to execute this job. \n"
 "\n"
+"Most probable the bank does not support your chosen job or your Online "
+"Banking account does not have the permission to execute this job. More error "
+"messages might be visible on your console log.\n"
+"\n"
+"Do you want to enter the job again?"
+msgstr ""
+"Das AqBanking-Modul hat einen Fehler während der Vorbereitung des Auftrags "
+"gefunden. Es ist nicht möglich, den Auftrag auszuführen.\n"
+"\n"
+"Wahrscheinlich wird dieser HBCI Geschäftsvorfall von Ihrer Bank leider nicht "
+"unterstützt oder ist für Ihren HBCI-Zugang nicht freigeschaltet. Weitere "
+"Fehlermeldungen könnten auf dem Console-Log sichtbar sein.\n"
+"\n"
+"Wollen Sie den Auftrag erneut eingeben?"
+
+#: ../src/import-export/hbci/gnc-file-aqb-import.c:420
+msgid ""
+"Executing the Online Banking outbox failed. Please check the log window."
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-file-aqb-import.c:447
+#, c-format
+msgid ""
+"A debit note has been refused by the bank. The refused debit note has the "
+"following data:\n"
+"Remote bank code: \"%s\"\n"
+"Remote account number: \"%s\"\n"
+"Description and remote name: \"%s\"\n"
+"Value: \"%s\"\n"
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-file-aqb-import.c:463
+msgid ""
+"One of the jobs was sent to the bank successfully, but the bank is refusing "
+"to execute the job. Please check the log window for the exact error message "
+"of the bank. The line with the error message contains a code number that is "
+"greater than 9000.\n"
+"\n"
+"The job has been removed from the queue."
+msgstr ""
+"Der Auftrag wurde erfolgreich an die Bank geschickt, aber die Bank "
+"verweigert die Ausführung. Bitte überprüfen Sie die Ausgaben im Protokoll-"
+"Fenster, um die genaue Fehlermeldung zu lesen. Die Zeile mit der genauen "
+"Fehlermeldung enthält eine Code-Nummer, die größer als 9000 ist.\n"
+"\n"
+"Wollen Sie den Auftrag erneut eingeben?"
+
+#. Translators: Strings from this file are needed only in
+#. * countries that have one of aqbanking's Online Banking
+#. * techniques available. This is 'OFX DirectConnect'
+#. * (U.S. and others), 'HBCI' (in Germany), or 'YellowNet'
+#. * (Switzerland). If none of these techniques are available
+#. * in your country, you may safely ignore strings from the
+#. * import-export/hbci subdirectory.
+#: ../src/import-export/hbci/gnc-hbci-getbalance.c:271
+msgid ""
+"The downloaded Online Banking Balance was zero.\n"
+"\n"
 "Either this is the correct balance, or your bank does not support Balance "
-"download in this HBCI version. In the latter case you should choose a higher "
-"HBCI version number in the HBCI Setup. After that, try again to download the "
-"HBCI Balance."
+"download in this Online Banking version. In the latter case you should "
+"choose a different Online Banking version number in the Online Banking "
+"(AqBanking or HBCI) Setup. After that, try again to download the Online "
+"Banking Balance."
 msgstr ""
 "Der abgefragte Saldo war Null. \n"
 "\n"
-"Entweder war dies der korrekte Saldo, oder Ihre Bank bietet anscheinend "
-"keine Saldenabfrage in der gewählten HBCI-Version an. Im letzteren Fall "
-"können Sie im HBCI-Einrichtungs-Assistent eine höhere HBCI-Version "
-"auswählen. Versuchen Sie anschließend erneut, den Saldo abzufragen."
+"Entweder war dies der korrekte Saldo, oder Ihre Bank bietet anscheinend keine Saldenabfrage in der gewählten HBCI-Version an. Im letzteren Fall können Sie im Onlinebanking-Einrichtungs-Assistent eine höhere HBCI-Version auswählen. Versuchen Sie anschließend erneut, den Saldo abzufragen."
 
-#: ../src/import-export/hbci/gnc-hbci-getbalance.c:281
+#: ../src/import-export/hbci/gnc-hbci-getbalance.c:289
 #, c-format
 msgid ""
-"Result of HBCI job: \n"
+"Result of Online Banking job: \n"
 "Account booked balance is %s"
 msgstr ""
-"Ergebnis des HBCI Auftrag:\n"
+"Ergebnis der Saldenabfrage:\n"
 "Gebuchter Saldo des Kontos ist %s"
 
-#: ../src/import-export/hbci/gnc-hbci-getbalance.c:288
+#: ../src/import-export/hbci/gnc-hbci-getbalance.c:296
 #, c-format
 msgid "For your information: This account also has a noted balance of %s\n"
 msgstr ""
 "Zu Ihrer Information: Dieses Konto hat außerdem folgenden Saldo an zur "
 "Ausführung vorgemerkten Aufträgen: %s\n"
 
-#: ../src/import-export/hbci/gnc-hbci-getbalance.c:293
+#: ../src/import-export/hbci/gnc-hbci-getbalance.c:301
 msgid ""
 "The booked balance is identical to the current reconciled balance of the "
 "account."
@@ -13076,36 +13410,18 @@
 "Dieser gebuchte Saldo stimmt mit dem aktuellen abgeglichenen Saldo Ihres "
 "Kontos überein."
 
-#: ../src/import-export/hbci/gnc-hbci-getbalance.c:307
+#: ../src/import-export/hbci/gnc-hbci-getbalance.c:315
 msgid "Reconcile account now?"
 msgstr "Konto jetzt abgleichen?"
 
 #: ../src/import-export/hbci/gnc-hbci-gettrans.c:207
-msgid "The HBCI import returned no transactions for the selected time period."
+msgid ""
+"The Online Banking import returned no transactions for the selected time "
+"period."
 msgstr "Es liegen keine Buchungen für die gewählte Zeitspanne vor."
 
-#: ../src/import-export/hbci/gnc-hbci-transfer.c:133
+#: ../src/import-export/hbci/gnc-hbci-transfer.c:219
 msgid ""
-"The backend found an error during the preparation of the job. It is not "
-"possible to execute this job. \n"
-"\n"
-"Most probable the bank does not support your chosen job or your HBCI account "
-"does not have the permission to execute this job. More error messages might "
-"be visible on your console log.\n"
-"\n"
-"Do you want to enter the job again?"
-msgstr ""
-"Das AqBanking-Modul hat einen Fehler während der Vorbereitung des Auftrags "
-"gefunden. Es ist nicht möglich, den Auftrag auszuführen.\n"
-"\n"
-"Wahrscheinlich wird dieser HBCI Geschäftsvorfall von Ihrer Bank leider nicht "
-"unterstützt oder ist für Ihren HBCI-Zugang nicht freigeschaltet. Weitere "
-"Fehlermeldungen könnten auf dem Console-Log sichtbar sein.\n"
-"\n"
-"Wollen Sie den Auftrag erneut eingeben?"
-
-#: ../src/import-export/hbci/gnc-hbci-transfer.c:216
-msgid ""
 "You have changed the list of online transfer templates, but you cancelled "
 "the transfer dialog. Do you nevertheless want to store the changes?"
 msgstr ""
@@ -13113,19 +13429,19 @@
 "Überweisungsdialog abgebrochen. Möchten Sie die Liste der "
 "Ãœberweisungsvorlagen trotzdem speichern?"
 
-#: ../src/import-export/hbci/gnc-hbci-transfer.c:247
-msgid "Online HBCI Direct Debit Note"
+#: ../src/import-export/hbci/gnc-hbci-transfer.c:250
+msgid "Online Banking Direct Debit Note"
 msgstr "Online-Auftrag Einzellastschrift"
 
-#: ../src/import-export/hbci/gnc-hbci-transfer.c:249
-msgid "Online HBCI Bank-Internal Transfer"
+#: ../src/import-export/hbci/gnc-hbci-transfer.c:252
+msgid "Online Banking Bank-Internal Transfer"
 msgstr "Online-Auftrag Einzelumbuchung"
 
-#: ../src/import-export/hbci/gnc-hbci-transfer.c:252
-msgid "Online HBCI Transaction"
+#: ../src/import-export/hbci/gnc-hbci-transfer.c:255
+msgid "Online Banking Transaction"
 msgstr "Online-Auftrag Einzelüberweisung"
 
-#: ../src/import-export/hbci/gnc-hbci-utils.c:291
+#: ../src/import-export/hbci/gnc-hbci-utils.c:290
 msgid ""
 "The PIN you entered was wrong.\n"
 "Do you want to try again?"
@@ -13133,7 +13449,7 @@
 "Die eingegebene PIN war falsch.\n"
 "Möchten Sie erneut versuchen?"
 
-#: ../src/import-export/hbci/gnc-hbci-utils.c:297
+#: ../src/import-export/hbci/gnc-hbci-utils.c:296
 msgid ""
 "The PIN you entered was wrong.\n"
 "ATTENTION: You have zero further wrong retries left!\n"
@@ -13143,7 +13459,7 @@
 "VORSICHT: Es ist kein weiterer Fehlversuch möglich!\n"
 "Möchten Sie erneut versuchen?"
 
-#: ../src/import-export/hbci/gnc-hbci-utils.c:304
+#: ../src/import-export/hbci/gnc-hbci-utils.c:303
 msgid ""
 "Unfortunately you entered a wrong PIN for too many times. Your chip card is "
 "therefore destroyed. Aborting."
@@ -13151,97 +13467,152 @@
 "Sie haben zu oft eine falsche PIN eingegeben. Ihre Chipkarte ist damit "
 "leider unbrauchbar geworden. Aktion wird abgebrochen."
 
-#: ../src/import-export/hbci/gnc-hbci-utils.c:313
+#: ../src/import-export/hbci/gnc-hbci-utils.c:312
 msgid ""
 "No chip card has been found in the chip card reader. Do you want to try "
 "again?"
 msgstr ""
 "Im Kartenleser wurde keine Chipkarte erkannt. Möchten Sie erneut versuchen?"
 
-#: ../src/import-export/hbci/gnc-hbci-utils.c:319
+#: ../src/import-export/hbci/gnc-hbci-utils.c:318
 msgid ""
-"Unfortunately this HBCI job is not supported by your bank or for your "
-"account. Aborting."
+"Unfortunately this Online Banking job is not supported by your bank or for "
+"your account. Aborting."
 msgstr ""
 "Dieser HBCI Geschäftsvorfall wird von Ihrer Bank leider nicht unterstützt "
 "oder ist Ihnen nicht gestattet. Aktion wird abgebrochen."
 
-#: ../src/import-export/hbci/gnc-hbci-utils.c:327
+#: ../src/import-export/hbci/gnc-hbci-utils.c:326
 msgid ""
-"The server of your bank refused the HBCI connection. Please try again later. "
-"Aborting."
-msgstr ""
-"Der HBCI Server der Bank hat die Verbindung abgewiesen. Bitte versuchen Sie "
-"es später noch einmal. Aktion wird abgebrochen."
+"The server of your bank refused the Online Banking connection. Please try "
+"again later. Aborting."
+msgstr "Der Onlinebanking-Server der Bank hat die Verbindung abgewiesen. Bitte versuchen Sie es später noch einmal. Aktion wird abgebrochen."
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
-#: ../src/import-export/hbci/gnc-hbci-utils.c:533
-#: ../intl-scm/guile-strings.c:3090 ../intl-scm/guile-strings.c:3112
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
+#: ../src/import-export/hbci/gnc-hbci-utils.c:534
+#: ../intl-scm/guile-strings.c:5758 ../intl-scm/guile-strings.c:5780
+#: ../intl-scm/guile-strings.c:5802
 msgid "Unspecified"
 msgstr "Nicht spezifiziert"
 
 #. Menus
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:85
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:96
 msgid "_Online Actions"
 msgstr "_Online Aktionen"
 
 #. Menu Items
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:88
-msgid "_HBCI Setup..."
-msgstr "_HBCI Einrichtung..."
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:99
+msgid "_Online Banking Setup..."
+msgstr "_Onlinebanking Einrichtung..."
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:89
-msgid "Initial setup of HBCI/AqBanking access"
-msgstr "Grundlegende HBCI/AqBanking Einrichtung"
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:100
+msgid ""
+"Initial setup of Online Banking access (HBCI, or OFX DirectConnect, using "
+"AqBanking)"
+msgstr ""
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:91
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:102
 msgid "Get _Balance"
 msgstr "_Saldenabfrage"
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:92
-msgid "Get the account balance online through HBCI/AqBanking"
-msgstr "Kontosaldo online abfragen via HBCI/AqBanking"
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:103
+msgid "Get the account balance online through Online Banking"
+msgstr "Kontosaldo online abfragen via HBCI/Onlinebanking"
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:94
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:105
 msgid "Get _Transactions..."
 msgstr "Abfrage Konto_umsätze..."
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:95
-msgid "Get the transactions online through HBCI/AqBanking"
-msgstr "Kontoumsätze online abfragen via HBCI/AqBanking"
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:106
+msgid "Get the transactions online through Online Banking"
+msgstr "Kontoumsätze online abfragen via HBCI/Onlinebanking"
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:97
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:108
 msgid "_Issue Transaction..."
 msgstr "_Einzelüberweisung..."
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:98
-msgid "Issue a new transaction online through HBCI"
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:109
+msgid "Issue a new transaction online through Online Banking"
 msgstr "Neue Einzelüberweisung mit HBCI online absenden"
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:106
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:117
 msgid "I_nternal Transaction..."
 msgstr "Interne _Umbuchung..."
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:107
-msgid "Issue a new bank-internal transaction online through HBCI/AqBanking"
-msgstr "Neue bankinterne Einzelumbuchung mit HBCI/AqBanking online absenden"
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:118
+msgid "Issue a new bank-internal transaction online through Online Banking"
+msgstr "Neue bankinterne Einzelumbuchung mit HBCI/Onlinebanking online absenden"
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:110
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:121
 msgid "_Direct Debit..."
 msgstr "Einzel_lastschrift..."
 
-#: ../src/import-export/hbci/gnc-plugin-hbci.c:111
-msgid "Issue a new direct debit note online through HBCI/AqBanking"
-msgstr "Neue Einzellastschrift online mit HBCI/AqBanking absenden"
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:122
+msgid "Issue a new direct debit note online through Online Banking"
+msgstr "Neue Einzellastschrift online mit HBCI/Onlinebanking absenden"
 
-#: ../src/import-export/hbci/hbci-interaction.c:358
+#. File -> Import menu item
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:126
+msgid "Import _MT940"
+msgstr "_MT940 importieren"
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:127
+msgid "Import a MT940 file into GnuCash"
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:129
+msgid "Import MT94_2"
+msgstr "MT94_2 importieren"
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:130
+msgid "Import a MT942 file into GnuCash"
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:132
+msgid "Import _DTAUS"
+msgstr "_DTAUS importieren"
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:133
+msgid "Import a DTAUS file into GnuCash"
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:135
+msgid "Import _CSV"
+msgstr "_CSV importieren"
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:136
+msgid "Import a CSV file into GnuCash"
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:138
+msgid "Import DTAUS and _send..."
+msgstr "DTAUS importieren und _senden..."
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:139
+msgid ""
+"Import a DTAUS file into GnuCash and send the transfers online through "
+"Online Banking"
+msgstr ""
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:141
+msgid "Import CSV and s_end..."
+msgstr "CSV importieren und _senden..."
+
+#: ../src/import-export/hbci/gnc-plugin-hbci.c:142
+msgid ""
+"Import a CSV file into GnuCash and send the transfers online through Online "
+"Banking"
+msgstr ""
+
+#: ../src/import-export/hbci/hbci-interaction.c:389
 #, c-format
 msgid ""
 "The PIN needs to be at least %d characters long. Do you want to try again?"
 msgstr "Die PIN muss mindestens %d Zeichen lang sein.  Erneut versuchen?"
 
-#: ../src/import-export/hbci/hbci-interaction.c:371
+#: ../src/import-export/hbci/hbci-interaction.c:402
 #, c-format
 msgid ""
 "You entered %ld characters, but the PIN must be no longer than %d "
@@ -13250,13 +13621,13 @@
 "Sie haben %ld Zeichen eingegeben, aber die PIN darf nicht länger als %d "
 "Zeichen sein.  Erneut versuchen?"
 
-#: ../src/import-export/hbci/hbci-interaction.c:439
+#: ../src/import-export/hbci/hbci-interaction.c:470
 #, c-format
 msgid ""
 "This TAN needs to be at least %d characters long. Do you want to try again?"
 msgstr "Diese TAN muss mindestens %d Zeichen lang sein.  Erneut versuchen?"
 
-#: ../src/import-export/hbci/hbci-interaction.c:452
+#: ../src/import-export/hbci/hbci-interaction.c:483
 #, c-format
 msgid ""
 "You entered %ld characters, but the TAN must be no longer than %d "
@@ -13266,14 +13637,22 @@
 "Zeichen sein.  Erneut versuchen?"
 
 #: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:1
+msgid "CSV import data format"
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:2
 msgid "Close dialog when finished"
 msgstr "Fenster nach Verbindungsende schließen"
 
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:2
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:3
+msgid "DTAUS import data format"
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:4
 msgid "Enables verbose debug messages for HBCI/AqBanking Online Banking."
 msgstr "Ausführliche Fehlermeldungen für HBCI Online Banking aktivieren."
 
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:3
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:5
 msgid ""
 "If active, the PIN for HBCI/AqBanking actions will be remembered in memory "
 "during a session. Otherwise it will have to be entered again each time "
@@ -13284,7 +13663,7 @@
 "Wenn nicht aktiviert, muss die PIN bei jeder einzelnen Aktion von HBCI/"
 "AqBanking eingegeben werden und wird nicht im Speicher gehalten."
 
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:4
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:6
 msgid ""
 "If active, the window will be closed automatically when you finish the HBCI/"
 "AqBanking import process. Otherwise it will stay open."
@@ -13292,11 +13671,47 @@
 "Wenn aktiviert, wird das Fenster automatisch geschlossen, wenn der HBCI/"
 "AqBanking-Import beendet ist. Andernfalls bleibt das Fenster geöffnet."
 
-#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:5
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:7
 msgid "Remember the PIN in memory"
 msgstr "HBCI PIN im Speicher merken"
 
 #: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:8
+msgid "SWIFT MT940 import data format"
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:9
+msgid "SWIFT MT942 import data format"
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:12
+msgid ""
+"This setting specifies the data format when importing CSV files. The "
+"AqBanking library offers various import formats (called \"profiles\") of "
+"which you can choose one here."
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:13
+msgid ""
+"This setting specifies the data format when importing DTAUS files. The "
+"AqBanking library offers various import formats (called \"profiles\") of "
+"which you can choose one here."
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:14
+msgid ""
+"This setting specifies the data format when importing SWIFT MT940 files. The "
+"AqBanking library offers various import formats (called \"profiles\") of "
+"which you can choose one here."
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:15
+msgid ""
+"This setting specifies the data format when importing SWIFT MT942 files. The "
+"AqBanking library offers various import formats (called \"profiles\") of "
+"which you can choose one here."
+msgstr ""
+
+#: ../src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in.h:16
 msgid "Verbose HBCI debug messages"
 msgstr "Ausführliche HBCI-Fehlermeldungen"
 
@@ -13304,11 +13719,11 @@
 msgid "Account ID"
 msgstr "Kontonummer"
 
-#: ../src/import-export/import-account-matcher.c:197
+#: ../src/import-export/import-account-matcher.c:209
 msgid "(Full account ID: "
 msgstr "(Komplette Kontonummer: "
 
-#: ../src/import-export/import-account-matcher.c:220
+#: ../src/import-export/import-account-matcher.c:234
 #, c-format
 msgid ""
 "The account %s is a placeholder account and does not allow transactions. "
@@ -13351,56 +13766,72 @@
 msgid "y/d/m"
 msgstr "Jahr/Tag/Monat"
 
-#: ../src/import-export/import-main-matcher.c:304
+#: ../src/import-export/import-main-matcher.c:208
 msgid "Destination account for the auto-balance split."
 msgstr "Gegenkonto für Ausgleichsbuchung."
 
-#: ../src/import-export/import-main-matcher.c:651
+#: ../src/import-export/import-main-matcher.c:423
+msgid "A"
+msgstr "Neu"
+
+#: ../src/import-export/import-main-matcher.c:425
+msgid "R"
+msgstr "Abgl"
+
+#: ../src/import-export/import-main-matcher.c:435
+msgid "Info"
+msgstr "Information"
+
+#: ../src/import-export/import-main-matcher.c:586
 msgid "New, already balanced"
 msgstr "Neu (und ausgeglichen)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: ../src/import-export/import-main-matcher.c:677
+#: ../src/import-export/import-main-matcher.c:610
 #, c-format
 msgid "New, transfer %s to (manual) \"%s\""
 msgstr "Neu (Buchung von %s nach »%s«, manuell gewählt)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: ../src/import-export/import-main-matcher.c:685
+#: ../src/import-export/import-main-matcher.c:618
 #, c-format
 msgid "New, transfer %s to (auto) \"%s\""
 msgstr "Neu (Buchung von %s nach »%s«, automatisch gewählt)"
 
 #. Translators: %s is the amount to be transferred.
-#: ../src/import-export/import-main-matcher.c:697
+#: ../src/import-export/import-main-matcher.c:629
 #, c-format
 msgid "New, UNBALANCED (need acct to transfer %s)!"
 msgstr "Neu (Nicht ausgeglichen, %s noch auszugleichen)"
 
-#: ../src/import-export/import-main-matcher.c:711
+#: ../src/import-export/import-main-matcher.c:641
 msgid "Reconcile (manual) match"
 msgstr "Abgleichen (mit manuell gewählter Zuordnung)"
 
-#: ../src/import-export/import-main-matcher.c:716
+#: ../src/import-export/import-main-matcher.c:645
 msgid "Reconcile (auto) match"
 msgstr "Abgleichen (mit automatisch gewählter Zuordnung)"
 
-#: ../src/import-export/import-main-matcher.c:724
+#: ../src/import-export/import-main-matcher.c:651
 msgid "Match missing!"
 msgstr "Zuordnung fehlt"
 
-#: ../src/import-export/import-main-matcher.c:732
+#: ../src/import-export/import-main-matcher.c:660
 msgid "Do not import (no action selected)"
 msgstr "Nicht importieren (keine Import-Aktion gewählt)"
 
+#: ../src/import-export/import-match-picker.c:363
+msgid "Confidence"
+msgstr "Genauigkeit"
+
 #: ../src/import-export/import-provider-format.glade.h:1
 msgid "(no)"
 msgstr "(kein(e))"
 
 #: ../src/import-export/import-provider-format.glade.h:2
-#: ../src/import-export/qif-import/qif.glade.h:11
+#: ../src/import-export/qif-import/qif.glade.h:9
 msgid "Click \"Back\" to cancel the loading of this file and choose another."
 msgstr ""
 "Drücken Sie »Zurück«, um nicht diese Datei zu laden, sondern eine andere "
@@ -13411,12 +13842,12 @@
 msgstr "Beispieldatum:"
 
 #: ../src/import-export/import-provider-format.glade.h:4
-#: ../src/import-export/qif-import/qif.glade.h:78
+#: ../src/import-export/qif-import/qif.glade.h:68
 msgid "Set a date format for this QIF file"
 msgstr "Ein Datumsformat für diese QIF-Datei setzen"
 
 #: ../src/import-export/import-provider-format.glade.h:5
-#: ../src/import-export/qif-import/qif.glade.h:81
+#: ../src/import-export/qif-import/qif.glade.h:71
 msgid ""
 "The QIF file format does not specify which order the day, month, and year "
 "components of a date are printed.  In most cases, it is possible to "
@@ -13426,7 +13857,7 @@
 "\n"
 "Please select a date format for the file.  QIF files created by European "
 "software are likely  to be in \"d-m-y\" or day-month-year format, where US "
-"QIF files are likely to be \"m-d-y\" or month-year-day.    \n"
+"QIF files are likely to be \"m-d-y\" or month-day-year.    \n"
 msgstr ""
 "Das QIF-Dateiformat macht keine Angaben darüber, in welcher Reihenfolge Tag, "
 "Monat und Jahr gespeichert sind. In den meisten Fällen kann dies automatisch "
@@ -13438,12 +13869,12 @@
 "Monat-Jahr), wogegen Dateien aus dem amerikanischen Raum eher das Format »m-"
 "d-y« (Monat-Tag-Jahr) haben.\n"
 
-#: ../src/import-export/log-replay/gnc-log-replay.c:525
+#: ../src/import-export/log-replay/gnc-log-replay.c:522
 msgid "Select a .log file to replay"
 msgstr "Zu ladende Log-Datei auswählen"
 
 #. Translators: %s is the file name.
-#: ../src/import-export/log-replay/gnc-log-replay.c:542
+#: ../src/import-export/log-replay/gnc-log-replay.c:541
 #, c-format
 msgid "Cannot open the current log file: %s"
 msgstr "Kann nicht die aktuelle Log-Datei öffnen: %s"
@@ -13452,16 +13883,16 @@
 #. * First argument is the filename,
 #. * second argument is the error.
 #.
-#: ../src/import-export/log-replay/gnc-log-replay.c:555
+#: ../src/import-export/log-replay/gnc-log-replay.c:554
 #, c-format
 msgid "Failed to open log file: %s: %s"
 msgstr "Kann Log-Datei nicht öffnen: %s: %s"
 
-#: ../src/import-export/log-replay/gnc-log-replay.c:562
+#: ../src/import-export/log-replay/gnc-log-replay.c:561
 msgid "The log file you selected was empty."
 msgstr "Die gewählte Log-Datei ist leer."
 
-#: ../src/import-export/log-replay/gnc-log-replay.c:568
+#: ../src/import-export/log-replay/gnc-log-replay.c:567
 msgid ""
 "The log file you selected cannot be read.  The file header was not "
 "recognized."
@@ -13479,18 +13910,6 @@
 "Einträge aus Logdatei nach einem Programmabsturz abspielen. Dies kann nicht "
 "rückgängig gemacht werden."
 
-#: ../src/import-export/mt940/gnc-mt940-import.c:143
-msgid "Select an MT940 file to process"
-msgstr "Zu verarbeitende MT940-Datei auswählen"
-
-#: ../src/import-export/mt940/gnc-plugin-mt940.c:47
-msgid "Import MT940"
-msgstr "MT940 importieren"
-
-#: ../src/import-export/mt940/gnc-plugin-mt940.c:48
-msgid "Process an MT940 response file"
-msgstr "Eine MT940 Datei verarbeiten"
-
 #. This string is a default account
 #. name. It MUST NOT contain the
 #. character ':' anywhere in it or
@@ -13537,7 +13956,7 @@
 msgid "Unknown OFX investment account"
 msgstr "Unbekanntes OFX Investment-Konto"
 
-#: ../src/import-export/ofx/gnc-ofx-import.c:653
+#: ../src/import-export/ofx/gnc-ofx-import.c:651
 msgid "Select an OFX/QFX file to process"
 msgstr "Zu verarbeitende OFX/QFX-Datei auswählen"
 
@@ -13549,57 +13968,61 @@
 msgid "Process an OFX/QFX response file"
 msgstr "Eine OFX/QFX Datei verarbeiten"
 
-#: ../src/import-export/qif-import/dialog-account-picker.c:164
+#: ../src/import-export/qif-import/dialog-account-picker.c:167
 msgid "Enter a name for the account"
 msgstr "Bitte geben Sie einen Namen für das Konto ein"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:363
+#: ../src/import-export/qif-import/druid-qif-import.c:389
 msgid "Select QIF File"
 msgstr "QIF-Datei auswählen"
 
 #. stay here if no file specified
-#: ../src/import-export/qif-import/druid-qif-import.c:457
+#: ../src/import-export/qif-import/druid-qif-import.c:480
 msgid "Please select a file to load."
 msgstr "Sie müssen eine Datei angeben, die geladen werden soll"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:463
+#: ../src/import-export/qif-import/druid-qif-import.c:486
 msgid "File not found or read permission denied. Please select another file."
 msgstr ""
 "Datei nicht gefunden oder Zugriffsberechtigung liegt nicht vor. Bitte wählen "
 "Sie eine andere Datei."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:475
+#: ../src/import-export/qif-import/druid-qif-import.c:498
 msgid "That QIF file is already loaded. Please select another file."
 msgstr "Diese QIF Datei ist bereits geladen. Bitte wählen Sie eine andere."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:505
+#: ../src/import-export/qif-import/druid-qif-import.c:528
 #, c-format
 msgid "QIF file load warning: %s"
 msgstr "Warnung beim Laden der QIF Datei: %s"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:512
+#: ../src/import-export/qif-import/druid-qif-import.c:535
 msgid "An error occurred while loading the QIF file."
 msgstr "Beim Laden der QIF Datei ist ein Fehler aufgetreten."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:520
+#: ../src/import-export/qif-import/druid-qif-import.c:543
 #, c-format
 msgid "QIF file load failed: %s"
 msgstr "Fehler beim Laden der QIF-Datei:%s"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:584
+#: ../src/import-export/qif-import/druid-qif-import.c:606
 msgid "An error occurred while parsing the QIF file."
 msgstr "Beim Verarbeiten der QIF Datei ist ein Fehler aufgetreten."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:594
+#: ../src/import-export/qif-import/druid-qif-import.c:616
 #, c-format
 msgid "QIF file parse failed: %s"
 msgstr "QIF-Datei Analyse fehlerhaft: %s"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:823
+#: ../src/import-export/qif-import/druid-qif-import.c:865
 msgid "You must enter an account name."
 msgstr "Sie müssen einen Kontonamen eingeben."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1183
+#: ../src/import-export/qif-import/druid-qif-import.c:1048
+msgid "GnuCash account name"
+msgstr "GnuCash Kontobezeichnung"
+
+#: ../src/import-export/qif-import/druid-qif-import.c:1298
 msgid ""
 "An error occurred while importing QIF transactions into GnuCash. Your "
 "accounts are unchanged."
@@ -13607,43 +14030,43 @@
 "Es ist ein Fehler während des QIF Imports aufgetreten. Ihre Konten wurden "
 "nicht geändert."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1230
-#: ../src/import-export/qif-import/druid-qif-import.c:1674
+#: ../src/import-export/qif-import/druid-qif-import.c:1342
+#: ../src/import-export/qif-import/druid-qif-import.c:1794
 msgid "(split)"
 msgstr "(Buchung)"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1394
+#: ../src/import-export/qif-import/druid-qif-import.c:1513
 msgid "You must enter a Type for the commodity."
 msgstr "Sie müssen einen Typ für die Währung/Aktie angeben."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1399
+#: ../src/import-export/qif-import/druid-qif-import.c:1520
 msgid "You must enter a name for the commodity."
 msgstr "Sie müssen einen Namen für die Währung/Aktie angeben."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1404
+#: ../src/import-export/qif-import/druid-qif-import.c:1525
 msgid "You must enter an abbreviation for the commodity."
 msgstr "Sie müssen eine Abkürzung für die Währung/Aktie angeben."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1413
+#: ../src/import-export/qif-import/druid-qif-import.c:1534
 msgid "You must enter an existing national currency or enter a different type."
 msgstr ""
 "Sie müssen entweder eine existierende Währung angeben oder einen anderen Typ "
 "wählen."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1547
+#: ../src/import-export/qif-import/druid-qif-import.c:1672
 #, c-format
 msgid "Enter information about \"%s\""
 msgstr "Informationen über »%s«"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1559
+#: ../src/import-export/qif-import/druid-qif-import.c:1684
 msgid "Pick the commodity's exchange or listing (NASDAQ, NYSE, etc)."
 msgstr "Wählen Sie das Börsenplatzkürzel für die Aktie (NASDAQ, NYSE, etc)."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1583
+#: ../src/import-export/qif-import/druid-qif-import.c:1708
 msgid "Enter the full name of the commodity, such as \"Red Hat Stock\""
 msgstr "Geben Sie den vollen Namen der Aktie an, z.B. »Deutsche Telekom«"
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1605
+#: ../src/import-export/qif-import/druid-qif-import.c:1730
 msgid ""
 "Enter the ticker symbol (such as \"RHAT\") or other unique abbreviation for "
 "the name."
@@ -13651,11 +14074,27 @@
 "Geben Sie das Tickersymbol (z.B. »DTE«) der Aktie oder eine andere "
 "eindeutige Abkürzung an."
 
-#: ../src/import-export/qif-import/druid-qif-import.c:1626
+#: ../src/import-export/qif-import/druid-qif-import.c:1751
 msgid "Click \"Next\" to accept the information and move on."
 msgstr ""
 "Wenn Sie fertig gelesen haben, klicken Sie bitte »Vor«, um fortzufahren."
 
+#: ../src/import-export/qif-import/druid-qif-import.c:2140
+msgid "QIF account name"
+msgstr "QIF-Kontobezeichnung"
+
+#: ../src/import-export/qif-import/druid-qif-import.c:2143
+msgid "QIF category name"
+msgstr "QIF Kategorie"
+
+#: ../src/import-export/qif-import/druid-qif-import.c:2146
+msgid "QIF payee/memo"
+msgstr "QIF Empfänger/Text"
+
+#: ../src/import-export/qif-import/druid-qif-import.c:2209
+msgid "Dup?"
+msgstr "Duplikat?"
+
 #: ../src/import-export/qif-import/gnc-plugin-qif-import.c:48
 msgid "Import _QIF..."
 msgstr "_QIF-Datei importieren..."
@@ -13668,15 +14107,15 @@
 msgid "<b>QIF Import</b>"
 msgstr "<b>QIF Import</b>"
 
-#: ../src/import-export/qif-import/qif.glade.h:3
+#: ../src/import-export/qif-import/qif.glade.h:2
 msgid "Account name:"
 msgstr "Kontobezeichnung:"
 
-#: ../src/import-export/qif-import/qif.glade.h:4
+#: ../src/import-export/qif-import/qif.glade.h:3
 msgid "Accounts and stock holdings"
 msgstr "Konten und Aktienanteile"
 
-#: ../src/import-export/qif-import/qif.glade.h:6
+#: ../src/import-export/qif-import/qif.glade.h:4
 msgid ""
 "Click \"Apply\" to import data from the staging area and update your GnuCash "
 "accounts. The account and category matching information you have entered "
@@ -13700,13 +14139,13 @@
 "\n"
 "Klicken Sie auf »Abbrechen«, um den QIF-Import-Prozess abzubrechen."
 
-#: ../src/import-export/qif-import/qif.glade.h:12
+#: ../src/import-export/qif-import/qif.glade.h:10
 msgid "Click \"Forward\" to check matchings for QIF categories. "
 msgstr ""
 "Klicken Sie bitte auf »Vor«, um passende Zuordnungen für QIF\n"
 "Kategorien zu prüfen."
 
-#: ../src/import-export/qif-import/qif.glade.h:13
+#: ../src/import-export/qif-import/qif.glade.h:11
 msgid ""
 "Click \"Forward\" to enter information about stocks and mutual funds in the "
 "imported data."
@@ -13714,7 +14153,7 @@
 "Klicken Sie nun auf »Vor«, um Informationen über die Aktien und Aktienfonds "
 "einzugeben, die aus den importierten Daten stammen."
 
-#: ../src/import-export/qif-import/qif.glade.h:14
+#: ../src/import-export/qif-import/qif.glade.h:12
 msgid ""
 "Click \"Forward\" to enter information about the currency used in your QIF "
 "files."
@@ -13722,7 +14161,7 @@
 "Bitte klicken Sie »Vor«, um Informationen über Währungen in Ihren\n"
 "QIF-Dateien einzugeben."
 
-#: ../src/import-export/qif-import/qif.glade.h:15
+#: ../src/import-export/qif-import/qif.glade.h:13
 msgid ""
 "Click \"Load another file\" if you have more data to import at this time. Do "
 "this if you have saved your accounts to separate QIF files.\n"
@@ -13737,15 +14176,11 @@
 "Klicken Sie auf »Vor«, um das Laden von Dateien zu beenden und zum nächsten "
 "Schritt des QIF-Importprozesses zu gehen."
 
-#: ../src/import-export/qif-import/qif.glade.h:20
-msgid "Dup?"
-msgstr "Duplikat?"
-
-#: ../src/import-export/qif-import/qif.glade.h:21
+#: ../src/import-export/qif-import/qif.glade.h:16
 msgid "Enter the currency used for new accounts"
 msgstr "Standard-Währung für neue Konten"
 
-#: ../src/import-export/qif-import/qif.glade.h:23
+#: ../src/import-export/qif-import/qif.glade.h:17
 msgid ""
 "GnuCash can import financial data from QIF (Quicken Interchange Format) "
 "files written by Quicken/QuickBooks, MS Money, Moneydance, and many other "
@@ -13767,7 +14202,8 @@
 "Klicken Sie jetzt »Vor«, um mit dem Laden Ihrer QIF Daten zu beginnen. Sie "
 "können den Import jederzeit mit »Abbrechen« ohne Änderungen beenden."
 
-#: ../src/import-export/qif-import/qif.glade.h:28
+#: ../src/import-export/qif-import/qif.glade.h:22
+#, fuzzy
 msgid ""
 "GnuCash uses separate Income and Expense accounts rather than categories to "
 "classify your transactions. Each of the categories in your QIF file will be "
@@ -13775,7 +14211,8 @@
 "\n"
 "On the next page, you will have an opportunity to look at the suggested "
 "matches between QIF categories and GnuCash accounts. You may change matches "
-"that you do not like by clicking on the line containing the category name.\n"
+"that you do not like by double-clicking on the line containing the category "
+"name.\n"
 "\n"
 "If you change your mind later, you can reorganize the account structure "
 "safely within GnuCash."
@@ -13791,7 +14228,8 @@
 "\n"
 "Sie können jederzeit auch später in GnuCash Änderungen vornehmen."
 
-#: ../src/import-export/qif-import/qif.glade.h:33
+#: ../src/import-export/qif-import/qif.glade.h:27
+#, fuzzy
 msgid ""
 "If you are importing a QIF file downloaded from a bank or other financial "
 "institution, some of the information in the QIF file may duplicate "
@@ -13803,7 +14241,8 @@
 "left side of the page, and possible  matches for the selected left-hand "
 "transaction are shown  to the right.  There may be several old transactions "
 "that could match an imported transaction; you will be able to select the "
-"correct one by clicking in the \"Dup?\" column of the correct transaction.\n"
+"correct one by double-clicking in the \"Dup?\" column of the correct "
+"transaction.\n"
 "\n"
 "You can control the rules used by GnuCash to find duplicate transactions in "
 "the \"QIF Import\" section of the GnuCash Preferences dialog.\n"
@@ -13827,15 +14266,15 @@
 "\n"
 "Klicken Sie nun auf »Vor«, um doppelte Buchungen zu finden."
 
-#: ../src/import-export/qif-import/qif.glade.h:40
+#: ../src/import-export/qif-import/qif.glade.h:34
 msgid "Import QIF files"
 msgstr "QIF-Datei importieren"
 
-#: ../src/import-export/qif-import/qif.glade.h:41
+#: ../src/import-export/qif-import/qif.glade.h:35
 msgid "Imported transactions with duplicates"
 msgstr "Importierte Buchungen mit Duplikaten"
 
-#: ../src/import-export/qif-import/qif.glade.h:42
+#: ../src/import-export/qif-import/qif.glade.h:36
 msgid ""
 "In the next pages, you will be asked to provide information about stocks, "
 "mutual funds, and other tradable commodities that appear in the QIF file(s) "
@@ -13865,34 +14304,35 @@
 "exakte Tickersymbol für die Aktie, das bei der offiziellen Börsennotierung "
 "benutzt wird."
 
-#: ../src/import-export/qif-import/qif.glade.h:47
+#: ../src/import-export/qif-import/qif.glade.h:41
 msgid "Income and Expense categories"
 msgstr "Erträge und Aufwendungen"
 
-#: ../src/import-export/qif-import/qif.glade.h:49
+#: ../src/import-export/qif-import/qif.glade.h:43
 msgid "Match QIF accounts with GnuCash accounts"
 msgstr "Füge QIF-Konten in GnuCash Konten ein"
 
-#: ../src/import-export/qif-import/qif.glade.h:50
+#: ../src/import-export/qif-import/qif.glade.h:44
 msgid "Match QIF categories with GnuCash accounts"
 msgstr "Vereine QIF-Kategorien mit GnuCash Konten"
 
-#: ../src/import-export/qif-import/qif.glade.h:51
+#: ../src/import-export/qif-import/qif.glade.h:45
 msgid "Match duplicate transactions"
 msgstr "Doppelte Buchungssätze suchen"
 
-#: ../src/import-export/qif-import/qif.glade.h:52
+#: ../src/import-export/qif-import/qif.glade.h:46
 msgid "Match payees/memos to GnuCash accounts"
 msgstr "Finde passende GnuCash Konten für QIF-Zahlungsempfänger/Buchungstext"
 
-#: ../src/import-export/qif-import/qif.glade.h:54
+#: ../src/import-export/qif-import/qif.glade.h:47
+#, fuzzy
 msgid ""
 "On the next page, the accounts in your QIF files and any stocks or mutual "
 "funds you own will be matched with GnuCash accounts. If a GnuCash account "
 "already exists with the same name, or a similar name and compatible type, "
 "that account will be used as a match; otherwise, GnuCash will create a new "
 "account with the same name and type as the QIF account. If you do not like "
-"the suggested GnuCash account, click to change it.\n"
+"the suggested GnuCash account, double-click to change it.\n"
 "\n"
 "Note that GnuCash will be creating many accounts that did not exist on your "
 "other personal finance program, including a separate account for each stock "
@@ -13916,11 +14356,11 @@
 "nächsten Seite können Sie diese Konten bearbeiten. Allerdings wird "
 "empfohlen, die Auswahl zu übernehmen.\n"
 
-#: ../src/import-export/qif-import/qif.glade.h:58
+#: ../src/import-export/qif-import/qif.glade.h:51
 msgid "Payees and memos"
 msgstr "Zahlungsempfänger, Buchungstext"
 
-#: ../src/import-export/qif-import/qif.glade.h:59
+#: ../src/import-export/qif-import/qif.glade.h:52
 msgid ""
 "Please select a file to load. When you click \"Forward\", the file will be "
 "loaded and analyzed. You may need to answer some questions about the account"
@@ -13936,23 +14376,15 @@
 "Sie können soviele Dateien laden, wie Sie möchten. Es ist kein Problem, "
 "falls sich Ihre Daten in mehreren Dateien befinden.\n"
 
-#: ../src/import-export/qif-import/qif.glade.h:63
+#: ../src/import-export/qif-import/qif.glade.h:56
 msgid "Possible duplicates for selected new transaction"
 msgstr "Mögliche Duplikate für ausgewählte neue Buchungen"
 
-#: ../src/import-export/qif-import/qif.glade.h:65
+#: ../src/import-export/qif-import/qif.glade.h:58
 msgid "QIF Import"
 msgstr "QIF-Import"
 
-#: ../src/import-export/qif-import/qif.glade.h:66
-msgid "QIF account name"
-msgstr "QIF-Kontobezeichnung"
-
-#: ../src/import-export/qif-import/qif.glade.h:67
-msgid "QIF category name"
-msgstr "QIF Kategorie"
-
-#: ../src/import-export/qif-import/qif.glade.h:68
+#: ../src/import-export/qif-import/qif.glade.h:59
 msgid ""
 "QIF files downloaded from banks and other financial institutions may not "
 "have information about Accounts and Categories which would allow them to be "
@@ -13974,32 +14406,28 @@
 "zugeordnet. Wenn Sie nun die Buchungssätze einem anderen Konto zuweisen, "
 "wird diese Auswahl für zukünftige Importvorgänge gespeichert."
 
-#: ../src/import-export/qif-import/qif.glade.h:71
+#: ../src/import-export/qif-import/qif.glade.h:62
 msgid "QIF files you have loaded"
 msgstr "QIF-Datei, die geladen wurde"
 
-#: ../src/import-export/qif-import/qif.glade.h:72
-msgid "QIF payee/memo"
-msgstr "QIF Empfänger/Text"
-
-#: ../src/import-export/qif-import/qif.glade.h:74
+#: ../src/import-export/qif-import/qif.glade.h:64
 msgid "Select a QIF file to load"
 msgstr "Zu ladende QIF-Datei auswählen"
 
-#: ../src/import-export/qif-import/qif.glade.h:76
+#: ../src/import-export/qif-import/qif.glade.h:66
 msgid "Select possible duplicates"
 msgstr "Mögliche Duplikate auswählen"
 
-#: ../src/import-export/qif-import/qif.glade.h:79
+#: ../src/import-export/qif-import/qif.glade.h:69
 msgid "Set the default QIF account name"
 msgstr "Den Namen des Standard QIF Konto setzen"
 
-#: ../src/import-export/qif-import/qif.glade.h:80
+#: ../src/import-export/qif-import/qif.glade.h:70
 msgid "Show some documentation-only pages in QIF Import druid."
 msgstr ""
 "Seiten im QIF-Import anzeigen, die ausschließlich Dokumentation enthalten."
 
-#: ../src/import-export/qif-import/qif.glade.h:85
+#: ../src/import-export/qif-import/qif.glade.h:75
 msgid ""
 "The QIF file that you just loaded appears to contain transactions for just "
 "one account, but the file does not specify a name for that account.  \n"
@@ -14015,7 +14443,7 @@
 "anderen Finanzprogramm exportiert wurde, sollten Sie den gleichen Kontonamen "
 "wie dort verwenden.\n"
 
-#: ../src/import-export/qif-import/qif.glade.h:89
+#: ../src/import-export/qif-import/qif.glade.h:79
 msgid ""
 "The QIF importer cannot currently handle multi-currency QIF files. All the "
 "accounts in the QIF file(s) you are importing must be denominated in the "
@@ -14031,64 +14459,75 @@
 "Bitte wählen Sie die Währung für die Buchungssätze aus der Datei/den "
 "Dateien: \n"
 
-#: ../src/import-export/qif-import/qif.glade.h:93
+#: ../src/import-export/qif-import/qif.glade.h:83
 msgid "Tradable commodities"
 msgstr "Handelbare Währungen/Aktien"
 
-#: ../src/import-export/qif-import/qif.glade.h:95
+#: ../src/import-export/qif-import/qif.glade.h:85
 msgid "Update your GnuCash accounts"
 msgstr "Aktualisieren Ihrer GnuCash Konten"
 
-#: ../src/import-export/qif-import/qif.glade.h:96
+#: ../src/import-export/qif-import/qif.glade.h:86
 msgid "_Show documentation"
 msgstr "_Erklärungsseiten anzeigen"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
-#: ../src/import-export/qif/qif-defaults.c:66 ../intl-scm/guile-strings.c:3088
-#: ../intl-scm/guile-strings.c:3110
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
+#: ../src/import-export/qif/qif-defaults.c:66 ../intl-scm/guile-strings.c:5756
+#: ../intl-scm/guile-strings.c:5778 ../intl-scm/guile-strings.c:5800
 msgid "Margin Interest"
 msgstr "Zinsmarge"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
-#: ../src/import-export/qif/qif-defaults.c:74 ../intl-scm/guile-strings.c:3086
-#: ../intl-scm/guile-strings.c:3108
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
+#: ../src/import-export/qif/qif-defaults.c:74 ../intl-scm/guile-strings.c:5754
+#: ../intl-scm/guile-strings.c:5776 ../intl-scm/guile-strings.c:5798
 msgid "Commissions"
 msgstr "Kommissionen"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
-#: ../src/import-export/qif/qif-defaults.c:90 ../intl-scm/guile-strings.c:3076
-#: ../intl-scm/guile-strings.c:3098
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
+#: ../src/import-export/qif/qif-defaults.c:90 ../intl-scm/guile-strings.c:5744
+#: ../intl-scm/guile-strings.c:5766 ../intl-scm/guile-strings.c:5788
 msgid "Cap. gain (long)"
 msgstr "Kapitalertrag (langfristig)"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
 #: ../src/import-export/qif/qif-defaults.c:100
-#: ../intl-scm/guile-strings.c:3078 ../intl-scm/guile-strings.c:3100
+#: ../intl-scm/guile-strings.c:5746 ../intl-scm/guile-strings.c:5768
+#: ../intl-scm/guile-strings.c:5790
 msgid "Cap. gain (mid)"
 msgstr "Kapitalertrag (mittelfristig)"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
 #: ../src/import-export/qif/qif-defaults.c:110
-#: ../intl-scm/guile-strings.c:3080 ../intl-scm/guile-strings.c:3102
+#: ../intl-scm/guile-strings.c:5748 ../intl-scm/guile-strings.c:5770
+#: ../intl-scm/guile-strings.c:5792
 msgid "Cap. gain (short)"
 msgstr "Kapitalertrag (kurzfristig)"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
 #: ../src/import-export/qif/qif-defaults.c:120
-#: ../intl-scm/guile-strings.c:3070 ../intl-scm/guile-strings.c:3092
+#: ../intl-scm/guile-strings.c:5738 ../intl-scm/guile-strings.c:5760
+#: ../intl-scm/guile-strings.c:5782
 msgid "Dividends"
 msgstr "Dividenden"
 
 #. src/import-export/qif-io-core/qif-invst-xtn-import.scm
 #. src/import-export/qif-import/qif-dialog-utils.scm
+#. src/import-export/qif-import/qif-import/qif-dialog-utils.scm
 #: ../src/import-export/qif/qif-defaults.c:140
-#: ../intl-scm/guile-strings.c:3074 ../intl-scm/guile-strings.c:3096
+#: ../intl-scm/guile-strings.c:5742 ../intl-scm/guile-strings.c:5764
+#: ../intl-scm/guile-strings.c:5786
 msgid "Cap Return"
 msgstr "Kapitalverzinsung"
 
@@ -14146,7 +14585,7 @@
 msgid "clear:autoswitch"
 msgstr "clear:autoswitch"
 
-#: ../src/import-export/qif/qif-parse.c:660
+#: ../src/import-export/qif/qif-parse.c:666
 msgid "The Date format is ambiguous.  Please choose the correct format."
 msgstr "Das Datumsformat ist mehrdeutig. Bitte wählen Sie das richtige Format."
 
@@ -14254,11 +14693,20 @@
 msgid "Use bayesian matching"
 msgstr "Bayes-Algorithmus verwenden"
 
-#: ../src/register/ledger-core/split-register.c:390
+#: ../src/register/ledger-core/split-register.c:159
+msgid ""
+"This transaction is already being edited in another register. Please finish "
+"editing it there first."
+msgstr ""
+"Diese Buchung wird bereits von einem anderen Kontofenster aus bearbeitet. "
+"Bitte beenden Sie zuerst diese Bearbeitung, indem Sie in dem anderen "
+"Kontofenster »Eingabe« oder »Abbrechen« wählen. "
+
+#: ../src/register/ledger-core/split-register.c:408
 msgid "Save transaction before duplicating?"
 msgstr "Buchungsänderungen vor Kopieren speichern?"
 
-#: ../src/register/ledger-core/split-register.c:392
+#: ../src/register/ledger-core/split-register.c:410
 msgid ""
 "The current transaction has been changed. Would you like to record the "
 "changes before duplicating the transaction, or cancel the duplication?"
@@ -14266,7 +14714,7 @@
 "Die aktuelle Buchung wurde geändert. Möchten Sie vor dem Kopieren die "
 "Änderungen in der Buchung speichern, oder möchten Sie abbrechen?"
 
-#: ../src/register/ledger-core/split-register.c:699
+#: ../src/register/ledger-core/split-register.c:717
 msgid ""
 "You are about to overwrite an existing split. Are you sure you want to do "
 "that?"
@@ -14274,7 +14722,7 @@
 "Sie sind dabei, einen bestehenden Buchungsteil zu überschreiben. Möchten Sie "
 "das wirklich?"
 
-#: ../src/register/ledger-core/split-register.c:728
+#: ../src/register/ledger-core/split-register.c:746
 msgid ""
 "You are about to overwrite an existing transaction. Are you sure you want to "
 "do that?"
@@ -14282,11 +14730,11 @@
 "Sie sind dabei, einen bestehenden Buchungssatz zu überschreiben. Möchten Sie "
 "das wirklich?"
 
-#: ../src/register/ledger-core/split-register.c:1678
+#: ../src/register/ledger-core/split-register.c:1700
 msgid "Recalculate Transaction"
 msgstr "Buchung neu berechnen"
 
-#: ../src/register/ledger-core/split-register.c:1679
+#: ../src/register/ledger-core/split-register.c:1701
 msgid ""
 "The values entered for this transaction are inconsistent. Which value would "
 "you like to have recalculated?"
@@ -14294,141 +14742,141 @@
 "Die eingegebenen Werte für diese Buchung passen nicht zueinander. Welcher "
 "Wert soll neu berechnet werden?"
 
-#: ../src/register/ledger-core/split-register.c:1686
-#: ../src/register/ledger-core/split-register.c:1688
+#: ../src/register/ledger-core/split-register.c:1708
+#: ../src/register/ledger-core/split-register.c:1710
 msgid "_Shares"
 msgstr "_Anteile"
 
-#: ../src/register/ledger-core/split-register.c:1686
-#: ../src/register/ledger-core/split-register.c:1693
-#: ../src/register/ledger-core/split-register.c:1700
+#: ../src/register/ledger-core/split-register.c:1708
+#: ../src/register/ledger-core/split-register.c:1715
+#: ../src/register/ledger-core/split-register.c:1722
 msgid "Changed"
 msgstr "Geändert"
 
-#: ../src/register/ledger-core/split-register.c:1700
-#: ../src/register/ledger-core/split-register.c:1702
+#: ../src/register/ledger-core/split-register.c:1722
+#: ../src/register/ledger-core/split-register.c:1724
 msgid "_Value"
 msgstr "_Wert"
 
-#: ../src/register/ledger-core/split-register.c:1711
+#: ../src/register/ledger-core/split-register.c:1733
 msgid "_Recalculate"
 msgstr "_Berechnen"
 
 #. src/app-utils/prefs.scm
-#: ../src/register/ledger-core/split-register.c:1964
-#: ../intl-scm/guile-strings.c:60
+#: ../src/register/ledger-core/split-register.c:1986
+#: ../intl-scm/guile-strings.c:108
 msgid "Deposit"
 msgstr "Einzahlung"
 
-#: ../src/register/ledger-core/split-register.c:1965
+#: ../src/register/ledger-core/split-register.c:1987
 msgid "Withdraw"
 msgstr "Belastung"
 
-#: ../src/register/ledger-core/split-register.c:1966
+#: ../src/register/ledger-core/split-register.c:1988
 msgid "Check"
 msgstr "Scheck"
 
-#: ../src/register/ledger-core/split-register.c:1967
-#: ../src/register/ledger-core/split-register.c:1995
-#: ../src/register/ledger-core/split-register.c:2003
+#: ../src/register/ledger-core/split-register.c:1989
 #: ../src/register/ledger-core/split-register.c:2017
-#: ../src/register/ledger-core/split-register.c:2040
+#: ../src/register/ledger-core/split-register.c:2025
+#: ../src/register/ledger-core/split-register.c:2039
+#: ../src/register/ledger-core/split-register.c:2062
 msgid "Int"
 msgstr "Zins"
 
-#: ../src/register/ledger-core/split-register.c:1968
-#: ../src/register/ledger-core/split-register.c:1991
+#: ../src/register/ledger-core/split-register.c:1990
+#: ../src/register/ledger-core/split-register.c:2013
 msgid "ATM"
 msgstr "Geldautomat"
 
-#: ../src/register/ledger-core/split-register.c:1969
+#: ../src/register/ledger-core/split-register.c:1991
 msgid "Teller"
 msgstr "Bankschalter"
 
 #. Action: Point Of Sale
-#: ../src/register/ledger-core/split-register.c:1971
+#: ../src/register/ledger-core/split-register.c:1993
 msgid "POS"
 msgstr "Karten-Terminal"
 
-#: ../src/register/ledger-core/split-register.c:1972
+#: ../src/register/ledger-core/split-register.c:1994
 msgid "Phone"
 msgstr "Telefon"
 
-#: ../src/register/ledger-core/split-register.c:1973
-#: ../src/register/ledger-core/split-register.c:1996
+#: ../src/register/ledger-core/split-register.c:1995
+#: ../src/register/ledger-core/split-register.c:2018
 msgid "Online"
 msgstr "Online"
 
 #. Action: Automatic Deposit ?!?
-#: ../src/register/ledger-core/split-register.c:1975
+#: ../src/register/ledger-core/split-register.c:1997
 msgid "AutoDep"
 msgstr "Gutschrift"
 
-#: ../src/register/ledger-core/split-register.c:1976
+#: ../src/register/ledger-core/split-register.c:1998
 msgid "Wire"
 msgstr "Ãœberweisung"
 
-#: ../src/register/ledger-core/split-register.c:1978
+#: ../src/register/ledger-core/split-register.c:2000
 msgid "Direct Debit"
 msgstr "Lastschrift"
 
 #. src/app-utils/prefs.scm
-#: ../src/register/ledger-core/split-register.c:1982
-#: ../src/register/ledger-core/split-register.c:1986
-#: ../src/register/ledger-core/split-register.c:1992
-#: ../src/register/ledger-core/split-register.c:2000
-#: ../src/register/ledger-core/split-register.c:2015
+#: ../src/register/ledger-core/split-register.c:2004
+#: ../src/register/ledger-core/split-register.c:2008
+#: ../src/register/ledger-core/split-register.c:2014
 #: ../src/register/ledger-core/split-register.c:2022
-#: ../src/register/ledger-core/split-register.c:2027
-#: ../src/register/ledger-core/split-register.c:2052
-#: ../intl-scm/guile-strings.c:70 ../intl-scm/guile-strings.c:72
-#: ../intl-scm/guile-strings.c:74
+#: ../src/register/ledger-core/split-register.c:2037
+#: ../src/register/ledger-core/split-register.c:2044
+#: ../src/register/ledger-core/split-register.c:2049
+#: ../src/register/ledger-core/split-register.c:2074
+#: ../intl-scm/guile-strings.c:118 ../intl-scm/guile-strings.c:120
+#: ../intl-scm/guile-strings.c:122
 msgid "Buy"
 msgstr "Kauf"
 
 #. src/app-utils/prefs.scm
-#: ../src/register/ledger-core/split-register.c:1983
-#: ../src/register/ledger-core/split-register.c:1987
-#: ../src/register/ledger-core/split-register.c:1997
-#: ../src/register/ledger-core/split-register.c:2001
-#: ../src/register/ledger-core/split-register.c:2016
+#: ../src/register/ledger-core/split-register.c:2005
+#: ../src/register/ledger-core/split-register.c:2009
+#: ../src/register/ledger-core/split-register.c:2019
 #: ../src/register/ledger-core/split-register.c:2023
-#: ../src/register/ledger-core/split-register.c:2028
-#: ../src/register/ledger-core/split-register.c:2053
-#: ../intl-scm/guile-strings.c:98 ../intl-scm/guile-strings.c:100
-#: ../intl-scm/guile-strings.c:102
+#: ../src/register/ledger-core/split-register.c:2038
+#: ../src/register/ledger-core/split-register.c:2045
+#: ../src/register/ledger-core/split-register.c:2050
+#: ../src/register/ledger-core/split-register.c:2075
+#: ../intl-scm/guile-strings.c:146 ../intl-scm/guile-strings.c:148
+#: ../intl-scm/guile-strings.c:150
 msgid "Sell"
 msgstr "Verkauf"
 
-#: ../src/register/ledger-core/split-register.c:1988
-#: ../src/register/ledger-core/split-register.c:1994
-#: ../src/register/ledger-core/split-register.c:2037
+#: ../src/register/ledger-core/split-register.c:2010
+#: ../src/register/ledger-core/split-register.c:2016
+#: ../src/register/ledger-core/split-register.c:2059
 msgid "Fee"
 msgstr "Gebühr"
 
 #. src/app-utils/prefs.scm
-#: ../src/register/ledger-core/split-register.c:2019
-#: ../intl-scm/guile-strings.c:106
+#: ../src/register/ledger-core/split-register.c:2041
+#: ../intl-scm/guile-strings.c:154
 msgid "Rebate"
 msgstr "Rabatt"
 
 #. Action: Dividend
-#: ../src/register/ledger-core/split-register.c:2039
+#: ../src/register/ledger-core/split-register.c:2061
 msgid "Div"
 msgstr "Dividende"
 
 #. Action: Long Term Capital Gains
-#: ../src/register/ledger-core/split-register.c:2042
+#: ../src/register/ledger-core/split-register.c:2064
 msgid "LTCG"
 msgstr "Zinsen aus langfristigen Kapitalanlagen"
 
 #. Action: Short Term Capital Gains
-#: ../src/register/ledger-core/split-register.c:2044
+#: ../src/register/ledger-core/split-register.c:2066
 msgid "STCG"
 msgstr "Zinsen aus kurzfristigen Anlagen"
 
 #. Action: Distribution
-#: ../src/register/ledger-core/split-register.c:2047
+#: ../src/register/ledger-core/split-register.c:2069
 msgid "Dist"
 msgstr "Ausschüttung"
 
@@ -14460,18 +14908,18 @@
 msgid "_Rebalance"
 msgstr "_Anpassen"
 
-#: ../src/register/ledger-core/split-register-control.c:1036
+#: ../src/register/ledger-core/split-register-control.c:1043
 msgid ""
 "You need to expand the transaction in order to modify its exchange rates."
 msgstr ""
 "Sie müssen den Buchungssatz in die »Vollständig«-Ansicht aufklappen, um die "
 "Wechselkurse zu bearbeiten."
 
-#: ../src/register/ledger-core/split-register-control.c:1159
+#: ../src/register/ledger-core/split-register-control.c:1166
 msgid "Save the changed transaction?"
 msgstr "Geänderte Buchung speichern?"
 
-#: ../src/register/ledger-core/split-register-control.c:1161
+#: ../src/register/ledger-core/split-register-control.c:1168
 msgid ""
 "The current transaction has been changed.  Would you like to record the "
 "changes before moving to a new transaction, discard the changes, or return "
@@ -14481,19 +14929,19 @@
 "abbrechen und zu der aktuellen Buchung zurückkehren, oder die Änderungen in "
 "dieser Buchung speichern?"
 
-#: ../src/register/ledger-core/split-register-control.c:1174
+#: ../src/register/ledger-core/split-register-control.c:1181
 msgid "_Discard Changes"
 msgstr "Änderungen ver_werfen"
 
-#: ../src/register/ledger-core/split-register-control.c:1176
+#: ../src/register/ledger-core/split-register-control.c:1183
 msgid "_Record Changes"
 msgstr "Änderungen _speichern"
 
-#: ../src/register/ledger-core/split-register-control.c:1457
+#: ../src/register/ledger-core/split-register-control.c:1464
 msgid "Mark split as unreconciled?"
 msgstr "Buchungsteil als nicht abgeglichen markieren?"
 
-#: ../src/register/ledger-core/split-register-control.c:1459
+#: ../src/register/ledger-core/split-register-control.c:1466
 msgid ""
 "You are about to mark a reconciled split as unreconciled.  Doing so might "
 "make future reconciliation difficult!  Continue with this change?"
@@ -14501,7 +14949,7 @@
 "Wollen Sie diesen Buchungssatz wirklich als nicht abgeglichen markieren?  "
 "Dies kann das nächste Abgleichen erschweren.  Trotzdem fortsetzen?"
 
-#: ../src/register/ledger-core/split-register-control.c:1476
+#: ../src/register/ledger-core/split-register-control.c:1483
 msgid "_Unreconcile"
 msgstr "_Nicht abgeglichen"
 
@@ -14581,12 +15029,6 @@
 msgid "Credit Formula"
 msgstr "Soll-Formel"
 
-#. This seems to be the one that initially gets used, the InactiveDateCell
-#. is set to, and subsequently displayed.
-#: ../src/register/ledger-core/split-register-model.c:806
-msgid "Scheduled"
-msgstr "Terminiert"
-
 #: ../src/register/ledger-core/split-register-model.c:837
 msgid "Enter the transaction reference, such as the invoice or check number"
 msgstr ""
@@ -14681,50 +15123,68 @@
 msgid "Chan_ge Split"
 msgstr "Buchungs_teil ändern"
 
-#: ../src/register/ledger-core/split-register-model.c:1773
+#: ../src/register/ledger-core/split-register-model.c:1772
 msgid "Enter debit formula for real transaction"
 msgstr ""
 "Geben Sie die Formel zur Haben-Berechnung der tatsächlichen Buchung ein"
 
-#: ../src/register/ledger-core/split-register-model.c:1803
+#: ../src/register/ledger-core/split-register-model.c:1802
 msgid "Enter credit formula for real transaction"
 msgstr "Geben Sie die Formel zur Soll-Berechnung der tatsächlichen Buchung ein"
 
-#: ../src/register/register-gnome/gnucash-item-list.c:474
+#: ../src/register/register-gnome/gnucash-item-list.c:476
 msgid "List"
 msgstr "Liste"
 
-#: ../src/report/report-gnome/dialog-column-view.c:291
+#: ../src/report/report-gnome/dialog-column-view.c:332
 msgid "Contents"
 msgstr "Inhalt"
 
-#: ../src/report/report-gnome/dialog-style-sheet.c:138
+#. src/report/report-gnome/report-gnome.scm
+#. src/report/report-gnome/gnucash/report/report-gnome.scm
+#. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../src/report/report-gnome/dialog-column-view.c:361
+#: ../intl-scm/guile-strings.c:1432 ../intl-scm/guile-strings.c:1442
+#: ../intl-scm/guile-strings.c:6204 ../intl-scm/guile-strings.c:6728
+msgid "Report"
+msgstr "Bericht"
+
+#: ../src/report/report-gnome/dialog-column-view.c:367
+msgid "Cols"
+msgstr "Spalten"
+
+#: ../src/report/report-gnome/dialog-column-view.c:373
+msgid "Rows"
+msgstr "Zeilen"
+
+#: ../src/report/report-gnome/dialog-style-sheet.c:140
 #, c-format
 msgid "HTML Style Sheet Properties: %s"
 msgstr "Eigenschaften HTML-Stilvorlage %s"
 
-#: ../src/report/report-gnome/dialog-style-sheet.c:369
+#: ../src/report/report-gnome/dialog-style-sheet.c:372
 msgid "Style Sheet Name"
 msgstr "Name der Stilvorlage"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:276
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:277
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:273
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:274
 msgid "The numeric ID of the report."
 msgstr "Die Nummer des Berichts."
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:932
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:942
 msgid "_Print Report..."
 msgstr "Bericht _drucken..."
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:933
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:943
 msgid "Print the current report"
 msgstr "Aktuellen Bericht drucken"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:944
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:954
 msgid "Add _Report"
 msgstr "_Bericht hinzufügen..."
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:945
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:955
 msgid ""
 "Add the current report to the `Custom' menu for later use. The report will "
 "be saved in the file ~/.gnucash/saved-reports-2.0. It will be accessible as "
@@ -14734,82 +15194,82 @@
 "Datei ~/.gnucash/saved-reports-2.0 gespeichert. Der Bericht wird beim "
 "nächsten Programmstart von GnuCash im Menü verfügbar sein."
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:950
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:960
 msgid "Export _Report"
 msgstr "_Bericht exportieren"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:951
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:961
 msgid "Export HTML-formatted report to file"
 msgstr "HTML-formatierten Bericht in Datei exportieren"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:953
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:963
 msgid "_Report Options"
 msgstr "Berichts_optionen"
 
 #. src/report/report-system/html-utilities.scm
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:954
-#: ../intl-scm/guile-strings.c:900 ../intl-scm/guile-strings.c:906
-#: ../intl-scm/guile-strings.c:912
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:964
+#: ../intl-scm/guile-strings.c:1412 ../intl-scm/guile-strings.c:1418
+#: ../intl-scm/guile-strings.c:1424
 msgid "Edit report options"
 msgstr "Berichtsoptionen ändern"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:957
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:967
 msgid "Back"
 msgstr "Zurück"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:958
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:968
 msgid "Move back one step in the history"
 msgstr "Einen Schritt zurück"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:960
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:970
 msgid "Forward"
 msgstr "Vorwärts"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:961
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:971
 msgid "Move forward one step in the history"
 msgstr "Einen Schritt vorwärts"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:963
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:973
 msgid "Reload"
 msgstr "Erneut laden"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:964
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:974
 msgid "Reload the current page"
 msgstr "Aktuelle Seite neu laden"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:966
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:976
 msgid "Stop"
 msgstr "Abbrechen"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:967
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:977
 msgid "Cancel outstanding HTML requests"
 msgstr "Unbeantwortete HTML-Anfragen abbrechen "
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:974
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:984
 msgid "Print"
 msgstr "Drucken"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1249
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1286
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1263
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1300
 msgid "HTML"
 msgstr "HTML"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1252
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1266
 msgid "Choose export format"
 msgstr "Wählen Sie das Export-Format"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1253
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1267
 msgid "Choose the export format for this report:"
 msgstr "Wählen Sie das Export-Format für diesen Bericht:"
 
 #. %s is the type of what is about to be saved, e.g. "HTML".
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1293
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1307
 #, c-format
 msgid "Save %s To File"
 msgstr "%s in Datei speichern"
 
 #. %s is the strerror(3) string of the error that occurred.
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1308
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1322
 #, c-format
 msgid ""
 "You cannot save to that filename.\n"
@@ -14820,16 +15280,16 @@
 "\n"
 "%s"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1318
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1332
 msgid "You cannot save to that file."
 msgstr "Sie können nicht in diese Datei speichern."
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1399
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1413
 #, c-format
 msgid "Could not open the file %s. The error is: %s"
 msgstr "Kann Datei %s nicht öffnen. Fehlermeldung: %s"
 
-#: ../src/report/report-gnome/gnc-plugin-page-report.c:1430
+#: ../src/report/report-gnome/gnc-plugin-page-report.c:1444
 msgid "There are no options for this report."
 msgstr "Es gibt für diesen Bericht keine Optionen."
 
@@ -14864,87 +15324,74 @@
 msgstr "Hinzufügen >>"
 
 #: ../src/report/report-gnome/report.glade.h:8
-msgid "Cols"
-msgstr "Spalten"
-
-#: ../src/report/report-gnome/report.glade.h:9
 msgid "Enter report row/column span"
 msgstr "Ausdehnung des Bericht in Tabellen-Spalten oder -Zeilen"
 
-#: ../src/report/report-gnome/report.glade.h:10
+#: ../src/report/report-gnome/report.glade.h:9
 msgid "HTML Style Sheets"
 msgstr "HTML-Stilvorlage"
 
-#: ../src/report/report-gnome/report.glade.h:11
+#: ../src/report/report-gnome/report.glade.h:10
 msgid "Move _up"
 msgstr "Nach _oben"
 
-#: ../src/report/report-gnome/report.glade.h:12
+#: ../src/report/report-gnome/report.glade.h:11
 msgid "Move dow_n"
 msgstr "Nach _unten"
 
-#: ../src/report/report-gnome/report.glade.h:13
+#: ../src/report/report-gnome/report.glade.h:12
 msgid "New Style Sheet"
 msgstr "Neue Stilvorlage"
 
-#. src/report/report-gnome/report-gnome.scm
-#. src/business/business-reports/owner-report.scm
-#: ../src/report/report-gnome/report.glade.h:14
-#: ../intl-scm/guile-strings.c:920 ../intl-scm/guile-strings.c:3478
-msgid "Report"
-msgstr "Bericht"
-
-#: ../src/report/report-gnome/report.glade.h:15
+#: ../src/report/report-gnome/report.glade.h:13
 msgid "Report Size"
 msgstr "Berichtsgröße"
 
-#: ../src/report/report-gnome/report.glade.h:16
-msgid "Rows"
-msgstr "Zeilen"
-
-#: ../src/report/report-gnome/report.glade.h:17
+#: ../src/report/report-gnome/report.glade.h:14
 msgid "Select HTML Style Sheet"
 msgstr "HTML-Stilvorlage auswählen"
 
-#: ../src/report/report-gnome/report.glade.h:18
+#: ../src/report/report-gnome/report.glade.h:15
 msgid "Si_ze..."
 msgstr "G_röße..."
 
-#: ../src/report/report-gnome/report.glade.h:19
+#: ../src/report/report-gnome/report.glade.h:16
 msgid "_Column span:"
 msgstr "_Spaltenausdehnung:"
 
-#: ../src/report/report-gnome/report.glade.h:22
+#: ../src/report/report-gnome/report.glade.h:19
 msgid "_Row span:"
 msgstr "_Zeilenausdehnung:"
 
-#: ../src/report/report-gnome/report.glade.h:23
+#: ../src/report/report-gnome/report.glade.h:20
 msgid "_Template:"
 msgstr "_Vorlage:"
 
-#: ../src/report/report-gnome/window-report.c:122
+#: ../src/report/report-gnome/window-report.c:101
 msgid "Set the report options you want using this dialog."
 msgstr "Mit diesem Dialog können Sie die Berichtsoptionen bearbeiten."
 
 #. src/report/utility-reports/view-column.scm
-#: ../src/report/report-gnome/window-report.c:217
-#: ../intl-scm/guile-strings.c:938
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../src/report/report-gnome/window-report.c:202
+#: ../intl-scm/guile-strings.c:1460 ../intl-scm/guile-strings.c:1482
 msgid "Report error"
 msgstr "Fehler im Bericht"
 
 #. src/report/utility-reports/view-column.scm
-#: ../src/report/report-gnome/window-report.c:218
-#: ../intl-scm/guile-strings.c:940
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../src/report/report-gnome/window-report.c:203
+#: ../intl-scm/guile-strings.c:1462 ../intl-scm/guile-strings.c:1484
 msgid "An error occurred while running the report."
 msgstr "Beim Erstellen des Berichts ist ein Fehler aufgetreten."
 
-#: ../src/report/report-gnome/window-report.c:250
-#: ../src/report/report-gnome/window-report.c:272
+#: ../src/report/report-gnome/window-report.c:236
+#: ../src/report/report-gnome/window-report.c:258
 #, c-format
 msgid "Badly formed options URL: %s"
 msgstr "Fehlerhafte Optionen-URL: %s"
 
-#: ../src/report/report-gnome/window-report.c:260
+#: ../src/report/report-gnome/window-report.c:246
 #, c-format
 msgid "Badly report id: %s"
 msgstr "Fehlerhafte Berichts ID: %s"
@@ -14952,17 +15399,17 @@
 #. Menu Items
 #: ../src/report/stylesheets/gnc-plugin-stylesheets.c:49
 msgid "St_yle Sheets"
-msgstr "_Stilvorlagen"
+msgstr "Stil_vorlagen"
 
 #: ../src/report/stylesheets/gnc-plugin-stylesheets.c:50
 msgid "Edit report style sheets."
 msgstr "Stilvorlagen für Berichte bearbeiten."
 
-#: ../lib/libqof/backend/file/qsf-backend.c:102
+#: ../lib/libqof/backend/file/qsf-backend.c:107
 msgid "Level of compression to use: 0 for none, 9 for highest."
 msgstr "Kompressionsaufwand: 0 für gar keinen, 9 für höchsten."
 
-#: ../lib/libqof/backend/file/qsf-backend.c:103
+#: ../lib/libqof/backend/file/qsf-backend.c:108
 msgid ""
 "QOF can compress QSF XML files using gzip. Note that compression is not used "
 "when outputting to STDOUT."
@@ -14970,13 +15417,13 @@
 "QOF kann die QSF XML-Dateien mit gzip komprimieren. Dies wird aber nicht "
 "gemacht, wenn die Ausgabe nach STDOUT geleitet ist."
 
-#: ../lib/libqof/backend/file/qsf-backend.c:111
+#: ../lib/libqof/backend/file/qsf-backend.c:116
 msgid "List of QSF map files to use for this session."
 msgstr ""
 "Liste der QSF-Zuordnungs-Dateien (Map), die in dieser Sietzung verwendet "
 "werden."
 
-#: ../lib/libqof/backend/file/qsf-backend.c:112
+#: ../lib/libqof/backend/file/qsf-backend.c:117
 msgid ""
 "QOF can convert objects within QSF XML files using a map of the changes "
 "required."
@@ -14984,16 +15431,16 @@
 "QOF kann Objekte aus QSF XML-Dateien konvertieren, wenn eine Liste von "
 "Zuordnungen (Maps) für die notwendigen Änderungen existieren."
 
-#: ../lib/libqof/backend/file/qsf-backend.c:120
-msgid "Encoding string to use when writing the XML file."
+#: ../lib/libqof/backend/file/qsf-backend.c:125
+msgid "String encoding to use when writing the XML file."
 msgstr ""
 "Wählen Sie die Zeichencodierung (Encoding), die in die XML-Datei geschrieben "
 "werden soll."
 
-#: ../lib/libqof/backend/file/qsf-backend.c:121
+#: ../lib/libqof/backend/file/qsf-backend.c:126
 msgid ""
-"QSF defaults to UTF-8. Other encodings are supported by passing the encoding "
-"string in this option."
+"QSF defaults to UTF-8. Other encodings are supported by passing the string "
+"encoding in this option."
 msgstr ""
 "Die voreingestellte Zeichenkodierung in QSF ist UTF-8. Andere Kodierungen "
 "können verwendet werden, indem Sie den Namen der Zeichencodierung in dieser "
@@ -15020,20 +15467,27 @@
 "sind."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:8 ../intl-scm/guile-strings.c:10
+#: ../intl-scm/guile-strings.c:52 ../intl-scm/guile-strings.c:54
 msgid "No commodities marked for quote retrieval."
 msgstr "Keine Aktien zum Börsenkurs-Abruf markiert."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:12 ../intl-scm/guile-strings.c:14
 #: ../intl-scm/guile-strings.c:30 ../intl-scm/guile-strings.c:32
+#: ../intl-scm/guile-strings.c:56 ../intl-scm/guile-strings.c:58
+#: ../intl-scm/guile-strings.c:74 ../intl-scm/guile-strings.c:76
 msgid "Unable to get quotes or diagnose the problem."
 msgstr ""
 "Abrufen der Börsenkurse fehlgeschlagen. Genauere Diagnose ebenfalls "
 "fehlgeschlagen."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:16 ../intl-scm/guile-strings.c:19
+#: ../intl-scm/guile-strings.c:60 ../intl-scm/guile-strings.c:63
 msgid ""
 "You are missing some needed Perl libraries.\n"
 "Run 'gnc-fq-update' as root to install them."
@@ -15042,731 +15496,959 @@
 "Führen Sie 'gnc-fq-update' als root aus, um diese zu installieren."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:22 ../intl-scm/guile-strings.c:24
+#: ../intl-scm/guile-strings.c:66 ../intl-scm/guile-strings.c:68
 msgid "There was a system error while retrieving the price quotes."
 msgstr "Beim Herunterladen der Börsenkurse ist ein Systemfehler aufgetreten."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:26 ../intl-scm/guile-strings.c:28
+#: ../intl-scm/guile-strings.c:70 ../intl-scm/guile-strings.c:72
 msgid "There was an unknown error while retrieving the price quotes."
 msgstr ""
 "Beim Herunterladen der Börsenkurse ist ein unbekannter Fehler aufgetreten."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:34 ../intl-scm/guile-strings.c:38
-#: ../intl-scm/guile-strings.c:40
+#: ../intl-scm/guile-strings.c:40 ../intl-scm/guile-strings.c:78
+#: ../intl-scm/guile-strings.c:82 ../intl-scm/guile-strings.c:84
 msgid "Unable to retrieve quotes for these items:"
 msgstr "Abrufen von Börsenkursen für diese Werte fehlgeschlagen:"
 
 #. src/scm/price-quotes.scm
-#: ../intl-scm/guile-strings.c:36
+#. src/scm/gnucash/price-quotes.scm
+#: ../intl-scm/guile-strings.c:36 ../intl-scm/guile-strings.c:80
 msgid "Continue using only the good quotes?"
 msgstr "Mit den benutzbaren Kursen fortsetzen?"
 
 #. src/scm/price-quotes.scm
-#: ../intl-scm/guile-strings.c:42
+#. src/scm/gnucash/price-quotes.scm
+#: ../intl-scm/guile-strings.c:42 ../intl-scm/guile-strings.c:86
 msgid "Continuing with good quotes."
 msgstr "Es wird mit den benutzbaren Kursen fortgesetzt."
 
 #. src/scm/price-quotes.scm
+#. src/scm/gnucash/price-quotes.scm
 #: ../intl-scm/guile-strings.c:44 ../intl-scm/guile-strings.c:48
+#: ../intl-scm/guile-strings.c:88 ../intl-scm/guile-strings.c:92
 msgid "Unable to create prices for these items:"
 msgstr "Preis-Eintrag für folgende Werte fehlgeschlagen:"
 
 #. src/scm/price-quotes.scm
-#: ../intl-scm/guile-strings.c:46
+#. src/scm/gnucash/price-quotes.scm
+#: ../intl-scm/guile-strings.c:46 ../intl-scm/guile-strings.c:90
 msgid "Add remaining good quotes?"
 msgstr "Ãœbrige benutzbare Kurse eintragen?"
 
 #. src/scm/price-quotes.scm
-#: ../intl-scm/guile-strings.c:50
+#. src/scm/gnucash/price-quotes.scm
+#: ../intl-scm/guile-strings.c:50 ../intl-scm/guile-strings.c:94
 msgid "Adding remaining good quotes."
 msgstr "Benutzbare Kurse werden eingetragen."
 
 #. src/tax/us/de_DE.scm
-#: ../intl-scm/guile-strings.c:54
+#. src/tax/us/gnucash/tax/de_DE.scm
+#: ../intl-scm/guile-strings.c:98 ../intl-scm/guile-strings.c:102
 msgid "Tax Number"
 msgstr "Steuernummer"
 
 #. src/tax/us/txf-de_DE.scm
-#: ../intl-scm/guile-strings.c:56
+#: ../intl-scm/guile-strings.c:104
 msgid "The electronic tax number of your business"
 msgstr "Die Elster-Steuernummer Ihrer Unternehmung"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:58
+#: ../intl-scm/guile-strings.c:106
 msgid "Funds In"
 msgstr "Gutschrift"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:62
+#: ../intl-scm/guile-strings.c:110
 msgid "Receive"
 msgstr "Empfangen"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:66 ../intl-scm/guile-strings.c:96
-#: ../intl-scm/guile-strings.c:112
+#: ../intl-scm/guile-strings.c:114 ../intl-scm/guile-strings.c:144
+#: ../intl-scm/guile-strings.c:160
 msgid "Increase"
 msgstr "Zunahme"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:68 ../intl-scm/guile-strings.c:84
-#: ../intl-scm/guile-strings.c:94
+#: ../intl-scm/guile-strings.c:116 ../intl-scm/guile-strings.c:132
+#: ../intl-scm/guile-strings.c:142
 msgid "Decrease"
 msgstr "Abnahme"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:86
+#: ../intl-scm/guile-strings.c:134
 msgid "Funds Out"
 msgstr "Belastung"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:88
+#: ../intl-scm/guile-strings.c:136
 msgid "Withdrawal"
 msgstr "Abhebung"
 
 #. src/app-utils/prefs.scm
-#: ../intl-scm/guile-strings.c:90
+#: ../intl-scm/guile-strings.c:138
 msgid "Spend"
 msgstr "Ausgabe"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:114
+#: ../intl-scm/guile-strings.c:162
 msgid "Current Year Start"
 msgstr "Anfang dieses Jahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:116
+#: ../intl-scm/guile-strings.c:164
 msgid "Start of the current calendar year"
 msgstr "Beginn des momentanen Kalenderjahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:118
+#: ../intl-scm/guile-strings.c:166
 msgid "Current Year End"
 msgstr "Ende dieses Jahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:120
+#: ../intl-scm/guile-strings.c:168
 msgid "End of the current calendar year"
 msgstr "Ende des momentanen Kalenderjahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:122
+#: ../intl-scm/guile-strings.c:170
 msgid "Previous Year Start"
 msgstr "Anfang des vorherigen Jahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:124
+#: ../intl-scm/guile-strings.c:172
 msgid "Beginning of the previous calendar year"
 msgstr "Anfang des vorherigen Kalenderjahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:126
+#: ../intl-scm/guile-strings.c:174
 msgid "Previous Year End"
 msgstr "Ende des vorherigen Jahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:128
+#: ../intl-scm/guile-strings.c:176
 msgid "End of the Previous Year"
 msgstr "Ende des vorherigen Jahres"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:130
+#: ../intl-scm/guile-strings.c:178
 msgid "Start of Financial Period"
 msgstr "Start der Buchführungsperiode"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:132
+#: ../intl-scm/guile-strings.c:180
 msgid "Start of the accounting period, as set in the global preferences"
 msgstr ""
 "Start der Buchführungsperiode, wie in den programmweiten Einstellungen "
 "festgelegt"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:134
+#: ../intl-scm/guile-strings.c:182
 msgid "End of Financial Period"
 msgstr "Ende der Buchführungsperiode"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:136
+#: ../intl-scm/guile-strings.c:184
 msgid "End of the accounting period, as set in the global preferences"
 msgstr ""
 "Ende der Buchführungsperiode, wie in den programmweiten Einstellungen "
 "festgelegt"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:140
+#: ../intl-scm/guile-strings.c:188
 msgid "Start of the current month"
 msgstr "Beginn des momentanen Monats"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:144
+#: ../intl-scm/guile-strings.c:192
 msgid "End of the current month"
 msgstr "Ende des momentanen Monats"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:148
+#: ../intl-scm/guile-strings.c:196
 msgid "The beginning of the previous month"
 msgstr "Beginn des vorherigen Monats"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:152
+#: ../intl-scm/guile-strings.c:200
 msgid "Last day of previous month"
 msgstr "Letzter Tag des vorherigen Monats"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:154
+#: ../intl-scm/guile-strings.c:202
 msgid "Start of current quarter"
 msgstr "Beginn des momentanen Quartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:156
+#: ../intl-scm/guile-strings.c:204
 msgid "The start of the latest quarterly accounting period"
 msgstr "Beginn des letzten Finanzquartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:158
+#: ../intl-scm/guile-strings.c:206
 msgid "End of current quarter"
 msgstr "Ende des momentanen Quartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:160
+#: ../intl-scm/guile-strings.c:208
 msgid "The end of the latest quarterly accounting period"
 msgstr "Ende des letzten Finanzquartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:164
+#: ../intl-scm/guile-strings.c:212
 msgid "The start of the previous quarterly accounting period"
 msgstr "Beginn des vorherigen Finanzquartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:168
+#: ../intl-scm/guile-strings.c:216
 msgid "End of previous quarterly accounting period"
 msgstr "Ende des vorherigen Finanzquartals"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:172
+#: ../intl-scm/guile-strings.c:220
 msgid "The current date"
 msgstr "Das aktuelle Datum"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:174 ../intl-scm/guile-strings.c:176
+#: ../intl-scm/guile-strings.c:222 ../intl-scm/guile-strings.c:224
 msgid "One Month Ago"
 msgstr "Einen Monat zuvor"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:178 ../intl-scm/guile-strings.c:180
+#: ../intl-scm/guile-strings.c:226 ../intl-scm/guile-strings.c:228
 msgid "One Week Ago"
 msgstr "Eine Woche zuvor"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:182 ../intl-scm/guile-strings.c:184
+#: ../intl-scm/guile-strings.c:230 ../intl-scm/guile-strings.c:232
 msgid "Three Months Ago"
 msgstr "Drei Monate zuvor"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:186 ../intl-scm/guile-strings.c:188
+#: ../intl-scm/guile-strings.c:234 ../intl-scm/guile-strings.c:236
 msgid "Six Months Ago"
 msgstr "sechs Monate zuvor"
 
 #. src/app-utils/date-utilities.scm
-#: ../intl-scm/guile-strings.c:190 ../intl-scm/guile-strings.c:192
+#: ../intl-scm/guile-strings.c:238 ../intl-scm/guile-strings.c:240
 msgid "One Year Ago"
 msgstr "Ein Jahr zuvor"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:196 ../intl-scm/guile-strings.c:322
-#: ../intl-scm/guile-strings.c:408 ../intl-scm/guile-strings.c:534
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:244 ../intl-scm/guile-strings.c:370
+#: ../intl-scm/guile-strings.c:456 ../intl-scm/guile-strings.c:582
+#: ../intl-scm/guile-strings.c:668 ../intl-scm/guile-strings.c:794
+#: ../intl-scm/guile-strings.c:880 ../intl-scm/guile-strings.c:1006
 msgid "Preparer"
 msgstr "Sachbearbeiter"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:198 ../intl-scm/guile-strings.c:410
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:246 ../intl-scm/guile-strings.c:458
+#: ../intl-scm/guile-strings.c:670 ../intl-scm/guile-strings.c:882
 msgid "Name of person preparing the report"
 msgstr "Name der Person, die den Bericht erstellt."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:202 ../intl-scm/guile-strings.c:326
-#: ../intl-scm/guile-strings.c:414 ../intl-scm/guile-strings.c:538
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:250 ../intl-scm/guile-strings.c:374
+#: ../intl-scm/guile-strings.c:462 ../intl-scm/guile-strings.c:586
+#: ../intl-scm/guile-strings.c:674 ../intl-scm/guile-strings.c:798
+#: ../intl-scm/guile-strings.c:886 ../intl-scm/guile-strings.c:1010
 msgid "Prepared for"
 msgstr "Erstellt für"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:204 ../intl-scm/guile-strings.c:416
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:252 ../intl-scm/guile-strings.c:464
+#: ../intl-scm/guile-strings.c:676 ../intl-scm/guile-strings.c:888
 msgid "Name of organization or company prepared for"
 msgstr "Name der Organisation/Firma, für die der Bericht erstellt wird."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:208 ../intl-scm/guile-strings.c:330
-#: ../intl-scm/guile-strings.c:420 ../intl-scm/guile-strings.c:542
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:256 ../intl-scm/guile-strings.c:378
+#: ../intl-scm/guile-strings.c:468 ../intl-scm/guile-strings.c:590
+#: ../intl-scm/guile-strings.c:680 ../intl-scm/guile-strings.c:802
+#: ../intl-scm/guile-strings.c:892 ../intl-scm/guile-strings.c:1014
 msgid "Show preparer info"
 msgstr "Personen-Information anzeigen"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:210 ../intl-scm/guile-strings.c:422
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:258 ../intl-scm/guile-strings.c:470
+#: ../intl-scm/guile-strings.c:682 ../intl-scm/guile-strings.c:894
 msgid "Name of organization or company"
 msgstr "Name der Organisation/Firma"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:214 ../intl-scm/guile-strings.c:334
-#: ../intl-scm/guile-strings.c:426 ../intl-scm/guile-strings.c:546
-#: ../intl-scm/guile-strings.c:632
+#: ../intl-scm/guile-strings.c:262 ../intl-scm/guile-strings.c:382
+#: ../intl-scm/guile-strings.c:474 ../intl-scm/guile-strings.c:594
+#: ../intl-scm/guile-strings.c:686 ../intl-scm/guile-strings.c:806
+#: ../intl-scm/guile-strings.c:898 ../intl-scm/guile-strings.c:1018
+#: ../intl-scm/guile-strings.c:1104 ../intl-scm/guile-strings.c:1144
 msgid "Enable Links"
 msgstr "Hyperlinks aktivieren"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:216 ../intl-scm/guile-strings.c:428
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:264 ../intl-scm/guile-strings.c:476
+#: ../intl-scm/guile-strings.c:688 ../intl-scm/guile-strings.c:900
 msgid "Enable hyperlinks in reports"
 msgstr "Klickbare Hyperlinks in Berichten aktivieren"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:218 ../intl-scm/guile-strings.c:224
-#: ../intl-scm/guile-strings.c:230 ../intl-scm/guile-strings.c:248
-#: ../intl-scm/guile-strings.c:368 ../intl-scm/guile-strings.c:372
-#: ../intl-scm/guile-strings.c:376 ../intl-scm/guile-strings.c:380
-#: ../intl-scm/guile-strings.c:430 ../intl-scm/guile-strings.c:436
-#: ../intl-scm/guile-strings.c:442 ../intl-scm/guile-strings.c:460
-#: ../intl-scm/guile-strings.c:580 ../intl-scm/guile-strings.c:584
-#: ../intl-scm/guile-strings.c:588 ../intl-scm/guile-strings.c:592
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:266 ../intl-scm/guile-strings.c:272
+#: ../intl-scm/guile-strings.c:278 ../intl-scm/guile-strings.c:296
+#: ../intl-scm/guile-strings.c:416 ../intl-scm/guile-strings.c:420
+#: ../intl-scm/guile-strings.c:424 ../intl-scm/guile-strings.c:428
+#: ../intl-scm/guile-strings.c:478 ../intl-scm/guile-strings.c:484
+#: ../intl-scm/guile-strings.c:490 ../intl-scm/guile-strings.c:508
+#: ../intl-scm/guile-strings.c:628 ../intl-scm/guile-strings.c:632
+#: ../intl-scm/guile-strings.c:636 ../intl-scm/guile-strings.c:640
+#: ../intl-scm/guile-strings.c:690 ../intl-scm/guile-strings.c:696
+#: ../intl-scm/guile-strings.c:702 ../intl-scm/guile-strings.c:720
+#: ../intl-scm/guile-strings.c:840 ../intl-scm/guile-strings.c:844
+#: ../intl-scm/guile-strings.c:848 ../intl-scm/guile-strings.c:852
+#: ../intl-scm/guile-strings.c:902 ../intl-scm/guile-strings.c:908
+#: ../intl-scm/guile-strings.c:914 ../intl-scm/guile-strings.c:932
+#: ../intl-scm/guile-strings.c:1052 ../intl-scm/guile-strings.c:1056
+#: ../intl-scm/guile-strings.c:1060 ../intl-scm/guile-strings.c:1064
 msgid "Images"
 msgstr "Bilder"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:220 ../intl-scm/guile-strings.c:370
-#: ../intl-scm/guile-strings.c:432 ../intl-scm/guile-strings.c:582
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:268 ../intl-scm/guile-strings.c:418
+#: ../intl-scm/guile-strings.c:480 ../intl-scm/guile-strings.c:630
+#: ../intl-scm/guile-strings.c:692 ../intl-scm/guile-strings.c:842
+#: ../intl-scm/guile-strings.c:904 ../intl-scm/guile-strings.c:1054
 msgid "Background Tile"
 msgstr "Hintergrundbild"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:222 ../intl-scm/guile-strings.c:434
-#: ../intl-scm/guile-strings.c:628
+#: ../intl-scm/guile-strings.c:270 ../intl-scm/guile-strings.c:482
+#: ../intl-scm/guile-strings.c:694 ../intl-scm/guile-strings.c:906
+#: ../intl-scm/guile-strings.c:1100 ../intl-scm/guile-strings.c:1140
 msgid "Background tile for reports."
 msgstr "Hintergrundbild für Berichte."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:226 ../intl-scm/guile-strings.c:374
-#: ../intl-scm/guile-strings.c:438 ../intl-scm/guile-strings.c:586
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:274 ../intl-scm/guile-strings.c:422
+#: ../intl-scm/guile-strings.c:486 ../intl-scm/guile-strings.c:634
+#: ../intl-scm/guile-strings.c:698 ../intl-scm/guile-strings.c:846
+#: ../intl-scm/guile-strings.c:910 ../intl-scm/guile-strings.c:1058
 msgid "Heading Banner"
 msgstr "Titel"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:228 ../intl-scm/guile-strings.c:234
-#: ../intl-scm/guile-strings.c:440 ../intl-scm/guile-strings.c:446
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:276 ../intl-scm/guile-strings.c:282
+#: ../intl-scm/guile-strings.c:488 ../intl-scm/guile-strings.c:494
+#: ../intl-scm/guile-strings.c:700 ../intl-scm/guile-strings.c:706
+#: ../intl-scm/guile-strings.c:912 ../intl-scm/guile-strings.c:918
 msgid "Banner for top of report."
 msgstr "Titel für die Titelzeile des Berichts"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:232 ../intl-scm/guile-strings.c:382
-#: ../intl-scm/guile-strings.c:444 ../intl-scm/guile-strings.c:594
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:280 ../intl-scm/guile-strings.c:430
+#: ../intl-scm/guile-strings.c:492 ../intl-scm/guile-strings.c:642
+#: ../intl-scm/guile-strings.c:704 ../intl-scm/guile-strings.c:854
+#: ../intl-scm/guile-strings.c:916 ../intl-scm/guile-strings.c:1066
 msgid "Heading Alignment"
 msgstr "Ausrichtung Ãœberschrift"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:236 ../intl-scm/guile-strings.c:448
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:284 ../intl-scm/guile-strings.c:496
+#: ../intl-scm/guile-strings.c:708 ../intl-scm/guile-strings.c:920
 msgid "Left"
 msgstr "Links"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:238 ../intl-scm/guile-strings.c:450
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:286 ../intl-scm/guile-strings.c:498
+#: ../intl-scm/guile-strings.c:710 ../intl-scm/guile-strings.c:922
 msgid "Align the banner to the left"
 msgstr "Logo linksbündig ausrichten"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:240 ../intl-scm/guile-strings.c:452
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:288 ../intl-scm/guile-strings.c:500
+#: ../intl-scm/guile-strings.c:712 ../intl-scm/guile-strings.c:924
 msgid "Center"
 msgstr "Zentriert"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:242 ../intl-scm/guile-strings.c:454
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:290 ../intl-scm/guile-strings.c:502
+#: ../intl-scm/guile-strings.c:714 ../intl-scm/guile-strings.c:926
 msgid "Align the banner in the center"
 msgstr "Logo zentriert ausrichten"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:244 ../intl-scm/guile-strings.c:456
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:292 ../intl-scm/guile-strings.c:504
+#: ../intl-scm/guile-strings.c:716 ../intl-scm/guile-strings.c:928
 msgid "Right"
 msgstr "Rechts"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:246 ../intl-scm/guile-strings.c:458
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:294 ../intl-scm/guile-strings.c:506
+#: ../intl-scm/guile-strings.c:718 ../intl-scm/guile-strings.c:930
 msgid "Align the banner to the right"
 msgstr "Logo rechtsbündig ausrichten"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:250 ../intl-scm/guile-strings.c:378
-#: ../intl-scm/guile-strings.c:462 ../intl-scm/guile-strings.c:590
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:298 ../intl-scm/guile-strings.c:426
+#: ../intl-scm/guile-strings.c:510 ../intl-scm/guile-strings.c:638
+#: ../intl-scm/guile-strings.c:722 ../intl-scm/guile-strings.c:850
+#: ../intl-scm/guile-strings.c:934 ../intl-scm/guile-strings.c:1062
 msgid "Logo"
 msgstr "Logo"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:252 ../intl-scm/guile-strings.c:464
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:300 ../intl-scm/guile-strings.c:512
+#: ../intl-scm/guile-strings.c:724 ../intl-scm/guile-strings.c:936
 msgid "Company logo image."
 msgstr "Bild für das Firmenlogo."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:254 ../intl-scm/guile-strings.c:260
-#: ../intl-scm/guile-strings.c:266 ../intl-scm/guile-strings.c:272
-#: ../intl-scm/guile-strings.c:278 ../intl-scm/guile-strings.c:284
-#: ../intl-scm/guile-strings.c:290 ../intl-scm/guile-strings.c:296
-#: ../intl-scm/guile-strings.c:336 ../intl-scm/guile-strings.c:340
-#: ../intl-scm/guile-strings.c:344 ../intl-scm/guile-strings.c:348
-#: ../intl-scm/guile-strings.c:352 ../intl-scm/guile-strings.c:356
-#: ../intl-scm/guile-strings.c:360 ../intl-scm/guile-strings.c:364
-#: ../intl-scm/guile-strings.c:466 ../intl-scm/guile-strings.c:472
-#: ../intl-scm/guile-strings.c:478 ../intl-scm/guile-strings.c:484
-#: ../intl-scm/guile-strings.c:490 ../intl-scm/guile-strings.c:496
-#: ../intl-scm/guile-strings.c:502 ../intl-scm/guile-strings.c:508
-#: ../intl-scm/guile-strings.c:548 ../intl-scm/guile-strings.c:552
-#: ../intl-scm/guile-strings.c:556 ../intl-scm/guile-strings.c:560
-#: ../intl-scm/guile-strings.c:564 ../intl-scm/guile-strings.c:568
-#: ../intl-scm/guile-strings.c:572 ../intl-scm/guile-strings.c:576
-#: ../intl-scm/guile-strings.c:2522 ../intl-scm/guile-strings.c:2526
-#: ../intl-scm/guile-strings.c:2530 ../intl-scm/guile-strings.c:2534
-#: ../intl-scm/guile-strings.c:2538
+#: ../intl-scm/guile-strings.c:302 ../intl-scm/guile-strings.c:308
+#: ../intl-scm/guile-strings.c:314 ../intl-scm/guile-strings.c:320
+#: ../intl-scm/guile-strings.c:326 ../intl-scm/guile-strings.c:332
+#: ../intl-scm/guile-strings.c:338 ../intl-scm/guile-strings.c:344
+#: ../intl-scm/guile-strings.c:384 ../intl-scm/guile-strings.c:388
+#: ../intl-scm/guile-strings.c:392 ../intl-scm/guile-strings.c:396
+#: ../intl-scm/guile-strings.c:400 ../intl-scm/guile-strings.c:404
+#: ../intl-scm/guile-strings.c:408 ../intl-scm/guile-strings.c:412
+#: ../intl-scm/guile-strings.c:514 ../intl-scm/guile-strings.c:520
+#: ../intl-scm/guile-strings.c:526 ../intl-scm/guile-strings.c:532
+#: ../intl-scm/guile-strings.c:538 ../intl-scm/guile-strings.c:544
+#: ../intl-scm/guile-strings.c:550 ../intl-scm/guile-strings.c:556
+#: ../intl-scm/guile-strings.c:596 ../intl-scm/guile-strings.c:600
+#: ../intl-scm/guile-strings.c:604 ../intl-scm/guile-strings.c:608
+#: ../intl-scm/guile-strings.c:612 ../intl-scm/guile-strings.c:616
+#: ../intl-scm/guile-strings.c:620 ../intl-scm/guile-strings.c:624
+#: ../intl-scm/guile-strings.c:726 ../intl-scm/guile-strings.c:732
+#: ../intl-scm/guile-strings.c:738 ../intl-scm/guile-strings.c:744
+#: ../intl-scm/guile-strings.c:750 ../intl-scm/guile-strings.c:756
+#: ../intl-scm/guile-strings.c:762 ../intl-scm/guile-strings.c:768
+#: ../intl-scm/guile-strings.c:808 ../intl-scm/guile-strings.c:812
+#: ../intl-scm/guile-strings.c:816 ../intl-scm/guile-strings.c:820
+#: ../intl-scm/guile-strings.c:824 ../intl-scm/guile-strings.c:828
+#: ../intl-scm/guile-strings.c:832 ../intl-scm/guile-strings.c:836
+#: ../intl-scm/guile-strings.c:938 ../intl-scm/guile-strings.c:944
+#: ../intl-scm/guile-strings.c:950 ../intl-scm/guile-strings.c:956
+#: ../intl-scm/guile-strings.c:962 ../intl-scm/guile-strings.c:968
+#: ../intl-scm/guile-strings.c:974 ../intl-scm/guile-strings.c:980
+#: ../intl-scm/guile-strings.c:1020 ../intl-scm/guile-strings.c:1024
+#: ../intl-scm/guile-strings.c:1028 ../intl-scm/guile-strings.c:1032
+#: ../intl-scm/guile-strings.c:1036 ../intl-scm/guile-strings.c:1040
+#: ../intl-scm/guile-strings.c:1044 ../intl-scm/guile-strings.c:1048
+#: ../intl-scm/guile-strings.c:3856 ../intl-scm/guile-strings.c:3860
+#: ../intl-scm/guile-strings.c:3864 ../intl-scm/guile-strings.c:3868
+#: ../intl-scm/guile-strings.c:3872 ../intl-scm/guile-strings.c:5006
+#: ../intl-scm/guile-strings.c:5010 ../intl-scm/guile-strings.c:5014
+#: ../intl-scm/guile-strings.c:5018 ../intl-scm/guile-strings.c:5022
 msgid "Colors"
 msgstr "Farben"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:256 ../intl-scm/guile-strings.c:338
-#: ../intl-scm/guile-strings.c:468 ../intl-scm/guile-strings.c:550
-#: ../intl-scm/guile-strings.c:620 ../intl-scm/guile-strings.c:1018
+#: ../intl-scm/guile-strings.c:304 ../intl-scm/guile-strings.c:386
+#: ../intl-scm/guile-strings.c:516 ../intl-scm/guile-strings.c:598
+#: ../intl-scm/guile-strings.c:728 ../intl-scm/guile-strings.c:810
+#: ../intl-scm/guile-strings.c:940 ../intl-scm/guile-strings.c:1022
+#: ../intl-scm/guile-strings.c:1092 ../intl-scm/guile-strings.c:1132
+#: ../intl-scm/guile-strings.c:1562 ../intl-scm/guile-strings.c:1730
 msgid "Background Color"
 msgstr "Hintergrund Farbe"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:258 ../intl-scm/guile-strings.c:470
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:306 ../intl-scm/guile-strings.c:518
+#: ../intl-scm/guile-strings.c:730 ../intl-scm/guile-strings.c:942
 msgid "General background color for report."
 msgstr "Standard Hintergrundfarbe für Bericht."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:262 ../intl-scm/guile-strings.c:342
-#: ../intl-scm/guile-strings.c:474 ../intl-scm/guile-strings.c:554
-#: ../intl-scm/guile-strings.c:1024
+#: ../intl-scm/guile-strings.c:310 ../intl-scm/guile-strings.c:390
+#: ../intl-scm/guile-strings.c:522 ../intl-scm/guile-strings.c:602
+#: ../intl-scm/guile-strings.c:734 ../intl-scm/guile-strings.c:814
+#: ../intl-scm/guile-strings.c:946 ../intl-scm/guile-strings.c:1026
+#: ../intl-scm/guile-strings.c:1568 ../intl-scm/guile-strings.c:1736
 msgid "Text Color"
 msgstr "Textfarbe"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:264 ../intl-scm/guile-strings.c:476
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:312 ../intl-scm/guile-strings.c:524
+#: ../intl-scm/guile-strings.c:736 ../intl-scm/guile-strings.c:948
 msgid "Normal body text color."
 msgstr "Normale Textfarbe"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:268 ../intl-scm/guile-strings.c:346
-#: ../intl-scm/guile-strings.c:480 ../intl-scm/guile-strings.c:558
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:316 ../intl-scm/guile-strings.c:394
+#: ../intl-scm/guile-strings.c:528 ../intl-scm/guile-strings.c:606
+#: ../intl-scm/guile-strings.c:740 ../intl-scm/guile-strings.c:818
+#: ../intl-scm/guile-strings.c:952 ../intl-scm/guile-strings.c:1030
 msgid "Link Color"
 msgstr "Link-Farbe"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:270 ../intl-scm/guile-strings.c:482
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:318 ../intl-scm/guile-strings.c:530
+#: ../intl-scm/guile-strings.c:742 ../intl-scm/guile-strings.c:954
 msgid "Link text color."
 msgstr "Link-Textfarbe"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:274 ../intl-scm/guile-strings.c:350
-#: ../intl-scm/guile-strings.c:486 ../intl-scm/guile-strings.c:562
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:322 ../intl-scm/guile-strings.c:398
+#: ../intl-scm/guile-strings.c:534 ../intl-scm/guile-strings.c:610
+#: ../intl-scm/guile-strings.c:746 ../intl-scm/guile-strings.c:822
+#: ../intl-scm/guile-strings.c:958 ../intl-scm/guile-strings.c:1034
 msgid "Table Cell Color"
 msgstr "Farbe für Tabellenzelle"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:276 ../intl-scm/guile-strings.c:488
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:324 ../intl-scm/guile-strings.c:536
+#: ../intl-scm/guile-strings.c:748 ../intl-scm/guile-strings.c:960
 msgid "Default background for table cells."
 msgstr "Standard Hintergrundfarbe für Tabellenzellen."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:280 ../intl-scm/guile-strings.c:354
-#: ../intl-scm/guile-strings.c:492 ../intl-scm/guile-strings.c:566
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:328 ../intl-scm/guile-strings.c:402
+#: ../intl-scm/guile-strings.c:540 ../intl-scm/guile-strings.c:614
+#: ../intl-scm/guile-strings.c:752 ../intl-scm/guile-strings.c:826
+#: ../intl-scm/guile-strings.c:964 ../intl-scm/guile-strings.c:1038
 msgid "Alternate Table Cell Color"
 msgstr "Zweite Farbe für Tabellenzelle"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:282 ../intl-scm/guile-strings.c:494
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:330 ../intl-scm/guile-strings.c:542
+#: ../intl-scm/guile-strings.c:754 ../intl-scm/guile-strings.c:966
 msgid "Default alternate background for table cells."
 msgstr "Standard Hintergrundfarbe für Tabellenzellen."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:286 ../intl-scm/guile-strings.c:358
-#: ../intl-scm/guile-strings.c:498 ../intl-scm/guile-strings.c:570
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:334 ../intl-scm/guile-strings.c:406
+#: ../intl-scm/guile-strings.c:546 ../intl-scm/guile-strings.c:618
+#: ../intl-scm/guile-strings.c:758 ../intl-scm/guile-strings.c:830
+#: ../intl-scm/guile-strings.c:970 ../intl-scm/guile-strings.c:1042
 msgid "Subheading/Subtotal Cell Color"
 msgstr "Farbe für Zwischenüberschrift/-summe"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:288 ../intl-scm/guile-strings.c:500
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:336 ../intl-scm/guile-strings.c:548
+#: ../intl-scm/guile-strings.c:760 ../intl-scm/guile-strings.c:972
 msgid "Default color for subtotal rows."
 msgstr "Standard Hintergrundfarbe für Zwischensummen."
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:292 ../intl-scm/guile-strings.c:362
-#: ../intl-scm/guile-strings.c:504 ../intl-scm/guile-strings.c:574
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:340 ../intl-scm/guile-strings.c:410
+#: ../intl-scm/guile-strings.c:552 ../intl-scm/guile-strings.c:622
+#: ../intl-scm/guile-strings.c:764 ../intl-scm/guile-strings.c:834
+#: ../intl-scm/guile-strings.c:976 ../intl-scm/guile-strings.c:1046
 msgid "Sub-subheading/total Cell Color"
 msgstr "Farbe für Zwischen-Zwischenüberschriften/-summen"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:294 ../intl-scm/guile-strings.c:506
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:342 ../intl-scm/guile-strings.c:554
+#: ../intl-scm/guile-strings.c:766 ../intl-scm/guile-strings.c:978
 msgid "Color for subsubtotals"
 msgstr "Farbe für Zwischen-Zwischensummen"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:298 ../intl-scm/guile-strings.c:366
-#: ../intl-scm/guile-strings.c:510 ../intl-scm/guile-strings.c:578
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:346 ../intl-scm/guile-strings.c:414
+#: ../intl-scm/guile-strings.c:558 ../intl-scm/guile-strings.c:626
+#: ../intl-scm/guile-strings.c:770 ../intl-scm/guile-strings.c:838
+#: ../intl-scm/guile-strings.c:982 ../intl-scm/guile-strings.c:1050
 msgid "Grand Total Cell Color"
 msgstr "Farbe für Gesamtsumme"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:300 ../intl-scm/guile-strings.c:512
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:348 ../intl-scm/guile-strings.c:560
+#: ../intl-scm/guile-strings.c:772 ../intl-scm/guile-strings.c:984
 msgid "Color for grand totals"
 msgstr "Farbe für Gesamtsummen"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:302 ../intl-scm/guile-strings.c:308
-#: ../intl-scm/guile-strings.c:314 ../intl-scm/guile-strings.c:384
-#: ../intl-scm/guile-strings.c:388 ../intl-scm/guile-strings.c:392
-#: ../intl-scm/guile-strings.c:514 ../intl-scm/guile-strings.c:520
-#: ../intl-scm/guile-strings.c:526 ../intl-scm/guile-strings.c:596
-#: ../intl-scm/guile-strings.c:600 ../intl-scm/guile-strings.c:604
-#: ../intl-scm/guile-strings.c:636 ../intl-scm/guile-strings.c:642
-#: ../intl-scm/guile-strings.c:648
+#: ../intl-scm/guile-strings.c:350 ../intl-scm/guile-strings.c:356
+#: ../intl-scm/guile-strings.c:362 ../intl-scm/guile-strings.c:432
+#: ../intl-scm/guile-strings.c:436 ../intl-scm/guile-strings.c:440
+#: ../intl-scm/guile-strings.c:562 ../intl-scm/guile-strings.c:568
+#: ../intl-scm/guile-strings.c:574 ../intl-scm/guile-strings.c:644
+#: ../intl-scm/guile-strings.c:648 ../intl-scm/guile-strings.c:652
+#: ../intl-scm/guile-strings.c:774 ../intl-scm/guile-strings.c:780
+#: ../intl-scm/guile-strings.c:786 ../intl-scm/guile-strings.c:856
+#: ../intl-scm/guile-strings.c:860 ../intl-scm/guile-strings.c:864
+#: ../intl-scm/guile-strings.c:986 ../intl-scm/guile-strings.c:992
+#: ../intl-scm/guile-strings.c:998 ../intl-scm/guile-strings.c:1068
+#: ../intl-scm/guile-strings.c:1072 ../intl-scm/guile-strings.c:1076
+#: ../intl-scm/guile-strings.c:1108 ../intl-scm/guile-strings.c:1114
+#: ../intl-scm/guile-strings.c:1120 ../intl-scm/guile-strings.c:1148
+#: ../intl-scm/guile-strings.c:1154 ../intl-scm/guile-strings.c:1160
 msgid "Tables"
 msgstr "Tabellen"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:304 ../intl-scm/guile-strings.c:386
-#: ../intl-scm/guile-strings.c:516 ../intl-scm/guile-strings.c:598
-#: ../intl-scm/guile-strings.c:638
+#: ../intl-scm/guile-strings.c:352 ../intl-scm/guile-strings.c:434
+#: ../intl-scm/guile-strings.c:564 ../intl-scm/guile-strings.c:646
+#: ../intl-scm/guile-strings.c:776 ../intl-scm/guile-strings.c:858
+#: ../intl-scm/guile-strings.c:988 ../intl-scm/guile-strings.c:1070
+#: ../intl-scm/guile-strings.c:1110 ../intl-scm/guile-strings.c:1150
 msgid "Table cell spacing"
 msgstr "Zellen-Abstand"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:306 ../intl-scm/guile-strings.c:312
-#: ../intl-scm/guile-strings.c:518 ../intl-scm/guile-strings.c:524
-#: ../intl-scm/guile-strings.c:640 ../intl-scm/guile-strings.c:646
+#: ../intl-scm/guile-strings.c:354 ../intl-scm/guile-strings.c:360
+#: ../intl-scm/guile-strings.c:566 ../intl-scm/guile-strings.c:572
+#: ../intl-scm/guile-strings.c:778 ../intl-scm/guile-strings.c:784
+#: ../intl-scm/guile-strings.c:990 ../intl-scm/guile-strings.c:996
+#: ../intl-scm/guile-strings.c:1112 ../intl-scm/guile-strings.c:1118
+#: ../intl-scm/guile-strings.c:1152 ../intl-scm/guile-strings.c:1158
 msgid "Space between table cells"
 msgstr "Abstand zwischen Zellen einer Tabelle"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:310 ../intl-scm/guile-strings.c:390
-#: ../intl-scm/guile-strings.c:522 ../intl-scm/guile-strings.c:602
-#: ../intl-scm/guile-strings.c:644
+#: ../intl-scm/guile-strings.c:358 ../intl-scm/guile-strings.c:438
+#: ../intl-scm/guile-strings.c:570 ../intl-scm/guile-strings.c:650
+#: ../intl-scm/guile-strings.c:782 ../intl-scm/guile-strings.c:862
+#: ../intl-scm/guile-strings.c:994 ../intl-scm/guile-strings.c:1074
+#: ../intl-scm/guile-strings.c:1116 ../intl-scm/guile-strings.c:1156
 msgid "Table cell padding"
 msgstr "Zellen-Füllung"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:316 ../intl-scm/guile-strings.c:394
-#: ../intl-scm/guile-strings.c:528 ../intl-scm/guile-strings.c:606
-#: ../intl-scm/guile-strings.c:650
+#: ../intl-scm/guile-strings.c:364 ../intl-scm/guile-strings.c:442
+#: ../intl-scm/guile-strings.c:576 ../intl-scm/guile-strings.c:654
+#: ../intl-scm/guile-strings.c:788 ../intl-scm/guile-strings.c:866
+#: ../intl-scm/guile-strings.c:1000 ../intl-scm/guile-strings.c:1078
+#: ../intl-scm/guile-strings.c:1122 ../intl-scm/guile-strings.c:1162
 msgid "Table border width"
 msgstr "Tabellen-Randbreite"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:318 ../intl-scm/guile-strings.c:530
-#: ../intl-scm/guile-strings.c:652
+#: ../intl-scm/guile-strings.c:366 ../intl-scm/guile-strings.c:578
+#: ../intl-scm/guile-strings.c:790 ../intl-scm/guile-strings.c:1002
+#: ../intl-scm/guile-strings.c:1124 ../intl-scm/guile-strings.c:1164
 msgid "Bevel depth on tables"
 msgstr "Breite der Tabellenkanten"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:396 ../intl-scm/guile-strings.c:608
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:444 ../intl-scm/guile-strings.c:656
+#: ../intl-scm/guile-strings.c:868 ../intl-scm/guile-strings.c:1080
 msgid "Prepared by: "
 msgstr "Erstellt von:"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:398 ../intl-scm/guile-strings.c:610
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:446 ../intl-scm/guile-strings.c:658
+#: ../intl-scm/guile-strings.c:870 ../intl-scm/guile-strings.c:1082
 msgid "Prepared for: "
 msgstr "Erstellt für:"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
-#: ../intl-scm/guile-strings.c:402
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#: ../intl-scm/guile-strings.c:450 ../intl-scm/guile-strings.c:874
 msgid "Fancy"
 msgstr "Elegant"
 
 #. src/report/stylesheets/stylesheet-fancy.scm
-#: ../intl-scm/guile-strings.c:404
+#. src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
+#: ../intl-scm/guile-strings.c:452 ../intl-scm/guile-strings.c:876
 msgid "Technicolor"
 msgstr "Bunt"
 
 #. src/report/stylesheets/stylesheet-easy.scm
-#: ../intl-scm/guile-strings.c:614 ../intl-scm/guile-strings.c:616
+#. src/report/stylesheets/gnucash/report/stylesheet-easy.scm
+#: ../intl-scm/guile-strings.c:662 ../intl-scm/guile-strings.c:664
+#: ../intl-scm/guile-strings.c:1086 ../intl-scm/guile-strings.c:1088
 msgid "Easy"
 msgstr "Einfach"
 
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:622
+#: ../intl-scm/guile-strings.c:1094 ../intl-scm/guile-strings.c:1134
 msgid "Background color for reports."
 msgstr "Hintergrundfarbe für Berichte."
 
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:626
+#: ../intl-scm/guile-strings.c:1098 ../intl-scm/guile-strings.c:1138
 msgid "Background Pixmap"
 msgstr "Hintergrundbild"
 
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:634
+#: ../intl-scm/guile-strings.c:1106 ../intl-scm/guile-strings.c:1146
 msgid "Enable hyperlinks in reports."
 msgstr "Hyperlinks in Berichten aktivieren."
 
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
-#: ../intl-scm/guile-strings.c:654
+#: ../intl-scm/guile-strings.c:1126 ../intl-scm/guile-strings.c:1166
 msgid "Plain"
 msgstr "Einfach"
 
+#. src/report/stylesheets/gnucash/report/stylesheet-plain.scm
 #. src/report/stylesheets/stylesheet-plain.scm
 #. src/report/report-system/report.scm
 #. src/report/report-system/html-style-sheet.scm
-#: ../intl-scm/guile-strings.c:656 ../intl-scm/guile-strings.c:834
-#: ../intl-scm/guile-strings.c:916
+#: ../intl-scm/guile-strings.c:1128 ../intl-scm/guile-strings.c:1168
+#: ../intl-scm/guile-strings.c:1348 ../intl-scm/guile-strings.c:1428
 msgid "Default"
 msgstr "Voreinstellung"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:658
+#: ../intl-scm/guile-strings.c:1170
 msgid "Select a date to report on"
 msgstr "Datum des Berichts"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:660
+#: ../intl-scm/guile-strings.c:1172
 msgid "Start of reporting period"
 msgstr "Start der Berichtsperiode"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:662
+#: ../intl-scm/guile-strings.c:1174
 msgid "End of reporting period"
 msgstr "Ende der Berichtsperiode"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:664
+#: ../intl-scm/guile-strings.c:1176
 msgid "The amount of time between data points"
 msgstr "Die Zeitspanne zwischen den Datenpunkten"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:670 ../intl-scm/guile-strings.c:672
+#: ../intl-scm/guile-strings.c:1182 ../intl-scm/guile-strings.c:1184
 msgid "Week"
 msgstr "Woche"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:674
+#: ../intl-scm/guile-strings.c:1186
 msgid "2Week"
 msgstr "2 Wochen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:676
+#: ../intl-scm/guile-strings.c:1188
 msgid "Two Weeks"
 msgstr "Zwei Wochen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:682 ../intl-scm/guile-strings.c:684
+#: ../intl-scm/guile-strings.c:1194 ../intl-scm/guile-strings.c:1196
 msgid "Quarter"
 msgstr "Quartal"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:686 ../intl-scm/guile-strings.c:688
+#: ../intl-scm/guile-strings.c:1198 ../intl-scm/guile-strings.c:1200
 msgid "Half Year"
 msgstr "Halbjahr"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:690 ../intl-scm/guile-strings.c:692
+#: ../intl-scm/guile-strings.c:1202 ../intl-scm/guile-strings.c:1204
 msgid "Year"
 msgstr "Jahr"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:694
+#: ../intl-scm/guile-strings.c:1206
 msgid "All"
 msgstr "Alle"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:696
+#: ../intl-scm/guile-strings.c:1208
 msgid "All accounts"
 msgstr "Alle Konten"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:698
+#: ../intl-scm/guile-strings.c:1210
 msgid "Top-level"
 msgstr "Jeweils neues Fenster"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:700
+#: ../intl-scm/guile-strings.c:1212
 msgid "Second-level"
 msgstr "Zweite Ebene"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:702
+#: ../intl-scm/guile-strings.c:1214
 msgid "Third-level"
 msgstr "Dritte Ebene"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:704 ../intl-scm/guile-strings.c:706
+#: ../intl-scm/guile-strings.c:1216 ../intl-scm/guile-strings.c:1218
 msgid "Fourth-level"
 msgstr "Vierte Ebene"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:708
+#: ../intl-scm/guile-strings.c:1220
 msgid "Sixth-level"
 msgstr "Sechste Ebene"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:710
+#: ../intl-scm/guile-strings.c:1222
 msgid "Show accounts to this depth, overriding any other option."
 msgstr ""
 "Konten nur bis zu dieser Verschachtelungstiefe anzeigen (überstimmt alle "
 "anderen Optionen)."
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:712
+#: ../intl-scm/guile-strings.c:1224
 msgid ""
 "Override account-selection and show sub-accounts of all selected accounts?"
 msgstr ""
@@ -15775,183 +16457,205 @@
 
 #. src/report/report-system/options-utilities.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:714 ../intl-scm/guile-strings.c:1548
-#: ../intl-scm/guile-strings.c:1762 ../intl-scm/guile-strings.c:1866
+#: ../intl-scm/guile-strings.c:1226 ../intl-scm/guile-strings.c:2258
+#: ../intl-scm/guile-strings.c:2882 ../intl-scm/guile-strings.c:3096
+#: ../intl-scm/guile-strings.c:3200 ../intl-scm/guile-strings.c:4246
+#: ../intl-scm/guile-strings.c:4350
 msgid "Report on these accounts, if display depth allows."
 msgstr ""
 "Bericht für diese Konten erstellen, solange die Verschachtelungstiefe "
 "eingehalten wird."
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:716
+#: ../intl-scm/guile-strings.c:1228
 msgid "Include sub-account balances in printed balance?"
 msgstr "Unterkonten zum angezeigten Kontostand addieren?"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:718
+#: ../intl-scm/guile-strings.c:1230
 msgid "Group the accounts in main categories?"
 msgstr "Konten in Kategorien gruppieren?"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:720
+#: ../intl-scm/guile-strings.c:1232
 msgid "Select the currency to display the values of this report in."
 msgstr ""
 "Wählen Sie die Währung, in der die Beträge in diesem Bericht angezeigt "
 "werden."
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:722
+#: ../intl-scm/guile-strings.c:1234
 msgid "Display the account's foreign currency amount?"
 msgstr "Kontostände zusätzlich in Fremdwährung anzeigen?"
 
 #. src/report/report-system/options-utilities.scm
 #. src/report/standard-reports/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:724 ../intl-scm/guile-strings.c:1150
-#: ../intl-scm/guile-strings.c:1980
+#: ../intl-scm/guile-strings.c:1236 ../intl-scm/guile-strings.c:1862
+#: ../intl-scm/guile-strings.c:2486 ../intl-scm/guile-strings.c:3314
+#: ../intl-scm/guile-strings.c:4464
 msgid "The source of price information"
 msgstr "Quelle der Preisinformationen"
 
 #. src/report/report-system/options-utilities.scm
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:726 ../intl-scm/guile-strings.c:1152
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1238 ../intl-scm/guile-strings.c:1864
+#: ../intl-scm/guile-strings.c:2488
 msgid "Weighted Average"
 msgstr "Gewichteter Durchschnitt"
 
 #. src/report/report-system/options-utilities.scm
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:728 ../intl-scm/guile-strings.c:1154
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1240 ../intl-scm/guile-strings.c:1866
+#: ../intl-scm/guile-strings.c:2490
 msgid "The weighted average of all currency transactions of the past"
 msgstr ""
 "Der gewichtete Durchschnitt aller bisherigen Währungsbuchungen der "
 "Vergangenheit"
 
 #. src/report/report-system/options-utilities.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:730 ../intl-scm/guile-strings.c:1982
+#: ../intl-scm/guile-strings.c:1242 ../intl-scm/guile-strings.c:3316
+#: ../intl-scm/guile-strings.c:4466
 msgid "Most recent"
 msgstr "Neuester"
 
 #. src/report/report-system/options-utilities.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:732 ../intl-scm/guile-strings.c:1984
+#: ../intl-scm/guile-strings.c:1244 ../intl-scm/guile-strings.c:3318
+#: ../intl-scm/guile-strings.c:4468
 msgid "The most recent recorded price"
 msgstr "Der neueste aufgezeichnete Preis"
 
 #. src/report/report-system/options-utilities.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:734 ../intl-scm/guile-strings.c:1986
+#: ../intl-scm/guile-strings.c:1246 ../intl-scm/guile-strings.c:3320
+#: ../intl-scm/guile-strings.c:4470
 msgid "Nearest in time"
 msgstr "Zeitlich nächster"
 
 #. src/report/report-system/options-utilities.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:736 ../intl-scm/guile-strings.c:1988
+#: ../intl-scm/guile-strings.c:1248 ../intl-scm/guile-strings.c:3322
+#: ../intl-scm/guile-strings.c:4472
 msgid "The price recorded nearest in time to the report date"
 msgstr "Der Preis, der dem Berichtsdatum am nächsten kommt"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:738
+#: ../intl-scm/guile-strings.c:1250
 msgid "Width of plot in pixels."
 msgstr "Breite der Grafik in Pixeln."
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:740
+#: ../intl-scm/guile-strings.c:1252
 msgid "Height of plot in pixels."
 msgstr "Höhe der Grafik in Pixeln."
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:742
+#: ../intl-scm/guile-strings.c:1254
 msgid "Choose the marker for each data point."
 msgstr "Wählen Sie die Markierung für jeden Datenpunkt"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:744 ../intl-scm/guile-strings.c:746
+#: ../intl-scm/guile-strings.c:1256 ../intl-scm/guile-strings.c:1258
 msgid "Circle"
 msgstr "Kreis"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:748 ../intl-scm/guile-strings.c:750
+#: ../intl-scm/guile-strings.c:1260 ../intl-scm/guile-strings.c:1262
 msgid "Cross"
 msgstr "Kreuz"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:752 ../intl-scm/guile-strings.c:754
+#: ../intl-scm/guile-strings.c:1264 ../intl-scm/guile-strings.c:1266
 msgid "Square"
 msgstr "Quadrat"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:756 ../intl-scm/guile-strings.c:758
+#: ../intl-scm/guile-strings.c:1268 ../intl-scm/guile-strings.c:1270
 msgid "Asterisk"
 msgstr "Stern"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:760
+#: ../intl-scm/guile-strings.c:1272
 msgid "Filled circle"
 msgstr "Ausgefüllter Kreis"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:762
+#: ../intl-scm/guile-strings.c:1274
 msgid "Circle filled with color"
 msgstr "Ausgefüllter Kreis"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:764
+#: ../intl-scm/guile-strings.c:1276
 msgid "Filled square"
 msgstr "Ausgefülltes Rechteck"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:766
+#: ../intl-scm/guile-strings.c:1278
 msgid "Square filled with color"
 msgstr "Ausgefülltes Rechteck"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:768
+#: ../intl-scm/guile-strings.c:1280
 msgid "Choose the method for sorting accounts."
 msgstr "Wählen Sie eine Sortierreihenfolge für die Konten."
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:772
+#: ../intl-scm/guile-strings.c:1284
 msgid "Alphabetical by account code"
 msgstr "Nach Kontocode alphabetisch sortieren"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:774
+#: ../intl-scm/guile-strings.c:1286
 msgid "Alphabetical"
 msgstr "Alphabetisch"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:776
+#: ../intl-scm/guile-strings.c:1288
 msgid "Alphabetical by account name"
 msgstr "Nach Kontonamen alphabetisch sortieren"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:780
+#: ../intl-scm/guile-strings.c:1292
 msgid "By amount, largest to smallest"
 msgstr "Nach Betrag sortieren, vom größten zum kleinsten"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:782
+#: ../intl-scm/guile-strings.c:1294
 msgid "How to show the balances of parent accounts"
 msgstr "Anzeige der Salden von Hauptkonten"
 
 #. src/report/report-system/options-utilities.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:784 ../intl-scm/guile-strings.c:1896
+#: ../intl-scm/guile-strings.c:1296 ../intl-scm/guile-strings.c:3230
+#: ../intl-scm/guile-strings.c:4380
 msgid "Account Balance"
 msgstr "Kontosaldo"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:786
+#: ../intl-scm/guile-strings.c:1298
 msgid "Show only the balance in the parent account, excluding any subaccounts"
 msgstr ""
 "Nur unmittelbare Saldo von Hauptkonten anzeigen und dabei Unterkonten "
 "ignorieren"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:790
+#: ../intl-scm/guile-strings.c:1302
 msgid ""
 "Calculate the subtotal for this parent account and all of its subaccounts, "
 "and show this as the parent account balance"
@@ -15960,42 +16664,42 @@
 "und als Hauptkonto-Saldo anzeigen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:792 ../intl-scm/guile-strings.c:802
+#: ../intl-scm/guile-strings.c:1304 ../intl-scm/guile-strings.c:1314
 msgid "Do not show"
 msgstr "Nicht anzeigen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:794
+#: ../intl-scm/guile-strings.c:1306
 msgid "Do not show any balances of parent accounts"
 msgstr "Salden von Hauptkonten nicht anzeigen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:796
+#: ../intl-scm/guile-strings.c:1308
 msgid "How to show account subtotals for parent accounts"
 msgstr "Anzeige der Zwischensummen für Hauptkonten mit Unterkonten"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:798
+#: ../intl-scm/guile-strings.c:1310
 msgid "Show subtotals"
 msgstr "Zwischensummen anzeigen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:800
+#: ../intl-scm/guile-strings.c:1312
 msgid "Show subtotals for selected parent accounts which have subaccounts"
 msgstr "Zwischensummen für Hauptkonten anzeigen, die Unterkonten haben"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:804
+#: ../intl-scm/guile-strings.c:1316
 msgid "Do not show any subtotals for parent accounts"
 msgstr "Keine Zwischensummen von Hauptkonten anzeigen"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:806
+#: ../intl-scm/guile-strings.c:1318
 msgid "Text book style (experimental)"
 msgstr "Rechnungswesen-Stil (experimentell)"
 
 #. src/report/report-system/options-utilities.scm
-#: ../intl-scm/guile-strings.c:808
+#: ../intl-scm/guile-strings.c:1320
 msgid ""
 "Show parent account subtotals, indented per accounting text book practice "
 "(experimental)"
@@ -16004,234 +16708,301 @@
 "Stil (experimentell)"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:810
+#: ../intl-scm/guile-strings.c:1322
 msgid "_Assets & Liabilities"
 msgstr "_Aktiva & Passiva"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:812
+#: ../intl-scm/guile-strings.c:1324
 msgid "_Income & Expense"
 msgstr "_Erträge & Aufwendungen"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:814
+#: ../intl-scm/guile-strings.c:1326
 msgid "_Taxes"
 msgstr "_Steuern"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:816
+#: ../intl-scm/guile-strings.c:1328
 msgid "_Sample & Custom"
 msgstr "Bei_spiel & Benutzerdefiniert"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:818
+#: ../intl-scm/guile-strings.c:1330
 msgid "_Custom"
 msgstr "Benutzer_definiert"
 
 #. src/report/report-system/report.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:824 ../intl-scm/guile-strings.c:2172
-#: ../intl-scm/guile-strings.c:2176 ../intl-scm/guile-strings.c:2180
-#: ../intl-scm/guile-strings.c:2184 ../intl-scm/guile-strings.c:2188
-#: ../intl-scm/guile-strings.c:2192 ../intl-scm/guile-strings.c:2196
-#: ../intl-scm/guile-strings.c:2200 ../intl-scm/guile-strings.c:2204
-#: ../intl-scm/guile-strings.c:2208 ../intl-scm/guile-strings.c:2212
-#: ../intl-scm/guile-strings.c:2216 ../intl-scm/guile-strings.c:2220
-#: ../intl-scm/guile-strings.c:2224 ../intl-scm/guile-strings.c:2228
-#: ../intl-scm/guile-strings.c:2542 ../intl-scm/guile-strings.c:2584
-#: ../intl-scm/guile-strings.c:2590 ../intl-scm/guile-strings.c:2596
-#: ../intl-scm/guile-strings.c:2602 ../intl-scm/guile-strings.c:2608
-#: ../intl-scm/guile-strings.c:2614 ../intl-scm/guile-strings.c:2620
-#: ../intl-scm/guile-strings.c:2634 ../intl-scm/guile-strings.c:2640
-#: ../intl-scm/guile-strings.c:3264 ../intl-scm/guile-strings.c:3270
-#: ../intl-scm/guile-strings.c:3276 ../intl-scm/guile-strings.c:3282
-#: ../intl-scm/guile-strings.c:3288 ../intl-scm/guile-strings.c:3294
-#: ../intl-scm/guile-strings.c:3300 ../intl-scm/guile-strings.c:3306
-#: ../intl-scm/guile-strings.c:3312 ../intl-scm/guile-strings.c:3318
-#: ../intl-scm/guile-strings.c:3324 ../intl-scm/guile-strings.c:3332
-#: ../intl-scm/guile-strings.c:3338 ../intl-scm/guile-strings.c:3582
-#: ../intl-scm/guile-strings.c:3588 ../intl-scm/guile-strings.c:3594
-#: ../intl-scm/guile-strings.c:3600 ../intl-scm/guile-strings.c:3606
-#: ../intl-scm/guile-strings.c:3612 ../intl-scm/guile-strings.c:3618
-#: ../intl-scm/guile-strings.c:3624 ../intl-scm/guile-strings.c:3630
-#: ../intl-scm/guile-strings.c:3636 ../intl-scm/guile-strings.c:3642
-#: ../intl-scm/guile-strings.c:3648 ../intl-scm/guile-strings.c:3840
-#: ../intl-scm/guile-strings.c:3846 ../intl-scm/guile-strings.c:3852
-#: ../intl-scm/guile-strings.c:3858 ../intl-scm/guile-strings.c:3864
-#: ../intl-scm/guile-strings.c:3870 ../intl-scm/guile-strings.c:3876
-#: ../intl-scm/guile-strings.c:3882 ../intl-scm/guile-strings.c:3890
+#: ../intl-scm/guile-strings.c:1336 ../intl-scm/guile-strings.c:3506
+#: ../intl-scm/guile-strings.c:3510 ../intl-scm/guile-strings.c:3514
+#: ../intl-scm/guile-strings.c:3518 ../intl-scm/guile-strings.c:3522
+#: ../intl-scm/guile-strings.c:3526 ../intl-scm/guile-strings.c:3530
+#: ../intl-scm/guile-strings.c:3534 ../intl-scm/guile-strings.c:3538
+#: ../intl-scm/guile-strings.c:3542 ../intl-scm/guile-strings.c:3546
+#: ../intl-scm/guile-strings.c:3550 ../intl-scm/guile-strings.c:3554
+#: ../intl-scm/guile-strings.c:3558 ../intl-scm/guile-strings.c:3562
+#: ../intl-scm/guile-strings.c:3876 ../intl-scm/guile-strings.c:3918
+#: ../intl-scm/guile-strings.c:3924 ../intl-scm/guile-strings.c:3930
+#: ../intl-scm/guile-strings.c:3936 ../intl-scm/guile-strings.c:3942
+#: ../intl-scm/guile-strings.c:3948 ../intl-scm/guile-strings.c:3954
+#: ../intl-scm/guile-strings.c:3968 ../intl-scm/guile-strings.c:3974
+#: ../intl-scm/guile-strings.c:4656 ../intl-scm/guile-strings.c:4660
+#: ../intl-scm/guile-strings.c:4664 ../intl-scm/guile-strings.c:4668
+#: ../intl-scm/guile-strings.c:4672 ../intl-scm/guile-strings.c:4676
+#: ../intl-scm/guile-strings.c:4680 ../intl-scm/guile-strings.c:4684
+#: ../intl-scm/guile-strings.c:4688 ../intl-scm/guile-strings.c:4692
+#: ../intl-scm/guile-strings.c:4696 ../intl-scm/guile-strings.c:4700
+#: ../intl-scm/guile-strings.c:4704 ../intl-scm/guile-strings.c:4708
+#: ../intl-scm/guile-strings.c:4712 ../intl-scm/guile-strings.c:5026
+#: ../intl-scm/guile-strings.c:5068 ../intl-scm/guile-strings.c:5074
+#: ../intl-scm/guile-strings.c:5080 ../intl-scm/guile-strings.c:5086
+#: ../intl-scm/guile-strings.c:5092 ../intl-scm/guile-strings.c:5098
+#: ../intl-scm/guile-strings.c:5104 ../intl-scm/guile-strings.c:5118
+#: ../intl-scm/guile-strings.c:5124 ../intl-scm/guile-strings.c:5990
+#: ../intl-scm/guile-strings.c:5996 ../intl-scm/guile-strings.c:6002
+#: ../intl-scm/guile-strings.c:6008 ../intl-scm/guile-strings.c:6014
+#: ../intl-scm/guile-strings.c:6020 ../intl-scm/guile-strings.c:6026
+#: ../intl-scm/guile-strings.c:6032 ../intl-scm/guile-strings.c:6038
+#: ../intl-scm/guile-strings.c:6044 ../intl-scm/guile-strings.c:6050
+#: ../intl-scm/guile-strings.c:6058 ../intl-scm/guile-strings.c:6064
+#: ../intl-scm/guile-strings.c:6308 ../intl-scm/guile-strings.c:6314
+#: ../intl-scm/guile-strings.c:6320 ../intl-scm/guile-strings.c:6326
+#: ../intl-scm/guile-strings.c:6332 ../intl-scm/guile-strings.c:6338
+#: ../intl-scm/guile-strings.c:6344 ../intl-scm/guile-strings.c:6350
+#: ../intl-scm/guile-strings.c:6356 ../intl-scm/guile-strings.c:6362
+#: ../intl-scm/guile-strings.c:6368 ../intl-scm/guile-strings.c:6374
+#: ../intl-scm/guile-strings.c:6514 ../intl-scm/guile-strings.c:6520
+#: ../intl-scm/guile-strings.c:6526 ../intl-scm/guile-strings.c:6532
+#: ../intl-scm/guile-strings.c:6538 ../intl-scm/guile-strings.c:6544
+#: ../intl-scm/guile-strings.c:6550 ../intl-scm/guile-strings.c:6556
+#: ../intl-scm/guile-strings.c:6562 ../intl-scm/guile-strings.c:6568
+#: ../intl-scm/guile-strings.c:6574 ../intl-scm/guile-strings.c:6582
+#: ../intl-scm/guile-strings.c:6588 ../intl-scm/guile-strings.c:6832
+#: ../intl-scm/guile-strings.c:6838 ../intl-scm/guile-strings.c:6844
+#: ../intl-scm/guile-strings.c:6850 ../intl-scm/guile-strings.c:6856
+#: ../intl-scm/guile-strings.c:6862 ../intl-scm/guile-strings.c:6868
+#: ../intl-scm/guile-strings.c:6874 ../intl-scm/guile-strings.c:6880
+#: ../intl-scm/guile-strings.c:6886 ../intl-scm/guile-strings.c:6892
+#: ../intl-scm/guile-strings.c:6898 ../intl-scm/guile-strings.c:7092
+#: ../intl-scm/guile-strings.c:7098 ../intl-scm/guile-strings.c:7104
+#: ../intl-scm/guile-strings.c:7110 ../intl-scm/guile-strings.c:7116
+#: ../intl-scm/guile-strings.c:7122 ../intl-scm/guile-strings.c:7128
+#: ../intl-scm/guile-strings.c:7134 ../intl-scm/guile-strings.c:7142
+#: ../intl-scm/guile-strings.c:7332 ../intl-scm/guile-strings.c:7338
+#: ../intl-scm/guile-strings.c:7344 ../intl-scm/guile-strings.c:7350
+#: ../intl-scm/guile-strings.c:7356 ../intl-scm/guile-strings.c:7362
+#: ../intl-scm/guile-strings.c:7368 ../intl-scm/guile-strings.c:7374
+#: ../intl-scm/guile-strings.c:7382
 msgid "Display"
 msgstr "Anzeige"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:826
+#: ../intl-scm/guile-strings.c:1338
 msgid "Report name"
 msgstr "Berichtsname"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:828
+#: ../intl-scm/guile-strings.c:1340
+msgid ""
+"A custom report with this name already exists. Either rename the report to "
+"store it with a different name, or edit your saved-reports file and delete "
+"the section with the following name: "
+msgstr ""
+"Ein benutzerdefinierter Bericht mit diesem Namen existiert bereit.  Entweder "
+"Sie benennen diesen Bericht um, oder Sie editieren die Datei ~/.gnucash/"
+"saved-reports-2.0 und entfernen den Abschnitt mit folgenden Namen: "
+
+#. src/report/report-system/report.scm
+#: ../intl-scm/guile-strings.c:1342
 msgid "Enter a descriptive name for this report"
 msgstr "Geben Sie einen beschreibenden Namen für diesen Bericht an"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:830 ../intl-scm/guile-strings.c:838
-#: ../intl-scm/guile-strings.c:840
+#: ../intl-scm/guile-strings.c:1344 ../intl-scm/guile-strings.c:1352
+#: ../intl-scm/guile-strings.c:1354
 msgid "Stylesheet"
 msgstr "Stilvorlage"
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:832
+#: ../intl-scm/guile-strings.c:1346
 msgid "Select a stylesheet for the report."
 msgstr "Wählen Sie einen Stil für diesen Bericht."
 
 #. src/report/report-system/report.scm
-#: ../intl-scm/guile-strings.c:836
+#: ../intl-scm/guile-strings.c:1350
 msgid " Stylesheet"
 msgstr " Stilvorlage"
 
 #. src/report/report-system/html-acct-table.scm
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:842 ../intl-scm/guile-strings.c:1438
-#: ../intl-scm/guile-strings.c:1622 ../intl-scm/guile-strings.c:2114
+#: ../intl-scm/guile-strings.c:1356 ../intl-scm/guile-strings.c:2148
+#: ../intl-scm/guile-strings.c:2332 ../intl-scm/guile-strings.c:2772
+#: ../intl-scm/guile-strings.c:2956 ../intl-scm/guile-strings.c:3448
+#: ../intl-scm/guile-strings.c:4598
 msgid "Closing Entries"
 msgstr "Abschlussbuchungen"
 
 #. src/report/report-system/html-acct-table.scm
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:844 ../intl-scm/guile-strings.c:1436
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:1358 ../intl-scm/guile-strings.c:2146
+#: ../intl-scm/guile-strings.c:2770
 msgid "Adjusting Entries"
 msgstr "Anpassungsbuchungen"
 
 #. src/report/report-system/report-utilities.scm
 #. src/report/standard-reports/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:854 ../intl-scm/guile-strings.c:1244
-#: ../intl-scm/guile-strings.c:1830 ../intl-scm/guile-strings.c:2844
+#: ../intl-scm/guile-strings.c:1368 ../intl-scm/guile-strings.c:1956
+#: ../intl-scm/guile-strings.c:2580 ../intl-scm/guile-strings.c:3164
+#: ../intl-scm/guile-strings.c:4182 ../intl-scm/guile-strings.c:4314
+#: ../intl-scm/guile-strings.c:5332
 msgid "Assets"
 msgstr "Aktiva"
 
 #. src/report/report-system/report-utilities.scm
 #. src/report/standard-reports/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:856 ../intl-scm/guile-strings.c:1246
-#: ../intl-scm/guile-strings.c:1834 ../intl-scm/guile-strings.c:2846
+#: ../intl-scm/guile-strings.c:1370 ../intl-scm/guile-strings.c:1958
+#: ../intl-scm/guile-strings.c:2582 ../intl-scm/guile-strings.c:3168
+#: ../intl-scm/guile-strings.c:4184 ../intl-scm/guile-strings.c:4318
+#: ../intl-scm/guile-strings.c:5334
 msgid "Liabilities"
 msgstr "Passiva"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:858
+#: ../intl-scm/guile-strings.c:1372
 msgid "Stocks"
 msgstr "Aktienkonten"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:860
+#: ../intl-scm/guile-strings.c:1374
 msgid "Mutual Funds"
 msgstr "Investmentfonds"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:862
+#: ../intl-scm/guile-strings.c:1376
 msgid "Currencies"
 msgstr "Währungen"
 
 #. src/report/report-system/report-utilities.scm
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:866 ../intl-scm/guile-strings.c:1634
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:1380 ../intl-scm/guile-strings.c:2344
+#: ../intl-scm/guile-strings.c:2968
 msgid "Expenses"
 msgstr "Aufwendungen"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:868
+#: ../intl-scm/guile-strings.c:1382
 msgid "Equities"
 msgstr "Eigenkapital"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:870
+#: ../intl-scm/guile-strings.c:1384
 msgid "Checking"
 msgstr "Girokonto"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:872
+#: ../intl-scm/guile-strings.c:1386
 msgid "Savings"
 msgstr "Sparkonten"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:874
+#: ../intl-scm/guile-strings.c:1388
 msgid "Money Market"
 msgstr "Geldmarktfond"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:876
+#: ../intl-scm/guile-strings.c:1390
 msgid "Accounts Receivable"
 msgstr "Forderungen Konten"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:878
+#: ../intl-scm/guile-strings.c:1392
 msgid "Accounts Payable"
 msgstr "Verbindlichkeiten Konten"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:880
+#: ../intl-scm/guile-strings.c:1394
 msgid "Credit Lines"
 msgstr "Kreditrahmen"
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:882
+#: ../intl-scm/guile-strings.c:1396
 #, c-format
 msgid "Building '%s' report ..."
 msgstr "Bericht '%s' berechnen..."
 
 #. src/report/report-system/report-utilities.scm
-#: ../intl-scm/guile-strings.c:884
+#: ../intl-scm/guile-strings.c:1398
 #, c-format
 msgid "Rendering '%s' report ..."
 msgstr "Bericht '%s' erstellen..."
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:888
+#: ../intl-scm/guile-strings.c:1402
 msgid "Account name"
 msgstr "Kontobezeichnung"
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:892
+#: ../intl-scm/guile-strings.c:1406
 msgid "Exchange rate"
 msgstr "Wechselkurs"
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:894
+#: ../intl-scm/guile-strings.c:1408
 msgid "Exchange rates"
 msgstr "Wechselkurse"
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:898
+#: ../intl-scm/guile-strings.c:1410
 msgid "This report requires you to specify certain report options."
 msgstr "Für diesen Bericht müssen einige Optionen ausgewählt werden."
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:902
+#: ../intl-scm/guile-strings.c:1414
 msgid "No accounts selected"
 msgstr "Keine Konten ausgewählt"
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:904
+#: ../intl-scm/guile-strings.c:1416
 msgid "This report requires accounts to be selected."
 msgstr "Für diesen Bericht müssen Konten ausgewählt werden."
 
 #. src/report/report-system/html-utilities.scm
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:908 ../intl-scm/guile-strings.c:1190
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1420 ../intl-scm/guile-strings.c:1902
+#: ../intl-scm/guile-strings.c:2526
 msgid "No data"
 msgstr "Keine Daten gefunden"
 
 #. src/report/report-system/html-utilities.scm
-#: ../intl-scm/guile-strings.c:910
+#: ../intl-scm/guile-strings.c:1422
 msgid ""
 "The selected accounts contain no data/transactions (or only zeroes) for the "
 "selected time period"
@@ -16240,276 +17011,337 @@
 "Nullen) für die gewählte Zeitspanne."
 
 #. src/report/report-system/html-style-sheet.scm
-#: ../intl-scm/guile-strings.c:914
+#: ../intl-scm/guile-strings.c:1426
 msgid "Can't save style sheet"
 msgstr "Stilvorlage kann nicht gespeichert werden"
 
 #. src/report/report-gnome/report-gnome.scm
-#: ../intl-scm/guile-strings.c:918
+#. src/report/report-gnome/gnucash/report/report-gnome.scm
+#: ../intl-scm/guile-strings.c:1430 ../intl-scm/guile-strings.c:1440
 msgid "This report has no options."
 msgstr "Dieser Bericht hat keine Optionen."
 
 #. src/report/report-gnome/report-gnome.scm
-#: ../intl-scm/guile-strings.c:922
+#. src/report/report-gnome/gnucash/report/report-gnome.scm
+#: ../intl-scm/guile-strings.c:1434 ../intl-scm/guile-strings.c:1444
 #, c-format
 msgid "Display the %s report"
 msgstr "%s-Bericht anzeigen"
 
 #. src/report/report-gnome/report-gnome.scm
-#: ../intl-scm/guile-strings.c:924
+#. src/report/report-gnome/gnucash/report/report-gnome.scm
+#: ../intl-scm/guile-strings.c:1436 ../intl-scm/guile-strings.c:1446
 msgid "Welcome Sample Report"
 msgstr "Einführungs-Beispielbericht"
 
 #. src/report/report-gnome/report-gnome.scm
-#: ../intl-scm/guile-strings.c:926
+#. src/report/report-gnome/gnucash/report/report-gnome.scm
+#: ../intl-scm/guile-strings.c:1438 ../intl-scm/guile-strings.c:1448
 msgid "Welcome-to-GnuCash report screen"
 msgstr "Eine Demonstration verschiedener Berichte als Begrüßung"
 
 #. src/report/utility-reports/view-column.scm
-#: ../intl-scm/guile-strings.c:930 ../intl-scm/guile-strings.c:936
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../intl-scm/guile-strings.c:1452 ../intl-scm/guile-strings.c:1458
+#: ../intl-scm/guile-strings.c:1474 ../intl-scm/guile-strings.c:1480
 msgid "Number of columns"
 msgstr "Anzahl der Spalten"
 
 #. src/report/utility-reports/view-column.scm
-#: ../intl-scm/guile-strings.c:932
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../intl-scm/guile-strings.c:1454 ../intl-scm/guile-strings.c:1476
 msgid "Number of columns before wrapping to a new row"
 msgstr "Anzahl Spalten, bevor eine neue Zeile begonnen wird"
 
 #. src/report/utility-reports/view-column.scm
-#: ../intl-scm/guile-strings.c:942
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../intl-scm/guile-strings.c:1464 ../intl-scm/guile-strings.c:1486
 msgid "Edit Options"
 msgstr "Optionen"
 
 #. src/report/utility-reports/view-column.scm
-#: ../intl-scm/guile-strings.c:944
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../intl-scm/guile-strings.c:1466 ../intl-scm/guile-strings.c:1488
 msgid "Single Report"
 msgstr "Einzelner Bericht"
 
 #. src/report/utility-reports/view-column.scm
-#: ../intl-scm/guile-strings.c:946
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../intl-scm/guile-strings.c:1468 ../intl-scm/guile-strings.c:1490
 msgid "Multicolumn View"
 msgstr "Mehrspaltige Anzeige"
 
 #. src/report/utility-reports/view-column.scm
-#: ../intl-scm/guile-strings.c:948
+#. src/report/utility-reports/gnucash/report/view-column.scm
+#: ../intl-scm/guile-strings.c:1470 ../intl-scm/guile-strings.c:1492
 msgid "Custom Multicolumn Report"
 msgstr "Benutzerdefiniert Mehrspaltig"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:950 ../intl-scm/guile-strings.c:956
-#: ../intl-scm/guile-strings.c:978 ../intl-scm/guile-strings.c:986
-#: ../intl-scm/guile-strings.c:992 ../intl-scm/guile-strings.c:998
-#: ../intl-scm/guile-strings.c:1004 ../intl-scm/guile-strings.c:1010
-#: ../intl-scm/guile-strings.c:1016 ../intl-scm/guile-strings.c:1022
+#: ../intl-scm/guile-strings.c:1494 ../intl-scm/guile-strings.c:1500
+#: ../intl-scm/guile-strings.c:1522 ../intl-scm/guile-strings.c:1530
+#: ../intl-scm/guile-strings.c:1536 ../intl-scm/guile-strings.c:1542
+#: ../intl-scm/guile-strings.c:1548 ../intl-scm/guile-strings.c:1554
+#: ../intl-scm/guile-strings.c:1560 ../intl-scm/guile-strings.c:1566
+#: ../intl-scm/guile-strings.c:1662 ../intl-scm/guile-strings.c:1668
+#: ../intl-scm/guile-strings.c:1690 ../intl-scm/guile-strings.c:1698
+#: ../intl-scm/guile-strings.c:1704 ../intl-scm/guile-strings.c:1710
+#: ../intl-scm/guile-strings.c:1716 ../intl-scm/guile-strings.c:1722
+#: ../intl-scm/guile-strings.c:1728 ../intl-scm/guile-strings.c:1734
 msgid "Hello, World!"
 msgstr "Hallo Welt!"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:952
+#: ../intl-scm/guile-strings.c:1496 ../intl-scm/guile-strings.c:1664
 msgid "Boolean Option"
 msgstr "Boolsche Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:954
+#: ../intl-scm/guile-strings.c:1498 ../intl-scm/guile-strings.c:1666
 msgid "This is a boolean option."
 msgstr "Dies ist eine boolsche Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:958
+#: ../intl-scm/guile-strings.c:1502 ../intl-scm/guile-strings.c:1670
 msgid "Multi Choice Option"
 msgstr "Multi-Auswahl"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:960
+#: ../intl-scm/guile-strings.c:1504 ../intl-scm/guile-strings.c:1672
 msgid "This is a multi choice option."
 msgstr "Dies ist eine Multi-Auswahl"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:962
+#: ../intl-scm/guile-strings.c:1506 ../intl-scm/guile-strings.c:1674
 msgid "First Option"
 msgstr "Erste Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:964
+#: ../intl-scm/guile-strings.c:1508 ../intl-scm/guile-strings.c:1676
 msgid "Help for first option"
 msgstr "Hilfe für die erste Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:966
+#: ../intl-scm/guile-strings.c:1510 ../intl-scm/guile-strings.c:1678
 msgid "Second Option"
 msgstr "Zweite Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:968
+#: ../intl-scm/guile-strings.c:1512 ../intl-scm/guile-strings.c:1680
 msgid "Help for second option"
 msgstr "Hilfe für die zweite Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:970
+#: ../intl-scm/guile-strings.c:1514 ../intl-scm/guile-strings.c:1682
 msgid "Third Option"
 msgstr "Dritte Sortier-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:972
+#: ../intl-scm/guile-strings.c:1516 ../intl-scm/guile-strings.c:1684
 msgid "Help for third option"
 msgstr "Hilfe für die dritte Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:974
+#: ../intl-scm/guile-strings.c:1518 ../intl-scm/guile-strings.c:1686
 msgid "Fourth Options"
 msgstr "Vierte Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:976
+#: ../intl-scm/guile-strings.c:1520 ../intl-scm/guile-strings.c:1688
 msgid "The fourth option rules!"
 msgstr "Die vierte Option übertrifft alle!"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:980
+#: ../intl-scm/guile-strings.c:1524 ../intl-scm/guile-strings.c:1692
 msgid "String Option"
 msgstr "String Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:982
+#: ../intl-scm/guile-strings.c:1526 ../intl-scm/guile-strings.c:1694
 msgid "This is a string option"
 msgstr "Dies ist eine String-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:984 ../intl-scm/guile-strings.c:1058
-#: ../intl-scm/guile-strings.c:1104
+#: ../intl-scm/guile-strings.c:1528 ../intl-scm/guile-strings.c:1602
+#: ../intl-scm/guile-strings.c:1648 ../intl-scm/guile-strings.c:1696
+#: ../intl-scm/guile-strings.c:1770 ../intl-scm/guile-strings.c:1816
 msgid "Hello, World"
 msgstr "Hallo Welt"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:988
+#: ../intl-scm/guile-strings.c:1532 ../intl-scm/guile-strings.c:1700
 msgid "Just a Date Option"
 msgstr "Nur eine Datums-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:990
+#: ../intl-scm/guile-strings.c:1534 ../intl-scm/guile-strings.c:1702
 msgid "This is a date option"
 msgstr "Dies ist eine Datums-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:994
+#: ../intl-scm/guile-strings.c:1538 ../intl-scm/guile-strings.c:1706
 msgid "Time and Date Option"
 msgstr "Zeit und Datums Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:996
+#: ../intl-scm/guile-strings.c:1540 ../intl-scm/guile-strings.c:1708
 msgid "This is a date option with time"
 msgstr "Das ist eine Datums-Option mit Einbeziehung der Zeit"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1000
+#: ../intl-scm/guile-strings.c:1544 ../intl-scm/guile-strings.c:1712
 msgid "Combo Date Option"
 msgstr "Kombo-Datums Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1002
+#: ../intl-scm/guile-strings.c:1546 ../intl-scm/guile-strings.c:1714
 msgid "This is a combination date option"
 msgstr "Dies ist eine Kombinations-Datums-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1006
+#: ../intl-scm/guile-strings.c:1550 ../intl-scm/guile-strings.c:1718
 msgid "Relative Date Option"
 msgstr "Relative Datums Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1008
+#: ../intl-scm/guile-strings.c:1552 ../intl-scm/guile-strings.c:1720
 msgid "This is a relative date option"
 msgstr "Dies ist eine relative Datums-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1012
+#: ../intl-scm/guile-strings.c:1556 ../intl-scm/guile-strings.c:1724
 msgid "Number Option"
 msgstr "Zahlenoptionen"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1014
+#: ../intl-scm/guile-strings.c:1558 ../intl-scm/guile-strings.c:1726
 msgid "This is a number option."
 msgstr "Dies ist eine Zahlen Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1020 ../intl-scm/guile-strings.c:1026
+#: ../intl-scm/guile-strings.c:1564 ../intl-scm/guile-strings.c:1570
+#: ../intl-scm/guile-strings.c:1732 ../intl-scm/guile-strings.c:1738
 msgid "This is a color option"
 msgstr "Farbauswahl"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1028 ../intl-scm/guile-strings.c:1034
+#: ../intl-scm/guile-strings.c:1572 ../intl-scm/guile-strings.c:1578
+#: ../intl-scm/guile-strings.c:1740 ../intl-scm/guile-strings.c:1746
 msgid "Hello Again"
 msgstr "Hallo mal wieder.."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1030
+#: ../intl-scm/guile-strings.c:1574 ../intl-scm/guile-strings.c:1742
 msgid "An account list option"
 msgstr "Eine Kontenlisten-Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1032
+#: ../intl-scm/guile-strings.c:1576 ../intl-scm/guile-strings.c:1744
 msgid "This is an account list option"
 msgstr "Dies ist eine Kontoaufzählungsoption"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1036
+#: ../intl-scm/guile-strings.c:1580 ../intl-scm/guile-strings.c:1748
 msgid "A list option"
 msgstr "Eine Auflistungsoption"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1038
+#: ../intl-scm/guile-strings.c:1582 ../intl-scm/guile-strings.c:1750
 msgid "This is a list option"
 msgstr "Dies ist eine Aufzählungsoption"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1040
+#: ../intl-scm/guile-strings.c:1584 ../intl-scm/guile-strings.c:1752
 msgid "The Good"
 msgstr "Das Gute"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1042
+#: ../intl-scm/guile-strings.c:1586 ../intl-scm/guile-strings.c:1754
 msgid "Good option"
 msgstr "Gute Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1044
+#: ../intl-scm/guile-strings.c:1588 ../intl-scm/guile-strings.c:1756
 msgid "The Bad"
 msgstr "Das Schlechte"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1046
+#: ../intl-scm/guile-strings.c:1590 ../intl-scm/guile-strings.c:1758
 msgid "Bad option"
 msgstr "Falsche Auswahl"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1048
+#: ../intl-scm/guile-strings.c:1592 ../intl-scm/guile-strings.c:1760
 msgid "The Ugly"
 msgstr "Das Hässliche"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1050
+#: ../intl-scm/guile-strings.c:1594 ../intl-scm/guile-strings.c:1762
 msgid "Ugly option"
 msgstr "Hässliche Option"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1052
+#: ../intl-scm/guile-strings.c:1596 ../intl-scm/guile-strings.c:1764
 msgid "Testing"
 msgstr "Test"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1054
+#: ../intl-scm/guile-strings.c:1598 ../intl-scm/guile-strings.c:1766
 msgid "Crash the report"
 msgstr "Verwerfe den Bericht"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1056
+#: ../intl-scm/guile-strings.c:1600 ../intl-scm/guile-strings.c:1768
 msgid ""
 "This is for testing. Your reports probably shouldn't have an option like "
 "this."
 msgstr ""
 "Diese Option ist nur zum Testen, Ihre Berichte sollten sowas nicht haben.."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1060
+#: ../intl-scm/guile-strings.c:1604 ../intl-scm/guile-strings.c:1772
 msgid ""
 "This is a sample GnuCash report. See the guile (scheme) source code in the "
 "scm/report directory for details on writing your own reports, or extending "
@@ -16519,8 +17351,9 @@
 "Quelltext im scm/report Verzeichnis ansehen, um mehr darüber zu erfahren, "
 "wie Sie ihre eigenen Berichte verfassen oder die bestehenden abändern können."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1062
+#: ../intl-scm/guile-strings.c:1606 ../intl-scm/guile-strings.c:1774
 #, c-format
 msgid ""
 "For help on writing reports, or to contribute your brand new, totally cool "
@@ -16529,140 +17362,166 @@
 "Um Hilfe beim Schreiben von Berichten zu bekommen oder Ihren eigenen, "
 "brandneuen Bericht uns zu senden, wenden Sie sich an die Mailingliste %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1064
+#: ../intl-scm/guile-strings.c:1608 ../intl-scm/guile-strings.c:1776
 #, c-format
 msgid "For details on subscribing to that list, see %s."
 msgstr "Einzelheiten zum Abonnieren der Liste siehe %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1066
+#: ../intl-scm/guile-strings.c:1610 ../intl-scm/guile-strings.c:1778
 #, c-format
 msgid "You can learn more about writing scheme using this %s."
 msgstr "Mehr über die Programmiersprache Scheme unter %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1068
+#: ../intl-scm/guile-strings.c:1612 ../intl-scm/guile-strings.c:1780
 msgid "online book"
 msgstr "Onlinebuch"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1070
+#: ../intl-scm/guile-strings.c:1614 ../intl-scm/guile-strings.c:1782
 #, c-format
 msgid "The current time is %s."
 msgstr "Es ist jetzt %s Uhr."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1072
+#: ../intl-scm/guile-strings.c:1616 ../intl-scm/guile-strings.c:1784
 #, c-format
 msgid "The boolean option is %s."
 msgstr "Diese boolsche Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1074
+#: ../intl-scm/guile-strings.c:1618 ../intl-scm/guile-strings.c:1786
 msgid "true"
 msgstr "wahr"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1076
+#: ../intl-scm/guile-strings.c:1620 ../intl-scm/guile-strings.c:1788
 msgid "false"
 msgstr "falsch"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1078
+#: ../intl-scm/guile-strings.c:1622 ../intl-scm/guile-strings.c:1790
 #, c-format
 msgid "The multi-choice option is %s."
 msgstr "Die Multi-Auswahl ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1080
+#: ../intl-scm/guile-strings.c:1624 ../intl-scm/guile-strings.c:1792
 #, c-format
 msgid "The string option is %s."
 msgstr "Die String-Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1082
+#: ../intl-scm/guile-strings.c:1626 ../intl-scm/guile-strings.c:1794
 #, c-format
 msgid "The date option is %s."
 msgstr "Die Datums-Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1084
+#: ../intl-scm/guile-strings.c:1628 ../intl-scm/guile-strings.c:1796
 #, c-format
 msgid "The date and time option is %s."
 msgstr "Die Datums und Zeit-Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1086
+#: ../intl-scm/guile-strings.c:1630 ../intl-scm/guile-strings.c:1798
 #, c-format
 msgid "The relative date option is %s."
 msgstr "Die relative Datums-Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1088
+#: ../intl-scm/guile-strings.c:1632 ../intl-scm/guile-strings.c:1800
 #, c-format
 msgid "The combination date option is %s."
 msgstr "Die Kombinations-Datums-Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1090
+#: ../intl-scm/guile-strings.c:1634 ../intl-scm/guile-strings.c:1802
 #, c-format
 msgid "The number option is %s."
 msgstr "Die Zahlen-Option ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1092
+#: ../intl-scm/guile-strings.c:1636 ../intl-scm/guile-strings.c:1804
 #, c-format
 msgid "The number option formatted as currency is %s."
 msgstr "Die Nummernoption, die als Währung formatiert ist, ist %s."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1094
+#: ../intl-scm/guile-strings.c:1638 ../intl-scm/guile-strings.c:1806
 msgid "Items you selected:"
 msgstr "Ausgewählte Punkte:"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1096
+#: ../intl-scm/guile-strings.c:1640 ../intl-scm/guile-strings.c:1808
 msgid "List items selected"
 msgstr "Ausgewählte Listeneinträge:"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1098
+#: ../intl-scm/guile-strings.c:1642 ../intl-scm/guile-strings.c:1810
 msgid "(You selected no list items.)"
 msgstr "Sie haben keine Werte aus der Liste gewählt."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1100
+#: ../intl-scm/guile-strings.c:1644 ../intl-scm/guile-strings.c:1812
 msgid "You have selected no accounts."
 msgstr "Sie haben kein Konto ausgewählt"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1102
+#: ../intl-scm/guile-strings.c:1646 ../intl-scm/guile-strings.c:1814
 msgid "Have a nice day!"
 msgstr "Einen schönen Tag noch."
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1106
+#: ../intl-scm/guile-strings.c:1650 ../intl-scm/guile-strings.c:1818
 msgid "Sample Report with Examples"
 msgstr "Beispielbericht"
 
+#. src/report/utility-reports/gnucash/report/hello-world.scm
 #. src/report/utility-reports/hello-world.scm
-#: ../intl-scm/guile-strings.c:1108
+#: ../intl-scm/guile-strings.c:1652 ../intl-scm/guile-strings.c:1820
 msgid "A sample report with examples."
 msgstr "Ein Beispielbericht."
 
+#. src/report/utility-reports/gnucash/report/welcome-to-gnucash.scm
 #. src/report/utility-reports/welcome-to-gnucash.scm
-#: ../intl-scm/guile-strings.c:1110 ../intl-scm/guile-strings.c:1116
+#: ../intl-scm/guile-strings.c:1654 ../intl-scm/guile-strings.c:1660
+#: ../intl-scm/guile-strings.c:1822 ../intl-scm/guile-strings.c:1828
 msgid "Welcome to GnuCash"
 msgstr "Willkommen zu GnuCash"
 
+#. src/report/utility-reports/gnucash/report/welcome-to-gnucash.scm
 #. src/report/utility-reports/welcome-to-gnucash.scm
-#: ../intl-scm/guile-strings.c:1112
+#: ../intl-scm/guile-strings.c:1656 ../intl-scm/guile-strings.c:1824
 msgid "Welcome to GnuCash 2.0!"
 msgstr "Willkommen zu GnuCash 2.0"
 
+#. src/report/utility-reports/gnucash/report/welcome-to-gnucash.scm
 #. src/report/utility-reports/welcome-to-gnucash.scm
-#: ../intl-scm/guile-strings.c:1114
+#: ../intl-scm/guile-strings.c:1658 ../intl-scm/guile-strings.c:1826
 msgid "GnuCash 2.0 has lots of nice features. Here are a few."
 msgstr ""
 "GnuCash 2.0 hat viele neue Funktionen. Hier werden einige Beispiele gegeben."
@@ -16671,19 +17530,36 @@
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/cash-flow.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:1118 ../intl-scm/guile-strings.c:1204
-#: ../intl-scm/guile-strings.c:1296 ../intl-scm/guile-strings.c:1666
-#: ../intl-scm/guile-strings.c:2266 ../intl-scm/guile-strings.c:2688
-#: ../intl-scm/guile-strings.c:2774 ../intl-scm/guile-strings.c:2848
-#: ../intl-scm/guile-strings.c:2892 ../intl-scm/guile-strings.c:2982
-#: ../intl-scm/guile-strings.c:3432 ../intl-scm/guile-strings.c:3468
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:1830 ../intl-scm/guile-strings.c:1916
+#: ../intl-scm/guile-strings.c:2006 ../intl-scm/guile-strings.c:2376
+#: ../intl-scm/guile-strings.c:2454 ../intl-scm/guile-strings.c:2540
+#: ../intl-scm/guile-strings.c:2630 ../intl-scm/guile-strings.c:3000
+#: ../intl-scm/guile-strings.c:3600 ../intl-scm/guile-strings.c:4026
+#: ../intl-scm/guile-strings.c:4112 ../intl-scm/guile-strings.c:4186
+#: ../intl-scm/guile-strings.c:4750 ../intl-scm/guile-strings.c:5176
+#: ../intl-scm/guile-strings.c:5262 ../intl-scm/guile-strings.c:5336
+#: ../intl-scm/guile-strings.c:5380 ../intl-scm/guile-strings.c:5470
+#: ../intl-scm/guile-strings.c:5560 ../intl-scm/guile-strings.c:5650
+#: ../intl-scm/guile-strings.c:6158 ../intl-scm/guile-strings.c:6194
+#: ../intl-scm/guile-strings.c:6682 ../intl-scm/guile-strings.c:6718
 msgid "From"
 msgstr "Von"
 
@@ -16691,30 +17567,55 @@
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/cash-flow.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:1120 ../intl-scm/guile-strings.c:1206
-#: ../intl-scm/guile-strings.c:1298 ../intl-scm/guile-strings.c:1668
-#: ../intl-scm/guile-strings.c:2268 ../intl-scm/guile-strings.c:2690
-#: ../intl-scm/guile-strings.c:2776 ../intl-scm/guile-strings.c:2850
-#: ../intl-scm/guile-strings.c:2894 ../intl-scm/guile-strings.c:2984
-#: ../intl-scm/guile-strings.c:3434 ../intl-scm/guile-strings.c:3470
-#: ../intl-scm/guile-strings.c:3702 ../intl-scm/guile-strings.c:3758
+#: ../intl-scm/guile-strings.c:1832 ../intl-scm/guile-strings.c:1918
+#: ../intl-scm/guile-strings.c:2008 ../intl-scm/guile-strings.c:2378
+#: ../intl-scm/guile-strings.c:2456 ../intl-scm/guile-strings.c:2542
+#: ../intl-scm/guile-strings.c:2632 ../intl-scm/guile-strings.c:3002
+#: ../intl-scm/guile-strings.c:3602 ../intl-scm/guile-strings.c:4028
+#: ../intl-scm/guile-strings.c:4114 ../intl-scm/guile-strings.c:4188
+#: ../intl-scm/guile-strings.c:4752 ../intl-scm/guile-strings.c:5178
+#: ../intl-scm/guile-strings.c:5264 ../intl-scm/guile-strings.c:5338
+#: ../intl-scm/guile-strings.c:5382 ../intl-scm/guile-strings.c:5472
+#: ../intl-scm/guile-strings.c:5562 ../intl-scm/guile-strings.c:5652
+#: ../intl-scm/guile-strings.c:6160 ../intl-scm/guile-strings.c:6196
+#: ../intl-scm/guile-strings.c:6684 ../intl-scm/guile-strings.c:6720
+#: ../intl-scm/guile-strings.c:6952 ../intl-scm/guile-strings.c:7008
+#: ../intl-scm/guile-strings.c:7192 ../intl-scm/guile-strings.c:7248
 msgid "To"
 msgstr "Bis"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:1122 ../intl-scm/guile-strings.c:1208
-#: ../intl-scm/guile-strings.c:1670 ../intl-scm/guile-strings.c:2692
+#: ../intl-scm/guile-strings.c:1834 ../intl-scm/guile-strings.c:1920
+#: ../intl-scm/guile-strings.c:2380 ../intl-scm/guile-strings.c:2458
+#: ../intl-scm/guile-strings.c:2544 ../intl-scm/guile-strings.c:3004
+#: ../intl-scm/guile-strings.c:4030 ../intl-scm/guile-strings.c:5180
 msgid "Step Size"
 msgstr "Schrittgrösse"
 
@@ -16724,25 +17625,45 @@
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:1126 ../intl-scm/guile-strings.c:1210
-#: ../intl-scm/guile-strings.c:1306 ../intl-scm/guile-strings.c:1408
-#: ../intl-scm/guile-strings.c:1596 ../intl-scm/guile-strings.c:1672
-#: ../intl-scm/guile-strings.c:1818 ../intl-scm/guile-strings.c:1918
-#: ../intl-scm/guile-strings.c:2084 ../intl-scm/guile-strings.c:2694
-#: ../intl-scm/guile-strings.c:2778 ../intl-scm/guile-strings.c:2852
-#: ../intl-scm/guile-strings.c:3708
+#: ../intl-scm/guile-strings.c:1838 ../intl-scm/guile-strings.c:1922
+#: ../intl-scm/guile-strings.c:2016 ../intl-scm/guile-strings.c:2118
+#: ../intl-scm/guile-strings.c:2306 ../intl-scm/guile-strings.c:2382
+#: ../intl-scm/guile-strings.c:2462 ../intl-scm/guile-strings.c:2546
+#: ../intl-scm/guile-strings.c:2640 ../intl-scm/guile-strings.c:2742
+#: ../intl-scm/guile-strings.c:2930 ../intl-scm/guile-strings.c:3006
+#: ../intl-scm/guile-strings.c:3152 ../intl-scm/guile-strings.c:3252
+#: ../intl-scm/guile-strings.c:3418 ../intl-scm/guile-strings.c:4032
+#: ../intl-scm/guile-strings.c:4116 ../intl-scm/guile-strings.c:4190
+#: ../intl-scm/guile-strings.c:4302 ../intl-scm/guile-strings.c:4402
+#: ../intl-scm/guile-strings.c:4568 ../intl-scm/guile-strings.c:5182
+#: ../intl-scm/guile-strings.c:5266 ../intl-scm/guile-strings.c:5340
+#: ../intl-scm/guile-strings.c:6958 ../intl-scm/guile-strings.c:7198
 msgid "Report's currency"
 msgstr "Währung des Berichts"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1128
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1840 ../intl-scm/guile-strings.c:2464
 msgid "Price of Commodity"
 msgstr "Preis der Währung/Aktie"
 
@@ -16753,6 +17674,21 @@
 #. src/report/standard-reports/income-statement.scm
 #. src/report/standard-reports/category-barchart.scm
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/advanced-portfolio.scm
@@ -16761,102 +17697,146 @@
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:1130 ../intl-scm/guile-strings.c:1212
-#: ../intl-scm/guile-strings.c:1308 ../intl-scm/guile-strings.c:1410
-#: ../intl-scm/guile-strings.c:1598 ../intl-scm/guile-strings.c:1674
-#: ../intl-scm/guile-strings.c:1712 ../intl-scm/guile-strings.c:1820
-#: ../intl-scm/guile-strings.c:1920 ../intl-scm/guile-strings.c:1956
-#: ../intl-scm/guile-strings.c:2086 ../intl-scm/guile-strings.c:2672
-#: ../intl-scm/guile-strings.c:2696 ../intl-scm/guile-strings.c:2780
-#: ../intl-scm/guile-strings.c:2854 ../intl-scm/guile-strings.c:3710
+#: ../intl-scm/guile-strings.c:1842 ../intl-scm/guile-strings.c:1924
+#: ../intl-scm/guile-strings.c:2018 ../intl-scm/guile-strings.c:2120
+#: ../intl-scm/guile-strings.c:2308 ../intl-scm/guile-strings.c:2384
+#: ../intl-scm/guile-strings.c:2422 ../intl-scm/guile-strings.c:2466
+#: ../intl-scm/guile-strings.c:2548 ../intl-scm/guile-strings.c:2642
+#: ../intl-scm/guile-strings.c:2744 ../intl-scm/guile-strings.c:2932
+#: ../intl-scm/guile-strings.c:3008 ../intl-scm/guile-strings.c:3046
+#: ../intl-scm/guile-strings.c:3154 ../intl-scm/guile-strings.c:3254
+#: ../intl-scm/guile-strings.c:3290 ../intl-scm/guile-strings.c:3420
+#: ../intl-scm/guile-strings.c:4006 ../intl-scm/guile-strings.c:4034
+#: ../intl-scm/guile-strings.c:4118 ../intl-scm/guile-strings.c:4192
+#: ../intl-scm/guile-strings.c:4304 ../intl-scm/guile-strings.c:4404
+#: ../intl-scm/guile-strings.c:4440 ../intl-scm/guile-strings.c:4570
+#: ../intl-scm/guile-strings.c:5156 ../intl-scm/guile-strings.c:5184
+#: ../intl-scm/guile-strings.c:5268 ../intl-scm/guile-strings.c:5342
+#: ../intl-scm/guile-strings.c:6960 ../intl-scm/guile-strings.c:7200
 msgid "Price Source"
 msgstr "Preisberechnungsquelle"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1134 ../intl-scm/guile-strings.c:1218
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1846 ../intl-scm/guile-strings.c:1930
+#: ../intl-scm/guile-strings.c:2470 ../intl-scm/guile-strings.c:2554
 msgid "Show Net Profit"
 msgstr "Reingewinn anzeigen"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1136 ../intl-scm/guile-strings.c:1220
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1848 ../intl-scm/guile-strings.c:1932
+#: ../intl-scm/guile-strings.c:2472 ../intl-scm/guile-strings.c:2556
 msgid "Show Asset & Liability bars"
 msgstr "Aktiva und Passiva Balken anzeigen"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1138 ../intl-scm/guile-strings.c:1222
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1850 ../intl-scm/guile-strings.c:1934
+#: ../intl-scm/guile-strings.c:2474 ../intl-scm/guile-strings.c:2558
 msgid "Show Net Worth bars"
 msgstr "Reinvermögen-Balken anzeigen"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1140
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1852 ../intl-scm/guile-strings.c:2476
 msgid "Marker"
 msgstr "Markierung"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1142
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1854 ../intl-scm/guile-strings.c:2478
 msgid "Marker Color"
 msgstr "Markierungsfarbe"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1144 ../intl-scm/guile-strings.c:1224
-#: ../intl-scm/guile-strings.c:1686 ../intl-scm/guile-strings.c:2730
-#: ../intl-scm/guile-strings.c:2758 ../intl-scm/guile-strings.c:2794
-#: ../intl-scm/guile-strings.c:2866
+#: ../intl-scm/guile-strings.c:1856 ../intl-scm/guile-strings.c:1936
+#: ../intl-scm/guile-strings.c:2396 ../intl-scm/guile-strings.c:2480
+#: ../intl-scm/guile-strings.c:2560 ../intl-scm/guile-strings.c:3020
+#: ../intl-scm/guile-strings.c:4068 ../intl-scm/guile-strings.c:4096
+#: ../intl-scm/guile-strings.c:4132 ../intl-scm/guile-strings.c:4204
+#: ../intl-scm/guile-strings.c:5218 ../intl-scm/guile-strings.c:5246
+#: ../intl-scm/guile-strings.c:5282 ../intl-scm/guile-strings.c:5354
 msgid "Plot Width"
 msgstr "Diagrammbreite"
 
 #. src/report/standard-reports/price-scatter.scm
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1146 ../intl-scm/guile-strings.c:1226
-#: ../intl-scm/guile-strings.c:1688 ../intl-scm/guile-strings.c:2732
-#: ../intl-scm/guile-strings.c:2760 ../intl-scm/guile-strings.c:2796
-#: ../intl-scm/guile-strings.c:2868
+#: ../intl-scm/guile-strings.c:1858 ../intl-scm/guile-strings.c:1938
+#: ../intl-scm/guile-strings.c:2398 ../intl-scm/guile-strings.c:2482
+#: ../intl-scm/guile-strings.c:2562 ../intl-scm/guile-strings.c:3022
+#: ../intl-scm/guile-strings.c:4070 ../intl-scm/guile-strings.c:4098
+#: ../intl-scm/guile-strings.c:4134 ../intl-scm/guile-strings.c:4206
+#: ../intl-scm/guile-strings.c:5220 ../intl-scm/guile-strings.c:5248
+#: ../intl-scm/guile-strings.c:5284 ../intl-scm/guile-strings.c:5356
 msgid "Plot Height"
 msgstr "Diagrammhöhe"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1148
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1860 ../intl-scm/guile-strings.c:2484
 msgid "Calculate the price of this commodity."
 msgstr ""
 "Die Währung/Aktie, für die der Preis in diesem Bericht dargestellt werden "
 "soll."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1156
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1868 ../intl-scm/guile-strings.c:2492
 msgid "Actual Transactions"
 msgstr "Tatsächliche Buchungen"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1158
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1870 ../intl-scm/guile-strings.c:2494
 msgid "The instantaneous price of actual currency transactions in the past"
 msgstr ""
 "Der aufgezeichnete Preis von tatsächlichen Buchungen in der Vergangenheit"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1160
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1872 ../intl-scm/guile-strings.c:2496
 msgid "Price Database"
 msgstr "Preis-Editor"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1162
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1874 ../intl-scm/guile-strings.c:2498
 msgid "The recorded prices"
 msgstr "Die explizit eingetragenen Preise"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1164
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1876 ../intl-scm/guile-strings.c:2500
 msgid "Color of the marker"
 msgstr "Farbe der Markierung"
 
@@ -16865,29 +17845,44 @@
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/equity-statement.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1166 ../intl-scm/guile-strings.c:1238
-#: ../intl-scm/guile-strings.c:1442 ../intl-scm/guile-strings.c:1628
-#: ../intl-scm/guile-strings.c:1702 ../intl-scm/guile-strings.c:2120
-#: ../intl-scm/guile-strings.c:2822 ../intl-scm/guile-strings.c:2884
+#: ../intl-scm/guile-strings.c:1878 ../intl-scm/guile-strings.c:1950
+#: ../intl-scm/guile-strings.c:2152 ../intl-scm/guile-strings.c:2338
+#: ../intl-scm/guile-strings.c:2412 ../intl-scm/guile-strings.c:2502
+#: ../intl-scm/guile-strings.c:2574 ../intl-scm/guile-strings.c:2776
+#: ../intl-scm/guile-strings.c:2962 ../intl-scm/guile-strings.c:3036
+#: ../intl-scm/guile-strings.c:3454 ../intl-scm/guile-strings.c:4160
+#: ../intl-scm/guile-strings.c:4222 ../intl-scm/guile-strings.c:4604
+#: ../intl-scm/guile-strings.c:5310 ../intl-scm/guile-strings.c:5372
 #, c-format
 msgid "%s to %s"
 msgstr "%s bis %s"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1172
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1884 ../intl-scm/guile-strings.c:2508
 msgid "Double-Weeks"
 msgstr "Zweiwöchentlich"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1178
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1890 ../intl-scm/guile-strings.c:2514
 msgid "All Prices equal"
 msgstr "Alle Preise gleich"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1180
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1892 ../intl-scm/guile-strings.c:2516
 msgid ""
 "All the prices found are equal. This would result in a plot with one "
 "straight line. Unfortunately, the plotting tool can't handle that."
@@ -16897,12 +17892,14 @@
 "nicht anzeigen."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1182
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1894 ../intl-scm/guile-strings.c:2518
 msgid "All Prices at the same date"
 msgstr "Alle Preise mit gleichem Datum"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1184
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1896 ../intl-scm/guile-strings.c:2520
 msgid ""
 "All the prices found are from the same date. This would result in a plot "
 "with one straight line. Unfortunately, the plotting tool can't handle that."
@@ -16912,12 +17909,14 @@
 "etwas nicht anzeigen."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1186
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1898 ../intl-scm/guile-strings.c:2522
 msgid "Only one price"
 msgstr "Nur ein Preis gefunden"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1188
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1900 ../intl-scm/guile-strings.c:2524
 msgid ""
 "There was only one single price found for the selected commodities in the "
 "selected time period. This doesn't give a useful plot."
@@ -16926,7 +17925,8 @@
 "Zeitraum gefunden. Dies ergibt kein sinnvolles Diagramm."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1192
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1904 ../intl-scm/guile-strings.c:2528
 msgid ""
 "There is no price information available for the selected commodities in the "
 "selected time period."
@@ -16935,12 +17935,14 @@
 "Zeitraum vorhanden."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1194
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1906 ../intl-scm/guile-strings.c:2530
 msgid "Identical commodities"
 msgstr "Identische Währungen/Aktien"
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1196
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1908 ../intl-scm/guile-strings.c:2532
 msgid ""
 "Your selected commodity and the currency of the report are identical. It "
 "doesn't make sense to show prices for identical commodities."
@@ -16950,330 +17952,470 @@
 "identische Währungen/Aktien anzuzeigen."
 
 #. src/report/standard-reports/price-scatter.scm
-#: ../intl-scm/guile-strings.c:1200
+#. src/report/standard-reports/gnucash/report/price-scatter.scm
+#: ../intl-scm/guile-strings.c:1912 ../intl-scm/guile-strings.c:2536
 msgid "Price Scatterplot"
 msgstr "Preisdiagramm"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1202
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1914 ../intl-scm/guile-strings.c:2538
 msgid "Income/Expense Chart"
 msgstr "Erträge/Aufwendungen Diagramm"
 
 #. src/report/standard-reports/net-barchart.scm
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1228 ../intl-scm/guile-strings.c:1692
-#: ../intl-scm/guile-strings.c:2802 ../intl-scm/guile-strings.c:2872
+#: ../intl-scm/guile-strings.c:1940 ../intl-scm/guile-strings.c:2402
+#: ../intl-scm/guile-strings.c:2564 ../intl-scm/guile-strings.c:3026
+#: ../intl-scm/guile-strings.c:4140 ../intl-scm/guile-strings.c:4210
+#: ../intl-scm/guile-strings.c:5290 ../intl-scm/guile-strings.c:5360
 msgid "Report on these accounts, if chosen account level allows."
 msgstr ""
 "Diese Konten anzeigen, solange die Verschachtelungstiefe eingehalten wird."
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1230
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1942 ../intl-scm/guile-strings.c:2566
 msgid "Show Income and Expenses?"
 msgstr "Erträge/Aufwendungen anzeigen"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1232
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1944 ../intl-scm/guile-strings.c:2568
 msgid "Show the Asset and the Liability bars?"
 msgstr "Balken für Aktiva und Passiva anzeigen?"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1234
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1946 ../intl-scm/guile-strings.c:2570
 msgid "Show the net profit?"
 msgstr "Den Reingewinn anzeigen?"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1236
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1948 ../intl-scm/guile-strings.c:2572
 msgid "Show a Net Worth bar?"
 msgstr "Reinvermögen anzeigen?"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1248
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1960 ../intl-scm/guile-strings.c:2584
 msgid "Net Profit"
 msgstr "Reingewinn"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1250
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1962 ../intl-scm/guile-strings.c:2586
 msgid "Net Worth"
 msgstr "Reinvermögen"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1252
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1964 ../intl-scm/guile-strings.c:2588
 msgid "Income Chart"
 msgstr "Erträge Diagramm"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1254
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1966 ../intl-scm/guile-strings.c:2590
 msgid "Asset Chart"
 msgstr "Aktiva Diagramm"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1256
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1968 ../intl-scm/guile-strings.c:2592
 msgid "Expense Chart"
 msgstr "Aufwendungen Diagramm"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1258
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1970 ../intl-scm/guile-strings.c:2594
 msgid "Liability Chart"
 msgstr "Passiva Diagramm"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1260
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1972 ../intl-scm/guile-strings.c:2596
 msgid "Net Worth Barchart"
 msgstr "Reinvermögen Balkendiagramm"
 
 #. src/report/standard-reports/net-barchart.scm
-#: ../intl-scm/guile-strings.c:1262
+#. src/report/standard-reports/gnucash/report/net-barchart.scm
+#: ../intl-scm/guile-strings.c:1974 ../intl-scm/guile-strings.c:2598
 msgid "Income & Expense Chart"
 msgstr "Erträge/Aufwendungen Diagramm"
 
 #. src/report/standard-reports/general-journal.scm
-#: ../intl-scm/guile-strings.c:1264 ../intl-scm/guile-strings.c:1274
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#: ../intl-scm/guile-strings.c:1976 ../intl-scm/guile-strings.c:2600
 msgid "General Journal"
 msgstr "Hauptbuch Journal"
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:1290 ../intl-scm/guile-strings.c:1504
-#: ../intl-scm/guile-strings.c:2210 ../intl-scm/guile-strings.c:2480
-#: ../intl-scm/guile-strings.c:2636
+#: ../intl-scm/guile-strings.c:2000 ../intl-scm/guile-strings.c:2214
+#: ../intl-scm/guile-strings.c:2624 ../intl-scm/guile-strings.c:2838
+#: ../intl-scm/guile-strings.c:3544 ../intl-scm/guile-strings.c:3814
+#: ../intl-scm/guile-strings.c:3970 ../intl-scm/guile-strings.c:4694
+#: ../intl-scm/guile-strings.c:4964 ../intl-scm/guile-strings.c:5120
 msgid "Running Balance"
 msgstr "Laufender Saldo"
 
 #. src/report/standard-reports/general-journal.scm
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-journal.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:1292 ../intl-scm/guile-strings.c:1506
-#: ../intl-scm/guile-strings.c:2484 ../intl-scm/guile-strings.c:2642
-#: ../intl-scm/guile-strings.c:3272 ../intl-scm/guile-strings.c:3608
-#: ../intl-scm/guile-strings.c:3848
+#: ../intl-scm/guile-strings.c:2002 ../intl-scm/guile-strings.c:2216
+#: ../intl-scm/guile-strings.c:2626 ../intl-scm/guile-strings.c:2840
+#: ../intl-scm/guile-strings.c:3818 ../intl-scm/guile-strings.c:3976
+#: ../intl-scm/guile-strings.c:4968 ../intl-scm/guile-strings.c:5126
+#: ../intl-scm/guile-strings.c:5998 ../intl-scm/guile-strings.c:6334
+#: ../intl-scm/guile-strings.c:6522 ../intl-scm/guile-strings.c:6858
+#: ../intl-scm/guile-strings.c:7100 ../intl-scm/guile-strings.c:7340
 msgid "Totals"
 msgstr "Beträge"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1294
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2004 ../intl-scm/guile-strings.c:2628
 msgid "Cash Flow"
 msgstr "Cash Flow"
 
 #. src/report/standard-reports/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:1300 ../intl-scm/guile-strings.c:2666
+#: ../intl-scm/guile-strings.c:2010 ../intl-scm/guile-strings.c:2634
+#: ../intl-scm/guile-strings.c:4000 ../intl-scm/guile-strings.c:5150
 msgid "Account Display Depth"
 msgstr "Verschachtelungstiefe der Konten"
 
 #. src/report/standard-reports/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:1302 ../intl-scm/guile-strings.c:2668
+#: ../intl-scm/guile-strings.c:2012 ../intl-scm/guile-strings.c:2636
+#: ../intl-scm/guile-strings.c:4002 ../intl-scm/guile-strings.c:5152
 msgid "Always show sub-accounts"
 msgstr "Unterkonten immer anzeigen"
 
 #. src/report/standard-reports/cash-flow.scm
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:1310 ../intl-scm/guile-strings.c:1416
-#: ../intl-scm/guile-strings.c:1604 ../intl-scm/guile-strings.c:1826
-#: ../intl-scm/guile-strings.c:1926 ../intl-scm/guile-strings.c:2092
-#: ../intl-scm/guile-strings.c:2674
+#: ../intl-scm/guile-strings.c:2020 ../intl-scm/guile-strings.c:2126
+#: ../intl-scm/guile-strings.c:2314 ../intl-scm/guile-strings.c:2644
+#: ../intl-scm/guile-strings.c:2750 ../intl-scm/guile-strings.c:2938
+#: ../intl-scm/guile-strings.c:3160 ../intl-scm/guile-strings.c:3260
+#: ../intl-scm/guile-strings.c:3426 ../intl-scm/guile-strings.c:4008
+#: ../intl-scm/guile-strings.c:4310 ../intl-scm/guile-strings.c:4410
+#: ../intl-scm/guile-strings.c:4576 ../intl-scm/guile-strings.c:5158
 msgid "Show Exchange Rates"
 msgstr "Wechselkurse anzeigen"
 
 #. src/report/standard-reports/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:1312 ../intl-scm/guile-strings.c:2676
+#: ../intl-scm/guile-strings.c:2022 ../intl-scm/guile-strings.c:2646
+#: ../intl-scm/guile-strings.c:4010 ../intl-scm/guile-strings.c:5160
 msgid "Show Full Account Names"
 msgstr "Lange Kontobezeichnung anzeigen"
 
 #. src/report/standard-reports/cash-flow.scm
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1314 ../intl-scm/guile-strings.c:1418
-#: ../intl-scm/guile-strings.c:1606 ../intl-scm/guile-strings.c:1828
-#: ../intl-scm/guile-strings.c:1928 ../intl-scm/guile-strings.c:2094
+#: ../intl-scm/guile-strings.c:2024 ../intl-scm/guile-strings.c:2128
+#: ../intl-scm/guile-strings.c:2316 ../intl-scm/guile-strings.c:2648
+#: ../intl-scm/guile-strings.c:2752 ../intl-scm/guile-strings.c:2940
+#: ../intl-scm/guile-strings.c:3162 ../intl-scm/guile-strings.c:3262
+#: ../intl-scm/guile-strings.c:3428 ../intl-scm/guile-strings.c:4312
+#: ../intl-scm/guile-strings.c:4412 ../intl-scm/guile-strings.c:4578
 msgid "Show the exchange rates used"
 msgstr "Aktuelle Wechselkurse anzeigen"
 
 #. src/report/standard-reports/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:1316 ../intl-scm/guile-strings.c:2682
+#: ../intl-scm/guile-strings.c:2026 ../intl-scm/guile-strings.c:2650
+#: ../intl-scm/guile-strings.c:4016 ../intl-scm/guile-strings.c:5166
 msgid "Show full account names (including parent accounts)"
 msgstr "Lange Kontenbezeichung (einschließlich Hauptkonten) anzeigen"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1318
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2028 ../intl-scm/guile-strings.c:2652
 #, c-format
 msgid "%s - %s to %s for"
 msgstr "%s - %s bis %s für"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1320
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2030 ../intl-scm/guile-strings.c:2654
 #, c-format
 msgid "%s and subaccounts"
 msgstr "%s und Unterkonten"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1322
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2032 ../intl-scm/guile-strings.c:2656
 #, c-format
 msgid "%s and selected subaccounts"
 msgstr "%s und ausgewählte Unterkonten"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1326
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2036 ../intl-scm/guile-strings.c:2660
 msgid "Money into selected accounts comes from"
 msgstr "Zahlung in gewählte Konten kommen aus"
 
 #. src/report/standard-reports/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1328 ../intl-scm/guile-strings.c:2044
+#: ../intl-scm/guile-strings.c:2038 ../intl-scm/guile-strings.c:2662
+#: ../intl-scm/guile-strings.c:3378 ../intl-scm/guile-strings.c:4528
 msgid "Money In"
 msgstr "Einzahlung"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1330
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2040 ../intl-scm/guile-strings.c:2664
 msgid "Money out of selected accounts goes to"
 msgstr "Zahlung von gewählten Konten gehen nach"
 
 #. src/report/standard-reports/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1332 ../intl-scm/guile-strings.c:2046
+#: ../intl-scm/guile-strings.c:2042 ../intl-scm/guile-strings.c:2666
+#: ../intl-scm/guile-strings.c:3380 ../intl-scm/guile-strings.c:4530
 msgid "Money Out"
 msgstr "Auszahlung"
 
 #. src/report/standard-reports/cash-flow.scm
-#: ../intl-scm/guile-strings.c:1334
+#. src/report/standard-reports/gnucash/report/cash-flow.scm
+#: ../intl-scm/guile-strings.c:2044 ../intl-scm/guile-strings.c:2668
 msgid "Difference"
 msgstr "Differenz"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1336 ../intl-scm/guile-strings.c:1446
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2046 ../intl-scm/guile-strings.c:2156
+#: ../intl-scm/guile-strings.c:2670 ../intl-scm/guile-strings.c:2780
 msgid "Trial Balance"
 msgstr "Rohbilanz"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1338 ../intl-scm/guile-strings.c:1534
-#: ../intl-scm/guile-strings.c:1746 ../intl-scm/guile-strings.c:1854
-#: ../intl-scm/guile-strings.c:2062
+#: ../intl-scm/guile-strings.c:2048 ../intl-scm/guile-strings.c:2244
+#: ../intl-scm/guile-strings.c:2672 ../intl-scm/guile-strings.c:2868
+#: ../intl-scm/guile-strings.c:3080 ../intl-scm/guile-strings.c:3188
+#: ../intl-scm/guile-strings.c:3396 ../intl-scm/guile-strings.c:4230
+#: ../intl-scm/guile-strings.c:4338 ../intl-scm/guile-strings.c:4546
 msgid "Report Title"
 msgstr "Berichtstitel"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1340 ../intl-scm/guile-strings.c:1536
-#: ../intl-scm/guile-strings.c:1748 ../intl-scm/guile-strings.c:1856
-#: ../intl-scm/guile-strings.c:2064
+#: ../intl-scm/guile-strings.c:2050 ../intl-scm/guile-strings.c:2246
+#: ../intl-scm/guile-strings.c:2674 ../intl-scm/guile-strings.c:2870
+#: ../intl-scm/guile-strings.c:3082 ../intl-scm/guile-strings.c:3190
+#: ../intl-scm/guile-strings.c:3398 ../intl-scm/guile-strings.c:4232
+#: ../intl-scm/guile-strings.c:4340 ../intl-scm/guile-strings.c:4548
 msgid "Title for this report"
 msgstr "Titel des Berichts"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1342 ../intl-scm/guile-strings.c:1538
-#: ../intl-scm/guile-strings.c:1750 ../intl-scm/guile-strings.c:1858
-#: ../intl-scm/guile-strings.c:2066
+#: ../intl-scm/guile-strings.c:2052 ../intl-scm/guile-strings.c:2248
+#: ../intl-scm/guile-strings.c:2676 ../intl-scm/guile-strings.c:2872
+#: ../intl-scm/guile-strings.c:3084 ../intl-scm/guile-strings.c:3192
+#: ../intl-scm/guile-strings.c:3400 ../intl-scm/guile-strings.c:4234
+#: ../intl-scm/guile-strings.c:4342 ../intl-scm/guile-strings.c:4550
 msgid "Company name"
 msgstr "Firmenname"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1344 ../intl-scm/guile-strings.c:1540
-#: ../intl-scm/guile-strings.c:1752 ../intl-scm/guile-strings.c:1860
-#: ../intl-scm/guile-strings.c:2068
+#: ../intl-scm/guile-strings.c:2054 ../intl-scm/guile-strings.c:2250
+#: ../intl-scm/guile-strings.c:2678 ../intl-scm/guile-strings.c:2874
+#: ../intl-scm/guile-strings.c:3086 ../intl-scm/guile-strings.c:3194
+#: ../intl-scm/guile-strings.c:3402 ../intl-scm/guile-strings.c:4236
+#: ../intl-scm/guile-strings.c:4344 ../intl-scm/guile-strings.c:4552
 msgid "Name of company/individual"
 msgstr "Name der Organisation/Firma"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1346
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2056 ../intl-scm/guile-strings.c:2680
 msgid "Start of Adjusting/Closing"
 msgstr "Anfangsdatum Anpassung/Abschluss"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1348
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2058 ../intl-scm/guile-strings.c:2682
 msgid "Date of Report"
 msgstr "Berichtsdatum"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1350
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2060 ../intl-scm/guile-strings.c:2684
 msgid "Report variation"
 msgstr "Berichtsart"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1352
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2062 ../intl-scm/guile-strings.c:2686
 msgid "Kind of trial balance to generate"
 msgstr "Art der Rohbilanz, die berechnet werden soll"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1354 ../intl-scm/guile-strings.c:1546
-#: ../intl-scm/guile-strings.c:1760 ../intl-scm/guile-strings.c:1864
-#: ../intl-scm/guile-strings.c:2074
+#: ../intl-scm/guile-strings.c:2064 ../intl-scm/guile-strings.c:2256
+#: ../intl-scm/guile-strings.c:2688 ../intl-scm/guile-strings.c:2880
+#: ../intl-scm/guile-strings.c:3094 ../intl-scm/guile-strings.c:3198
+#: ../intl-scm/guile-strings.c:3408 ../intl-scm/guile-strings.c:4244
+#: ../intl-scm/guile-strings.c:4348 ../intl-scm/guile-strings.c:4558
 msgid "Accounts to include"
 msgstr "Einbezogene Konten"
 
 #. src/report/standard-reports/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1356 ../intl-scm/guile-strings.c:2288
+#: ../intl-scm/guile-strings.c:2066 ../intl-scm/guile-strings.c:2690
+#: ../intl-scm/guile-strings.c:3622 ../intl-scm/guile-strings.c:4772
 msgid "Report on these accounts"
 msgstr "Den Buchungsbericht für diese Konten erstellen"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1358 ../intl-scm/guile-strings.c:1550
-#: ../intl-scm/guile-strings.c:1764 ../intl-scm/guile-strings.c:1868
+#: ../intl-scm/guile-strings.c:2068 ../intl-scm/guile-strings.c:2260
+#: ../intl-scm/guile-strings.c:2692 ../intl-scm/guile-strings.c:2884
+#: ../intl-scm/guile-strings.c:3098 ../intl-scm/guile-strings.c:3202
+#: ../intl-scm/guile-strings.c:4248 ../intl-scm/guile-strings.c:4352
 msgid "Levels of Subaccounts"
 msgstr "Verschachtelungstiefe Unterkonten"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1360 ../intl-scm/guile-strings.c:1552
-#: ../intl-scm/guile-strings.c:1766 ../intl-scm/guile-strings.c:1870
+#: ../intl-scm/guile-strings.c:2070 ../intl-scm/guile-strings.c:2262
+#: ../intl-scm/guile-strings.c:2694 ../intl-scm/guile-strings.c:2886
+#: ../intl-scm/guile-strings.c:3100 ../intl-scm/guile-strings.c:3204
+#: ../intl-scm/guile-strings.c:4250 ../intl-scm/guile-strings.c:4354
 msgid "Maximum number of levels in the account tree displayed"
 msgstr "Maximale Verschachtelungstiefe in der Kontenhierarchie"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1362
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2072 ../intl-scm/guile-strings.c:2696
 msgid "Merchandising"
 msgstr "Handel"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1364
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2074 ../intl-scm/guile-strings.c:2698
 msgid "Gross adjustment accounts"
 msgstr "Gesamte Anpassungskonten"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1366
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2076 ../intl-scm/guile-strings.c:2700
 msgid ""
 "Do not net, but show gross debit/credit adjustments to these accounts. "
 "Merchandising businesses will normally select their inventory accounts here."
@@ -17283,12 +18425,14 @@
 "werden hier normalerweise ihre Sachanlagen-Konten wählen."
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1368
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2078 ../intl-scm/guile-strings.c:2702
 msgid "Income summary accounts"
 msgstr "Ãœbersicht Ertragskonten"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1370
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2080 ../intl-scm/guile-strings.c:2704
 msgid ""
 "Adjustments made to these accounts are gross adjusted (see above) in the "
 "Adjustments, Adjusted Trial Balance, and Income Statement columns. Mostly "
@@ -17300,76 +18444,102 @@
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1372 ../intl-scm/guile-strings.c:1608
-#: ../intl-scm/guile-strings.c:2096
+#: ../intl-scm/guile-strings.c:2082 ../intl-scm/guile-strings.c:2318
+#: ../intl-scm/guile-strings.c:2706 ../intl-scm/guile-strings.c:2942
+#: ../intl-scm/guile-strings.c:3430 ../intl-scm/guile-strings.c:4580
 msgid "Entries"
 msgstr "Einträge"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1374
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2084 ../intl-scm/guile-strings.c:2708
 msgid "Adjusting Entries pattern"
 msgstr "Muster für Anpassungseinträge"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1376
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2086 ../intl-scm/guile-strings.c:2710
 msgid "Any text in the Description column which identifies adjusting entries"
 msgstr ""
 "Textmuster in der Buchungsbeschreibung, das Anpassungseinträge identifiziert"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1378
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2088 ../intl-scm/guile-strings.c:2712
 msgid "Adjusting Entries pattern is case-sensitive"
 msgstr "Muster für Anpassungseinträge unterscheidet Groß-/Kleinschreibung"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1380
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2090 ../intl-scm/guile-strings.c:2714
 msgid "Causes the Adjusting Entries Pattern match to be case-sensitive"
 msgstr ""
 "Lässt das Muster für Anpassungseinträge nach Groß-/Kleinschreibung "
 "unterscheiden"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1382
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2092 ../intl-scm/guile-strings.c:2716
 msgid "Adjusting Entries Pattern is regular expression"
 msgstr "Muster für Anpassungseinträge ist ein regulärer Ausdruck"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1384
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2094 ../intl-scm/guile-strings.c:2718
 msgid ""
 "Causes the Adjusting Entries Pattern to be treated as a regular expression"
 msgstr "Lässt das Muster für Anpassungseinträge ein regulärer Ausdruck sein"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1386 ../intl-scm/guile-strings.c:1610
-#: ../intl-scm/guile-strings.c:2098
+#: ../intl-scm/guile-strings.c:2096 ../intl-scm/guile-strings.c:2320
+#: ../intl-scm/guile-strings.c:2720 ../intl-scm/guile-strings.c:2944
+#: ../intl-scm/guile-strings.c:3432 ../intl-scm/guile-strings.c:4582
 msgid "Closing Entries pattern"
 msgstr "Muster für Abschlussbuchungen"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1388 ../intl-scm/guile-strings.c:1612
-#: ../intl-scm/guile-strings.c:2100
+#: ../intl-scm/guile-strings.c:2098 ../intl-scm/guile-strings.c:2322
+#: ../intl-scm/guile-strings.c:2722 ../intl-scm/guile-strings.c:2946
+#: ../intl-scm/guile-strings.c:3434 ../intl-scm/guile-strings.c:4584
 msgid "Any text in the Description column which identifies closing entries"
 msgstr ""
 "Textmuster in der Buchungsbeschreibung, das Abschlussbuchungen identifiziert"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1390 ../intl-scm/guile-strings.c:1614
-#: ../intl-scm/guile-strings.c:2102
+#: ../intl-scm/guile-strings.c:2100 ../intl-scm/guile-strings.c:2324
+#: ../intl-scm/guile-strings.c:2724 ../intl-scm/guile-strings.c:2948
+#: ../intl-scm/guile-strings.c:3436 ../intl-scm/guile-strings.c:4586
 msgid "Closing Entries pattern is case-sensitive"
 msgstr "Muster für Abschlussbuchungen unterscheidet Groß-/Kleinschreibung"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1392 ../intl-scm/guile-strings.c:1616
-#: ../intl-scm/guile-strings.c:2104
+#: ../intl-scm/guile-strings.c:2102 ../intl-scm/guile-strings.c:2326
+#: ../intl-scm/guile-strings.c:2726 ../intl-scm/guile-strings.c:2950
+#: ../intl-scm/guile-strings.c:3438 ../intl-scm/guile-strings.c:4588
 msgid "Causes the Closing Entries Pattern match to be case-sensitive"
 msgstr ""
 "Lässt das Muster für Abschlussbuchungen nach Groß-/Kleinschreibung "
@@ -17377,54 +18547,86 @@
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1394 ../intl-scm/guile-strings.c:1618
-#: ../intl-scm/guile-strings.c:2106
+#: ../intl-scm/guile-strings.c:2104 ../intl-scm/guile-strings.c:2328
+#: ../intl-scm/guile-strings.c:2728 ../intl-scm/guile-strings.c:2952
+#: ../intl-scm/guile-strings.c:3440 ../intl-scm/guile-strings.c:4590
 msgid "Closing Entries Pattern is regular expression"
 msgstr "Muster für Abschlussbuchungen ist ein regulärer Ausdruck"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1396 ../intl-scm/guile-strings.c:1620
-#: ../intl-scm/guile-strings.c:2108
+#: ../intl-scm/guile-strings.c:2106 ../intl-scm/guile-strings.c:2330
+#: ../intl-scm/guile-strings.c:2730 ../intl-scm/guile-strings.c:2954
+#: ../intl-scm/guile-strings.c:3442 ../intl-scm/guile-strings.c:4592
 msgid ""
 "Causes the Closing Entries Pattern to be treated as a regular expression"
 msgstr "Lässt das Muster für Abschlussbuchungen ein regulärer Ausdruck sein"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1398 ../intl-scm/guile-strings.c:1562
-#: ../intl-scm/guile-strings.c:1776 ../intl-scm/guile-strings.c:1880
+#: ../intl-scm/guile-strings.c:2108 ../intl-scm/guile-strings.c:2272
+#: ../intl-scm/guile-strings.c:2732 ../intl-scm/guile-strings.c:2896
+#: ../intl-scm/guile-strings.c:3110 ../intl-scm/guile-strings.c:3214
+#: ../intl-scm/guile-strings.c:4260 ../intl-scm/guile-strings.c:4364
 msgid "Include accounts with zero total balances"
 msgstr "Unterkonten, die Kontostand Null haben, mit einbeziehen."
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1400 ../intl-scm/guile-strings.c:1564
-#: ../intl-scm/guile-strings.c:1778 ../intl-scm/guile-strings.c:1882
+#: ../intl-scm/guile-strings.c:2110 ../intl-scm/guile-strings.c:2274
+#: ../intl-scm/guile-strings.c:2734 ../intl-scm/guile-strings.c:2898
+#: ../intl-scm/guile-strings.c:3112 ../intl-scm/guile-strings.c:3216
+#: ../intl-scm/guile-strings.c:4262 ../intl-scm/guile-strings.c:4366
 msgid "Include accounts with zero total (recursive) balances in this report"
 msgstr "Unterkonten, die Kontostand Null haben, mit einbeziehen."
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1402 ../intl-scm/guile-strings.c:1574
-#: ../intl-scm/guile-strings.c:1788 ../intl-scm/guile-strings.c:1892
+#: ../intl-scm/guile-strings.c:2112 ../intl-scm/guile-strings.c:2284
+#: ../intl-scm/guile-strings.c:2736 ../intl-scm/guile-strings.c:2908
+#: ../intl-scm/guile-strings.c:3122 ../intl-scm/guile-strings.c:3226
+#: ../intl-scm/guile-strings.c:4272 ../intl-scm/guile-strings.c:4376
 msgid "Display accounts as hyperlinks"
 msgstr "Kontonamen anklickbar anzeigen"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1404 ../intl-scm/guile-strings.c:1576
-#: ../intl-scm/guile-strings.c:1790 ../intl-scm/guile-strings.c:1894
+#: ../intl-scm/guile-strings.c:2114 ../intl-scm/guile-strings.c:2286
+#: ../intl-scm/guile-strings.c:2738 ../intl-scm/guile-strings.c:2910
+#: ../intl-scm/guile-strings.c:3124 ../intl-scm/guile-strings.c:3228
+#: ../intl-scm/guile-strings.c:4274 ../intl-scm/guile-strings.c:4378
 msgid "Shows each account in the table as a hyperlink to its register window"
 msgstr ""
 "Konto als klickbaren Hyperlink anzeigen, der beim Anklicken das Kontofenster "
@@ -17432,754 +18634,1022 @@
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1406 ../intl-scm/guile-strings.c:1594
-#: ../intl-scm/guile-strings.c:1816 ../intl-scm/guile-strings.c:1916
-#: ../intl-scm/guile-strings.c:2082
+#: ../intl-scm/guile-strings.c:2116 ../intl-scm/guile-strings.c:2304
+#: ../intl-scm/guile-strings.c:2740 ../intl-scm/guile-strings.c:2928
+#: ../intl-scm/guile-strings.c:3150 ../intl-scm/guile-strings.c:3250
+#: ../intl-scm/guile-strings.c:3416 ../intl-scm/guile-strings.c:4300
+#: ../intl-scm/guile-strings.c:4400 ../intl-scm/guile-strings.c:4566
 msgid "Commodities"
 msgstr "Währungen/Aktien"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1412 ../intl-scm/guile-strings.c:1600
-#: ../intl-scm/guile-strings.c:1822 ../intl-scm/guile-strings.c:1922
-#: ../intl-scm/guile-strings.c:2088
+#: ../intl-scm/guile-strings.c:2122 ../intl-scm/guile-strings.c:2310
+#: ../intl-scm/guile-strings.c:2746 ../intl-scm/guile-strings.c:2934
+#: ../intl-scm/guile-strings.c:3156 ../intl-scm/guile-strings.c:3256
+#: ../intl-scm/guile-strings.c:3422 ../intl-scm/guile-strings.c:4306
+#: ../intl-scm/guile-strings.c:4406 ../intl-scm/guile-strings.c:4572
 msgid "Show Foreign Currencies"
 msgstr "Fremdwährungen anzeigen"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1414 ../intl-scm/guile-strings.c:1602
-#: ../intl-scm/guile-strings.c:1824 ../intl-scm/guile-strings.c:1924
-#: ../intl-scm/guile-strings.c:2090
+#: ../intl-scm/guile-strings.c:2124 ../intl-scm/guile-strings.c:2312
+#: ../intl-scm/guile-strings.c:2748 ../intl-scm/guile-strings.c:2936
+#: ../intl-scm/guile-strings.c:3158 ../intl-scm/guile-strings.c:3258
+#: ../intl-scm/guile-strings.c:3424 ../intl-scm/guile-strings.c:4308
+#: ../intl-scm/guile-strings.c:4408 ../intl-scm/guile-strings.c:4574
 msgid "Display any foreign currency amount in an account"
 msgstr "Fremdwährungen in Konten anzeigen"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1424
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2134 ../intl-scm/guile-strings.c:2758
 msgid "Current Trial Balance"
 msgstr "Aktuelle Rohbilanz"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1426
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2136 ../intl-scm/guile-strings.c:2760
 msgid "Uses the exact balances in the general ledger"
 msgstr "Exakte Salden aus Hauptbuch verwenden"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1428
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2138 ../intl-scm/guile-strings.c:2762
 msgid "Pre-adjustment Trial Balance"
 msgstr "Angepasste Rohbilanz"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1430
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2140 ../intl-scm/guile-strings.c:2764
 msgid "Ignores Adjusting/Closing entries"
 msgstr "Anpassungsbuchungen / Abschlussbuchungen ignorieren"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1432
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2142 ../intl-scm/guile-strings.c:2766
 msgid "Work Sheet"
 msgstr "Arbeitsblatt"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1434
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2144 ../intl-scm/guile-strings.c:2768
 msgid "Creates a complete end-of-period work sheet"
 msgstr "Vollständiges Periodenende-Arbeitsblatt"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1440 ../intl-scm/guile-strings.c:1626
-#: ../intl-scm/guile-strings.c:2118
+#: ../intl-scm/guile-strings.c:2150 ../intl-scm/guile-strings.c:2336
+#: ../intl-scm/guile-strings.c:2774 ../intl-scm/guile-strings.c:2960
+#: ../intl-scm/guile-strings.c:3452 ../intl-scm/guile-strings.c:4602
 msgid "for Period"
 msgstr "für Buchungszeitraum"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1444 ../intl-scm/guile-strings.c:1624
-#: ../intl-scm/guile-strings.c:2116
+#: ../intl-scm/guile-strings.c:2154 ../intl-scm/guile-strings.c:2334
+#: ../intl-scm/guile-strings.c:2778 ../intl-scm/guile-strings.c:2958
+#: ../intl-scm/guile-strings.c:3450 ../intl-scm/guile-strings.c:4600
 #, c-format
 msgid "For Period Covering %s to %s"
-msgstr "Für Periode %s bis %s"
+msgstr "für Periode %s bis %s"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1448
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2158 ../intl-scm/guile-strings.c:2782
 msgid "Adjustments"
 msgstr "Anpassungsbuchungen"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1450
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2160 ../intl-scm/guile-strings.c:2784
 msgid "Adjusted Trial Balance"
 msgstr "Angepasste Rohbilanz"
 
 #. src/report/standard-reports/trial-balance.scm
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1452 ../intl-scm/guile-strings.c:1532
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2162 ../intl-scm/guile-strings.c:2242
+#: ../intl-scm/guile-strings.c:2786 ../intl-scm/guile-strings.c:2866
 msgid "Income Statement"
 msgstr "Einnahmeüberschussrechnung"
 
 #. src/report/standard-reports/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1454 ../intl-scm/guile-strings.c:1744
+#: ../intl-scm/guile-strings.c:2164 ../intl-scm/guile-strings.c:2788
+#: ../intl-scm/guile-strings.c:3078 ../intl-scm/guile-strings.c:4228
 msgid "Balance Sheet"
 msgstr "Bilanz"
 
 #. src/report/standard-reports/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1462 ../intl-scm/guile-strings.c:1844
-#: ../intl-scm/guile-strings.c:2132
+#: ../intl-scm/guile-strings.c:2172 ../intl-scm/guile-strings.c:2796
+#: ../intl-scm/guile-strings.c:3178 ../intl-scm/guile-strings.c:3466
+#: ../intl-scm/guile-strings.c:4328 ../intl-scm/guile-strings.c:4616
 msgid "Unrealized Gains"
 msgstr "Noch nicht erzielter Gewinn/Verlust"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1464
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2174 ../intl-scm/guile-strings.c:2798
 msgid "Net Income"
 msgstr "Netto Erträge"
 
 #. src/report/standard-reports/trial-balance.scm
-#: ../intl-scm/guile-strings.c:1466
+#. src/report/standard-reports/gnucash/report/trial-balance.scm
+#: ../intl-scm/guile-strings.c:2176 ../intl-scm/guile-strings.c:2800
 msgid "Net Loss"
 msgstr "Netto Verlust"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1470 ../intl-scm/guile-strings.c:2144
-#: ../intl-scm/guile-strings.c:2232 ../intl-scm/guile-strings.c:2236
+#: ../intl-scm/guile-strings.c:2180 ../intl-scm/guile-strings.c:2804
+#: ../intl-scm/guile-strings.c:3478 ../intl-scm/guile-strings.c:3566
+#: ../intl-scm/guile-strings.c:3570 ../intl-scm/guile-strings.c:4628
+#: ../intl-scm/guile-strings.c:4716 ../intl-scm/guile-strings.c:4720
 msgid "Sorting"
 msgstr "Sortieren"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1472 ../intl-scm/guile-strings.c:2294
+#: ../intl-scm/guile-strings.c:2182 ../intl-scm/guile-strings.c:2806
+#: ../intl-scm/guile-strings.c:3628 ../intl-scm/guile-strings.c:4778
 msgid "Filter Type"
 msgstr "Filtertyp"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1474 ../intl-scm/guile-strings.c:2158
+#: ../intl-scm/guile-strings.c:2184 ../intl-scm/guile-strings.c:2808
+#: ../intl-scm/guile-strings.c:3492 ../intl-scm/guile-strings.c:4642
 msgid "Void Transactions?"
 msgstr "Stornierte Buchungssätze?"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1478 ../intl-scm/guile-strings.c:2178
-#: ../intl-scm/guile-strings.c:2242 ../intl-scm/guile-strings.c:2344
-#: ../intl-scm/guile-strings.c:2432
+#: ../intl-scm/guile-strings.c:2188 ../intl-scm/guile-strings.c:2812
+#: ../intl-scm/guile-strings.c:3512 ../intl-scm/guile-strings.c:3576
+#: ../intl-scm/guile-strings.c:3678 ../intl-scm/guile-strings.c:3766
+#: ../intl-scm/guile-strings.c:4662 ../intl-scm/guile-strings.c:4726
+#: ../intl-scm/guile-strings.c:4828 ../intl-scm/guile-strings.c:4916
 msgid "Reconciled Date"
 msgstr "Datum Abgeglichen"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1488 ../intl-scm/guile-strings.c:2214
-#: ../intl-scm/guile-strings.c:2452
+#: ../intl-scm/guile-strings.c:2198 ../intl-scm/guile-strings.c:2822
+#: ../intl-scm/guile-strings.c:3548 ../intl-scm/guile-strings.c:3786
+#: ../intl-scm/guile-strings.c:4698 ../intl-scm/guile-strings.c:4936
 msgid "Use Full Account Name?"
 msgstr "Volle Kontobezeichnung benutzen?"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1492 ../intl-scm/guile-strings.c:2194
-#: ../intl-scm/guile-strings.c:2352 ../intl-scm/guile-strings.c:2460
+#: ../intl-scm/guile-strings.c:2202 ../intl-scm/guile-strings.c:2826
+#: ../intl-scm/guile-strings.c:3528 ../intl-scm/guile-strings.c:3686
+#: ../intl-scm/guile-strings.c:3794 ../intl-scm/guile-strings.c:4678
+#: ../intl-scm/guile-strings.c:4836 ../intl-scm/guile-strings.c:4944
 msgid "Other Account Name"
 msgstr "Name des Gegenkontos"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1494 ../intl-scm/guile-strings.c:2230
-#: ../intl-scm/guile-strings.c:2464
+#: ../intl-scm/guile-strings.c:2204 ../intl-scm/guile-strings.c:2828
+#: ../intl-scm/guile-strings.c:3564 ../intl-scm/guile-strings.c:3798
+#: ../intl-scm/guile-strings.c:4714 ../intl-scm/guile-strings.c:4948
 msgid "Use Full Other Account Name?"
 msgstr "Volle Kontobezeichnung des Gegenkontos benutzen?"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1496 ../intl-scm/guile-strings.c:2226
-#: ../intl-scm/guile-strings.c:2356 ../intl-scm/guile-strings.c:2468
+#: ../intl-scm/guile-strings.c:2206 ../intl-scm/guile-strings.c:2830
+#: ../intl-scm/guile-strings.c:3560 ../intl-scm/guile-strings.c:3690
+#: ../intl-scm/guile-strings.c:3802 ../intl-scm/guile-strings.c:4710
+#: ../intl-scm/guile-strings.c:4840 ../intl-scm/guile-strings.c:4952
 msgid "Other Account Code"
 msgstr "Nummer des Gegenkontos"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1508 ../intl-scm/guile-strings.c:2504
-#: ../intl-scm/guile-strings.c:2544
+#: ../intl-scm/guile-strings.c:2218 ../intl-scm/guile-strings.c:2842
+#: ../intl-scm/guile-strings.c:3838 ../intl-scm/guile-strings.c:3878
+#: ../intl-scm/guile-strings.c:4988 ../intl-scm/guile-strings.c:5028
 msgid "Sign Reverses?"
 msgstr "Vorzeichenumkehr?"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1510 ../intl-scm/guile-strings.c:2270
-#: ../intl-scm/guile-strings.c:2546
+#: ../intl-scm/guile-strings.c:2220 ../intl-scm/guile-strings.c:2844
+#: ../intl-scm/guile-strings.c:3604 ../intl-scm/guile-strings.c:3880
+#: ../intl-scm/guile-strings.c:4754 ../intl-scm/guile-strings.c:5030
 msgid "Style"
 msgstr "Buchung"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1512 ../intl-scm/guile-strings.c:2146
+#: ../intl-scm/guile-strings.c:2222 ../intl-scm/guile-strings.c:2846
+#: ../intl-scm/guile-strings.c:3480 ../intl-scm/guile-strings.c:4630
 msgid "Primary Key"
 msgstr "Primärschlüssel"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1514 ../intl-scm/guile-strings.c:2238
-#: ../intl-scm/guile-strings.c:2402
+#: ../intl-scm/guile-strings.c:2224 ../intl-scm/guile-strings.c:2848
+#: ../intl-scm/guile-strings.c:3572 ../intl-scm/guile-strings.c:3736
+#: ../intl-scm/guile-strings.c:4722 ../intl-scm/guile-strings.c:4886
 msgid "Show Full Account Name?"
 msgstr "Lange Kontobezeichnung anzeigen?"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1516 ../intl-scm/guile-strings.c:2234
-#: ../intl-scm/guile-strings.c:2406
+#: ../intl-scm/guile-strings.c:2226 ../intl-scm/guile-strings.c:2850
+#: ../intl-scm/guile-strings.c:3568 ../intl-scm/guile-strings.c:3740
+#: ../intl-scm/guile-strings.c:4718 ../intl-scm/guile-strings.c:4890
 msgid "Show Account Code?"
 msgstr "Kontonummer anzeigen?"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1518 ../intl-scm/guile-strings.c:2148
+#: ../intl-scm/guile-strings.c:2228 ../intl-scm/guile-strings.c:2852
+#: ../intl-scm/guile-strings.c:3482 ../intl-scm/guile-strings.c:4632
 msgid "Primary Subtotal"
 msgstr "Primärschlüssel mit Zwischensumme"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1520 ../intl-scm/guile-strings.c:2150
+#: ../intl-scm/guile-strings.c:2230 ../intl-scm/guile-strings.c:2854
+#: ../intl-scm/guile-strings.c:3484 ../intl-scm/guile-strings.c:4634
 msgid "Primary Subtotal for Date Key"
 msgstr "Primäre Zwischensumme für Datumsschlüssel"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1522 ../intl-scm/guile-strings.c:2414
+#: ../intl-scm/guile-strings.c:2232 ../intl-scm/guile-strings.c:2856
+#: ../intl-scm/guile-strings.c:3748 ../intl-scm/guile-strings.c:4898
 msgid "Primary Sort Order"
 msgstr "Hauptsortier-Reihenfolge"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1524 ../intl-scm/guile-strings.c:2152
+#: ../intl-scm/guile-strings.c:2234 ../intl-scm/guile-strings.c:2858
+#: ../intl-scm/guile-strings.c:3486 ../intl-scm/guile-strings.c:4636
 msgid "Secondary Key"
 msgstr "Sekundärschlüssel"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1526 ../intl-scm/guile-strings.c:2154
+#: ../intl-scm/guile-strings.c:2236 ../intl-scm/guile-strings.c:2860
+#: ../intl-scm/guile-strings.c:3488 ../intl-scm/guile-strings.c:4638
 msgid "Secondary Subtotal"
 msgstr "Sekundärschlüssel mit Zwischensumme"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1528 ../intl-scm/guile-strings.c:2156
+#: ../intl-scm/guile-strings.c:2238 ../intl-scm/guile-strings.c:2862
+#: ../intl-scm/guile-strings.c:3490 ../intl-scm/guile-strings.c:4640
 msgid "Secondary Subtotal for Date Key"
 msgstr "Sekundäre Zwischensumme für Datumsschlüssel"
 
 #. src/report/standard-reports/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/general-ledger.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1530 ../intl-scm/guile-strings.c:2424
+#: ../intl-scm/guile-strings.c:2240 ../intl-scm/guile-strings.c:2864
+#: ../intl-scm/guile-strings.c:3758 ../intl-scm/guile-strings.c:4908
 msgid "Secondary Sort Order"
 msgstr "Sekundäre Sortierreihenfolge"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1542 ../intl-scm/guile-strings.c:2070
+#: ../intl-scm/guile-strings.c:2252 ../intl-scm/guile-strings.c:2876
+#: ../intl-scm/guile-strings.c:3404 ../intl-scm/guile-strings.c:4554
 msgid "Start Date"
 msgstr "Anfangsdatum"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1544 ../intl-scm/guile-strings.c:2072
+#: ../intl-scm/guile-strings.c:2254 ../intl-scm/guile-strings.c:2878
+#: ../intl-scm/guile-strings.c:3406 ../intl-scm/guile-strings.c:4556
 msgid "End Date"
 msgstr "Enddatum"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1554 ../intl-scm/guile-strings.c:1768
+#: ../intl-scm/guile-strings.c:2264 ../intl-scm/guile-strings.c:2888
+#: ../intl-scm/guile-strings.c:3102 ../intl-scm/guile-strings.c:4252
 msgid "Flatten list to depth limit"
 msgstr "Baumstruktur ab Tiefenlimit flach darstellen"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1556 ../intl-scm/guile-strings.c:1770
+#: ../intl-scm/guile-strings.c:2266 ../intl-scm/guile-strings.c:2890
+#: ../intl-scm/guile-strings.c:3104 ../intl-scm/guile-strings.c:4254
 msgid "Displays accounts which exceed the depth limit at the depth limit"
 msgstr ""
 "Konten, die tiefer als das gegebene Tiefenlimit in der Baumstruktur stehen, "
 "am Tiefenlimit darstellen"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1558 ../intl-scm/guile-strings.c:1772
-#: ../intl-scm/guile-strings.c:1876
+#: ../intl-scm/guile-strings.c:2268 ../intl-scm/guile-strings.c:2892
+#: ../intl-scm/guile-strings.c:3106 ../intl-scm/guile-strings.c:3210
+#: ../intl-scm/guile-strings.c:4256 ../intl-scm/guile-strings.c:4360
 msgid "Parent account balances"
 msgstr "Salden Hauptkonto"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1560 ../intl-scm/guile-strings.c:1774
-#: ../intl-scm/guile-strings.c:1878
+#: ../intl-scm/guile-strings.c:2270 ../intl-scm/guile-strings.c:2894
+#: ../intl-scm/guile-strings.c:3108 ../intl-scm/guile-strings.c:3212
+#: ../intl-scm/guile-strings.c:4258 ../intl-scm/guile-strings.c:4362
 msgid "Parent account subtotals"
 msgstr "Zwischensummen für Hauptkonten"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1566 ../intl-scm/guile-strings.c:1780
-#: ../intl-scm/guile-strings.c:1884
+#: ../intl-scm/guile-strings.c:2276 ../intl-scm/guile-strings.c:2900
+#: ../intl-scm/guile-strings.c:3114 ../intl-scm/guile-strings.c:3218
+#: ../intl-scm/guile-strings.c:4264 ../intl-scm/guile-strings.c:4368
 msgid "Omit zero balance figures"
 msgstr "Salden ignorieren, die Null betragen"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1568 ../intl-scm/guile-strings.c:1782
-#: ../intl-scm/guile-strings.c:1886
+#: ../intl-scm/guile-strings.c:2278 ../intl-scm/guile-strings.c:2902
+#: ../intl-scm/guile-strings.c:3116 ../intl-scm/guile-strings.c:3220
+#: ../intl-scm/guile-strings.c:4266 ../intl-scm/guile-strings.c:4370
 msgid "Show blank space in place of any zero balances which would be shown"
 msgstr "Leerstellen anstatt Nullen bei Null-Salden anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1570 ../intl-scm/guile-strings.c:1784
-#: ../intl-scm/guile-strings.c:1888 ../intl-scm/guile-strings.c:2078
+#: ../intl-scm/guile-strings.c:2280 ../intl-scm/guile-strings.c:2904
+#: ../intl-scm/guile-strings.c:3118 ../intl-scm/guile-strings.c:3222
+#: ../intl-scm/guile-strings.c:3412 ../intl-scm/guile-strings.c:4268
+#: ../intl-scm/guile-strings.c:4372 ../intl-scm/guile-strings.c:4562
 msgid "Show accounting-style rules"
 msgstr "Linien aus Rechnungswesen anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/account-summary.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/account-summary.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1572 ../intl-scm/guile-strings.c:1786
-#: ../intl-scm/guile-strings.c:1890 ../intl-scm/guile-strings.c:2080
+#: ../intl-scm/guile-strings.c:2282 ../intl-scm/guile-strings.c:2906
+#: ../intl-scm/guile-strings.c:3120 ../intl-scm/guile-strings.c:3224
+#: ../intl-scm/guile-strings.c:3414 ../intl-scm/guile-strings.c:4270
+#: ../intl-scm/guile-strings.c:4374 ../intl-scm/guile-strings.c:4564
 msgid "Use rules beneath columns of added numbers like accountants do"
 msgstr "Linien neben Spalten mit Salden anzeigen, wie im Rechnungswesen üblich"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1578
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2288 ../intl-scm/guile-strings.c:2912
 msgid "Label the revenue section"
 msgstr "Abschnitt Erträge beschriften"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1580
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2290 ../intl-scm/guile-strings.c:2914
 msgid "Whether or not to include a label for the revenue section"
 msgstr "Beschriftung für Abschnitt mit Ertragskonten anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1582
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2292 ../intl-scm/guile-strings.c:2916
 msgid "Include revenue total"
 msgstr "Summe Erträge anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1584
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2294 ../intl-scm/guile-strings.c:2918
 msgid "Whether or not to include a line indicating total revenue"
 msgstr "Eine Zeile für die Summe Erträge anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1586
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2296 ../intl-scm/guile-strings.c:2920
 msgid "Label the expense section"
 msgstr "Aufwendungsabschnitt beschriften"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1588
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2298 ../intl-scm/guile-strings.c:2922
 msgid "Whether or not to include a label for the expense section"
 msgstr ""
 "Ob eine Beschriftung für den Abschnitt mit Aufwandskonten angezeigt wird"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1590
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2300 ../intl-scm/guile-strings.c:2924
 msgid "Include expense total"
 msgstr "Summe Aufwendungen anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1592
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2302 ../intl-scm/guile-strings.c:2926
 msgid "Whether or not to include a line indicating total expense"
 msgstr "Eine Zeile für die Summe Aufwendungen anzeigen"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1630
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2340 ../intl-scm/guile-strings.c:2964
 msgid "Revenues"
 msgstr "Gewinn"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1632
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2342 ../intl-scm/guile-strings.c:2966
 msgid "Total Revenue"
 msgstr "Gesamtgewinn"
 
 #. src/report/standard-reports/income-statement.scm
-#: ../intl-scm/guile-strings.c:1636
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#: ../intl-scm/guile-strings.c:2346 ../intl-scm/guile-strings.c:2970
 msgid "Total Expenses"
 msgstr "Gesamt Aufwendungen"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1638 ../intl-scm/guile-strings.c:2124
+#: ../intl-scm/guile-strings.c:2348 ../intl-scm/guile-strings.c:2972
+#: ../intl-scm/guile-strings.c:3458 ../intl-scm/guile-strings.c:4608
 msgid "Net income"
 msgstr "Netto Ertrag"
 
 #. src/report/standard-reports/income-statement.scm
+#. src/report/standard-reports/gnucash/report/income-statement.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1640 ../intl-scm/guile-strings.c:2126
+#: ../intl-scm/guile-strings.c:2350 ../intl-scm/guile-strings.c:2974
+#: ../intl-scm/guile-strings.c:3460 ../intl-scm/guile-strings.c:4610
 msgid "Net loss"
 msgstr "Netto Verlust"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1642
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2352 ../intl-scm/guile-strings.c:2976
 msgid "Income Barchart"
 msgstr "Erträge Balkendiagramm"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1644
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2354 ../intl-scm/guile-strings.c:2978
 msgid "Expense Barchart"
 msgstr "Aufwendungen Balkendiagramm"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1646
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2356 ../intl-scm/guile-strings.c:2980
 msgid "Asset Barchart"
 msgstr "Aktiva Balkendiagramm"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1648
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2358 ../intl-scm/guile-strings.c:2982
 msgid "Liability Barchart"
 msgstr "Passiva Balkendiagramm"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1650
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2360 ../intl-scm/guile-strings.c:2984
 msgid "Shows a barchart with the Income per interval developing over time"
 msgstr "Balkendiagramm der Erträge pro Zeit anzeigen"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1652
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2362 ../intl-scm/guile-strings.c:2986
 msgid "Shows a barchart with the Expenses per interval developing over time"
 msgstr "Balkendiagramm der Aufwendungen pro Zeit anzeigen"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1654
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2364 ../intl-scm/guile-strings.c:2988
 msgid "Shows a barchart with the Assets developing over time"
 msgstr "Balkendiagramm der Aktiva pro Zeit anzeigen"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1656
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2366 ../intl-scm/guile-strings.c:2990
 msgid "Shows a barchart with the Liabilities developing over time"
 msgstr "Balkendiagramm der Passiva pro Zeit anzeigen"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1658
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2368 ../intl-scm/guile-strings.c:2992
 msgid "Income Over Time"
 msgstr "Ertragsentwicklung"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1660
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2370 ../intl-scm/guile-strings.c:2994
 msgid "Expense Over Time"
 msgstr "Aufwendungen pro Zeit"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1662
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2372 ../intl-scm/guile-strings.c:2996
 msgid "Assets Over Time"
 msgstr "Aktiva Entwicklung"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1664
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2374 ../intl-scm/guile-strings.c:2998
 msgid "Liabilities Over Time"
 msgstr "Passiva Entwicklung"
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1678 ../intl-scm/guile-strings.c:2784
-#: ../intl-scm/guile-strings.c:2858
+#: ../intl-scm/guile-strings.c:2388 ../intl-scm/guile-strings.c:3012
+#: ../intl-scm/guile-strings.c:4122 ../intl-scm/guile-strings.c:4196
+#: ../intl-scm/guile-strings.c:5272 ../intl-scm/guile-strings.c:5346
 msgid "Show Accounts until level"
 msgstr "Verschachtelungstiefe der angezeigten Konten"
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1680 ../intl-scm/guile-strings.c:2788
-#: ../intl-scm/guile-strings.c:2860
+#: ../intl-scm/guile-strings.c:2390 ../intl-scm/guile-strings.c:3014
+#: ../intl-scm/guile-strings.c:4126 ../intl-scm/guile-strings.c:4198
+#: ../intl-scm/guile-strings.c:5276 ../intl-scm/guile-strings.c:5348
 msgid "Show long account names"
 msgstr "Lange Kontennamen anzeigen"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1682
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2392 ../intl-scm/guile-strings.c:3016
 msgid "Use Stacked Bars"
 msgstr "Gestapelte Balken"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1684
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2394 ../intl-scm/guile-strings.c:3018
 msgid "Maximum Bars"
 msgstr "Maximale Anzahl Segmente"
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1690 ../intl-scm/guile-strings.c:2798
-#: ../intl-scm/guile-strings.c:2870
+#: ../intl-scm/guile-strings.c:2400 ../intl-scm/guile-strings.c:3024
+#: ../intl-scm/guile-strings.c:4136 ../intl-scm/guile-strings.c:4208
+#: ../intl-scm/guile-strings.c:5286 ../intl-scm/guile-strings.c:5358
 msgid "Sort Method"
 msgstr "Sortierreihenfolge"
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1694 ../intl-scm/guile-strings.c:2804
-#: ../intl-scm/guile-strings.c:2874
+#: ../intl-scm/guile-strings.c:2404 ../intl-scm/guile-strings.c:3028
+#: ../intl-scm/guile-strings.c:4142 ../intl-scm/guile-strings.c:4212
+#: ../intl-scm/guile-strings.c:5292 ../intl-scm/guile-strings.c:5362
 msgid "Show accounts to this depth and not further"
 msgstr ""
 "Konten nur bis zu dieser Verschachtelungstiefe anzeigen (überstimmt alle "
 "anderen Optionen)."
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1696 ../intl-scm/guile-strings.c:2876
+#: ../intl-scm/guile-strings.c:2406 ../intl-scm/guile-strings.c:3030
+#: ../intl-scm/guile-strings.c:4214 ../intl-scm/guile-strings.c:5364
 msgid "Show the full account name in legend?"
 msgstr "Lange Kontenbezeichung in der Legende anzeigen?"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1698
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2408 ../intl-scm/guile-strings.c:3032
 msgid "Show barchart as stacked barchart? (Guppi>=0.35.4 required)"
 msgstr ""
 "Balkendiagram mit gestapelten Balken anzeigen? (Benötigt Guppi >=0.35.4)"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1700
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2410 ../intl-scm/guile-strings.c:3034
 msgid "Maximum number of bars in the chart"
 msgstr "Maximale Anzahl Segmente im Diagramm"
 
 #. src/report/standard-reports/category-barchart.scm
-#: ../intl-scm/guile-strings.c:1704
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#: ../intl-scm/guile-strings.c:2414 ../intl-scm/guile-strings.c:3038
 #, c-format
 msgid "Balances %s to %s"
 msgstr "Salden %s bis %s"
 
 #. src/report/standard-reports/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/category-barchart.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:1708 ../intl-scm/guile-strings.c:2888
+#: ../intl-scm/guile-strings.c:2418 ../intl-scm/guile-strings.c:3042
+#: ../intl-scm/guile-strings.c:4226 ../intl-scm/guile-strings.c:5376
 msgid "and"
 msgstr "und"
 
 #. src/report/standard-reports/portfolio.scm
-#: ../intl-scm/guile-strings.c:1710
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#: ../intl-scm/guile-strings.c:2420 ../intl-scm/guile-strings.c:3044
 msgid "Investment Portfolio"
 msgstr "Portfolio"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1714 ../intl-scm/guile-strings.c:1958
+#: ../intl-scm/guile-strings.c:2424 ../intl-scm/guile-strings.c:3048
+#: ../intl-scm/guile-strings.c:3292 ../intl-scm/guile-strings.c:4442
 msgid "Share decimal places"
 msgstr "Dezimalstellen für Aktien"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1716 ../intl-scm/guile-strings.c:1960
+#: ../intl-scm/guile-strings.c:2426 ../intl-scm/guile-strings.c:3050
+#: ../intl-scm/guile-strings.c:3294 ../intl-scm/guile-strings.c:4444
 msgid "Include accounts with no shares"
 msgstr "Unterkonten ohne Anteile mit einschließen"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:1720 ../intl-scm/guile-strings.c:1978
-#: ../intl-scm/guile-strings.c:2164
+#: ../intl-scm/guile-strings.c:2430 ../intl-scm/guile-strings.c:3054
+#: ../intl-scm/guile-strings.c:3312 ../intl-scm/guile-strings.c:3498
+#: ../intl-scm/guile-strings.c:4462 ../intl-scm/guile-strings.c:4648
 msgid "Report Currency"
 msgstr "Währung des Berichts"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1722 ../intl-scm/guile-strings.c:2018
+#: ../intl-scm/guile-strings.c:2432 ../intl-scm/guile-strings.c:3056
+#: ../intl-scm/guile-strings.c:3352 ../intl-scm/guile-strings.c:4502
 msgid "The number of decimal places to use for share numbers"
 msgstr "Anzahl Dezimalstellen, die im Aktiensaldo angezeigt werden"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1726 ../intl-scm/guile-strings.c:2024
+#: ../intl-scm/guile-strings.c:2436 ../intl-scm/guile-strings.c:3060
+#: ../intl-scm/guile-strings.c:3358 ../intl-scm/guile-strings.c:4508
 msgid "Stock Accounts to report on"
 msgstr "Bericht über diese Aktiendepots erstellen"
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1728 ../intl-scm/guile-strings.c:2026
+#: ../intl-scm/guile-strings.c:2438 ../intl-scm/guile-strings.c:3062
+#: ../intl-scm/guile-strings.c:3360 ../intl-scm/guile-strings.c:4510
 msgid "Include accounts that have a zero share balances."
 msgstr "Unterkonten, die Kontostand Null haben, mit einbeziehen."
 
 #. src/report/standard-reports/portfolio.scm
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1734 ../intl-scm/guile-strings.c:2034
+#: ../intl-scm/guile-strings.c:2444 ../intl-scm/guile-strings.c:3068
+#: ../intl-scm/guile-strings.c:3368 ../intl-scm/guile-strings.c:4518
 msgid "Listing"
 msgstr "Börsenplatzkürzel"
 
 #. src/report/standard-reports/portfolio.scm
-#: ../intl-scm/guile-strings.c:1736
+#. src/report/standard-reports/gnucash/report/portfolio.scm
+#: ../intl-scm/guile-strings.c:2446 ../intl-scm/guile-strings.c:3070
 msgid "Units"
 msgstr "Maßeinheiten"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1754
+#: ../intl-scm/guile-strings.c:3088 ../intl-scm/guile-strings.c:4238
 msgid "Balance Sheet Date"
 msgstr "Bilanzdatum"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1756
+#: ../intl-scm/guile-strings.c:3090 ../intl-scm/guile-strings.c:4240
 msgid "Single column Balance Sheet"
 msgstr "Einspaltige Bilanz"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1758
+#: ../intl-scm/guile-strings.c:3092 ../intl-scm/guile-strings.c:4242
 msgid ""
 "Print liability/equity section in the same column under the assets section "
 "as opposed to a second column right of the assets section"
 msgstr ""
 "Passiva unterhalb der Aktiva anzeigen anstelle einer zweispaltigen Anzeige"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1792
+#: ../intl-scm/guile-strings.c:3126 ../intl-scm/guile-strings.c:4276
 msgid "Label the assets section"
 msgstr "Abschnitt Aktiva beschriften"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1794
+#: ../intl-scm/guile-strings.c:3128 ../intl-scm/guile-strings.c:4278
 msgid "Whether or not to include a label for the assets section"
 msgstr "Beschriftung für den Abschnitt mit Aktivakonten anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1796
+#: ../intl-scm/guile-strings.c:3130 ../intl-scm/guile-strings.c:4280
 msgid "Include assets total"
 msgstr "Summe Aktiva anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1798
+#: ../intl-scm/guile-strings.c:3132 ../intl-scm/guile-strings.c:4282
 msgid "Whether or not to include a line indicating total assets"
 msgstr "Eine Zeile für die Summe Aktiva anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1800
+#: ../intl-scm/guile-strings.c:3134 ../intl-scm/guile-strings.c:4284
 msgid "Label the liabilities section"
 msgstr "Abschnitt Passiva beschriften"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1802
+#: ../intl-scm/guile-strings.c:3136 ../intl-scm/guile-strings.c:4286
 msgid "Whether or not to include a label for the liabilities section"
 msgstr "Beschriftung für den Abschnitt mit Passivakonten anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1804
+#: ../intl-scm/guile-strings.c:3138 ../intl-scm/guile-strings.c:4288
 msgid "Include liabilities total"
 msgstr "Summe Passiva anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1806
+#: ../intl-scm/guile-strings.c:3140 ../intl-scm/guile-strings.c:4290
 msgid "Whether or not to include a line indicating total liabilities"
 msgstr "Eine Zeile für die Summe Passiva anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1808
+#: ../intl-scm/guile-strings.c:3142 ../intl-scm/guile-strings.c:4292
 msgid "Label the equity section"
 msgstr "Abschnitt Eigenkapital beschriften"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1810
+#: ../intl-scm/guile-strings.c:3144 ../intl-scm/guile-strings.c:4294
 msgid "Whether or not to include a label for the equity section"
 msgstr "Beschriftung für den Abschnitt mit Eigenkapitalkonten anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1812
+#: ../intl-scm/guile-strings.c:3146 ../intl-scm/guile-strings.c:4296
 msgid "Include equity total"
 msgstr "Summe Eigenkapital anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1814
+#: ../intl-scm/guile-strings.c:3148 ../intl-scm/guile-strings.c:4298
 msgid "Whether or not to include a line indicating total equity"
 msgstr "Eine Zeile für die Summe Eigenkapital anzeigen"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1832
+#: ../intl-scm/guile-strings.c:3166 ../intl-scm/guile-strings.c:4316
 msgid "Total Assets"
 msgstr "Gesamt Aktiva"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1836
+#: ../intl-scm/guile-strings.c:3170 ../intl-scm/guile-strings.c:4320
 msgid "Total Liabilities"
 msgstr "Gesamt Passiva"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1842
+#: ../intl-scm/guile-strings.c:3176 ../intl-scm/guile-strings.c:4326
 msgid "Retained Losses"
 msgstr "Zurückbehaltene Verluste"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/balance-sheet.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:1846 ../intl-scm/guile-strings.c:2134
+#: ../intl-scm/guile-strings.c:3180 ../intl-scm/guile-strings.c:3468
+#: ../intl-scm/guile-strings.c:4330 ../intl-scm/guile-strings.c:4618
 msgid "Unrealized Losses"
 msgstr "Noch nicht erzielter Verlust"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1848
+#: ../intl-scm/guile-strings.c:3182 ../intl-scm/guile-strings.c:4332
 msgid "Total Equity"
 msgstr "Gesamt Eigenkapital"
 
+#. src/report/standard-reports/gnucash/report/balance-sheet.scm
 #. src/report/standard-reports/balance-sheet.scm
-#: ../intl-scm/guile-strings.c:1850
+#: ../intl-scm/guile-strings.c:3184 ../intl-scm/guile-strings.c:4334
 msgid "Total Liabilities & Equity"
 msgstr "Gesamt Passiva & Eigenkapital"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1852
+#: ../intl-scm/guile-strings.c:3186 ../intl-scm/guile-strings.c:4336
 msgid "Account Summary"
 msgstr "Kontenübersicht"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1872
+#: ../intl-scm/guile-strings.c:3206 ../intl-scm/guile-strings.c:4356
 msgid "Depth limit behavior"
 msgstr "Tiefenlimit Verwendung"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1874
+#: ../intl-scm/guile-strings.c:3208 ../intl-scm/guile-strings.c:4358
 msgid "How to treat accounts which exceed the specified depth limit (if any)"
 msgstr ""
 "Festlegen, wie das Tiefenlimit für Konten in der Baumstruktur verwendet "
 "werden soll"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1898
+#: ../intl-scm/guile-strings.c:3232 ../intl-scm/guile-strings.c:4382
 msgid "Show an account's balance"
 msgstr "Kontensaldo anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1902
+#: ../intl-scm/guile-strings.c:3236 ../intl-scm/guile-strings.c:4386
 msgid "Show an account's account code"
 msgstr "Kontonummer anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1906
+#: ../intl-scm/guile-strings.c:3240 ../intl-scm/guile-strings.c:4390
 msgid "Show an account's account type"
 msgstr "Kontoart anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1908
+#: ../intl-scm/guile-strings.c:3242 ../intl-scm/guile-strings.c:4392
 msgid "Account Description"
 msgstr "Kontenbeschreibung"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1910
+#: ../intl-scm/guile-strings.c:3244 ../intl-scm/guile-strings.c:4394
 msgid "Show an account's description"
 msgstr "Kontenbeschreibung anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1912
+#: ../intl-scm/guile-strings.c:3246 ../intl-scm/guile-strings.c:4396
 msgid "Account Notes"
 msgstr "Kontennotizen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1914
+#: ../intl-scm/guile-strings.c:3248 ../intl-scm/guile-strings.c:4398
 msgid "Show an account's notes"
 msgstr "Kontennotizen anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1930
+#: ../intl-scm/guile-strings.c:3264 ../intl-scm/guile-strings.c:4414
 msgid "Recursive Balance"
 msgstr "Rekursiver Saldo"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1932
+#: ../intl-scm/guile-strings.c:3266 ../intl-scm/guile-strings.c:4416
 msgid ""
 "Show the total balance, including balances in subaccounts, of any account at "
 "the depth limit"
@@ -18187,181 +19657,218 @@
 "Gesamten Saldo von allen Konten und allen Unterkonten anzeigen, unabhängig "
 "vom Tiefenlimit"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1934
+#: ../intl-scm/guile-strings.c:3268 ../intl-scm/guile-strings.c:4418
 msgid "Raise Accounts"
 msgstr "Konten höher anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1936
+#: ../intl-scm/guile-strings.c:3270 ../intl-scm/guile-strings.c:4420
 msgid "Shows accounts deeper than the depth limit at the depth limit"
 msgstr ""
 "Konten anzeigen, die in der Baumstruktur tiefer als das Tiefenlimit liegen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1938
+#: ../intl-scm/guile-strings.c:3272 ../intl-scm/guile-strings.c:4422
 msgid "Omit Accounts"
 msgstr "Konten überspringen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1940
+#: ../intl-scm/guile-strings.c:3274 ../intl-scm/guile-strings.c:4424
 msgid "Disregard completely any accounts deeper than the depth limit"
 msgstr ""
 "Konten ignorieren, die in der Baumstruktur tiefer als das Tiefenlimit liegen"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1942
+#: ../intl-scm/guile-strings.c:3276 ../intl-scm/guile-strings.c:4426
 msgid "Code"
 msgstr "Code"
 
+#. src/report/standard-reports/gnucash/report/account-summary.scm
 #. src/report/standard-reports/account-summary.scm
-#: ../intl-scm/guile-strings.c:1948
+#: ../intl-scm/guile-strings.c:3282 ../intl-scm/guile-strings.c:4432
 msgid "Account title"
 msgstr "Kontobezeichnung"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1954
+#: ../intl-scm/guile-strings.c:3288 ../intl-scm/guile-strings.c:4438
 msgid "Advanced Portfolio"
 msgstr "Erweitertes Portfolio"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1962
+#: ../intl-scm/guile-strings.c:3296 ../intl-scm/guile-strings.c:4446
 msgid "Include gains and losses"
 msgstr "Gewinne und Verluste mit einberechnen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1964
+#: ../intl-scm/guile-strings.c:3298 ../intl-scm/guile-strings.c:4448
 msgid "Show ticker symbols"
 msgstr "Tickersymbole anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1966
+#: ../intl-scm/guile-strings.c:3300 ../intl-scm/guile-strings.c:4450
 msgid "Show listings"
 msgstr "Listing anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1968
+#: ../intl-scm/guile-strings.c:3302 ../intl-scm/guile-strings.c:4452
 msgid "Show prices"
 msgstr "Preise anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1970
+#: ../intl-scm/guile-strings.c:3304 ../intl-scm/guile-strings.c:4454
 msgid "Show number of shares"
 msgstr "Anzahl von Anteilen anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1972 ../intl-scm/guile-strings.c:1994
+#: ../intl-scm/guile-strings.c:3306 ../intl-scm/guile-strings.c:3328
+#: ../intl-scm/guile-strings.c:4456 ../intl-scm/guile-strings.c:4478
 msgid "Basis calculation method"
 msgstr "Berechnung der Basis"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1974
+#: ../intl-scm/guile-strings.c:3308 ../intl-scm/guile-strings.c:4458
 msgid "Set preference for price list data"
 msgstr "Auswahl für Kurslisten treffen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1990
+#: ../intl-scm/guile-strings.c:3324 ../intl-scm/guile-strings.c:4474
 msgid "Most recent to report"
 msgstr "Neuester vor Berichtsdatum"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1992
+#: ../intl-scm/guile-strings.c:3326 ../intl-scm/guile-strings.c:4476
 msgid "The most recent recorded price before report date"
 msgstr "Der neueste aufgezeichnete Preis vor dem Datum des Berichts"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/advanced-portfolio.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:1996 ../intl-scm/guile-strings.c:2718
-#: ../intl-scm/guile-strings.c:2738
+#: ../intl-scm/guile-strings.c:3330 ../intl-scm/guile-strings.c:4056
+#: ../intl-scm/guile-strings.c:4076 ../intl-scm/guile-strings.c:4480
+#: ../intl-scm/guile-strings.c:5206 ../intl-scm/guile-strings.c:5226
 msgid "Average"
 msgstr "Durchschnitt"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:1998
+#: ../intl-scm/guile-strings.c:3332 ../intl-scm/guile-strings.c:4482
 msgid "Use average cost of all shares for basis"
 msgstr "Durchschnittliche Aktienkurse als Basis verwenden"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2000
+#: ../intl-scm/guile-strings.c:3334 ../intl-scm/guile-strings.c:4484
 msgid "FIFO"
 msgstr "FIFO"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2002
+#: ../intl-scm/guile-strings.c:3336 ../intl-scm/guile-strings.c:4486
 msgid "Use first-in first-out method for basis"
 msgstr "Methode First-In First-Out (zuerst erworbene werden zuerst verkauft)"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2004
+#: ../intl-scm/guile-strings.c:3338 ../intl-scm/guile-strings.c:4488
 msgid "FILO"
 msgstr "FILO"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2006
+#: ../intl-scm/guile-strings.c:3340 ../intl-scm/guile-strings.c:4490
 msgid "Use first-in last-out method for basis"
 msgstr "Methode First-In Last-Out (zuerst erworbene werden zuletzt verkauft)"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2008
+#: ../intl-scm/guile-strings.c:3342 ../intl-scm/guile-strings.c:4492
 msgid "Prefer use of price editor pricing over transactions, where applicable."
 msgstr ""
 "Kurse aus dem Preiseditor gegenüber Kursen aus Buchungen bevorzugen, falls "
 "möglich."
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2010
+#: ../intl-scm/guile-strings.c:3344 ../intl-scm/guile-strings.c:4494
 msgid "Include splits with no shares for calculating money-in and money-out"
 msgstr ""
 "Buchungsteile ohne Aktien-Anteile trotzdem für Wertzuwachs und -abnahme mit "
 "einbeziehen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2012
+#: ../intl-scm/guile-strings.c:3346 ../intl-scm/guile-strings.c:4496
 msgid "Display the ticker symbols"
 msgstr "Das Tickersymbol anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2014
+#: ../intl-scm/guile-strings.c:3348 ../intl-scm/guile-strings.c:4498
 msgid "Display exchange listings"
 msgstr "Die Börsen-Listings anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2016
+#: ../intl-scm/guile-strings.c:3350 ../intl-scm/guile-strings.c:4500
 msgid "Display numbers of shares in accounts"
 msgstr "Anzahl von Anteilen in diesem Konto anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2020
+#: ../intl-scm/guile-strings.c:3354 ../intl-scm/guile-strings.c:4504
 msgid "Display share prices"
 msgstr "Anteilspreis anzeigen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2040
+#: ../intl-scm/guile-strings.c:3374 ../intl-scm/guile-strings.c:4524
 msgid "Basis"
 msgstr "Basis"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2048
+#: ../intl-scm/guile-strings.c:3382 ../intl-scm/guile-strings.c:4532
 msgid "Realized Gain"
 msgstr "Realisierter Gewinn"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2050
+#: ../intl-scm/guile-strings.c:3384 ../intl-scm/guile-strings.c:4534
 msgid "Unrealized Gain"
 msgstr "Noch nicht erzielter Gewinn"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2052
+#: ../intl-scm/guile-strings.c:3386 ../intl-scm/guile-strings.c:4536
 msgid "Total Gain"
 msgstr "Gesamtgewinn"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2054
+#: ../intl-scm/guile-strings.c:3388 ../intl-scm/guile-strings.c:4538
 msgid "Total Return"
 msgstr "Gesamter Ertrag"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2056
+#: ../intl-scm/guile-strings.c:3390 ../intl-scm/guile-strings.c:4540
 msgid ""
 "* this commodity data was built using transaction pricing instead of the "
 "price list."
@@ -18369,373 +19876,463 @@
 "* Diese Kurse wurden aus Buchungen berechnet statt aus gespeicherten "
 "Kursinformationen"
 
+#. src/report/standard-reports/gnucash/report/advanced-portfolio.scm
 #. src/report/standard-reports/advanced-portfolio.scm
-#: ../intl-scm/guile-strings.c:2058
+#: ../intl-scm/guile-strings.c:3392 ../intl-scm/guile-strings.c:4542
 msgid ""
 "If you are in a multi-currency situation, the exchanges may not be correct."
 msgstr ""
 "Bei vielen unterschiedlichen Währungen können diese Kurs unter Umständen "
 "nicht korrekt sein."
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2060
+#: ../intl-scm/guile-strings.c:3394 ../intl-scm/guile-strings.c:4544
 msgid "Equity Statement"
 msgstr "Eigenkapitalbilanz"
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2076
+#: ../intl-scm/guile-strings.c:3410 ../intl-scm/guile-strings.c:4560
 msgid "Report only on these accounts"
 msgstr "Den Buchungsbericht für diese Konten erstellen"
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2122 ../intl-scm/guile-strings.c:2140
+#: ../intl-scm/guile-strings.c:3456 ../intl-scm/guile-strings.c:3474
+#: ../intl-scm/guile-strings.c:4606 ../intl-scm/guile-strings.c:4624
 msgid "Capital"
 msgstr "Kapital"
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2128
+#: ../intl-scm/guile-strings.c:3462 ../intl-scm/guile-strings.c:4612
 msgid "Investments"
 msgstr "Investments"
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2130
+#: ../intl-scm/guile-strings.c:3464 ../intl-scm/guile-strings.c:4614
 msgid "Withdrawals"
 msgstr "Abhebungen"
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2136
+#: ../intl-scm/guile-strings.c:3470 ../intl-scm/guile-strings.c:4620
 msgid "Increase in capital"
 msgstr "Kapitalerhöhung"
 
+#. src/report/standard-reports/gnucash/report/equity-statement.scm
 #. src/report/standard-reports/equity-statement.scm
-#: ../intl-scm/guile-strings.c:2138
+#: ../intl-scm/guile-strings.c:3472 ../intl-scm/guile-strings.c:4622
 msgid "Decrease in capital"
 msgstr "Kapitalreduzierung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2142
+#: ../intl-scm/guile-strings.c:3476 ../intl-scm/guile-strings.c:4626
 msgid "Transaction Report"
 msgstr "Buchungsbericht"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2160
+#: ../intl-scm/guile-strings.c:3494 ../intl-scm/guile-strings.c:4644
 msgid "Table for Exporting"
 msgstr "Tabelle zum Exportieren"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2162
+#: ../intl-scm/guile-strings.c:3496 ../intl-scm/guile-strings.c:4646
 msgid "Common Currency"
 msgstr "Gemeinsame Währung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2168
+#: ../intl-scm/guile-strings.c:3502 ../intl-scm/guile-strings.c:4652
 msgid "Total For "
 msgstr "Gesamtsumme für "
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2170 ../intl-scm/guile-strings.c:2532
+#: ../intl-scm/guile-strings.c:3504 ../intl-scm/guile-strings.c:3866
+#: ../intl-scm/guile-strings.c:4654 ../intl-scm/guile-strings.c:5016
 msgid "Grand Total"
 msgstr "Gesamtbetrag"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2252
+#: ../intl-scm/guile-strings.c:3586 ../intl-scm/guile-strings.c:4736
 msgid "Transfer from/to"
 msgstr "Umbuchen von/nach"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2272
+#: ../intl-scm/guile-strings.c:3606 ../intl-scm/guile-strings.c:4756
 msgid "Report style"
 msgstr "Berichtsstil"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2274
+#: ../intl-scm/guile-strings.c:3608 ../intl-scm/guile-strings.c:4758
 msgid "Multi-Line"
 msgstr "Multizeilen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2276
+#: ../intl-scm/guile-strings.c:3610 ../intl-scm/guile-strings.c:4760
 msgid "Display N lines"
 msgstr "Viele Zeilen anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2278 ../intl-scm/guile-strings.c:2496
-#: ../intl-scm/guile-strings.c:2626
+#: ../intl-scm/guile-strings.c:3612 ../intl-scm/guile-strings.c:3830
+#: ../intl-scm/guile-strings.c:3960 ../intl-scm/guile-strings.c:4762
+#: ../intl-scm/guile-strings.c:4980 ../intl-scm/guile-strings.c:5110
 msgid "Single"
 msgstr "Einzel"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2280
+#: ../intl-scm/guile-strings.c:3614 ../intl-scm/guile-strings.c:4764
 msgid "Display 1 line"
 msgstr "Eine Zeile anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2282
+#: ../intl-scm/guile-strings.c:3616 ../intl-scm/guile-strings.c:4766
 msgid "Convert all transactions into a common currency"
 msgstr "Alle Buchungen in eine gemeinsame Währung umrechnen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2284
+#: ../intl-scm/guile-strings.c:3618 ../intl-scm/guile-strings.c:4768
 msgid "Formats the table suitable for cut & paste exporting with extra cells"
 msgstr ""
 "Formatiert die Tabelle passend zum Kopieren/Einfügen mit zusätzlichen "
 "Tabellenzellen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2286
+#: ../intl-scm/guile-strings.c:3620 ../intl-scm/guile-strings.c:4770
 msgid "Report Accounts"
 msgstr "Konten im Bericht"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2290
+#: ../intl-scm/guile-strings.c:3624 ../intl-scm/guile-strings.c:4774
 msgid "Filter Accounts"
 msgstr "Filterkonten"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2292
+#: ../intl-scm/guile-strings.c:3626 ../intl-scm/guile-strings.c:4776
 msgid "Filter on these accounts"
 msgstr "Mit jenen Konten filtern"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2296
+#: ../intl-scm/guile-strings.c:3630 ../intl-scm/guile-strings.c:4780
 msgid "Filter account"
 msgstr "Konto filtern"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2300
+#: ../intl-scm/guile-strings.c:3634 ../intl-scm/guile-strings.c:4784
 msgid "Do not do any filtering"
 msgstr "Nichts filtern"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2302
+#: ../intl-scm/guile-strings.c:3636 ../intl-scm/guile-strings.c:4786
 msgid "Include Transactions to/from Filter Accounts"
 msgstr "Buchungen von/nach Filter-Konten einschließen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2304
+#: ../intl-scm/guile-strings.c:3638 ../intl-scm/guile-strings.c:4788
 msgid "Include transactions to/from filter accounts only"
 msgstr "Nur Buchungen von/nach Filter-Konten einschließen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2306
+#: ../intl-scm/guile-strings.c:3640 ../intl-scm/guile-strings.c:4790
 msgid "Exclude Transactions to/from Filter Accounts"
 msgstr "Buchungen von/nach Filter-Konten ausschließen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2308
+#: ../intl-scm/guile-strings.c:3642 ../intl-scm/guile-strings.c:4792
 msgid "Exclude transactions to/from all filter accounts"
 msgstr "Buchungen von/nach allen Filter-Konten ausschließen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2310
+#: ../intl-scm/guile-strings.c:3644 ../intl-scm/guile-strings.c:4794
 msgid "How to handle void transactions"
 msgstr "Behandlung von stornierten Buchungssätzen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2312
+#: ../intl-scm/guile-strings.c:3646 ../intl-scm/guile-strings.c:4796
 msgid "Non-void only"
 msgstr "Nur nicht-stornierte"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2314
+#: ../intl-scm/guile-strings.c:3648 ../intl-scm/guile-strings.c:4798
 msgid "Show only non-voided transactions"
 msgstr "Nur nicht-stornierte Buchungssätze anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2316
+#: ../intl-scm/guile-strings.c:3650 ../intl-scm/guile-strings.c:4800
 msgid "Void only"
 msgstr "Nur stornierte"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2318
+#: ../intl-scm/guile-strings.c:3652 ../intl-scm/guile-strings.c:4802
 msgid "Show only voided transactions"
 msgstr "Nur stornierte Buchungssätze anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2320
+#: ../intl-scm/guile-strings.c:3654 ../intl-scm/guile-strings.c:4804
 msgid "Both"
 msgstr "Beides"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2322
+#: ../intl-scm/guile-strings.c:3656 ../intl-scm/guile-strings.c:4806
 msgid "Show both (and include void transactions in totals)"
 msgstr "Beides anzeigen (und stornierte Buchungssätze im Saldo miteinbeziehen)"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2326
+#: ../intl-scm/guile-strings.c:3660 ../intl-scm/guile-strings.c:4810
 msgid "Do not sort"
 msgstr "Nicht sortieren"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2330
+#: ../intl-scm/guile-strings.c:3664 ../intl-scm/guile-strings.c:4814
 msgid "Sort & subtotal by account name"
 msgstr "Sortiere nach Kontonamen und bilde die Summe"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2334
+#: ../intl-scm/guile-strings.c:3668 ../intl-scm/guile-strings.c:4818
 msgid "Sort & subtotal by account code"
 msgstr "Sortiere nach Kontonummer und bilde die Summe"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2340
+#: ../intl-scm/guile-strings.c:3674 ../intl-scm/guile-strings.c:4824
 msgid "Exact Time"
 msgstr "Tageszeit"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2342
+#: ../intl-scm/guile-strings.c:3676 ../intl-scm/guile-strings.c:4826
 msgid "Sort by exact time"
 msgstr "Nach Tageszeit sortieren"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2346
+#: ../intl-scm/guile-strings.c:3680 ../intl-scm/guile-strings.c:4830
 msgid "Sort by the Reconciled Date"
 msgstr "Sortiere nach Abgleich-Datum"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2348
+#: ../intl-scm/guile-strings.c:3682 ../intl-scm/guile-strings.c:4832
 msgid "Register Order"
 msgstr "Wie Kontobuch"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2350
+#: ../intl-scm/guile-strings.c:3684 ../intl-scm/guile-strings.c:4834
 msgid "Sort as with the register"
 msgstr "Die Sortierung, die im Kontobuch benutzt wird"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2354
+#: ../intl-scm/guile-strings.c:3688 ../intl-scm/guile-strings.c:4838
 msgid "Sort by account transferred from/to's name"
 msgstr "Sortiere nach Namen des Kontos, zu dem gebucht wurde"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2358
+#: ../intl-scm/guile-strings.c:3692 ../intl-scm/guile-strings.c:4842
 msgid "Sort by account transferred from/to's code"
 msgstr "Sortiere nach Nummer des Kontos, zu dem gebucht wurde"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2370
+#: ../intl-scm/guile-strings.c:3704 ../intl-scm/guile-strings.c:4854
 msgid "Sort by check/transaction number"
 msgstr "Sortieren nach Scheck-/Buchungsnr."
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2376
+#: ../intl-scm/guile-strings.c:3710 ../intl-scm/guile-strings.c:4860
 msgid "Ascending"
 msgstr "Aufsteigend"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2378
+#: ../intl-scm/guile-strings.c:3712 ../intl-scm/guile-strings.c:4862
 msgid "smallest to largest, earliest to latest"
 msgstr "kleinster zu grösstem, ältester zu jüngstem"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2380
+#: ../intl-scm/guile-strings.c:3714 ../intl-scm/guile-strings.c:4864
 msgid "Descending"
 msgstr "Absteigend"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2382
+#: ../intl-scm/guile-strings.c:3716 ../intl-scm/guile-strings.c:4866
 msgid "largest to smallest, latest to earliest"
 msgstr "Grösster zu kleinstem, jüngster zu ältestem"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2400
+#: ../intl-scm/guile-strings.c:3734 ../intl-scm/guile-strings.c:4884
 msgid "Sort by this criterion first"
 msgstr "Sortiere zuerst nach diesem Kriteriums"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2404
+#: ../intl-scm/guile-strings.c:3738 ../intl-scm/guile-strings.c:4888
 msgid "Show the full account name for subtotals and subtitles?"
 msgstr "Lange Kontenbezeichung in den Zwischenzummen anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2408
+#: ../intl-scm/guile-strings.c:3742 ../intl-scm/guile-strings.c:4892
 msgid "Show the account code for subtotals and subtitles?"
 msgstr "Kontonummer für Zwischensummen anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2410
+#: ../intl-scm/guile-strings.c:3744 ../intl-scm/guile-strings.c:4894
 msgid "Subtotal according to the primary key?"
 msgstr "Zwischensummen für Primärschlüssel?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2412 ../intl-scm/guile-strings.c:2422
+#: ../intl-scm/guile-strings.c:3746 ../intl-scm/guile-strings.c:3756
+#: ../intl-scm/guile-strings.c:4896 ../intl-scm/guile-strings.c:4906
 msgid "Do a date subtotal"
 msgstr "Datum-Zwischensumme"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2416
+#: ../intl-scm/guile-strings.c:3750 ../intl-scm/guile-strings.c:4900
 msgid "Order of primary sorting"
 msgstr "Reihenfolge des primären Sortierens"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2418
+#: ../intl-scm/guile-strings.c:3752 ../intl-scm/guile-strings.c:4902
 msgid "Sort by this criterion second"
 msgstr "Sortiere als zweites nach diesem Kriterium"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2420
+#: ../intl-scm/guile-strings.c:3754 ../intl-scm/guile-strings.c:4904
 msgid "Subtotal according to the secondary key?"
 msgstr "Zwischensummen für Sekundärschlüssel?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2426
+#: ../intl-scm/guile-strings.c:3760 ../intl-scm/guile-strings.c:4910
 msgid "Order of Secondary sorting"
 msgstr "Reihenfolge der zweiten Sortierung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:2430 ../intl-scm/guile-strings.c:2588
-#: ../intl-scm/guile-strings.c:3214 ../intl-scm/guile-strings.c:3532
-#: ../intl-scm/guile-strings.c:3790
+#: ../intl-scm/guile-strings.c:3764 ../intl-scm/guile-strings.c:3922
+#: ../intl-scm/guile-strings.c:4914 ../intl-scm/guile-strings.c:5072
+#: ../intl-scm/guile-strings.c:5940 ../intl-scm/guile-strings.c:6258
+#: ../intl-scm/guile-strings.c:6464 ../intl-scm/guile-strings.c:6782
+#: ../intl-scm/guile-strings.c:7042 ../intl-scm/guile-strings.c:7282
 msgid "Display the date?"
 msgstr "Anzeigen des Datums?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2434
+#: ../intl-scm/guile-strings.c:3768 ../intl-scm/guile-strings.c:4918
 msgid "Display the reconciled date?"
 msgstr "Anzeigen des Abgleich-Datums?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2438 ../intl-scm/guile-strings.c:2594
+#: ../intl-scm/guile-strings.c:3772 ../intl-scm/guile-strings.c:3928
+#: ../intl-scm/guile-strings.c:4922 ../intl-scm/guile-strings.c:5078
 msgid "Display the check number?"
 msgstr "Anzeigen der Schecknummer?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:2442 ../intl-scm/guile-strings.c:2600
-#: ../intl-scm/guile-strings.c:3220 ../intl-scm/guile-strings.c:3538
-#: ../intl-scm/guile-strings.c:3796
+#: ../intl-scm/guile-strings.c:3776 ../intl-scm/guile-strings.c:3934
+#: ../intl-scm/guile-strings.c:4926 ../intl-scm/guile-strings.c:5084
+#: ../intl-scm/guile-strings.c:5946 ../intl-scm/guile-strings.c:6264
+#: ../intl-scm/guile-strings.c:6470 ../intl-scm/guile-strings.c:6788
+#: ../intl-scm/guile-strings.c:7048 ../intl-scm/guile-strings.c:7288
 msgid "Display the description?"
 msgstr "Anzeigen der Beschreibung?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2446
+#: ../intl-scm/guile-strings.c:3780 ../intl-scm/guile-strings.c:4930
 msgid "Display the memo?"
 msgstr "Anzeigen des Buchungstexts?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2450
+#: ../intl-scm/guile-strings.c:3784 ../intl-scm/guile-strings.c:4934
 msgid "Display the account name?"
 msgstr "Kontenbezeichnung anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2454 ../intl-scm/guile-strings.c:2466
+#: ../intl-scm/guile-strings.c:3788 ../intl-scm/guile-strings.c:3800
+#: ../intl-scm/guile-strings.c:4938 ../intl-scm/guile-strings.c:4950
 msgid "Display the full account name"
 msgstr "Volle Kontenbezeichnung anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2458
+#: ../intl-scm/guile-strings.c:3792 ../intl-scm/guile-strings.c:4942
 msgid "Display the account code"
 msgstr "Kontonummer anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2462
+#: ../intl-scm/guile-strings.c:3796 ../intl-scm/guile-strings.c:4946
 msgid ""
 "Display the other account name? (if this is a split transaction, this "
 "parameter is guessed)."
@@ -18743,96 +20340,132 @@
 "Kontobezeichnung des Gegenkontos anzeigen? (Wenn dies eine mehrteiliger "
 "Buchungssatz ist, wird dieser Parameter geraten.)"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2470
+#: ../intl-scm/guile-strings.c:3804 ../intl-scm/guile-strings.c:4954
 msgid "Display the other account code"
 msgstr "Kontonummer des Gegenkontos anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2474 ../intl-scm/guile-strings.c:2612
+#: ../intl-scm/guile-strings.c:3808 ../intl-scm/guile-strings.c:3946
+#: ../intl-scm/guile-strings.c:4958 ../intl-scm/guile-strings.c:5096
 msgid "Display the number of shares?"
 msgstr "Anzahl von Anteilen anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2478 ../intl-scm/guile-strings.c:2618
+#: ../intl-scm/guile-strings.c:3812 ../intl-scm/guile-strings.c:3952
+#: ../intl-scm/guile-strings.c:4962 ../intl-scm/guile-strings.c:5102
 msgid "Display the shares price?"
 msgstr "Den Anteilspreis anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2482 ../intl-scm/guile-strings.c:2638
+#: ../intl-scm/guile-strings.c:3816 ../intl-scm/guile-strings.c:3972
+#: ../intl-scm/guile-strings.c:4966 ../intl-scm/guile-strings.c:5122
 msgid "Display a running balance"
 msgstr "Einen laufenden Saldo anzeigen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:2486 ../intl-scm/guile-strings.c:2644
-#: ../intl-scm/guile-strings.c:3274 ../intl-scm/guile-strings.c:3610
-#: ../intl-scm/guile-strings.c:3850
+#: ../intl-scm/guile-strings.c:3820 ../intl-scm/guile-strings.c:3978
+#: ../intl-scm/guile-strings.c:4970 ../intl-scm/guile-strings.c:5128
+#: ../intl-scm/guile-strings.c:6000 ../intl-scm/guile-strings.c:6336
+#: ../intl-scm/guile-strings.c:6524 ../intl-scm/guile-strings.c:6860
+#: ../intl-scm/guile-strings.c:7102 ../intl-scm/guile-strings.c:7342
 msgid "Display the totals?"
 msgstr "Anzeigen der Bilanz"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2490 ../intl-scm/guile-strings.c:2624
+#: ../intl-scm/guile-strings.c:3824 ../intl-scm/guile-strings.c:3958
+#: ../intl-scm/guile-strings.c:4974 ../intl-scm/guile-strings.c:5108
 msgid "Display the amount?"
 msgstr "Betrag anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2494
+#: ../intl-scm/guile-strings.c:3828 ../intl-scm/guile-strings.c:4978
 msgid "No amount display"
 msgstr "Keine Summenanzeige"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2498 ../intl-scm/guile-strings.c:2628
+#: ../intl-scm/guile-strings.c:3832 ../intl-scm/guile-strings.c:3962
+#: ../intl-scm/guile-strings.c:4982 ../intl-scm/guile-strings.c:5112
 msgid "Single Column Display"
 msgstr "Einspaltige Anzeige"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2500 ../intl-scm/guile-strings.c:2630
+#: ../intl-scm/guile-strings.c:3834 ../intl-scm/guile-strings.c:3964
+#: ../intl-scm/guile-strings.c:4984 ../intl-scm/guile-strings.c:5114
 msgid "Double"
 msgstr "Doppel"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/transaction.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2502 ../intl-scm/guile-strings.c:2632
+#: ../intl-scm/guile-strings.c:3836 ../intl-scm/guile-strings.c:3966
+#: ../intl-scm/guile-strings.c:4986 ../intl-scm/guile-strings.c:5116
 msgid "Two Column Display"
 msgstr "Zweispaltige Anzeige"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2506
+#: ../intl-scm/guile-strings.c:3840 ../intl-scm/guile-strings.c:4990
 msgid "Reverse amount display for certain account types"
 msgstr "Vorzeichenumkehr für manche Kontenarten"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2510
+#: ../intl-scm/guile-strings.c:3844 ../intl-scm/guile-strings.c:4994
 msgid "Don't change any displayed amounts"
 msgstr "Keine Vorzeichenumkehr"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2512
+#: ../intl-scm/guile-strings.c:3846 ../intl-scm/guile-strings.c:4996
 msgid "Income and Expense"
 msgstr "Erträge und Aufwendungen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2514
+#: ../intl-scm/guile-strings.c:3848 ../intl-scm/guile-strings.c:4998
 msgid "Reverse amount display for Income and Expense Accounts"
 msgstr "Ertrags- und Aufwandskonten mit umgekehrten Vorzeichen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2516
+#: ../intl-scm/guile-strings.c:3850 ../intl-scm/guile-strings.c:5000
 msgid "Credit Accounts"
 msgstr "Habenkonten"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2518
+#: ../intl-scm/guile-strings.c:3852 ../intl-scm/guile-strings.c:5002
 msgid ""
 "Reverse amount display for Liability, Payable, Equity, Credit Card, and "
 "Income accounts"
@@ -18840,39 +20473,46 @@
 "Verbindlichkeiten, Passiva-, Kreditkarten-, Eigenkapital- und Ertragskonten "
 "mit umgekehrten Vorzeichen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2520
+#: ../intl-scm/guile-strings.c:3854 ../intl-scm/guile-strings.c:5004
 #, c-format
 msgid "From %s To %s"
 msgstr "Von %s bis %s"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2524
+#: ../intl-scm/guile-strings.c:3858 ../intl-scm/guile-strings.c:5008
 msgid "Primary Subtotals/headings"
 msgstr "Primäre Zwischenüberschriften/-summen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2528
+#: ../intl-scm/guile-strings.c:3862 ../intl-scm/guile-strings.c:5012
 msgid "Secondary Subtotals/headings"
 msgstr "Sekundäre Zwischenüberschriften/-summen"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2536
+#: ../intl-scm/guile-strings.c:3870 ../intl-scm/guile-strings.c:5020
 msgid "Split Odd"
 msgstr "Ungerade Buchung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2540
+#: ../intl-scm/guile-strings.c:3874 ../intl-scm/guile-strings.c:5024
 msgid "Split Even"
 msgstr "Gerade Buchung"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2550
+#: ../intl-scm/guile-strings.c:3884 ../intl-scm/guile-strings.c:5034
 msgid "No matching transactions found"
 msgstr "Keine passenden Buchungssätze gefunden"
 
+#. src/report/standard-reports/gnucash/report/transaction.scm
 #. src/report/standard-reports/transaction.scm
-#: ../intl-scm/guile-strings.c:2552
+#: ../intl-scm/guile-strings.c:3886 ../intl-scm/guile-strings.c:5036
 msgid ""
 "No transactions were found that match the time interval and account "
 "selection specified in the Options panel."
@@ -18880,419 +20520,582 @@
 "Keine Buchungssätze gefunden, die in den gewählten Zeitraum fallen und die "
 "gewählten Konten betreffen. Klicken Sie »Optionen«, um die Auswahl zu ändern."
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2580
+#: ../intl-scm/guile-strings.c:3914 ../intl-scm/guile-strings.c:5064
 msgid "The title of the report"
 msgstr "Titel des Berichts"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2606
+#: ../intl-scm/guile-strings.c:3940 ../intl-scm/guile-strings.c:5090
 msgid "Display the account?"
 msgstr "Konto anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2646
+#: ../intl-scm/guile-strings.c:3980 ../intl-scm/guile-strings.c:5130
 msgid "Total Debits"
 msgstr "Gesamt Soll"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2648
+#: ../intl-scm/guile-strings.c:3982 ../intl-scm/guile-strings.c:5132
 msgid "Total Credits"
 msgstr "Gesamt Haben"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2650
+#: ../intl-scm/guile-strings.c:3984 ../intl-scm/guile-strings.c:5134
 msgid "Net Change"
 msgstr "Gesamt Änderung"
 
+#. src/report/standard-reports/gnucash/report/register.scm
 #. src/report/standard-reports/register.scm
-#: ../intl-scm/guile-strings.c:2652
+#: ../intl-scm/guile-strings.c:3986 ../intl-scm/guile-strings.c:5136
 msgid "Client"
 msgstr "Kunde"
 
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:2664
+#: ../intl-scm/guile-strings.c:3998 ../intl-scm/guile-strings.c:5148
 msgid "Budget Report"
 msgstr "Budget-Bericht"
 
+#. src/report/standard-reports/gnucash/report/budget.scm
 #. src/report/standard-reports/budget.scm
-#: ../intl-scm/guile-strings.c:2684
+#: ../intl-scm/guile-strings.c:4018 ../intl-scm/guile-strings.c:5168
+msgid "Bgt"
+msgstr "Budget"
+
+#. src/report/standard-reports/gnucash/report/budget.scm
+#. src/report/standard-reports/budget.scm
+#: ../intl-scm/guile-strings.c:4020 ../intl-scm/guile-strings.c:5170
+msgid "Act"
+msgstr "Ist"
+
+#. src/report/standard-reports/gnucash/report/budget.scm
+#. src/report/standard-reports/budget.scm
+#: ../intl-scm/guile-strings.c:4022 ../intl-scm/guile-strings.c:5172
 #, c-format
-msgid "%s - %s"
-msgstr "%s bis %s"
+msgid "%s: %s"
+msgstr "%s: %s"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2686 ../intl-scm/guile-strings.c:2720
+#: ../intl-scm/guile-strings.c:4024 ../intl-scm/guile-strings.c:4058
+#: ../intl-scm/guile-strings.c:5174 ../intl-scm/guile-strings.c:5208
 msgid "Average Balance"
 msgstr "Durchschnittlicher Kontostand"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../intl-scm/guile-strings.c:2698 ../intl-scm/guile-strings.c:2786
+#: ../intl-scm/guile-strings.c:4036 ../intl-scm/guile-strings.c:4124
+#: ../intl-scm/guile-strings.c:5186 ../intl-scm/guile-strings.c:5274
 msgid "Include Sub-Accounts"
 msgstr "Unterkonten-Saldo einrechnen"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/average-balance.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../intl-scm/guile-strings.c:2700 ../intl-scm/guile-strings.c:2800
+#: ../intl-scm/guile-strings.c:4038 ../intl-scm/guile-strings.c:4138
+#: ../intl-scm/guile-strings.c:5188 ../intl-scm/guile-strings.c:5288
 msgid "Include sub-accounts of all selected accounts"
 msgstr "Unterkonten der ausgewählten Konten einbeziehen"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2704
+#: ../intl-scm/guile-strings.c:4042 ../intl-scm/guile-strings.c:5192
 msgid "Do transaction report on this account"
 msgstr "Den Buchungsbericht zu diesem Konto erstellen"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2706 ../intl-scm/guile-strings.c:2756
+#: ../intl-scm/guile-strings.c:4044 ../intl-scm/guile-strings.c:4094
+#: ../intl-scm/guile-strings.c:5194 ../intl-scm/guile-strings.c:5244
 msgid "Show table"
 msgstr "Tabelle anzeigen"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2708
+#: ../intl-scm/guile-strings.c:4046 ../intl-scm/guile-strings.c:5196
 msgid "Display a table of the selected data."
 msgstr "Daten als Tabelle anzeigen."
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2710 ../intl-scm/guile-strings.c:2754
+#: ../intl-scm/guile-strings.c:4048 ../intl-scm/guile-strings.c:4092
+#: ../intl-scm/guile-strings.c:5198 ../intl-scm/guile-strings.c:5242
 msgid "Show plot"
 msgstr "Diagramm anzeigen"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2712
+#: ../intl-scm/guile-strings.c:4050 ../intl-scm/guile-strings.c:5200
 msgid "Display a graph of the selected data."
 msgstr "Daten als Diagramm anzeigen."
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2714 ../intl-scm/guile-strings.c:2752
+#: ../intl-scm/guile-strings.c:4052 ../intl-scm/guile-strings.c:4090
+#: ../intl-scm/guile-strings.c:5202 ../intl-scm/guile-strings.c:5240
 msgid "Plot Type"
 msgstr "Diagrammtyp"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2716
+#: ../intl-scm/guile-strings.c:4054 ../intl-scm/guile-strings.c:5204
 msgid "The type of graph to generate"
 msgstr "Die Art von Diagramm, das angezeigt werden soll."
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2722 ../intl-scm/guile-strings.c:2748
+#: ../intl-scm/guile-strings.c:4060 ../intl-scm/guile-strings.c:4086
+#: ../intl-scm/guile-strings.c:5210 ../intl-scm/guile-strings.c:5236
 msgid "Profit"
 msgstr "Ergebnis"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2724
+#: ../intl-scm/guile-strings.c:4062 ../intl-scm/guile-strings.c:5212
 msgid "Profit (Gain minus Loss)"
 msgstr "Ergebnis (Erträge minus Aufwendungen)"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2728
+#: ../intl-scm/guile-strings.c:4066 ../intl-scm/guile-strings.c:5216
 msgid "Gain And Loss"
 msgstr "Wertzuwachs und Verlust"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2734
+#: ../intl-scm/guile-strings.c:4072 ../intl-scm/guile-strings.c:5222
 msgid "Period start"
 msgstr "Periodenbeginn"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2736
+#: ../intl-scm/guile-strings.c:4074 ../intl-scm/guile-strings.c:5224
 msgid "Period end"
 msgstr "Periodenende"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2740
+#: ../intl-scm/guile-strings.c:4078 ../intl-scm/guile-strings.c:5228
 msgid "Maximum"
 msgstr "Maximum"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2742
+#: ../intl-scm/guile-strings.c:4080 ../intl-scm/guile-strings.c:5230
 msgid "Minimum"
 msgstr "Minimum"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2744
+#: ../intl-scm/guile-strings.c:4082 ../intl-scm/guile-strings.c:5232
 msgid "Gain"
 msgstr "Wertzuwachs"
 
+#. src/report/standard-reports/gnucash/report/average-balance.scm
 #. src/report/standard-reports/average-balance.scm
-#: ../intl-scm/guile-strings.c:2746
+#: ../intl-scm/guile-strings.c:4084 ../intl-scm/guile-strings.c:5234
 msgid "Loss"
 msgstr "Verlust"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../intl-scm/guile-strings.c:2762 ../intl-scm/guile-strings.c:2770
+#: ../intl-scm/guile-strings.c:4100 ../intl-scm/guile-strings.c:4108
+#: ../intl-scm/guile-strings.c:5250 ../intl-scm/guile-strings.c:5258
 msgid "Income vs. Day of Week"
 msgstr "Erträge pro Wochentag"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../intl-scm/guile-strings.c:2764 ../intl-scm/guile-strings.c:2772
+#: ../intl-scm/guile-strings.c:4102 ../intl-scm/guile-strings.c:4110
+#: ../intl-scm/guile-strings.c:5252 ../intl-scm/guile-strings.c:5260
 msgid "Expenses vs. Day of Week"
 msgstr "Aufwendungen pro Wochentag"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../intl-scm/guile-strings.c:2766
+#: ../intl-scm/guile-strings.c:4104 ../intl-scm/guile-strings.c:5254
 msgid "Shows a piechart with the total income for each day of the week"
 msgstr ""
 "Tortendiagramm mit Erträgen eines Zeitraums nach Wochentag aufgeschlüsselt "
 "anzeigen"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
 #. src/report/standard-reports/daily-reports.scm
-#: ../intl-scm/guile-strings.c:2768
+#: ../intl-scm/guile-strings.c:4106 ../intl-scm/guile-strings.c:5256
 msgid "Shows a piechart with the total expenses for each day of the week"
 msgstr ""
 "Tortendiagramm mit Aufwendungen eines Zeitraums nach Wochentag "
 "aufgeschlüsselt anzeigen"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2790 ../intl-scm/guile-strings.c:2862
+#: ../intl-scm/guile-strings.c:4128 ../intl-scm/guile-strings.c:4200
+#: ../intl-scm/guile-strings.c:5278 ../intl-scm/guile-strings.c:5350
 msgid "Show Totals"
 msgstr "Beträge anzeigen"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2792 ../intl-scm/guile-strings.c:2864
+#: ../intl-scm/guile-strings.c:4130 ../intl-scm/guile-strings.c:4202
+#: ../intl-scm/guile-strings.c:5280 ../intl-scm/guile-strings.c:5352
 msgid "Maximum Slices"
 msgstr "Maximale Anzahl Segmente"
 
+#. src/report/standard-reports/gnucash/report/daily-reports.scm
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/daily-reports.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2806 ../intl-scm/guile-strings.c:2878
+#: ../intl-scm/guile-strings.c:4144 ../intl-scm/guile-strings.c:4216
+#: ../intl-scm/guile-strings.c:5294 ../intl-scm/guile-strings.c:5366
 msgid "Show the total balance in legend?"
 msgstr "Gesamtbeträge in der Legende anzeigen?"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2824
+#: ../intl-scm/guile-strings.c:4162 ../intl-scm/guile-strings.c:5312
 msgid "Income Piechart"
 msgstr "Erträge Tortendiagramm"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2826
+#: ../intl-scm/guile-strings.c:4164 ../intl-scm/guile-strings.c:5314
 msgid "Expense Piechart"
 msgstr "Aufwendungen Tortendiagramm"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2828
+#: ../intl-scm/guile-strings.c:4166 ../intl-scm/guile-strings.c:5316
 msgid "Asset Piechart"
 msgstr "Aktiva Tortendiagramm"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2830
+#: ../intl-scm/guile-strings.c:4168 ../intl-scm/guile-strings.c:5318
 msgid "Liability Piechart"
 msgstr "Passiva Tortendiagramm"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2832
+#: ../intl-scm/guile-strings.c:4170 ../intl-scm/guile-strings.c:5320
 msgid "Shows a piechart with the Income per given time interval"
 msgstr "Tortendiagramm der Erträge eines Zeitraums anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2834
+#: ../intl-scm/guile-strings.c:4172 ../intl-scm/guile-strings.c:5322
 msgid "Shows a piechart with the Expenses per given time interval"
 msgstr "Tortendiagramm der Aufwendungen eines Zeitraums anzeigen "
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2836
+#: ../intl-scm/guile-strings.c:4174 ../intl-scm/guile-strings.c:5324
 msgid "Shows a piechart with the Assets balance at a given time"
 msgstr "Tortendiagramm der Aktiva eines Zeitpunkts anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2838
+#: ../intl-scm/guile-strings.c:4176 ../intl-scm/guile-strings.c:5326
 msgid "Shows a piechart with the Liabilities balance at a given time"
 msgstr "Tortendiagramm der Passiva eines Zeitpunkts anzeigen"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2840
+#: ../intl-scm/guile-strings.c:4178 ../intl-scm/guile-strings.c:5328
 msgid "Income Accounts"
 msgstr "Ertragskonten"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2842
+#: ../intl-scm/guile-strings.c:4180 ../intl-scm/guile-strings.c:5330
 msgid "Expense Accounts"
 msgstr "Aufwandskonten"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2880
+#: ../intl-scm/guile-strings.c:4218 ../intl-scm/guile-strings.c:5368
 msgid "Maximum number of slices in pie"
 msgstr "Maximale Anzahl Segmente (Tortenstücke) im Diagramm"
 
+#. src/report/standard-reports/gnucash/report/account-piecharts.scm
 #. src/report/standard-reports/account-piecharts.scm
-#: ../intl-scm/guile-strings.c:2886
+#: ../intl-scm/guile-strings.c:4224 ../intl-scm/guile-strings.c:5374
 #, c-format
 msgid "Balance at %s"
 msgstr "Saldo am %s"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2890 ../intl-scm/guile-strings.c:2980
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5378 ../intl-scm/guile-strings.c:5468
+#: ../intl-scm/guile-strings.c:5558 ../intl-scm/guile-strings.c:5648
 msgid "Tax Report / TXF Export"
 msgstr "Steuer-Bericht / TXF Export"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2896 ../intl-scm/guile-strings.c:2986
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5384 ../intl-scm/guile-strings.c:5474
+#: ../intl-scm/guile-strings.c:5564 ../intl-scm/guile-strings.c:5654
 msgid "Alternate Period"
 msgstr "Abwechselnde Perioden"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2898 ../intl-scm/guile-strings.c:2988
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5386 ../intl-scm/guile-strings.c:5476
+#: ../intl-scm/guile-strings.c:5566 ../intl-scm/guile-strings.c:5656
 msgid "Override or modify From: & To:"
 msgstr "Ãœberschreiben oder modifizieren des Von: & An:"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2900 ../intl-scm/guile-strings.c:2990
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5388 ../intl-scm/guile-strings.c:5478
+#: ../intl-scm/guile-strings.c:5568 ../intl-scm/guile-strings.c:5658
 msgid "Use From - To"
 msgstr "Benutzen Sie Von - Bis"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2902 ../intl-scm/guile-strings.c:2992
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5390 ../intl-scm/guile-strings.c:5480
+#: ../intl-scm/guile-strings.c:5570 ../intl-scm/guile-strings.c:5660
 msgid "Use From - To period"
 msgstr "Benutzen SIe den Von-Bis Zeitraum"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2904 ../intl-scm/guile-strings.c:2994
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5392 ../intl-scm/guile-strings.c:5482
+#: ../intl-scm/guile-strings.c:5572 ../intl-scm/guile-strings.c:5662
 msgid "1st Est Tax Quarter"
 msgstr "Steuerschätzung des ersten Quartals"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2906 ../intl-scm/guile-strings.c:2996
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5394 ../intl-scm/guile-strings.c:5484
+#: ../intl-scm/guile-strings.c:5574 ../intl-scm/guile-strings.c:5664
 msgid "Jan 1 - Mar 31"
 msgstr "1. Jan. - 31. März"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2908 ../intl-scm/guile-strings.c:2998
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5396 ../intl-scm/guile-strings.c:5486
+#: ../intl-scm/guile-strings.c:5576 ../intl-scm/guile-strings.c:5666
 msgid "2nd Est Tax Quarter"
 msgstr "Steuerschätzung 2. Quartal"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2910 ../intl-scm/guile-strings.c:3000
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5398 ../intl-scm/guile-strings.c:5488
+#: ../intl-scm/guile-strings.c:5578 ../intl-scm/guile-strings.c:5668
 msgid "Apr 1 - May 31"
 msgstr "1. Apr. - 31. Mai"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2912 ../intl-scm/guile-strings.c:3002
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5400 ../intl-scm/guile-strings.c:5490
+#: ../intl-scm/guile-strings.c:5580 ../intl-scm/guile-strings.c:5670
 msgid "3rd Est Tax Quarter"
 msgstr "Steurschätzung des dritten Quartals"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2914 ../intl-scm/guile-strings.c:3004
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5402 ../intl-scm/guile-strings.c:5492
+#: ../intl-scm/guile-strings.c:5582 ../intl-scm/guile-strings.c:5672
 msgid "Jun 1 - Aug 31"
 msgstr "1. Juni -31. Aug."
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2916 ../intl-scm/guile-strings.c:3006
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5404 ../intl-scm/guile-strings.c:5494
+#: ../intl-scm/guile-strings.c:5584 ../intl-scm/guile-strings.c:5674
 msgid "4th Est Tax Quarter"
 msgstr "Steuerschätzung des 4. Quartals"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2918 ../intl-scm/guile-strings.c:3008
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5406 ../intl-scm/guile-strings.c:5496
+#: ../intl-scm/guile-strings.c:5586 ../intl-scm/guile-strings.c:5676
 msgid "Sep 1 - Dec 31"
 msgstr "1. Sept - 31. Dez."
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2920 ../intl-scm/guile-strings.c:2922
-#: ../intl-scm/guile-strings.c:3010 ../intl-scm/guile-strings.c:3012
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5408 ../intl-scm/guile-strings.c:5410
+#: ../intl-scm/guile-strings.c:5498 ../intl-scm/guile-strings.c:5500
+#: ../intl-scm/guile-strings.c:5588 ../intl-scm/guile-strings.c:5590
+#: ../intl-scm/guile-strings.c:5678 ../intl-scm/guile-strings.c:5680
 msgid "Last Year"
 msgstr "Letztes Jahr"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2924 ../intl-scm/guile-strings.c:3014
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5412 ../intl-scm/guile-strings.c:5502
+#: ../intl-scm/guile-strings.c:5592 ../intl-scm/guile-strings.c:5682
 msgid "Last Yr 1st Est Tax Qtr"
 msgstr "Steuerschätzung erstes Quartal des vergangenen Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2926 ../intl-scm/guile-strings.c:3016
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5414 ../intl-scm/guile-strings.c:5504
+#: ../intl-scm/guile-strings.c:5594 ../intl-scm/guile-strings.c:5684
 msgid "Jan 1 - Mar 31, Last year"
 msgstr "1. Januar - 31. März letzten Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2928 ../intl-scm/guile-strings.c:3018
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5416 ../intl-scm/guile-strings.c:5506
+#: ../intl-scm/guile-strings.c:5596 ../intl-scm/guile-strings.c:5686
 msgid "Last Yr 2nd Est Tax Qtr"
 msgstr "Letztes Jahr zweites vermutliches Steuerquartal"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2930 ../intl-scm/guile-strings.c:3020
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5418 ../intl-scm/guile-strings.c:5508
+#: ../intl-scm/guile-strings.c:5598 ../intl-scm/guile-strings.c:5688
 msgid "Apr 1 - May 31, Last year"
 msgstr "1. April- 31. August letzten Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2932 ../intl-scm/guile-strings.c:3022
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5420 ../intl-scm/guile-strings.c:5510
+#: ../intl-scm/guile-strings.c:5600 ../intl-scm/guile-strings.c:5690
 msgid "Last Yr 3rd Est Tax Qtr"
 msgstr "Steuerschätzung des 3. Quartals des letzten Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2934 ../intl-scm/guile-strings.c:3024
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5422 ../intl-scm/guile-strings.c:5512
+#: ../intl-scm/guile-strings.c:5602 ../intl-scm/guile-strings.c:5692
 msgid "Jun 1 - Aug 31, Last year"
 msgstr "1. Juni - 31. August letzten Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2936 ../intl-scm/guile-strings.c:3026
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5424 ../intl-scm/guile-strings.c:5514
+#: ../intl-scm/guile-strings.c:5604 ../intl-scm/guile-strings.c:5694
 msgid "Last Yr 4th Est Tax Qtr"
 msgstr "Steuer-Schätzung des vierten Quartals des letzten Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2938 ../intl-scm/guile-strings.c:3028
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5426 ../intl-scm/guile-strings.c:5516
+#: ../intl-scm/guile-strings.c:5606 ../intl-scm/guile-strings.c:5696
 msgid "Sep 1 - Dec 31, Last year"
 msgstr "1. September - 31. Dezember letzten Jahres"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2940 ../intl-scm/guile-strings.c:3030
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5428 ../intl-scm/guile-strings.c:5518
+#: ../intl-scm/guile-strings.c:5608 ../intl-scm/guile-strings.c:5698
 msgid "Select Accounts (none = all)"
 msgstr "Konten auswählen (keine = alle)"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2942 ../intl-scm/guile-strings.c:3032
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5430 ../intl-scm/guile-strings.c:5520
+#: ../intl-scm/guile-strings.c:5610 ../intl-scm/guile-strings.c:5700
 msgid "Select accounts"
 msgstr "Konten auswählen"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2944 ../intl-scm/guile-strings.c:3034
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5432 ../intl-scm/guile-strings.c:5522
+#: ../intl-scm/guile-strings.c:5612 ../intl-scm/guile-strings.c:5702
 msgid "Suppress $0.00 values"
 msgstr "Unterdrücke 0,00 Euro Werte"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2946 ../intl-scm/guile-strings.c:3036
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5434 ../intl-scm/guile-strings.c:5524
+#: ../intl-scm/guile-strings.c:5614 ../intl-scm/guile-strings.c:5704
 msgid "$0.00 valued Accounts won't be printed."
 msgstr "Konten mit Summe 0,00 Euro werden nicht gedruckt/angezeigt."
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2948 ../intl-scm/guile-strings.c:3038
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5436 ../intl-scm/guile-strings.c:5526
+#: ../intl-scm/guile-strings.c:5616 ../intl-scm/guile-strings.c:5706
 msgid "Print Full account names"
 msgstr "Vollen Kontonamen anzeigen"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2950 ../intl-scm/guile-strings.c:3040
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5438 ../intl-scm/guile-strings.c:5528
+#: ../intl-scm/guile-strings.c:5618 ../intl-scm/guile-strings.c:5708
 msgid "Print all Parent account names"
 msgstr "Drucke alle Haupt-Kontenbezeichnungen"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2952 ../intl-scm/guile-strings.c:3042
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5440 ../intl-scm/guile-strings.c:5530
+#: ../intl-scm/guile-strings.c:5620 ../intl-scm/guile-strings.c:5710
 msgid ""
 "WARNING: There are duplicate TXF codes assigned to some accounts. Only TXF "
 "codes with payer sources may be repeated."
@@ -19303,25 +21106,35 @@
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2958 ../intl-scm/guile-strings.c:3048
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5446 ../intl-scm/guile-strings.c:5536
+#: ../intl-scm/guile-strings.c:5626 ../intl-scm/guile-strings.c:5716
 msgid "Sub-"
 msgstr "Zwischen-"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2960 ../intl-scm/guile-strings.c:3050
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5448 ../intl-scm/guile-strings.c:5538
+#: ../intl-scm/guile-strings.c:5628 ../intl-scm/guile-strings.c:5718
 #, c-format
 msgid "Period from %s to %s"
 msgstr "Zeitraum von %s bis %s"
 
 #. src/report/locale-specific/us/taxtxf.scm
-#: ../intl-scm/guile-strings.c:2962
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#: ../intl-scm/guile-strings.c:5450 ../intl-scm/guile-strings.c:5630
 msgid "Blue items are exportable to a .TXF file."
 msgstr "Blaue Einträge können in eine .TXF-Datei exportiert werden."
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2964 ../intl-scm/guile-strings.c:3054
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5452 ../intl-scm/guile-strings.c:5542
+#: ../intl-scm/guile-strings.c:5632 ../intl-scm/guile-strings.c:5722
 msgid ""
 "No Tax Related accounts were found.  Go to the Edit->Tax Options dialog to "
 "set up tax-related accounts."
@@ -19331,43 +21144,57 @@
 "Informationen angeben."
 
 #. src/report/locale-specific/us/taxtxf.scm
-#: ../intl-scm/guile-strings.c:2966
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#: ../intl-scm/guile-strings.c:5454 ../intl-scm/guile-strings.c:5634
 msgid "Tax Report & TXF Export"
 msgstr "Steuer-Bericht & TXF Export"
 
 #. src/report/locale-specific/us/taxtxf.scm
-#: ../intl-scm/guile-strings.c:2968
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#: ../intl-scm/guile-strings.c:5456 ../intl-scm/guile-strings.c:5636
 msgid "Taxable Income / Deductible Expenses / Export to .TXF file"
 msgstr "Besteuerte Erträge / Absetzbare Aufwendungen / Exportieren nach .TXF"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2970 ../intl-scm/guile-strings.c:2976
-#: ../intl-scm/guile-strings.c:3060 ../intl-scm/guile-strings.c:3066
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5458 ../intl-scm/guile-strings.c:5464
+#: ../intl-scm/guile-strings.c:5548 ../intl-scm/guile-strings.c:5554
+#: ../intl-scm/guile-strings.c:5638 ../intl-scm/guile-strings.c:5644
+#: ../intl-scm/guile-strings.c:5728 ../intl-scm/guile-strings.c:5734
 msgid "Taxable Income / Deductible Expenses"
 msgstr "Besteuerte Erträge / Absetzbare Aufwendungen"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2972 ../intl-scm/guile-strings.c:3062
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5460 ../intl-scm/guile-strings.c:5550
+#: ../intl-scm/guile-strings.c:5640 ../intl-scm/guile-strings.c:5730
 msgid "This report shows your Taxable Income and Deductible Expenses."
 msgstr ""
 "Diese Seite zeigt Ihnen zu versteuernde Erträge und absetzbare Aufwendungen."
 
 #. src/report/locale-specific/us/taxtxf.scm
-#: ../intl-scm/guile-strings.c:2974
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#: ../intl-scm/guile-strings.c:5462 ../intl-scm/guile-strings.c:5642
 msgid "TXF"
 msgstr "TXF"
 
 #. src/report/locale-specific/us/taxtxf.scm
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:2978 ../intl-scm/guile-strings.c:3068
+#. src/report/locale-specific/us/gnucash/report/taxtxf.scm
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5466 ../intl-scm/guile-strings.c:5556
+#: ../intl-scm/guile-strings.c:5646 ../intl-scm/guile-strings.c:5736
 msgid "This page shows your Taxable Income and Deductible Expenses."
 msgstr ""
 "Diese Seite zeigt Ihnen zu versteuernde Erträge und absetzbare Aufwendungen."
 
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:3052
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5540 ../intl-scm/guile-strings.c:5720
 msgid ""
 "Blue items are exportable to a German Tax XML file. Press Export to actually "
 "export them."
@@ -19376,636 +21203,856 @@
 "Klicken Sie »Export«, um den Export durchzuführen."
 
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:3056
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5544 ../intl-scm/guile-strings.c:5724
 msgid "Tax Report & XML Export"
 msgstr "Steuer-Bericht & Elster Export"
 
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:3058
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5546 ../intl-scm/guile-strings.c:5726
 msgid "Taxable Income / Deductible Expenses / Export to .XML file"
 msgstr ""
 "Besteuertes Erträge / Absetzbare Aufwendungen / Exportieren nach Elster-XML"
 
 #. src/report/locale-specific/us/taxtxf-de_DE.scm
-#: ../intl-scm/guile-strings.c:3064
+#. src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
+#: ../intl-scm/guile-strings.c:5552 ../intl-scm/guile-strings.c:5732
 msgid "XML"
 msgstr "XML für Elster"
 
+#. src/import-export/qif-import/qif-import/qif-file.scm
 #. src/import-export/qif-import/qif-file.scm
-#: ../intl-scm/guile-strings.c:3116
+#: ../intl-scm/guile-strings.c:5806 ../intl-scm/guile-strings.c:5824
 msgid "Loading QIF file..."
 msgstr "QIF Datei lesen..."
 
+#. src/import-export/qif-import/qif-import/qif-to-gnc.scm
 #. src/import-export/qif-import/qif-to-gnc.scm
-#: ../intl-scm/guile-strings.c:3118
+#: ../intl-scm/guile-strings.c:5808 ../intl-scm/guile-strings.c:5826
 msgid "QIF import: Name conflict with another account."
 msgstr "QIF-Import: Namenskonflikt mit bestehendem Konto."
 
+#. src/import-export/qif-import/qif-import/qif-to-gnc.scm
 #. src/import-export/qif-import/qif-to-gnc.scm
-#: ../intl-scm/guile-strings.c:3122
+#: ../intl-scm/guile-strings.c:5812 ../intl-scm/guile-strings.c:5830
 msgid "Importing transactions..."
 msgstr "Buchungen importieren..."
 
+#. src/import-export/qif-import/qif-import/qif-parse.scm
 #. src/import-export/qif-import/qif-parse.scm
-#: ../intl-scm/guile-strings.c:3124
+#: ../intl-scm/guile-strings.c:5814 ../intl-scm/guile-strings.c:5832
 #, c-format
 msgid "The file contains an unknown Action '%s'."
 msgstr "Diese Datei enthält eine unbekannte Aktion '%s'."
 
+#. src/import-export/qif-import/qif-import/qif-parse.scm
 #. src/import-export/qif-import/qif-parse.scm
-#: ../intl-scm/guile-strings.c:3126
+#: ../intl-scm/guile-strings.c:5816 ../intl-scm/guile-strings.c:5834
 msgid "Some transactions may be discarded."
 msgstr "Einige Buchungen sind eventuell verworfen worden."
 
+#. src/import-export/qif-import/qif-import/qif-merge-groups.scm
 #. src/import-export/qif-import/qif-merge-groups.scm
-#: ../intl-scm/guile-strings.c:3130
+#: ../intl-scm/guile-strings.c:5820 ../intl-scm/guile-strings.c:5838
 msgid "Finding duplicate transactions..."
 msgstr "Duplizierte Buchungen finden..."
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3132
+#: ../intl-scm/guile-strings.c:5840
 msgid "The name of your business"
 msgstr "Der Name Ihres Geschäfts"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3134
+#: ../intl-scm/guile-strings.c:5842
 msgid "The address of your business"
 msgstr "Die Anschrift Ihres Geschäfts"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3136
+#: ../intl-scm/guile-strings.c:5844
 msgid "The contact person to print on invoices"
 msgstr ""
 "Die/der Ansprechpartner/in, die auf Ihren Rechnungen angegeben werden soll"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3138
+#: ../intl-scm/guile-strings.c:5846
 msgid "The phone number of your business"
 msgstr "Die Telefonnummer Ihrer Firma"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3140
+#: ../intl-scm/guile-strings.c:5848
 msgid "The fax number of your business"
 msgstr "Die Faxnummer Ihrer Firma"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3142
+#: ../intl-scm/guile-strings.c:5850
 msgid "The email address of your business"
 msgstr "Die E-Mail-Adresse Ihrer Firma"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3144
+#: ../intl-scm/guile-strings.c:5852
 msgid "The URL address of your website"
 msgstr "Die Adresse (URL) Ihrer Webseite"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3146
+#: ../intl-scm/guile-strings.c:5854
 msgid "The ID for your company (eg 'Tax-ID: 00-000000)"
 msgstr "Eine Nummer ihrer Firma (z.B. Tax-ID: 00-000000)"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3148
+#: ../intl-scm/guile-strings.c:5856
 msgid "Default Customer TaxTable"
 msgstr "Voreinstellung Kunde Steuertabelle"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3150
+#: ../intl-scm/guile-strings.c:5858
 msgid "The default tax table to apply to customers."
 msgstr ""
 "Voreinstellung für die Steuertabelle, die bei Kunden angewendet werden soll."
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3152
+#: ../intl-scm/guile-strings.c:5860
 msgid "Default Vendor TaxTable"
 msgstr "Voreinstellung Zulieferer Steuertabelle"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3154
+#: ../intl-scm/guile-strings.c:5862
 msgid "The default tax table to apply to vendors."
 msgstr ""
 "Voreinstellung für die Steuertabelle, die bei Zulieferern angewendet werden "
 "soll."
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3156
+#: ../intl-scm/guile-strings.c:5864
 msgid "Fancy Date Format"
 msgstr "Ausführliches Datumsformat"
 
 #. src/business/business-utils/business-prefs.scm
-#: ../intl-scm/guile-strings.c:3158
+#: ../intl-scm/guile-strings.c:5866
 msgid "The default date format used for fancy printed dates"
 msgstr "Voreinstellung für Datumsformat im ausführlichen Datumsdruck"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3164
+#: ../intl-scm/guile-strings.c:5872 ../intl-scm/guile-strings.c:5890
 msgid "Company Address"
 msgstr "Firmenadresse"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3166
+#: ../intl-scm/guile-strings.c:5874 ../intl-scm/guile-strings.c:5892
 msgid "Company ID"
 msgstr "Firmennummer"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3168
+#: ../intl-scm/guile-strings.c:5876 ../intl-scm/guile-strings.c:5894
 msgid "Company Phone Number"
 msgstr "Firmentelefonnummer"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3170
+#: ../intl-scm/guile-strings.c:5878 ../intl-scm/guile-strings.c:5896
 msgid "Company Fax Number"
 msgstr "Firmenfaxnummer"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3172
+#: ../intl-scm/guile-strings.c:5880 ../intl-scm/guile-strings.c:5898
 msgid "Company Website URL"
 msgstr "Firmenwebseite URL"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3174
+#: ../intl-scm/guile-strings.c:5882 ../intl-scm/guile-strings.c:5900
 msgid "Company Email Address"
 msgstr "Firmen-E-Mail-Adresse"
 
+#. src/business/business-utils/gnucash/business-utils.scm
 #. src/business/business-utils/business-utils.scm
-#: ../intl-scm/guile-strings.c:3176
+#: ../intl-scm/guile-strings.c:5884 ../intl-scm/guile-strings.c:5902
 msgid "Company Contact Person"
 msgstr "Firmen Ansprechpartner"
 
 #. src/business/business-reports/payables.scm
-#: ../intl-scm/guile-strings.c:3178
+#. src/business/business-reports/gnucash/report/payables.scm
+#: ../intl-scm/guile-strings.c:5904 ../intl-scm/guile-strings.c:6428
 msgid "Payable Account"
 msgstr "Verbindlichkeiten Konto"
 
 #. src/business/business-reports/payables.scm
-#: ../intl-scm/guile-strings.c:3180
+#. src/business/business-reports/gnucash/report/payables.scm
+#: ../intl-scm/guile-strings.c:5906 ../intl-scm/guile-strings.c:6430
 msgid "The payable account you wish to examine"
 msgstr "Folgendes Verbindlichkeiten-Konto wollen Sie untersuchen"
 
 #. src/business/business-reports/payables.scm
-#: ../intl-scm/guile-strings.c:3182 ../intl-scm/guile-strings.c:3184
+#. src/business/business-reports/gnucash/report/payables.scm
+#: ../intl-scm/guile-strings.c:5908 ../intl-scm/guile-strings.c:5910
+#: ../intl-scm/guile-strings.c:6432 ../intl-scm/guile-strings.c:6434
 msgid "Payable Aging"
 msgstr "Entwicklung Verbindlichkeiten"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3186 ../intl-scm/guile-strings.c:3504
-#: ../intl-scm/guile-strings.c:3762
+#: ../intl-scm/guile-strings.c:5912 ../intl-scm/guile-strings.c:6230
+#: ../intl-scm/guile-strings.c:6436 ../intl-scm/guile-strings.c:6754
+#: ../intl-scm/guile-strings.c:7014 ../intl-scm/guile-strings.c:7254
 msgid "Invoice Number"
 msgstr "Rechnungsnummer"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3192 ../intl-scm/guile-strings.c:3510
-#: ../intl-scm/guile-strings.c:3768
+#: ../intl-scm/guile-strings.c:5918 ../intl-scm/guile-strings.c:6236
+#: ../intl-scm/guile-strings.c:6442 ../intl-scm/guile-strings.c:6760
+#: ../intl-scm/guile-strings.c:7020 ../intl-scm/guile-strings.c:7260
 msgid "Charge Type"
 msgstr "Einheit"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3200 ../intl-scm/guile-strings.c:3248
-#: ../intl-scm/guile-strings.c:3518 ../intl-scm/guile-strings.c:3566
-#: ../intl-scm/guile-strings.c:3776 ../intl-scm/guile-strings.c:3824
+#: ../intl-scm/guile-strings.c:5926 ../intl-scm/guile-strings.c:5974
+#: ../intl-scm/guile-strings.c:6244 ../intl-scm/guile-strings.c:6292
+#: ../intl-scm/guile-strings.c:6450 ../intl-scm/guile-strings.c:6498
+#: ../intl-scm/guile-strings.c:6768 ../intl-scm/guile-strings.c:6816
+#: ../intl-scm/guile-strings.c:7028 ../intl-scm/guile-strings.c:7076
+#: ../intl-scm/guile-strings.c:7268 ../intl-scm/guile-strings.c:7316
 msgid "Taxable"
 msgstr "Steuerwirksam"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3202 ../intl-scm/guile-strings.c:3254
-#: ../intl-scm/guile-strings.c:3520 ../intl-scm/guile-strings.c:3572
-#: ../intl-scm/guile-strings.c:3778 ../intl-scm/guile-strings.c:3830
+#: ../intl-scm/guile-strings.c:5928 ../intl-scm/guile-strings.c:5980
+#: ../intl-scm/guile-strings.c:6246 ../intl-scm/guile-strings.c:6298
+#: ../intl-scm/guile-strings.c:6452 ../intl-scm/guile-strings.c:6504
+#: ../intl-scm/guile-strings.c:6770 ../intl-scm/guile-strings.c:6822
+#: ../intl-scm/guile-strings.c:7030 ../intl-scm/guile-strings.c:7082
+#: ../intl-scm/guile-strings.c:7270 ../intl-scm/guile-strings.c:7322
 msgid "Tax Amount"
 msgstr "Betrag Steuern"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3208 ../intl-scm/guile-strings.c:3526
-#: ../intl-scm/guile-strings.c:3784
+#: ../intl-scm/guile-strings.c:5934 ../intl-scm/guile-strings.c:6252
+#: ../intl-scm/guile-strings.c:6458 ../intl-scm/guile-strings.c:6776
+#: ../intl-scm/guile-strings.c:7036 ../intl-scm/guile-strings.c:7276
 msgid "T"
 msgstr "St."
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3210 ../intl-scm/guile-strings.c:3216
-#: ../intl-scm/guile-strings.c:3222 ../intl-scm/guile-strings.c:3228
-#: ../intl-scm/guile-strings.c:3234 ../intl-scm/guile-strings.c:3240
-#: ../intl-scm/guile-strings.c:3246 ../intl-scm/guile-strings.c:3252
-#: ../intl-scm/guile-strings.c:3258 ../intl-scm/guile-strings.c:3436
-#: ../intl-scm/guile-strings.c:3440 ../intl-scm/guile-strings.c:3444
-#: ../intl-scm/guile-strings.c:3448 ../intl-scm/guile-strings.c:3452
-#: ../intl-scm/guile-strings.c:3456 ../intl-scm/guile-strings.c:3528
-#: ../intl-scm/guile-strings.c:3534 ../intl-scm/guile-strings.c:3540
-#: ../intl-scm/guile-strings.c:3546 ../intl-scm/guile-strings.c:3552
-#: ../intl-scm/guile-strings.c:3558 ../intl-scm/guile-strings.c:3564
-#: ../intl-scm/guile-strings.c:3570 ../intl-scm/guile-strings.c:3576
-#: ../intl-scm/guile-strings.c:3786 ../intl-scm/guile-strings.c:3792
-#: ../intl-scm/guile-strings.c:3798 ../intl-scm/guile-strings.c:3804
-#: ../intl-scm/guile-strings.c:3810 ../intl-scm/guile-strings.c:3816
-#: ../intl-scm/guile-strings.c:3822 ../intl-scm/guile-strings.c:3828
-#: ../intl-scm/guile-strings.c:3834
+#: ../intl-scm/guile-strings.c:5936 ../intl-scm/guile-strings.c:5942
+#: ../intl-scm/guile-strings.c:5948 ../intl-scm/guile-strings.c:5954
+#: ../intl-scm/guile-strings.c:5960 ../intl-scm/guile-strings.c:5966
+#: ../intl-scm/guile-strings.c:5972 ../intl-scm/guile-strings.c:5978
+#: ../intl-scm/guile-strings.c:5984 ../intl-scm/guile-strings.c:6162
+#: ../intl-scm/guile-strings.c:6166 ../intl-scm/guile-strings.c:6170
+#: ../intl-scm/guile-strings.c:6174 ../intl-scm/guile-strings.c:6178
+#: ../intl-scm/guile-strings.c:6182 ../intl-scm/guile-strings.c:6254
+#: ../intl-scm/guile-strings.c:6260 ../intl-scm/guile-strings.c:6266
+#: ../intl-scm/guile-strings.c:6272 ../intl-scm/guile-strings.c:6278
+#: ../intl-scm/guile-strings.c:6284 ../intl-scm/guile-strings.c:6290
+#: ../intl-scm/guile-strings.c:6296 ../intl-scm/guile-strings.c:6302
+#: ../intl-scm/guile-strings.c:6460 ../intl-scm/guile-strings.c:6466
+#: ../intl-scm/guile-strings.c:6472 ../intl-scm/guile-strings.c:6478
+#: ../intl-scm/guile-strings.c:6484 ../intl-scm/guile-strings.c:6490
+#: ../intl-scm/guile-strings.c:6496 ../intl-scm/guile-strings.c:6502
+#: ../intl-scm/guile-strings.c:6508 ../intl-scm/guile-strings.c:6686
+#: ../intl-scm/guile-strings.c:6690 ../intl-scm/guile-strings.c:6694
+#: ../intl-scm/guile-strings.c:6698 ../intl-scm/guile-strings.c:6702
+#: ../intl-scm/guile-strings.c:6706 ../intl-scm/guile-strings.c:6778
+#: ../intl-scm/guile-strings.c:6784 ../intl-scm/guile-strings.c:6790
+#: ../intl-scm/guile-strings.c:6796 ../intl-scm/guile-strings.c:6802
+#: ../intl-scm/guile-strings.c:6808 ../intl-scm/guile-strings.c:6814
+#: ../intl-scm/guile-strings.c:6820 ../intl-scm/guile-strings.c:6826
+#: ../intl-scm/guile-strings.c:7038 ../intl-scm/guile-strings.c:7044
+#: ../intl-scm/guile-strings.c:7050 ../intl-scm/guile-strings.c:7056
+#: ../intl-scm/guile-strings.c:7062 ../intl-scm/guile-strings.c:7068
+#: ../intl-scm/guile-strings.c:7074 ../intl-scm/guile-strings.c:7080
+#: ../intl-scm/guile-strings.c:7086 ../intl-scm/guile-strings.c:7278
+#: ../intl-scm/guile-strings.c:7284 ../intl-scm/guile-strings.c:7290
+#: ../intl-scm/guile-strings.c:7296 ../intl-scm/guile-strings.c:7302
+#: ../intl-scm/guile-strings.c:7308 ../intl-scm/guile-strings.c:7314
+#: ../intl-scm/guile-strings.c:7320 ../intl-scm/guile-strings.c:7326
 msgid "Display Columns"
 msgstr "Spalten anzeigen"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3226 ../intl-scm/guile-strings.c:3544
-#: ../intl-scm/guile-strings.c:3802
+#: ../intl-scm/guile-strings.c:5952 ../intl-scm/guile-strings.c:6270
+#: ../intl-scm/guile-strings.c:6476 ../intl-scm/guile-strings.c:6794
+#: ../intl-scm/guile-strings.c:7054 ../intl-scm/guile-strings.c:7294
 msgid "Display the action?"
 msgstr "Aktion anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3232 ../intl-scm/guile-strings.c:3550
-#: ../intl-scm/guile-strings.c:3808
+#: ../intl-scm/guile-strings.c:5958 ../intl-scm/guile-strings.c:6276
+#: ../intl-scm/guile-strings.c:6482 ../intl-scm/guile-strings.c:6800
+#: ../intl-scm/guile-strings.c:7060 ../intl-scm/guile-strings.c:7300
 msgid "Display the quantity of items?"
 msgstr "Anzeigen Anzahl der Einträge?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3238 ../intl-scm/guile-strings.c:3556
-#: ../intl-scm/guile-strings.c:3814
+#: ../intl-scm/guile-strings.c:5964 ../intl-scm/guile-strings.c:6282
+#: ../intl-scm/guile-strings.c:6488 ../intl-scm/guile-strings.c:6806
+#: ../intl-scm/guile-strings.c:7066 ../intl-scm/guile-strings.c:7306
 msgid "Display the price per item?"
 msgstr "Den Preis pro Artikel anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3244 ../intl-scm/guile-strings.c:3562
-#: ../intl-scm/guile-strings.c:3820
+#: ../intl-scm/guile-strings.c:5970 ../intl-scm/guile-strings.c:6288
+#: ../intl-scm/guile-strings.c:6494 ../intl-scm/guile-strings.c:6812
+#: ../intl-scm/guile-strings.c:7072 ../intl-scm/guile-strings.c:7312
 msgid "Display the entry's discount"
 msgstr "Anzeigen der Ermäßigung des Postens"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3250 ../intl-scm/guile-strings.c:3568
-#: ../intl-scm/guile-strings.c:3826
+#: ../intl-scm/guile-strings.c:5976 ../intl-scm/guile-strings.c:6294
+#: ../intl-scm/guile-strings.c:6500 ../intl-scm/guile-strings.c:6818
+#: ../intl-scm/guile-strings.c:7078 ../intl-scm/guile-strings.c:7318
 msgid "Display the entry's taxable status"
 msgstr "Anzeigen der Steuerwirksamkeit des Postens"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3256 ../intl-scm/guile-strings.c:3574
-#: ../intl-scm/guile-strings.c:3832
+#: ../intl-scm/guile-strings.c:5982 ../intl-scm/guile-strings.c:6300
+#: ../intl-scm/guile-strings.c:6506 ../intl-scm/guile-strings.c:6824
+#: ../intl-scm/guile-strings.c:7084 ../intl-scm/guile-strings.c:7324
 msgid "Display each entry's total total tax"
 msgstr "Anzeigen des gesamten Steueranteils jedes Postens"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3262 ../intl-scm/guile-strings.c:3580
-#: ../intl-scm/guile-strings.c:3838
+#: ../intl-scm/guile-strings.c:5988 ../intl-scm/guile-strings.c:6306
+#: ../intl-scm/guile-strings.c:6512 ../intl-scm/guile-strings.c:6830
+#: ../intl-scm/guile-strings.c:7090 ../intl-scm/guile-strings.c:7330
 msgid "Display the entry's value"
 msgstr "Anzeigen des Betrags des Postens"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3266 ../intl-scm/guile-strings.c:3602
-#: ../intl-scm/guile-strings.c:3842
+#: ../intl-scm/guile-strings.c:5992 ../intl-scm/guile-strings.c:6328
+#: ../intl-scm/guile-strings.c:6516 ../intl-scm/guile-strings.c:6852
+#: ../intl-scm/guile-strings.c:7094 ../intl-scm/guile-strings.c:7334
 msgid "Individual Taxes"
 msgstr "Einzelne Steueranteile"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3268 ../intl-scm/guile-strings.c:3604
-#: ../intl-scm/guile-strings.c:3844
+#: ../intl-scm/guile-strings.c:5994 ../intl-scm/guile-strings.c:6330
+#: ../intl-scm/guile-strings.c:6518 ../intl-scm/guile-strings.c:6854
+#: ../intl-scm/guile-strings.c:7096 ../intl-scm/guile-strings.c:7336
 msgid "Display all the individual taxes?"
 msgstr "Alle einzelnen Steueranteile anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3278 ../intl-scm/guile-strings.c:3620
-#: ../intl-scm/guile-strings.c:3854
+#: ../intl-scm/guile-strings.c:6004 ../intl-scm/guile-strings.c:6346
+#: ../intl-scm/guile-strings.c:6528 ../intl-scm/guile-strings.c:6870
+#: ../intl-scm/guile-strings.c:7106 ../intl-scm/guile-strings.c:7346
 msgid "References"
 msgstr "Referenz"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3280 ../intl-scm/guile-strings.c:3622
-#: ../intl-scm/guile-strings.c:3856
+#: ../intl-scm/guile-strings.c:6006 ../intl-scm/guile-strings.c:6348
+#: ../intl-scm/guile-strings.c:6530 ../intl-scm/guile-strings.c:6872
+#: ../intl-scm/guile-strings.c:7108 ../intl-scm/guile-strings.c:7348
 msgid "Display the invoice references?"
 msgstr "Rechnungsreferenz anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3284 ../intl-scm/guile-strings.c:3626
-#: ../intl-scm/guile-strings.c:3860
+#: ../intl-scm/guile-strings.c:6010 ../intl-scm/guile-strings.c:6352
+#: ../intl-scm/guile-strings.c:6534 ../intl-scm/guile-strings.c:6876
+#: ../intl-scm/guile-strings.c:7112 ../intl-scm/guile-strings.c:7352
 msgid "Billing Terms"
 msgstr "Zahlungsbedingungen"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3286 ../intl-scm/guile-strings.c:3628
-#: ../intl-scm/guile-strings.c:3862
+#: ../intl-scm/guile-strings.c:6012 ../intl-scm/guile-strings.c:6354
+#: ../intl-scm/guile-strings.c:6536 ../intl-scm/guile-strings.c:6878
+#: ../intl-scm/guile-strings.c:7114 ../intl-scm/guile-strings.c:7354
 msgid "Display the invoice billing terms?"
 msgstr "Zahlungsbedingungen der Rechnung anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3292 ../intl-scm/guile-strings.c:3634
-#: ../intl-scm/guile-strings.c:3868
+#: ../intl-scm/guile-strings.c:6018 ../intl-scm/guile-strings.c:6360
+#: ../intl-scm/guile-strings.c:6542 ../intl-scm/guile-strings.c:6884
+#: ../intl-scm/guile-strings.c:7120 ../intl-scm/guile-strings.c:7360
 msgid "Display the billing id?"
 msgstr "Rechnungsnummer anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3298 ../intl-scm/guile-strings.c:3640
-#: ../intl-scm/guile-strings.c:3874
+#: ../intl-scm/guile-strings.c:6024 ../intl-scm/guile-strings.c:6366
+#: ../intl-scm/guile-strings.c:6548 ../intl-scm/guile-strings.c:6890
+#: ../intl-scm/guile-strings.c:7126 ../intl-scm/guile-strings.c:7366
 msgid "Display the invoice notes?"
 msgstr "Rechnungsbemerkungen anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3302 ../intl-scm/guile-strings.c:3644
-#: ../intl-scm/guile-strings.c:3878
+#: ../intl-scm/guile-strings.c:6028 ../intl-scm/guile-strings.c:6370
+#: ../intl-scm/guile-strings.c:6552 ../intl-scm/guile-strings.c:6894
+#: ../intl-scm/guile-strings.c:7130 ../intl-scm/guile-strings.c:7370
 msgid "Payments"
 msgstr "Zahlungen"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3304 ../intl-scm/guile-strings.c:3646
-#: ../intl-scm/guile-strings.c:3880
+#: ../intl-scm/guile-strings.c:6030 ../intl-scm/guile-strings.c:6372
+#: ../intl-scm/guile-strings.c:6554 ../intl-scm/guile-strings.c:6896
+#: ../intl-scm/guile-strings.c:7132 ../intl-scm/guile-strings.c:7372
 msgid "Display the payments applied to this invoice?"
 msgstr "Die Zahlungen in dieser Rechnung anzeigen?"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3308
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6034 ../intl-scm/guile-strings.c:6558
 msgid "Minimum # of entries"
 msgstr "Mindestanzahl Einträge"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3310
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6036 ../intl-scm/guile-strings.c:6560
 msgid "The minimum number of invoice entries to display. (-1)"
 msgstr ""
 "Die Mindestanzahl Einträge einer Rechnung, die angezeigt werden sollen. (-1)"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3314 ../intl-scm/guile-strings.c:3656
-#: ../intl-scm/guile-strings.c:3884
+#: ../intl-scm/guile-strings.c:6040 ../intl-scm/guile-strings.c:6382
+#: ../intl-scm/guile-strings.c:6564 ../intl-scm/guile-strings.c:6906
+#: ../intl-scm/guile-strings.c:7136 ../intl-scm/guile-strings.c:7376
 msgid "Extra Notes"
 msgstr "Zusätzliche Bemerkungen"
 
 #. src/business/business-reports/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3316 ../intl-scm/guile-strings.c:3886
+#: ../intl-scm/guile-strings.c:6042 ../intl-scm/guile-strings.c:6566
+#: ../intl-scm/guile-strings.c:7138 ../intl-scm/guile-strings.c:7378
 msgid "Extra notes to put on the invoice"
 msgstr "Zusätzliche Bemerkungen, die auf die Rechnung gedruckt werden sollen"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3320
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6046 ../intl-scm/guile-strings.c:6570
 msgid "Payable to"
 msgstr "Zahlungsempfänger"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3322
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6048 ../intl-scm/guile-strings.c:6572
 msgid "Display the Payable to: information"
 msgstr "Die Zahlungsempfänger-Information anzeigen"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3326
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6052 ../intl-scm/guile-strings.c:6576
 msgid "Payable to string"
 msgstr "Angabe Zahlungsempfänger"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3328
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6054 ../intl-scm/guile-strings.c:6578
 msgid "The phrase for specifying to whom payments should be made"
 msgstr ""
 "Die Angabe des Zahlungsempfängers, wie sie auf die Rechnung gedruckt werden "
 "soll"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3330
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6056 ../intl-scm/guile-strings.c:6580
 msgid "Make all cheques Payable to"
 msgstr "Alle Schecks sollen auf folgenden Zahlungsempfänger ausgestellt werden"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3334
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6060 ../intl-scm/guile-strings.c:6584
 msgid "Company contact"
 msgstr "Name Ansprechpartner"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3336
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6062 ../intl-scm/guile-strings.c:6586
 msgid "Display the Company contact information"
 msgstr "Den Ansprechpartner einer Firma anzeigen"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3340
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6066 ../intl-scm/guile-strings.c:6590
 msgid "Company contact string"
 msgstr "Erklärung Ansprechpartner"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3342
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6068 ../intl-scm/guile-strings.c:6592
 msgid "The phrase used to introduce the company contact"
 msgstr "Der Satz, mit dem der Ansprechpartner vorgestellt wird"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3344
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6070 ../intl-scm/guile-strings.c:6594
 msgid "Direct all inquiries to"
 msgstr "Ansprechpartner"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3346 ../intl-scm/guile-strings.c:3418
-#: ../intl-scm/guile-strings.c:3668 ../intl-scm/guile-strings.c:3896
+#: ../intl-scm/guile-strings.c:6072 ../intl-scm/guile-strings.c:6144
+#: ../intl-scm/guile-strings.c:6394 ../intl-scm/guile-strings.c:6596
+#: ../intl-scm/guile-strings.c:6668 ../intl-scm/guile-strings.c:6918
+#: ../intl-scm/guile-strings.c:7148 ../intl-scm/guile-strings.c:7388
 msgid "Payment, thank you"
 msgstr "Vielen Dank für Ihre Zahlung"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3352 ../intl-scm/guile-strings.c:3674
-#: ../intl-scm/guile-strings.c:3902
+#: ../intl-scm/guile-strings.c:6078 ../intl-scm/guile-strings.c:6400
+#: ../intl-scm/guile-strings.c:6602 ../intl-scm/guile-strings.c:6924
+#: ../intl-scm/guile-strings.c:7154 ../intl-scm/guile-strings.c:7394
 msgid "Amount Due"
 msgstr "Fälliger Betrag"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3354 ../intl-scm/guile-strings.c:3676
-#: ../intl-scm/guile-strings.c:3904
+#: ../intl-scm/guile-strings.c:6080 ../intl-scm/guile-strings.c:6402
+#: ../intl-scm/guile-strings.c:6604 ../intl-scm/guile-strings.c:6926
+#: ../intl-scm/guile-strings.c:7156 ../intl-scm/guile-strings.c:7396
 msgid "REF"
 msgstr "Referenz"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3356
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6082 ../intl-scm/guile-strings.c:6606
 msgid "INVOICE"
 msgstr "Rechnung"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3358
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6084 ../intl-scm/guile-strings.c:6608
 msgid "Phone:"
 msgstr "Telefon:"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3360
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6086 ../intl-scm/guile-strings.c:6610
 msgid "Fax:"
 msgstr "Fax:"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3362
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6088 ../intl-scm/guile-strings.c:6612
 msgid "Web:"
 msgstr "WWW:"
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3370 ../intl-scm/guile-strings.c:3684
-#: ../intl-scm/guile-strings.c:3912
+#: ../intl-scm/guile-strings.c:6096 ../intl-scm/guile-strings.c:6410
+#: ../intl-scm/guile-strings.c:6620 ../intl-scm/guile-strings.c:6934
+#: ../intl-scm/guile-strings.c:7164 ../intl-scm/guile-strings.c:7404
 #, c-format
 msgid "%s #%d"
 msgstr "%s Nr. %d"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3372
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6098 ../intl-scm/guile-strings.c:6622
 #, c-format
 msgid "Invoice&nbsp;#&nbsp;%d"
 msgstr "Rechnung&nbsp;Nr.&nbsp;%d"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3374
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6100 ../intl-scm/guile-strings.c:6624
 msgid "Invoice&nbsp;Date"
 msgstr "Rechnungsdatum"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3376
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6102 ../intl-scm/guile-strings.c:6626
 msgid "Due&nbsp;Date"
 msgstr "Fälligkeitsdatum"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3378
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6104 ../intl-scm/guile-strings.c:6628
 msgid "<br>Invoice&nbsp;in&nbsp;progress...."
 msgstr "Rechnung in Bearbeitung..."
 
 #. src/business/business-reports/fancy-invoice.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3384 ../intl-scm/guile-strings.c:3694
-#: ../intl-scm/guile-strings.c:3924
+#: ../intl-scm/guile-strings.c:6110 ../intl-scm/guile-strings.c:6420
+#: ../intl-scm/guile-strings.c:6634 ../intl-scm/guile-strings.c:6944
+#: ../intl-scm/guile-strings.c:7176 ../intl-scm/guile-strings.c:7416
 msgid "No Valid Invoice Selected"
 msgstr "Keine gültige Rechnung ausgewählt"
 
 #. src/business/business-reports/fancy-invoice.scm
-#: ../intl-scm/guile-strings.c:3386 ../intl-scm/guile-strings.c:3388
-#: ../intl-scm/guile-strings.c:3390
+#. src/business/business-reports/gnucash/report/fancy-invoice.scm
+#: ../intl-scm/guile-strings.c:6112 ../intl-scm/guile-strings.c:6114
+#: ../intl-scm/guile-strings.c:6116 ../intl-scm/guile-strings.c:6636
+#: ../intl-scm/guile-strings.c:6638 ../intl-scm/guile-strings.c:6640
 msgid "Fancy Invoice"
 msgstr "Elegante Rechnung"
 
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3410 ../intl-scm/guile-strings.c:3748
+#: ../intl-scm/guile-strings.c:6136 ../intl-scm/guile-strings.c:6660
+#: ../intl-scm/guile-strings.c:6998 ../intl-scm/guile-strings.c:7238
 msgid "0-30 days"
 msgstr "0-30 Tage"
 
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3412 ../intl-scm/guile-strings.c:3750
+#: ../intl-scm/guile-strings.c:6138 ../intl-scm/guile-strings.c:6662
+#: ../intl-scm/guile-strings.c:7000 ../intl-scm/guile-strings.c:7240
 msgid "31-60 days"
 msgstr "31-60 Tage"
 
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3414 ../intl-scm/guile-strings.c:3752
+#: ../intl-scm/guile-strings.c:6140 ../intl-scm/guile-strings.c:6664
+#: ../intl-scm/guile-strings.c:7002 ../intl-scm/guile-strings.c:7242
 msgid "61-90 days"
 msgstr "61-90 Tage"
 
 #. src/business/business-reports/owner-report.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3416 ../intl-scm/guile-strings.c:3754
+#: ../intl-scm/guile-strings.c:6142 ../intl-scm/guile-strings.c:6666
+#: ../intl-scm/guile-strings.c:7004 ../intl-scm/guile-strings.c:7244
 msgid "91+ days"
 msgstr "Mehr als 91 Tage"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3424
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6150 ../intl-scm/guile-strings.c:6674
 msgid "Total Credit"
 msgstr "Gesamt Gutschrift"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3426
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6152 ../intl-scm/guile-strings.c:6676
 msgid "Total Due"
 msgstr "Gesamt fällig"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3428
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6154 ../intl-scm/guile-strings.c:6678
 msgid "The company for this report"
 msgstr "Die Firma dieses Berichts"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3430
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6156 ../intl-scm/guile-strings.c:6680
 msgid "The account to search for transactions"
 msgstr "Das Konto, in dem nach Buchungen gesucht werden soll"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3438 ../intl-scm/guile-strings.c:3442
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6164 ../intl-scm/guile-strings.c:6168
+#: ../intl-scm/guile-strings.c:6688 ../intl-scm/guile-strings.c:6692
 msgid "Display the transaction date?"
 msgstr "Anzeigen des Buchungsdatum?"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3446
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6172 ../intl-scm/guile-strings.c:6696
 msgid "Display the transaction reference?"
 msgstr "Anzeigen der Buchungsreferenz?"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3450
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6176 ../intl-scm/guile-strings.c:6700
 msgid "Display the transaction type?"
 msgstr "Anzeigen der Buchungsart?"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3454
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6180 ../intl-scm/guile-strings.c:6704
 msgid "Display the transaction description?"
 msgstr "Anzeigen der Buchungsbeschreibung?"
 
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3458 ../intl-scm/guile-strings.c:3486
-#: ../intl-scm/guile-strings.c:3664 ../intl-scm/guile-strings.c:3892
+#: ../intl-scm/guile-strings.c:6184 ../intl-scm/guile-strings.c:6212
+#: ../intl-scm/guile-strings.c:6390 ../intl-scm/guile-strings.c:6708
+#: ../intl-scm/guile-strings.c:6736 ../intl-scm/guile-strings.c:6914
+#: ../intl-scm/guile-strings.c:7144 ../intl-scm/guile-strings.c:7384
 msgid "Today Date Format"
 msgstr "Datumsformat heute"
 
 #. src/business/business-reports/owner-report.scm
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3460 ../intl-scm/guile-strings.c:3666
-#: ../intl-scm/guile-strings.c:3894
+#: ../intl-scm/guile-strings.c:6186 ../intl-scm/guile-strings.c:6392
+#: ../intl-scm/guile-strings.c:6710 ../intl-scm/guile-strings.c:6916
+#: ../intl-scm/guile-strings.c:7146 ../intl-scm/guile-strings.c:7386
 msgid "The format for the date->string conversion for today's date."
 msgstr "Das Datumsformat für den Ausdruck des heutigen Datums."
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3466
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6192 ../intl-scm/guile-strings.c:6716
 msgid "Expense Report"
 msgstr "Bericht Aufwendungen"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3480 ../intl-scm/guile-strings.c:3482
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6206 ../intl-scm/guile-strings.c:6208
+#: ../intl-scm/guile-strings.c:6730 ../intl-scm/guile-strings.c:6732
 msgid "Report:"
 msgstr "Bericht:"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3484
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#. src/business/business-reports/gnucash/report/aging.scm
+#. src/business/business-reports/aging.scm
+#: ../intl-scm/guile-strings.c:6210 ../intl-scm/guile-strings.c:6734
+#: ../intl-scm/guile-strings.c:7012 ../intl-scm/guile-strings.c:7252
 msgid ""
 "No valid account selected.  Click on the Options button and select the "
 "account to use."
@@ -20014,7 +22061,8 @@
 "wählen."
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3490
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6216 ../intl-scm/guile-strings.c:6740
 #, c-format
 msgid "No valid %s selected.  Click on the Options button to select a company."
 msgstr ""
@@ -20022,117 +22070,146 @@
 "wählen."
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3492 ../intl-scm/guile-strings.c:3498
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6218 ../intl-scm/guile-strings.c:6224
+#: ../intl-scm/guile-strings.c:6742 ../intl-scm/guile-strings.c:6748
 msgid "Customer Report"
 msgstr "Kundenbericht"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3494 ../intl-scm/guile-strings.c:3500
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6220 ../intl-scm/guile-strings.c:6226
+#: ../intl-scm/guile-strings.c:6744 ../intl-scm/guile-strings.c:6750
 msgid "Vendor Report"
 msgstr "Zuliefererbericht"
 
 #. src/business/business-reports/owner-report.scm
-#: ../intl-scm/guile-strings.c:3496 ../intl-scm/guile-strings.c:3502
+#. src/business/business-reports/gnucash/report/owner-report.scm
+#: ../intl-scm/guile-strings.c:6222 ../intl-scm/guile-strings.c:6228
+#: ../intl-scm/guile-strings.c:6746 ../intl-scm/guile-strings.c:6752
 msgid "Employee Report"
 msgstr "Mitarbeiterbericht"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3584
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6310 ../intl-scm/guile-strings.c:6834
 msgid "My Company"
 msgstr "Eigene Firma"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3586
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6312 ../intl-scm/guile-strings.c:6836
 msgid "Display my company name and address?"
 msgstr "Eigenen Firmenname und Adresse anzeigen?"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3590
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6316 ../intl-scm/guile-strings.c:6840
 msgid "My Company ID"
 msgstr "Eigene Firmennummer"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3592
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6318 ../intl-scm/guile-strings.c:6842
 msgid "Display my company ID?"
 msgstr "Eigene Firmennummer anzeigen?"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3598
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6324 ../intl-scm/guile-strings.c:6848
 msgid "Display due date?"
 msgstr "Fälligkeitsdatum anzeigen?"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3616
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6342 ../intl-scm/guile-strings.c:6866
 msgid "Display the subtotals?"
 msgstr "Zwischensalden anzeigen?"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3650
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6376 ../intl-scm/guile-strings.c:6900
 msgid "Invoice Width"
 msgstr "Rechnungsbreite"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3652
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6378 ../intl-scm/guile-strings.c:6902
 msgid "The minimum width of the invoice."
 msgstr "Minimale Breite der Rechnung."
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3654 ../intl-scm/guile-strings.c:3662
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6380 ../intl-scm/guile-strings.c:6388
+#: ../intl-scm/guile-strings.c:6904 ../intl-scm/guile-strings.c:6912
 msgid "Text"
 msgstr "Text"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3658
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6384 ../intl-scm/guile-strings.c:6908
 msgid "Extra notes to put on the invoice (simple HTML is accepted)"
 msgstr ""
 "Zusätzliche Bemerkungen, die auf die Rechnung gedruckt werden sollen "
 "(einfaches HTML möglich)"
 
 #. src/business/business-reports/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3660 ../intl-scm/guile-strings.c:3888
+#: ../intl-scm/guile-strings.c:6386 ../intl-scm/guile-strings.c:6910
+#: ../intl-scm/guile-strings.c:7140 ../intl-scm/guile-strings.c:7380
 msgid "Thank you for your patronage"
 msgstr "Vielen Dank für Ihre Bestellung!"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3686
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6412 ../intl-scm/guile-strings.c:6936
 #, c-format
 msgid "Invoice #%d"
 msgstr "Rechnung Nr. %d"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3688
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6414 ../intl-scm/guile-strings.c:6938
 msgid "INVOICE NOT POSTED"
 msgstr "Rechnung nicht gebucht"
 
 #. src/business/business-reports/easy-invoice.scm
-#: ../intl-scm/guile-strings.c:3696 ../intl-scm/guile-strings.c:3698
-#: ../intl-scm/guile-strings.c:3700
+#. src/business/business-reports/gnucash/report/easy-invoice.scm
+#: ../intl-scm/guile-strings.c:6422 ../intl-scm/guile-strings.c:6424
+#: ../intl-scm/guile-strings.c:6426 ../intl-scm/guile-strings.c:6946
+#: ../intl-scm/guile-strings.c:6948 ../intl-scm/guile-strings.c:6950
 msgid "Easy Invoice"
 msgstr "Einfache Rechnung"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3704
+#: ../intl-scm/guile-strings.c:6954 ../intl-scm/guile-strings.c:7194
 msgid "Sort By"
 msgstr "Sortiere nach"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3706
+#: ../intl-scm/guile-strings.c:6956 ../intl-scm/guile-strings.c:7196
 msgid "Sort Order"
 msgstr "Sortierreihenfolge"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3712
+#: ../intl-scm/guile-strings.c:6962 ../intl-scm/guile-strings.c:7202
 msgid "Show Multi-currency Totals?"
 msgstr "Multi-Währung Gesamt anzeigen?"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3714
+#: ../intl-scm/guile-strings.c:6964 ../intl-scm/guile-strings.c:7204
 msgid "Show zero balance items?"
 msgstr "Nullsalden anzeigen?"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3716
+#: ../intl-scm/guile-strings.c:6966 ../intl-scm/guile-strings.c:7206
 #, c-format
 msgid ""
 "Transactions relating to '%s' contain more than one currency.  This report "
@@ -20141,65 +22218,77 @@
 "Die Buchungen mit Firma »%s« enthält mehr als eine Währung. Dieser Bericht "
 "ist für diese Möglichkeit nicht ausgelegt."
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3718
+#: ../intl-scm/guile-strings.c:6968 ../intl-scm/guile-strings.c:7208
 msgid "Sort companys by"
 msgstr "Firmen sortieren nach"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3722
+#: ../intl-scm/guile-strings.c:6972 ../intl-scm/guile-strings.c:7212
 msgid "Name of the company"
 msgstr "Name der Organisation/Firma"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3724
+#: ../intl-scm/guile-strings.c:6974 ../intl-scm/guile-strings.c:7214
 msgid "Total Owed"
 msgstr "Gesamter offener Betrag"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3726
+#: ../intl-scm/guile-strings.c:6976 ../intl-scm/guile-strings.c:7216
 msgid "Total amount owed to/from Company"
 msgstr "Gesamter offener Betrag von/an Firma"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3728
+#: ../intl-scm/guile-strings.c:6978 ../intl-scm/guile-strings.c:7218
 msgid "Bracket Total Owed"
 msgstr "Intervall Gesamter offener Betrag"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3730
+#: ../intl-scm/guile-strings.c:6980 ../intl-scm/guile-strings.c:7220
 msgid "Amount owed in oldest bracket - if same go to next oldest"
 msgstr ""
 "Offener Betrag in ältestem Intervall. Falls identisch, wird nächstältestes "
 "angezeigt"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3732
+#: ../intl-scm/guile-strings.c:6982 ../intl-scm/guile-strings.c:7222
 msgid "Sort order"
 msgstr "Sortierreihenfolge"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3734
+#: ../intl-scm/guile-strings.c:6984 ../intl-scm/guile-strings.c:7224
 msgid "Increasing"
 msgstr "Aufsteigend"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3736
+#: ../intl-scm/guile-strings.c:6986 ../intl-scm/guile-strings.c:7226
 msgid "0 -> $999,999.99, A->Z"
 msgstr "0,00 -> 9.999,99; A->Z"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3738
+#: ../intl-scm/guile-strings.c:6988 ../intl-scm/guile-strings.c:7228
 msgid "Decreasing"
 msgstr "Absteigend"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3740
+#: ../intl-scm/guile-strings.c:6990 ../intl-scm/guile-strings.c:7230
 msgid "$999,999.99 -> $0, Z->A"
 msgstr "9.999,99 -> 0,00; Z->A"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3742
+#: ../intl-scm/guile-strings.c:6992 ../intl-scm/guile-strings.c:7232
 msgid ""
 "Show multi-currency totals.  If not selected, convert all totals to report "
 "currency"
@@ -20207,39 +22296,48 @@
 "Summen in mehreren Währungen anzeigen. Falls nicht aktiviert, werden alle "
 "Summen in die Berichtswährung umgerechnet"
 
+#. src/business/business-reports/gnucash/report/aging.scm
 #. src/business/business-reports/aging.scm
-#: ../intl-scm/guile-strings.c:3744
+#: ../intl-scm/guile-strings.c:6994 ../intl-scm/guile-strings.c:7234
 msgid "Show all vendors/customers even if they have a zero balance."
 msgstr "Alle Kunden/Lieferanten anzeigen, auch wenn sie den Saldo Null haben."
 
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3914
+#: ../intl-scm/guile-strings.c:7166 ../intl-scm/guile-strings.c:7406
 msgid "Invoice Date"
 msgstr "Rechnungsdatum"
 
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3918
+#: ../intl-scm/guile-strings.c:7170 ../intl-scm/guile-strings.c:7410
 msgid "Invoice in progress...."
 msgstr "Rechnung in Bearbeitung..."
 
+#. src/business/business-reports/gnucash/report/invoice.scm
 #. src/business/business-reports/invoice.scm
-#: ../intl-scm/guile-strings.c:3926 ../intl-scm/guile-strings.c:3928
-#: ../intl-scm/guile-strings.c:3930
+#: ../intl-scm/guile-strings.c:7178 ../intl-scm/guile-strings.c:7180
+#: ../intl-scm/guile-strings.c:7182 ../intl-scm/guile-strings.c:7418
+#: ../intl-scm/guile-strings.c:7420 ../intl-scm/guile-strings.c:7422
 msgid "Printable Invoice"
 msgstr "Druckbare Rechnung"
 
+#. src/business/business-reports/gnucash/report/receivables.scm
 #. src/business/business-reports/receivables.scm
-#: ../intl-scm/guile-strings.c:3932
+#: ../intl-scm/guile-strings.c:7184 ../intl-scm/guile-strings.c:7424
 msgid "Receivables Account"
 msgstr "Forderungen Konto"
 
+#. src/business/business-reports/gnucash/report/receivables.scm
 #. src/business/business-reports/receivables.scm
-#: ../intl-scm/guile-strings.c:3934
+#: ../intl-scm/guile-strings.c:7186 ../intl-scm/guile-strings.c:7426
 msgid "The receivables account you wish to examine"
 msgstr "Folgendes Forderungen-Konto wollen Sie untersuchen"
 
+#. src/business/business-reports/gnucash/report/receivables.scm
 #. src/business/business-reports/receivables.scm
-#: ../intl-scm/guile-strings.c:3936 ../intl-scm/guile-strings.c:3938
+#: ../intl-scm/guile-strings.c:7188 ../intl-scm/guile-strings.c:7190
+#: ../intl-scm/guile-strings.c:7428 ../intl-scm/guile-strings.c:7430
 msgid "Receivable Aging"
 msgstr "Entwicklung Forderungen"
 
@@ -20247,11 +22345,8 @@
 msgid ""
 "Warning!! This is a DEVELOPMENT version of GnuCash. It probably has lots of "
 "bugs and unstable features! If you are looking for a stable personal finance "
-"application, you should use the latest release of GnuCash 1.8."
+"application, you should use the latest release of GnuCash 2.0."
 msgstr ""
-"Vorsicht: Das ist eine Entwicklungsversion von GnuCash. Hier können sich "
-"alle möglichen Fehler drin rumtreiben. Wenn Sie eine stabile Version suchen, "
-"sollten sie die letzte Version von GnuCash 1.8.x benutzen!"
 
 #: ../doc/tip_of_the_day.list.in:6
 msgid ""
@@ -20318,13 +22413,13 @@
 msgid ""
 "To enter multiple-split transactions such as a paycheck with multiple "
 "deductions, click the Split button in the tool bar. Alternatively, in the "
-"View -> Style menu, you can choose the register style Auto-Split Ledger or "
+"View menu, you can choose the register style Auto-Split Ledger or "
 "Transaction Journal."
 msgstr ""
 "Um Buchungssätze mit mehr als zwei Buchungsteilen einzugeben (z.B. eine "
 "Gehaltszahlung mit mehreren Abzügen), drücken Sie den »Vollständig«-Knopf in "
-"der Werkzeugleiste. Alternativ können Sie auch im Menü Ansicht -> Buchung "
-"die Buchungsansicht »Aktive vollständig« oder »Vollständig« wählen."
+"der Werkzeugleiste. Alternativ können Sie auch im Menü Ansicht die "
+"Buchungsansicht »Aktive vollständig« oder »Vollständig« wählen."
 
 #: ../doc/tip_of_the_day.list.in:36
 msgid ""
@@ -20387,6 +22482,12 @@
 
 #: ../doc/tip_of_the_day.list.in:60
 msgid ""
+"To switch between multiple tabs in the main window, press Control+Alt+Page "
+"Up/Down."
+msgstr ""
+
+#: ../doc/tip_of_the_day.list.in:63
+msgid ""
 "In the reconcile window, you can press the spacebar to mark transactions as "
 "reconciled.  You can also press Tab and Shift-Tab to move between deposits "
 "and withdrawals."
@@ -20395,7 +22496,7 @@
 "»Abgeglichen« markieren. Um zwischen Haben und Soll zu wechseln, können Sie "
 "die Tab (die Tabulatortaste) und Umschalt-Tab drücken."
 
-#: ../doc/tip_of_the_day.list.in:64
+#: ../doc/tip_of_the_day.list.in:67
 msgid ""
 "To transfer funds between accounts with different currencies, click on the "
 "Transfer button in the register toolbar, select the accounts, and the "
@@ -20407,7 +22508,7 @@
 "die zusätzlichen Optionen für Währungstransaktionen werden automatisch "
 "aktiviert."
 
-#: ../doc/tip_of_the_day.list.in:69
+#: ../doc/tip_of_the_day.list.in:72
 msgid ""
 "You can pack multiple reports into a single window,  providing all the "
 "financial information you want at a glance. To do so, use the Sample & "
@@ -20417,7 +22518,7 @@
 "alle Ihre Informationen im Blick zu haben. Benutzen Sie dafür den Bericht "
 "Beispiele -> »Benutzerdefiniert Mehrspaltig«."
 
-#: ../doc/tip_of_the_day.list.in:74
+#: ../doc/tip_of_the_day.list.in:77
 msgid ""
 "Style Sheets affect how reports are displayed.  Choose a style sheet for "
 "your report as a report option, and use the Edit -> Style Sheets menu to "
@@ -20427,8 +22528,17 @@
 "Wählen Sie eine Stilvorlage für Ihren Bericht und benutzen Sie den Menüpunkt "
 "Bearbeiten -> »Stilvorlagen...«, um die Stilvorlagen anzupassen.  "
 
-#: ../doc/tip_of_the_day.list.in:78
+#: ../doc/tip_of_the_day.list.in:81
 msgid ""
+"To raise the accounts menu in the transfer field of a register page, press "
+"the Menu key or the Ctrl-Down key combination."
+msgstr ""
+"In einer Buchungszeile des Kontenfensters kann man die Liste der möglichen "
+"Konten aufrufen, indem man die Tastenkombination Strg+Pfeil nach unten "
+"drückt."
+
+#: ../doc/tip_of_the_day.list.in:84
+msgid ""
 "The GnuCash developers are easy to contact.  As well as several mailing "
 "lists, you can chat to them live on IRC! Join them on #gnucash at irc.gnome."
 "org"
@@ -20438,7 +22548,7 @@
 "IRC (Internet Relay Chat) ausprobieren. Die Entwicker sind im Channel "
 "#gnucash auf irc.gnome.org zu finden."
 
-#: ../doc/tip_of_the_day.list.in:82
+#: ../doc/tip_of_the_day.list.in:88
 msgid ""
 "There is a theory that if ever anyone discovers what the Universe is for and "
 "why it is here, it will instantly disappear and be replaced with something "

Modified: gnucash/branches/gda-dev/src/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,7 +10,6 @@
   quotes
 
 GUI_SUBDIRS_1 = \
-  network-utils \
   calculation \
   tax \
   app-utils \
@@ -52,5 +51,4 @@
   gnc-test-env \
   valgrind-gnucash.supp \
   guile-mappings.h \
-  glib-compat.h \
-  gtk-compat.h
+  glib-compat.h

Modified: gnucash/branches/gda-dev/src/app-utils/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,10 +1,11 @@
 SUBDIRS = . test
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-app-utils.la
 
 AM_CFLAGS = \
+  -I$(top_srcdir)/lib/libc \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/gnc-module \
   -I${top_srcdir}/src/calculation \
   -I${top_srcdir}/src/core-utils \
@@ -34,6 +35,7 @@
   gnc-exp-parser.c \
   gnc-gettext-util.c \
   gnc-helpers.c \
+  gnc-sx-instance-model.c \
   gncmod-app-utils.c \
   gnc-ui-util.c \
   guile-util.c \
@@ -58,17 +60,21 @@
   gnc-euro.h \
   gnc-exp-parser.h \
   gnc-gettext-util.h \
+  gnc-help-utils.h \
   gnc-helpers.h \
+  gnc-sx-instance-model.h \
   gnc-ui-common.h \
   gnc-ui-util.h \
   guile-util.h \
   option-util.h
 
+libgncmod_app_utils_la_LDFLAGS = -avoid-version
+
 libgncmod_app_utils_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/calculation/libgncmod-calculation.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${GCONF_LIBS} \
   ${GTK_LIBS} \
   ${GUILE_LIBS} \
@@ -76,7 +82,7 @@
   ${GLIB_LIBS}
 
 if BUILDING_FROM_SVN
-swig-app-utils.c: app-utils.i
+swig-app-utils.c: app-utils.i ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -101,6 +107,13 @@
   ${gncmod_DATA} \
   ${gncscm_DATA}
 
+if OS_WIN32
+libgncmod_app_utils_la_SOURCES += gnc-help-utils.c
+libgncmod_app_utils_la_LIBADD += $(HTMLHELP_LIBS)
+else
+EXTRA_DIST += gnc-help-utils.c
+endif
+
 if GNUCASH_SEPARATE_BUILDDIR
 #For executing test cases
 SCM_FILE_LINKS = \
@@ -121,3 +134,5 @@
 
 CLEANFILES = ${SCM_FILE_LINKS} gnucash .scm-links
 MAINTAINERCLEANFILES = swig-app-utils.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.app-util\"

Modified: gnucash/branches/gda-dev/src/app-utils/app-utils.i
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/app-utils.i	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/app-utils.i	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,7 @@
 #include <gnc-accounting-period.h>
 #include <gnc-session.h>
 #include <gnc-component-manager.h>
+#include <guile-util.h>
 
 #include "engine-helpers.h"
 
@@ -23,7 +24,7 @@
 typedef int GNCOptionDBHandle;
 
 QofBook * gnc_get_current_book (void);
-AccountGroup * gnc_get_current_group (void);
+Account * gnc_get_current_root_account (void);
 
 char * gnc_gettext_helper(const char *string);
 
@@ -69,6 +70,9 @@
 GNCPrintAmountInfo gnc_share_print_info_places (int decplaces);
 const char * xaccPrintAmount (gnc_numeric val, GNCPrintAmountInfo info);
 
+gchar *number_to_words(gdouble val, gint64 denom);
+const gchar *printable_value (gdouble val, gint denom);
+
 gboolean gnc_reverse_balance (const Account *account);
 
 gboolean gnc_is_euro_currency(const gnc_commodity * currency);
@@ -83,3 +87,23 @@
 SCM gnc_make_kvp_options(QofIdType id_type);
 void gnc_register_kvp_option_generator(QofIdType id_type, SCM generator);
 
+%typemap(in) GList * {
+  SCM path_scm = $input;
+  GList *path = NULL;
+  while (!SCM_NULLP (path_scm))
+  {
+    SCM key_scm = SCM_CAR (path_scm);
+    char *key;
+    if (!SCM_STRINGP (key_scm))
+      break;
+    key = g_strdup (SCM_STRING_CHARS (key_scm));
+    path = g_list_prepend (path, key);
+    path_scm = SCM_CDR (path_scm);
+  }
+  $1 = g_list_reverse (path);
+}
+Process *gnc_spawn_process_async(GList *argl, const gboolean search_path);
+%clear GList *;
+
+gint gnc_process_get_fd(const Process *proc, const guint std_fd);
+void gnc_detach_process(Process *proc, const gboolean kill_it);

Modified: gnucash/branches/gda-dev/src/app-utils/file-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/file-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/file-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -22,6 +22,10 @@
 #include "config.h"
 
 #include <glib.h>
+#include <glib/gstdio.h>
+#ifndef HAVE_GLIB_2_8
+#include <gfileutils-2.8.h>
+#endif
 #include <libguile.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -90,7 +94,7 @@
   if (!filename) return 0;
 
   /* Open file: */
-  fd = open( filename, O_RDONLY );
+  fd = g_open( filename, O_RDONLY, 0 );
 
   g_free(filename); filename = NULL;
 
@@ -166,6 +170,62 @@
 }
 
 
+/* Update one state file file to fit the new constraints introduced by
+ * glib 2.12.5.  Supposedly its always been illegal to use spaces in
+ * key names, but it was never a problem with earlier releases of
+ * glib. Glib 2.12.5 added hard enforcement of this rule, completely
+ * ignoring any key/value pair where the key name contained an
+ * "illegal" character.  Glib 2.12.7 relented and changed the hard
+ * failure to a warning, but the point has been made.  Spaces in key
+ * names must go.
+ */
+static gboolean
+gnc_update_state_file_keys(const gchar *filename)
+{
+  gchar *contents, **lines, *line, **kv, **parts, *part, *newkey;
+  GError *error = NULL;
+  int i, j;
+
+  if (!g_file_get_contents(filename, &contents, NULL, &error)) {
+    DEBUG("Error reading state file: %s", error->message);
+    g_error_free(error);
+    return FALSE;
+  }
+
+  lines = g_strsplit_set(contents, "\r\n", -1);
+  g_free(contents);
+
+  /* Strip spaces from non-comment lines, and rewrite the new text
+   * over top of the old text.  The new line is guaranteed to be at
+   * most the same number of characters as the old. */
+  for (i = 0, line = lines[i++]; line; line = lines[i++]) {
+    if ((*line == '\0') || (*line == '#') || (*line == '[')) {
+      continue;
+    } else {
+      kv = g_strsplit(line, "=", 2);
+      parts = g_strsplit(kv[0], " ", -1);
+      for (j = 0, part = parts[j++]; part; part = parts[j++])
+	part[0] = g_ascii_toupper(part[0]);
+      newkey = g_strjoinv("", parts);
+      g_sprintf(line, "%s=%s", newkey, kv[1] ? kv[1] : "");
+      g_free(newkey);
+      g_strfreev(parts);
+      g_strfreev(kv);
+    }
+  }
+
+  contents = g_strjoinv("\n", lines);
+  if (!g_file_set_contents(filename, contents, -1, &error)) {
+    DEBUG("Error writing state file: %s", error->message);
+    g_error_free(error);
+    g_free(contents);
+    return FALSE;
+  }
+
+  g_free(contents);
+  return TRUE;
+}
+
 /*  Find the state file that corresponds to this URL and guid.  The
  *  URL is used to compute the base name of the file (which will be in
  *  ~/.gnucash/books) and the guid is used to differentiate when the
@@ -178,6 +238,7 @@
   gchar *basename, *original = NULL, *filename, *tmp, *file_guid;
   GKeyFile *key_file = NULL;
   GError *error = NULL;
+  gboolean do_increment;
   gint i;
 
   ENTER("url %s, guid %s", url, guid);
@@ -198,9 +259,24 @@
     else
       filename = g_strdup_printf("%s_%d", original, i);
     DEBUG("Trying %s", filename);
-    key_file = gnc_key_file_load_from_file(filename, FALSE, FALSE);
+    key_file = gnc_key_file_load_from_file(filename, FALSE, FALSE, &error);
     DEBUG("Result %p", key_file);
 
+    if (error &&
+	(error->domain == G_KEY_FILE_ERROR) && 
+	(error->code == G_KEY_FILE_ERROR_PARSE)) {
+      /* Handle the case where glib was updated first, and is refusing
+       * to read old state files. */
+      if (gnc_update_state_file_keys(filename)) {
+	DEBUG("Trying %s again", filename);
+	key_file = gnc_key_file_load_from_file(filename, FALSE, FALSE, NULL);
+	DEBUG("Result %p", key_file);
+      }
+    }
+    if (error) {
+      g_error_free(error);
+      error = NULL;
+    }
     if (!key_file) {
       DEBUG("No key file by that name");
       break;
@@ -208,19 +284,34 @@
 
     file_guid = g_key_file_get_string(key_file,
 				      STATE_FILE_TOP, STATE_FILE_BOOK_GUID,
-				      &error);
-    DEBUG("File GUID is %s", file_guid);
-    if (strcmp(guid, file_guid) == 0) {
+				      NULL);
+    DEBUG("File GUID is %s", file_guid ? file_guid : "<not found>");
+    if (safe_strcmp(guid, file_guid) == 0) {
       DEBUG("Matched !!!");
       g_free(file_guid);
       break;
     }
 
+    /* Handle the case where gnucash was updated first, and is trying
+     * to find new key names in an old state files. */
+    file_guid = g_key_file_get_string(key_file,
+				      STATE_FILE_TOP, STATE_FILE_BOOK_GUID_OLD,
+				      NULL);
+    DEBUG("%s is %s", STATE_FILE_BOOK_GUID,
+	  file_guid ? file_guid : "<not found>");
+    if (safe_strcmp(guid, file_guid) == 0) {
+      DEBUG("Matched !!!");
+      do_increment = !gnc_update_state_file_keys(filename);
+    } else {
+      do_increment = TRUE;
+    }
+
     DEBUG("Clean up this pass");
     g_free(file_guid);
     g_key_file_free(key_file);
     g_free(filename);
-    i++;
+    if (do_increment)
+      i++;
   }
 
   DEBUG("Clean up");

Modified: gnucash/branches/gda-dev/src/app-utils/file-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/file-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/file-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,9 +30,6 @@
 #define GNC_FILE_UTILS_H
 
 #include <stdio.h>		/* for FILE* */
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
 
 char * gncFindFile (const char * filename);
 
@@ -63,8 +60,9 @@
 
 
 /* Definitions shared by file-utils.c and gnc-main-window.c */
-#define STATE_FILE_TOP		"Top"
-#define STATE_FILE_BOOK_GUID	"Book Guid"
+#define STATE_FILE_TOP           "Top"
+#define STATE_FILE_BOOK_GUID     "BookGuid"
+#define STATE_FILE_BOOK_GUID_OLD "Book Guid"
 
 /** Find the state file that corresponds to this URL and guid.  The
  *  URL is used to compute the base name of the file (which will be in

Modified: gnucash/branches/gda-dev/src/app-utils/gfec.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gfec.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gfec.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -176,9 +176,9 @@
 gboolean
 gfec_try_load(gchar *fn)
 {
-    g_message("looking for %s", fn);
+    g_debug("looking for %s", fn);
     if (g_file_test(fn, G_FILE_TEST_EXISTS)) {
-        g_message("trying to load %s", fn);
+        g_debug("trying to load %s", fn);
         error_in_scm_eval = FALSE;
         gfec_eval_file(fn, error_handler);
         return !error_in_scm_eval;

Modified: gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,7 +3,6 @@
 #include <glib.h>
 #include "gnc-account-merge.h"
 #include "Account.h"
-#include "Group.h"
 
 GncAccountMergeDisposition
 determine_account_merge_disposition(Account *existing_acct, Account *new_acct)
@@ -17,50 +16,48 @@
 }
 
 GncAccountMergeDisposition
-determine_merge_disposition(AccountGroup *existing_root, Account *new_acct)
+determine_merge_disposition(Account *existing_root, Account *new_acct)
 {
   Account *existing_acct;
   gchar *full_name;
   
   full_name = xaccAccountGetFullName(new_acct);
-  existing_acct = xaccGetAccountFromFullName(existing_root, full_name);
+  existing_acct = gnc_account_lookup_by_full_name(existing_root, full_name);
   g_free(full_name);
 
   return determine_account_merge_disposition(existing_acct, new_acct);
 }
 
 void
-account_group_merge(AccountGroup *existing_grp, AccountGroup *new_grp)
+account_trees_merge(Account *existing_root, Account *new_accts_root)
 {
-  GList *accounts_copy;
-  AccountList *accounts;
-  g_return_if_fail(new_grp != NULL);
-  g_return_if_fail(existing_grp != NULL);
+  GList *accounts, *node;
+  g_return_if_fail(new_accts_root != NULL);
+  g_return_if_fail(existing_root != NULL);
 
   /* since we're have a chance of mutating the list (via
-   * xaccGroupInsertAccount) while we're iterating over it, iterate over a
-   * copy. */
-  accounts_copy = g_list_copy(xaccGroupGetAccountList(new_grp));
-  for (accounts = accounts_copy; accounts; accounts = accounts->next)
+   * gnc_account_add_child) while we're iterating over it, iterate
+   * over a copy. */
+  accounts = gnc_account_get_children(new_accts_root);
+  for (node = accounts; node; node = g_list_next(node))
   {
     Account *existing_named, *new_acct;
     const char *name;
 
-    new_acct = (Account*)accounts->data;
+    new_acct = (Account*)node->data;
     name = xaccAccountGetName(new_acct);
-    existing_named = xaccGetAccountFromName(existing_grp, name);
+    existing_named = gnc_account_lookup_by_name(existing_root, name);
     switch (determine_account_merge_disposition(existing_named, new_acct))
     {
     case GNC_ACCOUNT_MERGE_DISPOSITION_USE_EXISTING:
       /* recurse */
-      account_group_merge(xaccAccountGetChildren(existing_named),
-                          xaccAccountGetChildren(new_acct));
+      account_trees_merge(existing_named, new_acct);
       break;
     case GNC_ACCOUNT_MERGE_DISPOSITION_CREATE_NEW:
       /* merge this one in. */
-      xaccGroupInsertAccount(existing_grp, new_acct);
+      gnc_account_append_child(existing_root, new_acct);
       break;
     }
   }
-  g_list_free(accounts_copy);
+  g_list_free(accounts);
 }

Modified: gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.h
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-account-merge.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -4,7 +4,6 @@
 #define GNC_ACCOUNT_MERGE_H
 
 #include "Account.h"
-#include "Group.h"
 
 typedef enum {
   GNC_ACCOUNT_MERGE_DISPOSITION_USE_EXISTING,
@@ -18,8 +17,8 @@
 } GncAccountMergeError;
 
 GncAccountMergeDisposition determine_account_merge_disposition(Account *existing_acct, Account *new_acct);
-GncAccountMergeDisposition determine_merge_disposition(AccountGroup *existing_root, Account *new_acct);
+GncAccountMergeDisposition determine_merge_disposition(Account *existing_root, Account *new_acct);
 
-void account_group_merge(AccountGroup *existing_grp, AccountGroup *new_grp);
+void account_trees_merge(Account *existing_root, Account *new_accts_root);
 
 #endif /* GNC_ACCOUNT_MERGE_H */

Modified: gnucash/branches/gda-dev/src/app-utils/gnc-component-manager.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-component-manager.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-component-manager.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -21,7 +21,6 @@
 
 #include <stdio.h>
 
-#include "Group.h"
 #include "gnc-component-manager.h"
 #include "qof.h"
 #include "gnc-ui-util.h"
@@ -639,7 +638,7 @@
 changes_match (ComponentEventInfo *cei, ComponentEventInfo *changes)
 {
   ComponentEventInfo *big_cei;
-  GHashTable *small;
+  GHashTable *smalltable;
 
   if (cei == NULL)
     return FALSE;
@@ -653,18 +652,18 @@
   if (g_hash_table_size (cei->entity_events) <=
       g_hash_table_size (changes->entity_events))
   {
-    small = cei->entity_events;
+    smalltable = cei->entity_events;
     big_cei = changes;
   }
   else
   {
-    small = changes->entity_events;
+    smalltable = changes->entity_events;
     big_cei = cei;
   }
 
   big_cei->match = FALSE;
 
-  g_hash_table_foreach (small, match_helper, big_cei);
+  g_hash_table_foreach (smalltable, match_helper, big_cei);
 
   return big_cei->match;
 }

Modified: gnucash/branches/gda-dev/src/app-utils/gnc-exp-parser.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-exp-parser.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-exp-parser.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -86,7 +86,7 @@
 
   if ( addPredefined ) {
     filename = gnc_exp_parser_filname();
-    key_file = gnc_key_file_load_from_file(filename, TRUE, FALSE);
+    key_file = gnc_key_file_load_from_file(filename, TRUE, FALSE, NULL);
     if (key_file) {
       keys = g_key_file_get_keys(key_file, GROUP_NAME, NULL, NULL);
       for (key = keys; key && *key; key++) {

Added: gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,151 @@
+/* 
+ * gnc-help-utils.c
+ *
+ * Copyright (C) 2007 Andreas Koehler <andi5.py at gmx.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+#include <glib.h>
+
+#ifdef HAVE_HTMLHELPW
+#    include <windows.h>
+#    include <htmlhelp.h>
+#endif
+
+#include "gnc-help-utils.h"
+
+#ifdef HAVE_HTMLHELPW
+
+static GHashTable *
+parse_hhmap_file(const gchar *chmfile)
+{
+    gchar *mapfile = NULL, *dot;
+    GKeyFile *keyfile = NULL;
+    GError *error = NULL;
+    gchar **keys = NULL, **key;
+    gint value;
+    GHashTable *ctxtmap = NULL;
+
+    g_return_val_if_fail(chmfile, NULL);
+
+    mapfile = g_new(gchar, strlen(chmfile) + 7);
+    strcpy(mapfile, chmfile);
+    dot = strrchr(mapfile, '.');
+    if (dot)
+        strcpy(dot, ".hhmap");
+    else
+        strcat(mapfile, ".hhmap");
+
+    keyfile = g_key_file_new();
+    if (!g_key_file_load_from_file(keyfile, mapfile, G_KEY_FILE_NONE, &error))
+        goto cleanup_parse;
+        
+    if (NULL == (keys = g_key_file_get_keys(keyfile, "Map", NULL, &error)))
+        goto cleanup_parse;
+
+    ctxtmap = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
+    for (key=keys; *key; key++) {
+        value = g_key_file_get_integer(keyfile, "Map", *key, &error);
+        if (error)
+            goto cleanup_parse;
+        else
+            g_hash_table_insert(ctxtmap, g_strdup(*key), GINT_TO_POINTER(value));
+    }
+
+ cleanup_parse:
+    if (error) {
+        g_warning("Could not load help map file: %s", error->message);
+        g_error_free(error);
+        if (ctxtmap)
+            g_hash_table_destroy(ctxtmap);
+        ctxtmap = NULL;
+    }
+    if (keys)
+        g_strfreev(keys);
+    if (keyfile)
+        g_key_file_free (keyfile);
+    if (mapfile)
+        g_free(mapfile);
+
+    return ctxtmap;
+}
+
+void
+gnc_show_htmlhelp(const gchar *chmfile, const gchar *anchor)
+{
+    static GHashTable *chmfile_ctxtmap_map;
+    G_LOCK_DEFINE_STATIC(chmfile_ctxtmap_map);
+    GHashTable *ctxtmap;
+    gboolean create_map = FALSE;
+    wchar_t *wpath;
+    gint id = 0;
+
+    g_return_if_fail(chmfile);
+
+    if (anchor) {
+        G_LOCK(chmfile_ctxtmap_map);
+        if (!chmfile_ctxtmap_map) {
+            chmfile_ctxtmap_map = g_hash_table_new(g_str_hash, g_str_equal);
+            create_map = TRUE;
+        } else {
+            create_map = !g_hash_table_lookup_extended(
+                chmfile_ctxtmap_map, chmfile, NULL, (gpointer) &ctxtmap);
+        }
+
+        if (create_map) {
+            ctxtmap = parse_hhmap_file(chmfile);
+            g_hash_table_insert(chmfile_ctxtmap_map, g_strdup(chmfile), ctxtmap);
+        }
+
+        if (ctxtmap) {
+            gpointer ptr = g_hash_table_lookup(ctxtmap, anchor);
+            if (ptr)
+                id = GPOINTER_TO_INT(ptr);
+        }
+        G_UNLOCK(chmfile_ctxtmap_map);
+
+        if (!id)
+            g_warning("Could not find anchor '%s'", anchor);
+    }
+
+    wpath = g_utf8_to_utf16(chmfile, -1, NULL, NULL, NULL);
+    HtmlHelpW(GetDesktopWindow(), wpath, HH_HELP_CONTEXT, id);
+    g_free(wpath);
+}
+
+#else /* !HAVE_HTMLHELPW */
+void
+gnc_show_htmlhelp(const gchar *chmfile, const gchar *anchor)
+{
+    gchar *argv[3];
+
+    g_return_if_fail(chmfile);
+
+    argv[0] = "hh";
+    argv[1] = g_strdup(chmfile);
+    argv[2] = NULL;
+
+    if (!g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH,
+                       NULL, NULL, NULL, NULL))
+        if (g_file_test(chmfile, G_FILE_TEST_IS_REGULAR))
+            g_warning("Found CHM help file, but could not spawn hh to open it");
+
+    g_free(argv[1]);
+}
+#endif /* HAVE_HTMLHELPW */

Added: gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-help-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,36 @@
+/* 
+ * gnc-help-utils.h
+ *
+ * Copyright (C) 2007 Andreas Koehler <andi5.py at gmx.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef __GNC_HELP_UTILS_H__
+#define __GNC_HELP_UTILS_H__
+
+/** Launch HTML Help Viewer and open a given CHM file.  Use HtmlHelpW
+ *  if available, or fallback to spawning hh.exe.  Possibly scroll to a
+ *  given anchor within the document.
+ *
+ *  @param chmfile The name of CHM help file to be opened.
+ *
+ *  @param anchor The anchor the help browser should scroll to.
+ */
+void gnc_show_htmlhelp(const gchar *chmfile, const gchar *anchor);
+
+#endif /* __GNC_HELP_UTILS_H__ */

Added: gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,1401 @@
+/* 
+ * gnc-sx-instance-model.c
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include "glib-compat.h"
+
+#include "Account.h"
+#include "SX-book.h"
+#include "SchedXaction.h"
+#include "Scrub.h"
+#include "Split.h"
+#include "Transaction.h"
+#include "gnc-book.h"
+#include "gnc-commodity.h"
+#include "gnc-event.h"
+#include "gnc-exp-parser.h"
+#include "gnc-glib-utils.h"
+#include "gnc-sx-instance-model.h"
+#include "gnc-ui-util.h"
+#include "qof.h"
+
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.app-util.sx"
+
+static GObjectClass *parent_class = NULL;
+
+static void gnc_sx_instance_model_class_init (GncSxInstanceModelClass *klass);
+static void gnc_sx_instance_model_init(GTypeInstance *instance, gpointer klass);
+static GncSxInstanceModel* gnc_sx_instance_model_new(void);
+
+static GncSxInstance* gnc_sx_instance_new(GncSxInstances *parent, GncSxInstanceState state, GDate *date, void *temporal_state, gint sequence_num);
+
+static gint _get_vars_helper(Transaction *txn, void *var_hash_data);
+
+static GncSxVariable* gnc_sx_variable_new(gchar *name);
+
+static void _gnc_sx_instance_event_handler(QofEntity *ent, QofEventId event_type, gpointer user_data, gpointer evt_data);
+
+/* ------------------------------------------------------------ */
+
+static void
+_sx_var_to_raw_numeric(gchar *name, GncSxVariable *var, GHashTable *parser_var_hash)
+{
+    g_hash_table_insert(parser_var_hash, name, &var->value);
+}
+
+static void
+_var_numeric_to_sx_var(gchar *name, gnc_numeric *num, GHashTable *sx_var_hash)
+{
+    gpointer p_var;
+    if (!g_hash_table_lookup_extended(sx_var_hash, name, NULL, &p_var))
+    {
+        p_var = (gpointer)gnc_sx_variable_new(name);
+        g_hash_table_insert(sx_var_hash, name, p_var);
+    }
+    ((GncSxVariable*)p_var)->value = *num;
+}
+
+static void
+_wipe_parsed_sx_var(gchar *key, GncSxVariable *var, gpointer unused_user_data)
+{
+    var->value = gnc_numeric_error(GNC_ERROR_ARG);
+}
+
+/**
+ * @return caller-owned.
+ **/
+GHashTable*
+gnc_sx_instance_get_variables_for_parser(GHashTable *instance_var_hash)
+{
+    GHashTable *parser_vars;
+    parser_vars = g_hash_table_new(g_str_hash, g_str_equal);
+    g_hash_table_foreach(instance_var_hash, (GHFunc)_sx_var_to_raw_numeric, parser_vars);
+    return parser_vars;
+}
+
+int
+gnc_sx_parse_vars_from_formula(const char *formula,
+                               GHashTable *var_hash,
+                               gnc_numeric *result)
+{
+    gnc_numeric num;
+    char *errLoc = NULL;
+    int toRet = 0;
+    GHashTable *parser_vars;
+
+    // convert var_hash -> variables for the parser.
+    parser_vars = gnc_sx_instance_get_variables_for_parser(var_hash);
+
+    num = gnc_numeric_zero();
+    if (!gnc_exp_parser_parse_separate_vars(formula, &num, &errLoc, parser_vars))
+    {
+        toRet = -1;
+    }
+
+    // convert back.
+    g_hash_table_foreach(parser_vars, (GHFunc)_var_numeric_to_sx_var, var_hash);
+    g_hash_table_destroy(parser_vars);
+
+    if (result != NULL)
+    {
+        *result = num;
+    }
+
+    return toRet;
+}
+
+static GncSxVariable*
+gnc_sx_variable_new(gchar *name)
+{
+    GncSxVariable *var = g_new0(GncSxVariable, 1);
+    var->name = name;
+    var->value = gnc_numeric_error(GNC_ERROR_ARG);
+    var->editable = TRUE;
+    return var;
+}
+
+GncSxVariable*
+gnc_sx_variable_new_full(gchar *name, gnc_numeric value, gboolean editable)
+{
+    GncSxVariable *var = gnc_sx_variable_new(name);
+    var->value = value;
+    var->editable = editable;
+    return var;
+}
+
+static gint
+_get_vars_helper(Transaction *txn, void *var_hash_data)
+{
+    GHashTable *var_hash = (GHashTable*)var_hash_data;
+    GList *split_list;
+    kvp_frame *kvpf;
+    kvp_value *kvp_val;
+    Split *s;
+    char *str;
+    gnc_commodity *first_cmdty = NULL;
+
+    split_list = xaccTransGetSplitList(txn);
+    if (split_list == NULL)
+    {
+        return 1;
+    }
+
+    for ( ; split_list; split_list = split_list->next)
+    {
+        gnc_commodity *split_cmdty = NULL;
+        GUID *acct_guid;
+        Account *acct;
+
+        s = (Split*)split_list->data;
+        kvpf = xaccSplitGetSlots(s);
+        kvp_val = kvp_frame_get_slot_path(kvpf,
+                                          GNC_SX_ID,
+                                          GNC_SX_ACCOUNT,
+                                          NULL);
+        acct_guid = kvp_value_get_guid(kvp_val);
+        acct = xaccAccountLookup(acct_guid, gnc_get_current_book());
+        split_cmdty = xaccAccountGetCommodity(acct);
+        if (first_cmdty == NULL)
+        {
+            first_cmdty = split_cmdty;
+        }
+                
+        if (! gnc_commodity_equal(split_cmdty, first_cmdty))
+        {
+            GncSxVariable *var;
+            GString *var_name;
+
+            var_name = g_string_sized_new(16);
+            g_string_printf(var_name, "%s -> %s",
+                            gnc_commodity_get_mnemonic(split_cmdty),
+                            gnc_commodity_get_mnemonic(first_cmdty));
+            var = gnc_sx_variable_new(g_strdup(var_name->str));
+            g_hash_table_insert(var_hash, var->name, var);
+            g_string_free(var_name, TRUE);
+        }
+
+        // existing... ------------------------------------------
+        kvp_val = kvp_frame_get_slot_path(kvpf,
+                                          GNC_SX_ID,
+                                          GNC_SX_CREDIT_FORMULA,
+                                          NULL);
+        if (kvp_val != NULL)
+        {
+            str = kvp_value_get_string(kvp_val);
+            if (str && strlen(str) != 0)
+            {
+                gnc_sx_parse_vars_from_formula(str, var_hash, NULL);
+            }
+        }
+
+        kvp_val = kvp_frame_get_slot_path(kvpf,
+                                          GNC_SX_ID,
+                                          GNC_SX_DEBIT_FORMULA,
+                                          NULL);
+        if (kvp_val != NULL)
+        {
+            str = kvp_value_get_string(kvp_val);
+            if (str && strlen(str) != 0)
+            {
+                gnc_sx_parse_vars_from_formula(str, var_hash, NULL);
+            }
+        }
+    }
+
+    return 0;
+}
+
+Account*
+gnc_sx_get_template_transaction_account(SchedXaction *sx)
+{
+    Account *template_root, *sx_template_acct;
+    const char *sx_guid_str;
+
+    template_root = gnc_book_get_template_root(gnc_get_current_book());
+    sx_guid_str = guid_to_string(xaccSchedXactionGetGUID(sx));
+    /* Get account named after guid string. */
+    sx_template_acct = gnc_account_lookup_by_name(template_root, sx_guid_str);
+    return sx_template_acct;
+}
+
+void
+gnc_sx_get_variables(SchedXaction *sx, GHashTable *var_hash)
+{
+    Account *sx_template_acct;
+    sx_template_acct = gnc_sx_get_template_transaction_account(sx);
+    xaccAccountForEachTransaction(sx_template_acct, _get_vars_helper, var_hash);
+}
+
+static void
+_set_var_to_random_value(gchar *key, GncSxVariable *var, gpointer unused_user_data)
+{
+    var->value = double_to_gnc_numeric(rand() + 2, 1,
+                                       GNC_NUMERIC_RND_MASK
+                                       | GNC_RND_FLOOR);
+}
+
+static GncSxVariable*
+gnc_sx_variable_new_copy(GncSxVariable *to_copy)
+{
+    GncSxVariable *var = gnc_sx_variable_new(to_copy->name);
+    var->value = to_copy->value;
+    var->editable = to_copy->editable;
+    return var;
+}
+
+void
+gnc_sx_variable_free(GncSxVariable *var)
+{
+    // g_free(var->name);
+    g_free(var);
+}
+
+void
+gnc_sx_randomize_variables(GHashTable *vars)
+{
+    g_hash_table_foreach(vars, (GHFunc)_set_var_to_random_value, NULL);
+}
+
+static void
+_clone_sx_var_hash_entry(gpointer key, gpointer value, gpointer user_data)
+{
+    GHashTable *to = (GHashTable*)user_data;
+    GncSxVariable *to_copy = (GncSxVariable*)value;
+    GncSxVariable *var = gnc_sx_variable_new_copy(to_copy);
+    g_hash_table_insert(to, key, var);
+}
+
+static GncSxInstance*
+gnc_sx_instance_new(GncSxInstances *parent, GncSxInstanceState state, GDate *date, void *temporal_state, gint sequence_num)
+{
+    GncSxInstance *rtn = g_new0(GncSxInstance, 1);
+    rtn->parent = parent;
+    rtn->orig_state = state;
+    rtn->state = state;
+    g_date_clear(&rtn->date, 1);
+    rtn->date = *date;
+    rtn->temporal_state = gnc_sx_clone_temporal_state(temporal_state);
+
+    if (! parent->variable_names_parsed)
+    {
+        parent->variable_names = g_hash_table_new(g_str_hash, g_str_equal);
+        gnc_sx_get_variables(parent->sx, parent->variable_names);
+        g_hash_table_foreach(parent->variable_names, (GHFunc)_wipe_parsed_sx_var, NULL);
+        parent->variable_names_parsed = TRUE;
+    }
+
+    rtn->variable_bindings = g_hash_table_new(g_str_hash, g_str_equal);
+    g_hash_table_foreach(parent->variable_names, _clone_sx_var_hash_entry, rtn->variable_bindings);
+
+    {
+        int instance_i_value;
+        gnc_numeric i_num;
+        GncSxVariable *as_var;
+
+        instance_i_value = gnc_sx_get_instance_count(rtn->parent->sx, rtn->temporal_state);
+        i_num = gnc_numeric_create(instance_i_value, 1);
+        as_var = gnc_sx_variable_new_full("i", i_num, FALSE);
+
+        g_hash_table_insert(rtn->variable_bindings, "i", as_var);
+    }
+
+    return rtn;
+}
+
+static void
+_build_list_from_hash_elts(gpointer key, gpointer value, gpointer user_data)
+{
+    GList **list = (GList**)user_data;
+    *list = g_list_append(*list, value);
+}
+
+GList *
+gnc_sx_instance_get_variables(GncSxInstance *inst)
+{
+    GList *vars = NULL;
+    g_hash_table_foreach(inst->variable_bindings, _build_list_from_hash_elts, &vars);
+    // @@fixme sort by name
+    // @@fixme make sure the returned list is freed by callers.
+    return vars;
+}
+
+static GncSxInstances*
+_gnc_sx_gen_instances(gpointer *data, gpointer user_data)
+{
+    GncSxInstances *instances = g_new0(GncSxInstances, 1);
+    SchedXaction *sx = (SchedXaction*)data;
+    GDate *range_end = (GDate*)user_data;
+    GDate creation_end, remind_end;
+    GDate cur_date;
+    void *sequence_ctx;
+
+    instances->sx = sx;
+
+    creation_end = *range_end;
+    g_date_add_days(&creation_end, xaccSchedXactionGetAdvanceCreation(sx));
+    remind_end = creation_end;
+    g_date_add_days(&remind_end, xaccSchedXactionGetAdvanceReminder(sx));
+
+    /* postponed */
+    {
+        GList *postponed = gnc_sx_get_defer_instances(sx);
+        for ( ; postponed != NULL; postponed = postponed->next)
+        {
+            GDate inst_date;
+            int seq_num;
+            GncSxInstance *inst;
+
+            g_date_clear(&inst_date, 1);
+            inst_date = xaccSchedXactionGetNextInstance(sx, postponed->data);
+            seq_num = gnc_sx_get_instance_count(sx, postponed->data);
+            inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_POSTPONED, &inst_date, postponed->data, seq_num);
+            //inst->temporal_state = postponed->data;
+            instances->list = g_list_append(instances->list, inst);
+        }
+    }
+
+    /* to-create */
+    g_date_clear(&cur_date, 1);
+    sequence_ctx = gnc_sx_create_temporal_state(sx);
+    cur_date = xaccSchedXactionGetInstanceAfter(sx, &cur_date, sequence_ctx);
+    instances->next_instance_date = cur_date;
+    while (g_date_valid(&cur_date) && g_date_compare(&cur_date, &creation_end) <= 0)
+    {
+        GncSxInstance *inst;
+        int seq_num;
+        seq_num = gnc_sx_get_instance_count(sx, sequence_ctx);
+        inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_TO_CREATE, &cur_date, sequence_ctx, seq_num);
+        instances->list = g_list_append(instances->list, inst);
+        gnc_sx_incr_temporal_state(sx, sequence_ctx);
+        cur_date = xaccSchedXactionGetInstanceAfter(sx, &cur_date, sequence_ctx);
+    }
+
+    /* reminders */
+    while (g_date_valid(&cur_date) && g_date_compare(&cur_date, &remind_end) <= 0)
+    {
+        GncSxInstance *inst;
+        int seq_num;
+        seq_num = gnc_sx_get_instance_count(sx, sequence_ctx);
+        inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_REMINDER, &cur_date, sequence_ctx, seq_num);
+        instances->list = g_list_append(instances->list, inst);
+        gnc_sx_incr_temporal_state(sx, sequence_ctx);
+        cur_date = xaccSchedXactionGetInstanceAfter(sx, &cur_date, sequence_ctx);
+    }
+
+    return instances;
+}
+
+GncSxInstanceModel*
+gnc_sx_get_current_instances(void)
+{
+    GDate *now = g_date_new();
+    g_date_clear(now, 1);
+    g_date_set_time_t(now, time(NULL));
+    return gnc_sx_get_instances(now, FALSE);
+}
+
+GncSxInstanceModel*
+gnc_sx_get_instances(GDate *range_end, gboolean include_disabled)
+{
+    GList *all_sxes = gnc_book_get_schedxactions(gnc_get_current_book())->sx_list;
+    GncSxInstanceModel *instances;
+
+    g_assert(range_end != NULL);
+    g_assert(g_date_valid(range_end));
+
+    instances = gnc_sx_instance_model_new();
+    instances->include_disabled = include_disabled;
+    instances->range_end = *range_end;
+
+    if (include_disabled) 
+    {
+        instances->sx_instance_list = gnc_g_list_map(all_sxes, (GncGMapFunc)_gnc_sx_gen_instances, range_end);
+    } 
+    else 
+    {
+        GList *sx_iter = g_list_first(all_sxes);
+        GList *enabled_sxes = NULL;
+
+        for (; sx_iter != NULL; sx_iter = sx_iter->next)
+        {
+            SchedXaction *sx = (SchedXaction*)sx_iter->data;
+            if (xaccSchedXactionGetEnabled(sx))
+            {
+                enabled_sxes = g_list_append(enabled_sxes, sx);
+            }
+        }
+        instances->sx_instance_list = gnc_g_list_map(enabled_sxes, (GncGMapFunc)_gnc_sx_gen_instances, range_end);
+        g_list_free(enabled_sxes);
+    }
+
+    return instances;
+}
+static GncSxInstanceModel*
+gnc_sx_instance_model_new(void)
+{
+    return GNC_SX_INSTANCE_MODEL(g_object_new(GNC_TYPE_SX_INSTANCE_MODEL, NULL));
+}
+
+GType
+gnc_sx_instance_model_get_type(void)
+{
+    static GType type = 0;
+    if (type == 0) {
+        static const GTypeInfo info = {
+            sizeof (GncSxInstanceModelClass),
+            NULL,   /* base_init */
+            NULL,   /* base_finalize */
+            (GClassInitFunc)gnc_sx_instance_model_class_init,   /* class_init */
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            sizeof (GncSxInstanceModel),
+            0,      /* n_preallocs */
+            (GInstanceInitFunc)gnc_sx_instance_model_init    /* instance_init */
+        };
+        type = g_type_register_static (G_TYPE_OBJECT,
+                                       "GncSxInstanceModelType",
+                                       &info, 0);
+    }
+    return type;
+}
+
+static void
+gnc_sx_instance_model_dispose(GObject *object)
+{
+    GncSxInstanceModel *model;
+    g_return_if_fail(object != NULL);
+    model = GNC_SX_INSTANCE_MODEL(object);
+
+    g_return_if_fail(!model->disposed);
+    model->disposed = TRUE;
+
+    qof_event_unregister_handler(model->qof_event_handler_id);
+
+    G_OBJECT_CLASS(parent_class)->dispose(object);
+}
+
+static void
+gnc_sx_instance_free(GncSxInstance *instance)
+{
+    // @fixme:
+    // variable_bindings elts + map
+    // temporal_state (iff not postponed?)
+     
+    g_free(instance);
+}
+
+static void
+gnc_sx_instances_free(GncSxInstances *instances)
+{
+    GList *instance_iter;
+    // @fixme:
+    // variable_names
+    // sx = null
+
+    for (instance_iter = instances->list; instance_iter != NULL; instance_iter = instance_iter->next)
+    {
+        GncSxInstance *inst = (GncSxInstance*)instance_iter->data;
+        gnc_sx_instance_free(inst);
+    }
+    g_list_free(instances->list);
+    instances->list = NULL;
+
+    g_free(instances);
+}
+
+static void
+gnc_sx_instance_model_finalize (GObject *object)
+{
+    GncSxInstanceModel *model;
+    GList *sx_list_iter;
+
+    g_return_if_fail(object != NULL);
+
+    model = GNC_SX_INSTANCE_MODEL(object);
+    for (sx_list_iter = model->sx_instance_list; sx_list_iter != NULL; sx_list_iter = sx_list_iter->next)
+    {
+        GncSxInstances *instances = (GncSxInstances*)sx_list_iter->data;
+        gnc_sx_instances_free(instances);
+    }
+    g_list_free(model->sx_instance_list);
+    model->sx_instance_list = NULL;
+
+    G_OBJECT_CLASS(parent_class)->finalize(object);
+}
+
+static void
+gnc_sx_instance_model_class_init (GncSxInstanceModelClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+
+    parent_class = g_type_class_peek_parent(klass);
+
+    object_class->dispose = gnc_sx_instance_model_dispose;
+    object_class->finalize = gnc_sx_instance_model_finalize;
+
+    klass->removing_signal_id =
+        g_signal_new("removing",
+                     GNC_TYPE_SX_INSTANCE_MODEL,
+                     G_SIGNAL_RUN_FIRST,
+                     0, /* class offset */
+                     NULL, /* accumulator */
+                     NULL, /* accum data */
+                     g_cclosure_marshal_VOID__POINTER,
+                     G_TYPE_NONE,
+                     1,
+                     G_TYPE_POINTER);
+
+    klass->updated_signal_id =
+        g_signal_new("updated",
+                     GNC_TYPE_SX_INSTANCE_MODEL,
+                     G_SIGNAL_RUN_FIRST,
+                     0, /* class offset */
+                     NULL, /* accumulator */
+                     NULL, /* accum data */
+                     g_cclosure_marshal_VOID__POINTER,
+                     G_TYPE_NONE,
+                     1,
+                     G_TYPE_POINTER);
+
+    klass->added_signal_id =
+        g_signal_new("added",
+                     GNC_TYPE_SX_INSTANCE_MODEL,
+                     G_SIGNAL_RUN_FIRST,
+                     0, /* class offset */
+                     NULL, /* accumulator */
+                     NULL, /* accum data */
+                     g_cclosure_marshal_VOID__POINTER,
+                     G_TYPE_NONE,
+                     1,
+                     G_TYPE_POINTER);
+}
+
+static void
+gnc_sx_instance_model_init(GTypeInstance *instance, gpointer klass)
+{
+    GncSxInstanceModel *inst = (GncSxInstanceModel*)instance;
+
+    g_date_clear(&inst->range_end, 1);
+    inst->sx_instance_list = NULL;
+    inst->qof_event_handler_id = qof_event_register_handler(_gnc_sx_instance_event_handler, inst);
+}
+
+static gint
+_gnc_sx_instance_find_by_sx(GncSxInstances *in_list_instances, SchedXaction *sx_to_find)
+{
+    if (in_list_instances->sx == sx_to_find)
+        return 0;
+    return -1;
+}
+
+static void
+_gnc_sx_instance_event_handler(QofEntity *ent, QofEventId event_type, gpointer user_data, gpointer evt_data)
+{
+    GncSxInstanceModel *instances = GNC_SX_INSTANCE_MODEL(user_data);
+
+    /* selection rules {
+    //   (gnc_collection_get_schedxaction_list(book), GNC_EVENT_ITEM_ADDED)
+    //   (gnc_collection_get_schedxaction_list(book), GNC_EVENT_ITEM_REMOVED)
+    //   (GNC_IS_SX(ent), QOF_EVENT_MODIFIED)
+    // } */
+    if (!(GNC_IS_SX(ent) || GNC_IS_SXES(ent)))
+        return;
+
+    if (GNC_IS_SX(ent))
+    {
+        SchedXaction *sx;
+        gboolean sx_is_in_model = FALSE;
+
+        sx = GNC_SX(ent);
+        // only send `updated` if it's actually in the model
+        sx_is_in_model = (g_list_find_custom(instances->sx_instance_list, sx, (GCompareFunc)_gnc_sx_instance_find_by_sx) != NULL);
+        if (event_type & QOF_EVENT_MODIFY)
+        {
+            if (sx_is_in_model)
+            {
+                if (instances->include_disabled || xaccSchedXactionGetEnabled(sx))
+                {
+                    g_signal_emit_by_name(instances, "updated", (gpointer)sx);
+                }
+                else
+                {
+                    /* the sx was enabled but is now disabled */
+                    g_signal_emit_by_name(instances, "removing", (gpointer)sx);
+                }
+            }
+            else
+            {
+                /* determine if this is a legitimate SX or just a "one-off" / being created */
+                GList *all_sxes = gnc_book_get_schedxactions(gnc_get_current_book())->sx_list;
+                if (g_list_find(all_sxes, sx) && (!instances->include_disabled && xaccSchedXactionGetEnabled(sx)))
+                {
+                    /* it's moved from disabled to enabled, add the instances */
+                    instances->sx_instance_list
+                        = g_list_append(instances->sx_instance_list,
+                                        _gnc_sx_gen_instances((gpointer)sx, (gpointer)&instances->range_end));
+                    g_signal_emit_by_name(instances, "added", (gpointer)sx);
+                }
+            }
+        }
+        /* else { unsupported event type; ignore } */
+    }
+    else if (GNC_IS_SXES(ent))
+    {
+        SchedXactions *sxes = GNC_SXES(ent);
+        SchedXaction *sx = GNC_SX(evt_data);
+
+        sxes = NULL;
+        if (event_type & GNC_EVENT_ITEM_REMOVED)
+        {
+            GList *instances_link;
+            instances_link = g_list_find_custom(instances->sx_instance_list, sx, (GCompareFunc)_gnc_sx_instance_find_by_sx);
+            if (instances_link != NULL)
+            {
+                g_signal_emit_by_name(instances, "removing", (gpointer)sx);
+            }
+            else if (instances->include_disabled)
+            {
+                g_warning("could not remove instances that do not exist in the model");
+            }
+        }
+        else if (event_type & GNC_EVENT_ITEM_ADDED)
+        {
+            if (instances->include_disabled || xaccSchedXactionGetEnabled(sx))
+            {
+                /* generate instances, add to instance list, emit update. */
+                instances->sx_instance_list
+                    = g_list_append(instances->sx_instance_list,
+                                    _gnc_sx_gen_instances((gpointer)sx, (gpointer)&instances->range_end));
+                g_signal_emit_by_name(instances, "added", (gpointer)sx);
+            }
+        }
+        /* else { g_critical("unsupported event type [%d]\n", event_type); } */
+    }
+}
+
+typedef struct _HashListPair
+{
+    GHashTable *hash;
+    GList *list;
+} HashListPair;
+
+static void
+_find_unreferenced_vars(gchar *key,
+                        gpointer value,
+                        HashListPair *cb_pair)
+{
+    if (!g_hash_table_lookup_extended(cb_pair->hash, key, NULL, NULL))
+    {
+        g_debug("variable [%s] not found", key);
+        cb_pair->list = g_list_append(cb_pair->list, key);
+    }
+}
+
+void
+gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXaction *sx)
+{
+    GncSxInstances *existing, *new_instances;
+    GList *link;
+
+    link = g_list_find_custom(model->sx_instance_list, sx, (GCompareFunc)_gnc_sx_instance_find_by_sx);
+    if (link == NULL)
+    {
+        g_critical("couldn't find sx [%p]\n", sx);
+        return;
+    }
+
+    // merge the new instance data into the existing structure, mutating as little as possible.
+    existing = (GncSxInstances*)link->data;
+    new_instances = _gnc_sx_gen_instances((gpointer)sx, &model->range_end);
+    existing->sx = new_instances->sx;
+    existing->next_instance_date = new_instances->next_instance_date;
+    {
+        GList *existing_iter, *new_iter;
+        gboolean existing_remain, new_remain;
+
+        // step through the lists pairwise, and retain the existing
+        // instance if the dates align, as soon as they don't stop and
+        // cleanup.
+        existing_iter = existing->list;
+        new_iter = new_instances->list;
+        for (; existing_iter != NULL && new_iter != NULL; existing_iter = existing_iter->next, new_iter = new_iter->next)
+        {
+            GncSxInstance *existing_inst, *new_inst;
+            gboolean same_instance_date;
+            existing_inst = (GncSxInstance*)existing_iter->data;
+            new_inst = (GncSxInstance*)new_iter->data;
+
+            same_instance_date = g_date_compare(&existing_inst->date, &new_inst->date) == 0;
+            if (!same_instance_date)
+                break;
+        }
+
+        existing_remain = (existing_iter != NULL);
+        new_remain = (new_iter != NULL);
+
+        if (existing_remain)
+        {
+            // delete excess
+            gnc_g_list_cut(&existing->list, existing_iter);
+            g_list_foreach(existing_iter, (GFunc)gnc_sx_instance_free, NULL);
+        }
+
+        if (new_remain)
+        {
+            // append new
+            GList *new_iter_iter;
+            gnc_g_list_cut(&new_instances->list, new_iter);
+
+            for (new_iter_iter = new_iter; new_iter_iter != NULL; new_iter_iter = new_iter_iter->next)
+            {
+                GncSxInstance *inst = (GncSxInstance*)new_iter_iter->data;
+                inst->parent = existing;
+                existing->list = g_list_append(existing->list, new_iter_iter->data);
+            }
+            g_list_free(new_iter);
+        }
+    }
+
+    // handle variables
+    {
+        HashListPair removed_cb_data, added_cb_data;
+        GList *removed_var_names = NULL, *added_var_names = NULL;
+        GList *inst_iter = NULL;
+
+        removed_cb_data.hash = new_instances->variable_names;
+        removed_cb_data.list = NULL;
+        g_hash_table_foreach(existing->variable_names, (GHFunc)_find_unreferenced_vars, &removed_cb_data);
+        removed_var_names = removed_cb_data.list;
+        g_debug("%d removed variables", g_list_length(removed_var_names));
+
+        added_cb_data.hash = existing->variable_names;
+        added_cb_data.list = NULL;
+        g_hash_table_foreach(new_instances->variable_names, (GHFunc)_find_unreferenced_vars, &added_cb_data);
+        added_var_names = added_cb_data.list;
+        g_debug("%d added variables", g_list_length(added_var_names));
+
+        g_hash_table_destroy(existing->variable_names);
+        existing->variable_names = new_instances->variable_names;
+        new_instances->variable_names = NULL;
+
+        for (inst_iter = existing->list; inst_iter != NULL; inst_iter = inst_iter->next)
+        {
+            GList *var_iter;
+            GncSxInstance *inst = (GncSxInstance*)inst_iter->data;
+            
+            for (var_iter = removed_var_names; var_iter != NULL; var_iter = var_iter->next)
+            {
+                gchar *to_remove_key = (gchar*)var_iter->data;
+                g_hash_table_remove(inst->variable_bindings, to_remove_key);
+            }
+
+            for (var_iter = added_var_names; var_iter != NULL; var_iter = var_iter->next)
+            {
+                gchar *to_add_key = (gchar*)var_iter->data;
+                if (!g_hash_table_lookup_extended(
+                        inst->variable_bindings, to_add_key, NULL, NULL))
+                {
+                    GncSxVariable *parent_var
+                        = g_hash_table_lookup(existing->variable_names, to_add_key);
+                    GncSxVariable *var_copy;
+
+                    g_assert(parent_var != NULL);
+                    var_copy = gnc_sx_variable_new_copy(parent_var);
+                    g_hash_table_insert(inst->variable_bindings, to_add_key, var_copy);
+                }
+            }
+        }
+    }
+    gnc_sx_instances_free(new_instances);
+}
+
+void
+gnc_sx_instance_model_remove_sx_instances(GncSxInstanceModel *model, SchedXaction *sx)
+{
+    GList *instance_link = NULL;
+
+    instance_link = g_list_find_custom(model->sx_instance_list, sx, (GCompareFunc)_gnc_sx_instance_find_by_sx);
+    if (instance_link == NULL)
+    {
+        g_warning("instance not found!\n");
+        return;
+    }
+
+    model->sx_instance_list = g_list_remove_link(model->sx_instance_list, instance_link);
+    gnc_sx_instances_free((GncSxInstances*)instance_link->data);
+}
+
+static void
+increment_sx_state(GncSxInstance *inst, GDate **last_occur_date, int *instance_count, int *remain_occur_count)
+{
+    if (!g_date_valid(*last_occur_date)
+        || (g_date_valid(*last_occur_date)
+            && g_date_compare(*last_occur_date, &inst->date) <= 0))
+    {
+        *last_occur_date = &inst->date;
+    }
+
+    *instance_count = gnc_sx_get_instance_count(inst->parent->sx, inst->temporal_state);
+
+    if (*remain_occur_count > 0)
+    {
+        *remain_occur_count -= 1;
+    }
+}
+
+typedef struct _SxTxnCreationData
+{
+    GncSxInstance *instance;
+    GList **created_txn_guids;
+    GList **creation_errors;
+} SxTxnCreationData;
+
+static gboolean
+_get_template_split_account(GncSxInstance *instance, Split *template_split, Account **split_acct, GList **creation_errors)
+{
+    GUID *acct_guid;
+    kvp_frame *split_kvpf;
+    kvp_value *kvp_val;
+
+    split_kvpf = xaccSplitGetSlots(template_split);
+    /* contains the guid of the split's actual account. */
+    kvp_val = kvp_frame_get_slot_path(split_kvpf,
+                                      GNC_SX_ID,
+                                      GNC_SX_ACCOUNT,
+                                      NULL);
+    if (kvp_val == NULL)
+    {
+        // @@fixme: this should be more of an assert...
+        GString *err = g_string_new("");
+        g_string_printf(err, "Null account kvp value for SX [%s], cancelling creation.",
+                        xaccSchedXactionGetName(instance->parent->sx));
+        *creation_errors = g_list_append(*creation_errors, err);
+        return FALSE;
+    }
+    acct_guid = kvp_value_get_guid( kvp_val );
+    *split_acct = xaccAccountLookup(acct_guid, gnc_get_current_book());
+    if (*split_acct == NULL)
+    {
+        const char *guid_str;
+        GString *err;
+        guid_str = guid_to_string((const GUID*)acct_guid);
+        err = g_string_new("");
+        g_string_printf(err, "Unknown account for guid [%s], cancelling SX [%s] creation.",
+                        guid_str, xaccSchedXactionGetName(instance->parent->sx));
+        g_free((char*)guid_str);
+        *creation_errors = g_list_append(*creation_errors, err);
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
+static void
+_get_sx_formula(GncSxInstance *instance, Split *template_split, gnc_numeric *numeric, GList **creation_errors, const char *formula_key)
+{
+    kvp_frame *split_kvpf;
+    kvp_value *kvp_val;
+    char *formula_str, *parseErrorLoc;
+
+    split_kvpf = xaccSplitGetSlots(template_split);
+    kvp_val = kvp_frame_get_slot_path(split_kvpf,
+                                      GNC_SX_ID,
+                                      formula_key,
+                                      NULL);
+    formula_str = kvp_value_get_string(kvp_val);
+    if (formula_str != NULL && strlen(formula_str) != 0)
+    {
+        GHashTable *parser_vars = gnc_sx_instance_get_variables_for_parser(instance->variable_bindings);
+        if (!gnc_exp_parser_parse_separate_vars(formula_str,
+                                                numeric,
+                                                &parseErrorLoc,
+                                                parser_vars))
+        {
+            GString *err = g_string_new("");
+            g_string_printf(err, "Error parsing SX [%s] key [%s]=formula [%s] at [%s]: %s",
+                            xaccSchedXactionGetName(instance->parent->sx),
+                            formula_key,
+                            formula_str,
+                            parseErrorLoc,
+                            gnc_exp_parser_error_string());
+            *creation_errors = g_list_append(*creation_errors, err);
+        }
+        g_hash_table_destroy(parser_vars);
+    }
+}
+
+static void
+_get_credit_formula(GncSxInstance *instance, Split *template_split, gnc_numeric *credit_num, GList **creation_errors)
+{
+    _get_sx_formula(instance, template_split, credit_num, creation_errors, GNC_SX_CREDIT_FORMULA);
+}
+
+static void
+_get_debit_formula(GncSxInstance *instance, Split *template_split, gnc_numeric *debit_num, GList **creation_errors)
+{
+    _get_sx_formula(instance, template_split, debit_num, creation_errors, GNC_SX_DEBIT_FORMULA);
+}
+
+static gboolean
+create_each_transaction_helper(Transaction *template_txn, void *user_data)
+{
+    Transaction *new_txn;
+    GList *txn_splits, *template_splits;
+    Split *copying_split;
+    gnc_commodity *first_cmdty = NULL;
+    gboolean err_flag = FALSE;
+    SxTxnCreationData *creation_data;
+
+    creation_data = (SxTxnCreationData*)user_data;
+
+    /* FIXME: In general, this should [correctly] deal with errors such
+       as not finding the approrpiate Accounts and not being able to
+       parse the formula|credit/debit strings. */
+
+    new_txn = xaccTransClone(template_txn);
+    xaccTransBeginEdit(new_txn);
+
+    /* clear any copied KVP data */
+    qof_instance_set_slots(QOF_INSTANCE(new_txn), kvp_frame_new());
+
+    xaccTransSetDate(new_txn,
+                     g_date_get_day(&creation_data->instance->date),
+                     g_date_get_month(&creation_data->instance->date),
+                     g_date_get_year(&creation_data->instance->date));
+        
+    /* the accounts and amounts are in the kvp_frames of the splits. */
+    template_splits = xaccTransGetSplitList(template_txn);
+    txn_splits = xaccTransGetSplitList(new_txn);
+    if ((template_splits == NULL) || (txn_splits == NULL))
+    {
+        g_critical("transaction w/o splits for sx [%s]",
+                   xaccSchedXactionGetName(creation_data->instance->parent->sx));
+        xaccTransDestroy(new_txn);
+        xaccTransCommitEdit(new_txn);
+        return FALSE;
+    }
+
+    for (;
+         txn_splits && template_splits;
+         txn_splits = txn_splits->next, template_splits = template_splits->next)
+    {
+        Split *template_split;
+        Account *split_acct;
+        gnc_commodity *split_cmdty = NULL;
+             
+        /* FIXME: Ick.  This assumes that the split lists will be ordered
+           identically. :( They are, but we'd rather not have to count on
+           it. --jsled */
+        template_split = (Split*)template_splits->data;
+        copying_split = (Split*)txn_splits->data;
+
+        /* clear out any copied Split frame data. */
+        qof_instance_set_slots(QOF_INSTANCE(copying_split), kvp_frame_new());
+
+        if (!_get_template_split_account(creation_data->instance, template_split, &split_acct, creation_data->creation_errors))
+        {
+            err_flag = TRUE;
+            break;
+        }
+             
+        split_cmdty = xaccAccountGetCommodity(split_acct);
+        if (first_cmdty == NULL)
+        {
+            first_cmdty = split_cmdty;
+            xaccTransSetCurrency(new_txn, first_cmdty);
+        }
+
+        xaccAccountBeginEdit(split_acct);
+        xaccAccountInsertSplit(split_acct, copying_split);
+
+        {
+            gnc_numeric credit_num, debit_num, final;
+            gint gncn_error;
+
+            credit_num = gnc_numeric_zero();
+            debit_num = gnc_numeric_zero();
+
+            _get_credit_formula(creation_data->instance, template_split, &credit_num, creation_data->creation_errors);
+            _get_debit_formula(creation_data->instance, template_split, &debit_num, creation_data->creation_errors);
+                       
+            final = gnc_numeric_sub_fixed( debit_num, credit_num );
+                        
+            gncn_error = gnc_numeric_check(final);
+            if (gncn_error != GNC_ERROR_OK) {
+                GString *err = g_string_new("");
+                g_string_printf(err, "Error %d in SX [%s] final gnc_numeric value, using 0 instead.", 
+                                gncn_error,
+                                xaccSchedXactionGetName(creation_data->instance->parent->sx));
+                *creation_data->creation_errors = g_list_append(*creation_data->creation_errors, err);
+                final = gnc_numeric_zero();
+            }
+
+            xaccSplitSetValue(copying_split, final);
+            if (! gnc_commodity_equal(split_cmdty, first_cmdty))
+            {
+                GString *exchange_rate_var_name = g_string_sized_new(16);
+                GncSxVariable *exchange_rate_var;
+                gnc_numeric exchange_rate, amt;
+
+                /*
+                  GNCPriceDB *price_db = gnc_pricedb_get_db(gnc_get_current_book());
+                  GNCPrice *price;
+
+                  price = gnc_pricedb_lookup_latest(price_db, first_cmdty, split_cmdty);
+                  if (price == NULL)
+                  {
+                  price = gnc_pricedb_lookup_latest(price_db, split_cmdty, first_cmdty);
+                  if (price == NULL)
+                  {
+                  GString *err = g_string_new("");
+                  g_string_printf(err, "could not find pricedb entry for commodity-pair (%s, %s).",
+                  gnc_commodity_get_mnemonic(first_cmdty),
+                  gnc_commodity_get_mnemonic(split_cmdty));
+                  exchange = gnc_numeric_create(1, 1);
+                  *creation_data->creation_errors = g_list_append(*creation_data->creation_errors, err);
+
+                  }
+                  else
+                  {
+                  exchange = gnc_numeric_div(gnc_numeric_create(1,1),
+                  gnc_price_get_value(price),
+                  1000, GNC_HOW_RND_ROUND);
+                  }
+                  }
+                  else
+                  {
+                  exchange = gnc_price_get_value(price);
+                  }
+                */
+
+                exchange_rate = gnc_numeric_zero();
+                g_string_printf(exchange_rate_var_name, "%s -> %s",
+                                gnc_commodity_get_mnemonic(split_cmdty),
+                                gnc_commodity_get_mnemonic(first_cmdty));
+                exchange_rate_var = (GncSxVariable*)g_hash_table_lookup(creation_data->instance->variable_bindings,
+                                                                        exchange_rate_var_name->str);
+                if (exchange_rate_var != NULL)
+                {
+                    exchange_rate = exchange_rate_var->value;
+                }
+                g_string_free(exchange_rate_var_name, TRUE);
+
+                amt = gnc_numeric_mul(final, exchange_rate, 1000, GNC_HOW_RND_ROUND);
+                xaccSplitSetAmount(copying_split, amt);
+            }
+
+            xaccSplitScrub(copying_split);
+        }
+
+        xaccAccountCommitEdit(split_acct);
+    }
+
+    if (err_flag)
+    {
+        g_critical("new transaction creation sx [%s]",
+                   xaccSchedXactionGetName(creation_data->instance->parent->sx));
+        xaccTransDestroy(new_txn);
+        xaccTransCommitEdit(new_txn);
+        return FALSE;
+    }
+
+    {
+        kvp_frame *txn_frame;
+        /* set a kvp-frame element in the transaction indicating and
+         * pointing-to the SX this was created from. */
+        txn_frame = xaccTransGetSlots(new_txn);
+        kvp_frame_set_guid(txn_frame, "from-sched-xaction", xaccSchedXactionGetGUID(creation_data->instance->parent->sx));
+    }
+
+    xaccTransCommitEdit(new_txn);
+
+    if (creation_data->created_txn_guids != NULL)
+    {
+        *creation_data->created_txn_guids
+            = g_list_append(*(creation_data->created_txn_guids), (gpointer)xaccTransGetGUID(new_txn));
+    }
+
+    return TRUE;
+}
+
+static void
+create_transactions_for_instance(GncSxInstance *instance, GList **created_txn_guids, GList **creation_errors)
+{
+    SxTxnCreationData creation_data;
+    Account *sx_template_account;
+
+    sx_template_account = gnc_sx_get_template_transaction_account(instance->parent->sx);
+
+    creation_data.instance = instance;
+    creation_data.created_txn_guids = created_txn_guids;
+    creation_data.creation_errors = creation_errors;
+
+    xaccAccountForEachTransaction(sx_template_account,
+                                  create_each_transaction_helper,
+                                  &creation_data);
+}
+
+void
+gnc_sx_instance_model_effect_change(GncSxInstanceModel *model,
+                                    gboolean auto_create_only,
+                                    GList **created_transaction_guids,
+                                    GList **creation_errors)
+{
+    GList *iter;
+    for (iter = model->sx_instance_list; iter != NULL; iter = iter->next)
+    {
+        GList *instance_iter;
+        GncSxInstances *instances = (GncSxInstances*)iter->data;
+        GDate *last_occur_date;
+        gint instance_count = 0;
+        gint remain_occur_count = 0;
+
+        // If there are no instances, then skip; specifically, skip
+        // re-setting SchedXaction fields, which will dirty the book
+        // spuriously.
+        if (g_list_length(instances->list) == 0)
+            continue;
+
+        last_occur_date = xaccSchedXactionGetLastOccurDate(instances->sx);
+        instance_count = gnc_sx_get_instance_count(instances->sx, NULL);
+        remain_occur_count = xaccSchedXactionGetRemOccur(instances->sx);
+
+        for (instance_iter = instances->list; instance_iter != NULL; instance_iter = instance_iter->next)
+        {
+            GncSxInstance *inst = (GncSxInstance*)instance_iter->data;
+            gboolean sx_is_auto_create;
+
+            xaccSchedXactionGetAutoCreate(inst->parent->sx, &sx_is_auto_create, NULL);
+            if (auto_create_only && !sx_is_auto_create)
+            {
+                if (inst->state != SX_INSTANCE_STATE_TO_CREATE)
+                {
+                    break;
+                }
+                continue;
+            }
+
+            if (inst->orig_state == SX_INSTANCE_STATE_POSTPONED
+                && inst->state != SX_INSTANCE_STATE_POSTPONED)
+            {
+                // remove from postponed list
+                g_assert(inst->temporal_state != NULL);
+                gnc_sx_remove_defer_instance(inst->parent->sx, inst->temporal_state);
+            }
+
+            switch (inst->state)
+            {
+            case SX_INSTANCE_STATE_CREATED:
+                // nop: we've already processed this.
+                break;
+            case SX_INSTANCE_STATE_IGNORED:
+                increment_sx_state(inst, &last_occur_date, &instance_count, &remain_occur_count);
+                break;
+            case SX_INSTANCE_STATE_POSTPONED:
+                if (inst->orig_state != SX_INSTANCE_STATE_POSTPONED)
+                {
+                    gnc_sx_add_defer_instance(instances->sx, inst->temporal_state);
+                }
+                increment_sx_state(inst, &last_occur_date, &instance_count, &remain_occur_count);
+                break;
+            case SX_INSTANCE_STATE_TO_CREATE:
+                create_transactions_for_instance(inst, created_transaction_guids, creation_errors);
+                increment_sx_state(inst, &last_occur_date, &instance_count, &remain_occur_count);
+                gnc_sx_instance_model_change_instance_state(model, inst, SX_INSTANCE_STATE_CREATED);
+                break;
+            case SX_INSTANCE_STATE_REMINDER:
+                // do nothing
+                // assert no non-remind instances after this?
+                break;
+            default:
+                g_assert_not_reached();
+                break;
+            }
+        }
+          
+        xaccSchedXactionSetLastOccurDate(instances->sx, last_occur_date);
+        gnc_sx_set_instance_count(instances->sx, instance_count);
+        xaccSchedXactionSetRemOccur(instances->sx, remain_occur_count);
+    }
+}
+
+void
+gnc_sx_instance_model_change_instance_state(GncSxInstanceModel *model,
+                                            GncSxInstance *instance,
+                                            GncSxInstanceState new_state)
+{
+    if (instance->state == new_state)
+        return;
+
+    instance->state = new_state;
+
+    // ensure 'remind' constraints are met:
+    {
+        GList *inst_iter;
+        inst_iter = g_list_find(instance->parent->list, instance);
+        g_assert(inst_iter != NULL);
+        if (instance->state != SX_INSTANCE_STATE_REMINDER)
+        {
+            // iterate backwards, making sure reminders are changed to 'postponed'
+            for (inst_iter = inst_iter->prev; inst_iter != NULL; inst_iter = inst_iter->prev)
+            {
+                GncSxInstance *prev_inst = (GncSxInstance*)inst_iter->data;
+                if (prev_inst->state != SX_INSTANCE_STATE_REMINDER)
+                    continue;
+                prev_inst->state = SX_INSTANCE_STATE_POSTPONED;
+            }
+        }
+        else
+        {
+            // iterate forward, make sure transactions are set to 'remind'
+            for (inst_iter = inst_iter->next; inst_iter != NULL; inst_iter = inst_iter->next)
+            {
+                GncSxInstance *next_inst = (GncSxInstance*)inst_iter->data;
+                if (next_inst->state == SX_INSTANCE_STATE_REMINDER)
+                    continue;
+                next_inst->state = SX_INSTANCE_STATE_REMINDER;
+            }
+        }
+    }
+
+    g_signal_emit_by_name(model, "updated", (gpointer)instance->parent->sx);
+}
+
+void
+gnc_sx_instance_model_set_variable(GncSxInstanceModel *model,
+                                   GncSxInstance *instance,
+                                   GncSxVariable *variable,
+                                   gnc_numeric *new_value)
+{
+
+    if (gnc_numeric_equal(variable->value, *new_value))
+        return;
+    variable->value = *new_value;
+    g_signal_emit_by_name(model, "updated", (gpointer)instance->parent->sx);
+}
+
+static void
+_list_from_hash_elts(gpointer key, gpointer value, GList **result_list)
+{
+    *result_list = g_list_append(*result_list, value);
+}
+
+GList*
+gnc_sx_instance_model_check_variables(GncSxInstanceModel *model)
+{
+    GList *rtn = NULL;
+    GList *sx_iter, *inst_iter, *var_list = NULL, *var_iter;
+
+    for (sx_iter = model->sx_instance_list; sx_iter != NULL; sx_iter = sx_iter->next)
+    {
+        GncSxInstances *instances = (GncSxInstances*)sx_iter->data;
+        for (inst_iter = instances->list; inst_iter != NULL; inst_iter = inst_iter->next)
+        {
+            GncSxInstance *inst = (GncSxInstance*)inst_iter->data;
+
+            if (inst->state != SX_INSTANCE_STATE_TO_CREATE)
+                continue;
+
+            g_hash_table_foreach(inst->variable_bindings, (GHFunc)_list_from_hash_elts, &var_list);
+            for (var_iter = var_list; var_iter != NULL; var_iter = var_iter->next)
+            {
+                GncSxVariable *var = (GncSxVariable*)var_iter->data;
+                if (gnc_numeric_check(var->value) != GNC_ERROR_OK)
+                {
+                    GncSxVariableNeeded *need = g_new0(GncSxVariableNeeded, 1);
+                    need->instance = inst;
+                    need->variable = var;
+                    rtn = g_list_append(rtn, need);
+                }
+            }
+            g_list_free(var_list);
+            var_list = NULL;
+        }
+    }
+    return rtn;
+}
+
+void
+gnc_sx_instance_model_summarize(GncSxInstanceModel *model, GncSxSummary *summary)
+{
+    GList *sx_iter, *inst_iter;
+
+    g_return_if_fail(model != NULL);
+    g_return_if_fail(summary != NULL);
+
+    summary->need_dialog = FALSE;
+    summary->num_instances = 0;
+    summary->num_to_create_instances = 0;
+    summary->num_auto_create_instances = 0;
+    summary->num_auto_create_no_notify_instances = 0;
+
+    for (sx_iter = model->sx_instance_list; sx_iter != NULL; sx_iter = sx_iter->next)
+    {
+        GncSxInstances *instances = (GncSxInstances*)sx_iter->data;
+        gboolean sx_is_auto_create = FALSE, sx_notify = FALSE;
+        xaccSchedXactionGetAutoCreate(instances->sx, &sx_is_auto_create, &sx_notify);
+        for (inst_iter = instances->list; inst_iter != NULL; inst_iter = inst_iter->next)
+        {
+            GncSxInstance *inst = (GncSxInstance*)inst_iter->data;
+            summary->num_instances++;
+
+            if (inst->state == SX_INSTANCE_STATE_TO_CREATE)
+            {
+                if (sx_is_auto_create)
+                {
+                    if (!sx_notify)
+                    {
+                        summary->num_auto_create_no_notify_instances++;
+                    }
+                    else
+                    {
+                        summary->num_auto_create_instances++;
+                    }
+                }
+                else
+                {
+                    summary->num_to_create_instances++;
+                }
+            }
+        }
+    }
+
+    // if all the instances are 'auto-create, no-notify', then we don't need
+    // the dialog.
+    summary->need_dialog
+        = (summary->num_instances != 0
+           && summary->num_auto_create_no_notify_instances != summary->num_instances);
+}
+
+void
+gnc_sx_summary_print(GncSxSummary *summary)
+{
+    g_message("num_instances: %d", summary->num_instances);
+    g_message("num_to_create: %d", summary->num_to_create_instances);
+    g_message("num_auto_create_instances: %d", summary->num_auto_create_instances);
+    g_message("num_auto_create_no_notify_instances: %d", summary->num_auto_create_no_notify_instances);
+    g_message("need dialog? %s", summary->need_dialog ? "true" : "false");
+}

Added: gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.h
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-sx-instance-model.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,211 @@
+/* 
+ * gnc-sx-instance-model.h
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef _GNC_SX_INSTANCE_MODEL_H
+#define _GNC_SX_INSTANCE_MODEL_H
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include "gnc-numeric.h"
+#include "SchedXaction.h"
+
+G_BEGIN_DECLS
+
+#define GNC_TYPE_SX_INSTANCE_MODEL	      (gnc_sx_instance_model_get_type ())
+#define GNC_SX_INSTANCE_MODEL(obj)	      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_SX_INSTANCE_MODEL, GncSxInstanceModel))
+#define GNC_SX_INSTANCE_MODEL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_SX_INSTANCE_MODEL, GncSxInstanceModelClass))
+#define GNC_IS_SX_INSTANCE_MODEL(obj)	      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_SX_INSTANCE_MODEL))
+#define GNC_IS_SX_INSTANCE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_SX_INSTANCE_MODEL))
+#define GNC_SX_INSTANCE_MODEL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_SX_INSTANCE_MODEL, GncSxInstanceModelClass))
+
+typedef struct _GncSxInstanceModel
+{
+     GObject parent;
+     gboolean disposed;
+
+     /* private */
+     gint qof_event_handler_id;
+
+     /* signals */
+     /* void (*added)(SchedXaction *sx); // gpointer user_data */
+     /* void (*updated)(SchedXaction *sx); // gpointer user_data */
+     /* void (*removing)(SchedXaction *sx); // gpointer user_data */
+
+     /* public */
+     GDate range_end;
+     gboolean include_disabled;
+     GList *sx_instance_list; /* <GncSxInstances*> */
+} GncSxInstanceModel;
+
+typedef struct _GncSxInstanceModelClass
+{
+     GObjectClass parent;
+
+     guint removing_signal_id;
+     guint updated_signal_id;
+     guint added_signal_id;
+} GncSxInstanceModelClass;
+
+typedef struct _GncSxInstances
+{
+     SchedXaction *sx;
+     GHashTable /** <name:char*,GncSxVariable*> **/ *variable_names;
+     gboolean variable_names_parsed;
+     
+     GDate next_instance_date;
+     
+     /** GList<GncSxInstance*> **/
+    GList *list; /* @fixme: s/list/?/ */
+} GncSxInstances;
+
+typedef enum 
+{
+    SX_INSTANCE_STATE_IGNORED,
+    SX_INSTANCE_STATE_POSTPONED,
+    SX_INSTANCE_STATE_TO_CREATE,
+    SX_INSTANCE_STATE_REMINDER,
+    SX_INSTANCE_STATE_CREATED,
+    SX_INSTANCE_STATE_MAX_STATE
+} GncSxInstanceState;
+
+typedef struct _GncSxVariable
+{
+    gchar *name;
+    gnc_numeric value; /**< only numeric values are supported. **/
+    gboolean editable;
+} GncSxVariable;
+
+typedef struct _GncSxInstance
+{
+    GncSxInstances *parent; /**< the parent instances collection. **/
+    void *temporal_state; /**< the sx creation temporal state. **/
+    GncSxInstanceState orig_state; /**< the original state at generation time. **/
+    GncSxInstanceState state; /**< the current state of the instance (during editing) **/
+    GDate date; /**< the instance date. **/
+    GHashTable *variable_bindings; /**< variable bindings. **/
+} GncSxInstance;
+
+typedef struct _GncSxVariableNeeded
+{
+    GncSxInstance *instance;
+    GncSxVariable *variable;
+} GncSxVariableNeeded;
+
+GType gnc_sx_instance_model_get_type(void);
+
+GncSxInstanceModel* gnc_sx_get_current_instances(void);
+
+GncSxInstanceModel* gnc_sx_get_instances(GDate *range_end, gboolean include_disabled);
+
+/**
+ * Regenerates and updates the GncSxInstances* for the given SX.  Model
+ * consumers are probably going to call this in response to seeing the
+ * "update" signal, unless they need to be doing something else like
+ * finishing an iteration over an existing GncSxInstances*.
+ **/
+void gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXaction *sx);
+void gnc_sx_instance_model_remove_sx_instances(GncSxInstanceModel *model, SchedXaction *sx);
+
+/** @return GList<GncSxVariable*> **/
+GList *gnc_sx_instance_get_variables(GncSxInstance *inst);
+
+Account* gnc_sx_get_template_transaction_account(SchedXaction *sx);
+
+/**
+ * @return caller-owned data struct.
+ **/
+GHashTable* gnc_sx_instance_get_variables_for_parser(GHashTable *instance_var_hash);
+
+GncSxVariable* gnc_sx_variable_new_full(gchar *name, gnc_numeric value, gboolean editable);
+void gnc_sx_variable_free(GncSxVariable *var);
+
+/**
+ * There is a constraint around a sequence of upcoming instance states.  In
+ * short: the last-created state and a list of postponed instances are modeled,
+ * but upcoming reminders are not.  As such, a reminder can never be before any
+ * other (modeled) instance type.  For instance, the following sequences are
+ * disallowed:
+ * 
+ * [...]
+ * remind    <- will be lost/skipped over; must be converted to `postponed`.
+ * to-create <- this will be the last-recorded state.
+ * [...]
+ * 
+ * [...]
+ * remind    <- same as previous; will be lost/skipped; must be `postponed`.
+ * postponed
+ * [...]
+ * 
+ * remind    <- same...
+ * ignore
+ * [...]
+ * 
+ * 
+ * As such, the SinceLastRun model will enforce that there are no previous
+ * `remind` instances at every state change.  They will be silently converted to
+ * `postponed`-state transactions.
+ **/
+void gnc_sx_instance_model_change_instance_state(GncSxInstanceModel *model,
+                                                 GncSxInstance *instance,
+                                                 GncSxInstanceState new_state);
+
+void gnc_sx_instance_model_set_variable(GncSxInstanceModel *model,
+                                        GncSxInstance *instance,
+                                        GncSxVariable *variable,
+                                        gnc_numeric *new_value);
+
+/**
+ * @return List<GncSxVariableNeeded> of unbound {instance,variable} pairs;
+ * the caller owns the list and the items.
+ **/
+GList* gnc_sx_instance_model_check_variables(GncSxInstanceModel *model);
+void gnc_sx_instance_model_effect_change(GncSxInstanceModel *model,
+                                         gboolean auto_create_only,
+                                         GList **created_transaction_guids,
+                                         GList **creation_errors);
+
+typedef struct _GncSxSummary
+{
+    gboolean need_dialog; /**< If the dialog needs to be displayed. **/
+
+    gint num_instances; /**< The number of total instances (in any state). **/
+    gint num_to_create_instances; /**< The number of (not-auto-create) to-create instances. **/
+    gint num_auto_create_instances;  /**< The total number of auto-create instances. **/
+    gint num_auto_create_no_notify_instances; /**< The number of automatically-created instances that do no request notification. **/
+} GncSxSummary;
+
+/**
+ * @param summary Caller-provided, populated with a summarization of the
+ * state of the model.  Specifically, used to determine if there are SLR SXes
+ * that need either auto-creation or user-interaction.
+ **/
+void gnc_sx_instance_model_summarize(GncSxInstanceModel *model, GncSxSummary *summary);
+void gnc_sx_summary_print(GncSxSummary *summary);
+
+void gnc_sx_get_variables(SchedXaction *sx, GHashTable *var_hash);
+int gnc_sx_parse_vars_from_formula(const char *formula, GHashTable *var_hash, gnc_numeric *result);
+void gnc_sx_randomize_variables(GHashTable *vars);
+
+G_END_DECLS
+
+#endif // _GNC_SX_INSTANCE_MODEL_H

Modified: gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,6 +30,9 @@
 #include <limits.h>
 #include <locale.h>
 #include <math.h>
+#ifdef G_OS_WIN32
+#include <pow.h>
+#endif
 #include <stdarg.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -45,7 +48,6 @@
 #include "gnc-hooks.h"
 #include "gnc-module.h"
 #include "gnc-ui-util.h"
-#include "Group.h"
 #include "Transaction.h"
 #include "guile-mappings.h"
 #include "gnc-session.h"
@@ -174,30 +176,22 @@
 }
 
 
-void
-gnc_init_default_directory (char **dirname)
+gchar *
+gnc_get_default_directory (const gchar *gconf_section)
 {
-  if (*dirname == NULL)
-    *dirname = g_strdup_printf("%s/", g_get_home_dir());
+  gchar *dir;
+
+  dir = gnc_gconf_get_string (gconf_section, KEY_LAST_PATH, NULL);
+  if (!dir)
+    dir = g_strdup (g_get_home_dir ());
+
+  return dir;
 }
 
 void
-gnc_extract_directory (char **dirname, const char *filename)
+gnc_set_default_directory (const gchar *gconf_section, const gchar *directory)
 {
-  char *tmp;
-
-  if (*dirname)
-    free(*dirname);
-
-  /* Parse out the directory. */
-  if ((filename == NULL) || (strrchr(filename, '/') == NULL)) {
-    *dirname = NULL;
-    return;
-  }
-
-  *dirname = g_strdup(filename);
-  tmp = strrchr(*dirname, '/');
-  *(tmp+1) = '\0';
+  gnc_gconf_set_string(gconf_section, KEY_LAST_PATH, directory, NULL);
 }
 
 QofBook *
@@ -206,10 +200,10 @@
   return qof_session_get_book (gnc_get_current_session ());
 }
 
-AccountGroup *
-gnc_get_current_group (void)
+Account *
+gnc_get_current_root_account (void)
 {
-  return gnc_book_get_group (gnc_get_current_book ());
+  return gnc_book_get_root_account (gnc_get_current_book ());
 }
 
 gnc_commodity_table *
@@ -374,11 +368,9 @@
 
   if (include_children)
   {
-    AccountGroup *children_group;
     GList *children, *node;
 
-    children_group = xaccAccountGetChildren (account);
-    children = xaccGroupGetSubAccounts (children_group);
+    children = gnc_account_get_descendants(account);
 
     for (node = children; node; node = node->next)
     {
@@ -393,6 +385,8 @@
         child_balance, child_currency, currency);
       balance = gnc_numeric_add_fixed (balance, child_balance);
     }
+
+    g_list_free(children);
   }
 
   /* reverse sign if needed */
@@ -573,10 +567,9 @@
 }
 
 Account *
-gnc_find_or_create_equity_account (AccountGroup *group,
+gnc_find_or_create_equity_account (Account *root,
                                    GNCEquityType equity_type,
-                                   gnc_commodity *currency,
-                                   QofBook *book)
+                                   gnc_commodity *currency)
 {
   Account *parent;
   Account *account;
@@ -588,11 +581,11 @@
   g_return_val_if_fail (equity_type >= 0, NULL);
   g_return_val_if_fail (equity_type < NUM_EQUITY_TYPES, NULL);
   g_return_val_if_fail (currency != NULL, NULL);
-  g_return_val_if_fail (group != NULL, NULL);
+  g_return_val_if_fail (root != NULL, NULL);
 
   base_name = equity_base_name (equity_type);
 
-  account = xaccGetAccountFromName (group, base_name);
+  account = gnc_account_lookup_by_name(root, base_name);
   if (account && xaccAccountGetType (account) != ACCT_TYPE_EQUITY)
     account = NULL;
 
@@ -600,7 +593,7 @@
   {
     base_name = base_name && *base_name ? _(base_name) : "";
 
-    account = xaccGetAccountFromName (group, base_name);
+    account = gnc_account_lookup_by_name(root, base_name);
     if (account && xaccAccountGetType (account) != ACCT_TYPE_EQUITY)
       account = NULL;
   }
@@ -613,7 +606,7 @@
 
   name = g_strconcat (base_name, " - ",
                       gnc_commodity_get_mnemonic (currency), NULL);
-  account = xaccGetAccountFromName (group, name);
+  account = gnc_account_lookup_by_name(root, name);
   if (account && xaccAccountGetType (account) != ACCT_TYPE_EQUITY)
     account = NULL;
 
@@ -638,11 +631,12 @@
     name = g_strdup (base_name);
   }
 
-  parent = xaccGetAccountFromName (group, _("Equity"));
+  parent = gnc_account_lookup_by_name(root, _("Equity"));
   if (parent && xaccAccountGetType (parent) != ACCT_TYPE_EQUITY)
-    parent = NULL;
+    parent = root;
+  g_assert(parent);
 
-  account = xaccMallocAccount (book);
+  account = xaccMallocAccount (gnc_account_get_book(root));
 
   xaccAccountBeginEdit (account);
 
@@ -650,14 +644,9 @@
   xaccAccountSetType (account, ACCT_TYPE_EQUITY);
   xaccAccountSetCommodity (account, currency);
 
-  if (parent)
-  {
-    xaccAccountBeginEdit (parent);
-    xaccAccountInsertSubAccount (parent, account);
-    xaccAccountCommitEdit (parent);
-  }
-  else
-    xaccGroupInsertAccount (group, account);
+  xaccAccountBeginEdit (parent);
+  gnc_account_append_child (parent, account);
+  xaccAccountCommitEdit (parent);
 
   xaccAccountCommitEdit (account);
 
@@ -682,10 +671,9 @@
   g_return_val_if_fail (account != NULL, FALSE);
 
   equity_account =
-    gnc_find_or_create_equity_account (xaccAccountGetRoot (account),
+    gnc_find_or_create_equity_account (gnc_account_get_root(account),
                                        EQUITY_OPENING_BALANCE,
-                                       xaccAccountGetCommodity (account),
-                                       book);
+                                       xaccAccountGetCommodity (account));
   if (!equity_account)
     return FALSE;
 
@@ -737,13 +725,34 @@
 gnc_lconv_set_utf8 (char **p_value, char *default_value)
 {
   char *value = *p_value;
+  *p_value = NULL;
 
   if ((value == NULL) || (value[0] == 0))
+    value = default_value;
+
+#ifdef G_OS_WIN32
+  {
+    /* get number of resulting wide characters */
+    size_t count = mbstowcs (NULL, value, 0);
+    if (count > 0) {
+      /* malloc and convert */
+      wchar_t *wvalue = g_malloc ((count+1) * sizeof(wchar_t));
+      count = mbstowcs (wvalue, value, count+1);
+      if (count > 0) {
+        *p_value = g_utf16_to_utf8 (wvalue, -1, NULL, NULL, NULL);
+      }
+      g_free (wvalue);
+    }
+  }
+#else /* !G_OS_WIN32 */
+  *p_value = g_locale_to_utf8 (value, -1, NULL, NULL, NULL);
+#endif
+  
+  if (*p_value == NULL) {
+    // The g_locale_to_utf8 conversion failed. FIXME: Should we rather
+    // use an empty string instead of the default_value? Not sure.
     *p_value = default_value;
-
-  *p_value = g_locale_to_utf8 (*p_value, -1, NULL, NULL, NULL);
-  // FIXME: Do we really need to make a copy here ?
-  //*p_value = g_strdup (*p_value);
+  }
 }
 
 static void
@@ -773,6 +782,7 @@
   gnc_lconv_set_utf8(&lc.mon_thousands_sep, ",");
   gnc_lconv_set_utf8(&lc.mon_grouping, "\003");
   gnc_lconv_set_utf8(&lc.negative_sign, "-");
+  gnc_lconv_set_utf8(&lc.positive_sign, "");
 
   gnc_lconv_set_char(&lc.frac_digits, 2);
   gnc_lconv_set_char(&lc.int_frac_digits, 2);
@@ -1559,6 +1569,114 @@
 
 
 /********************************************************************\
+ ********************************************************************/
+
+#define FUDGE .00001
+
+static gchar *small_numbers[] = {
+  N_("Zero"), N_("One"), N_("Two"), N_("Three"), N_("Four"),
+  N_("Five"), N_("Six"), N_("Seven"), N_("Eight"), N_("Nine"),
+  N_("Ten"), N_("Eleven"), N_("Twelve"), N_("Thirteen"), N_("Fourteen"),
+  N_("Fifteen"), N_("Sixteen"), N_("Seventeen"), N_("Eighteen"), N_("Nineteen"),
+  N_("Twenty")};
+static gchar *medium_numbers[] = {
+  N_("Zero"), N_("Ten"), N_("Twenty"), N_("Thirty"), N_("Forty"),
+  N_("Fifty"), N_("Sixty"), N_("Seventy"), N_("Eighty"), N_("Ninety")};
+static gchar *big_numbers[] = {
+  N_("Hundred"), N_("Thousand"), N_("Million"), N_("Billion"),
+  N_("Trillion"), N_("Quadrillion"), N_("Quintillion")};
+
+static gchar *
+integer_to_words(gint64 val)
+{
+  gint64 log_val, pow_val, this_part;
+  GString *result;
+  gchar *tmp;
+
+  if (val == 0)
+    return g_strdup("zero");
+  if (val < 0)
+    val = -val;
+
+  result = g_string_sized_new(100);
+
+  while (val >= 1000) {
+    log_val = log10(val) / 3 + FUDGE;
+    pow_val = exp(log_val * 3 * G_LN10) + FUDGE;
+    this_part = val / pow_val;
+    val -= this_part * pow_val;
+    tmp = integer_to_words(this_part);
+    g_string_append_printf(result, "%s %s ", tmp,
+                           gettext(big_numbers[log_val]));
+    g_free(tmp);
+  }
+
+  if (val >= 100) {
+    this_part = val / 100;
+    val -= this_part * 100;
+    g_string_append_printf(result, "%s %s ",
+                           gettext(small_numbers[this_part]),
+                           gettext(big_numbers[0]));
+  }
+
+  if (val > 20) {
+    this_part = val / 10;
+    val -= this_part * 10;
+    g_string_append(result, gettext(medium_numbers[this_part]));
+    g_string_append_c(result, ' ');
+  }
+
+  if (val > 0) {
+    this_part = val;
+    val -= this_part;
+    g_string_append(result, gettext(small_numbers[this_part]));
+    g_string_append_c(result, ' ');
+  }
+
+  result = g_string_truncate(result, result->len - 1);
+  return g_string_free(result, FALSE);
+}
+
+gchar *
+number_to_words(gdouble val, gint64 denom)
+{
+  gint64 int_part, frac_part;
+  gchar *int_string, *full_string;
+
+  if (val < 0) val = -val;
+  if (denom < 0) denom = -denom;
+
+  int_part = trunc(val);
+  frac_part = round((val - int_part) * denom);
+
+  int_string = integer_to_words(int_part);
+  full_string =
+    g_strdup_printf(_("%s and %" G_GINT64_FORMAT "/%" G_GINT64_FORMAT),
+		    int_string, frac_part, denom);
+  g_free(int_string);
+  return full_string;
+}
+
+gchar *
+numeric_to_words(gnc_numeric val)
+{
+  return number_to_words(gnc_numeric_to_double(val),
+                         gnc_numeric_denom(val));
+}
+
+const gchar *
+printable_value (gdouble val, gint denom)
+{
+  GNCPrintAmountInfo info;
+  gnc_numeric num;
+
+  num = gnc_numeric_create(round(val * denom), denom);
+  info = gnc_share_print_info_places(log10(denom));
+  return xaccPrintAmount (num, info);
+}
+
+
+/********************************************************************\
  * xaccParseAmount                                                  *
  *   parses amount strings using locale data                        *
  *                                                                  *

Modified: gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.h
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gnc-ui-util.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,7 +36,6 @@
 #include <locale.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "qof.h"
 
 
@@ -49,35 +48,13 @@
 
 /* Default directories **********************************************/
 
-void gnc_init_default_directory (char **dirname);
-/** 
- * Extracts the directory part of the given 'filename' into the char
- * pointer variable '*dirname'. If the 'filename' is NULL or does not
- * contain any directory separator '/', then '*dirname' will be set to
- * NULL.
- * 
- * WATCH OUT: If '*dirname' (i.e. the underlying char pointer
- * variable) is non-NULL, then it will be free()'d. Make sure that you
- * have initialized it to NULL, or otherwise you will get a bogus
- * free() or a double-free() here. FIXME: This is probably not-so-good
- * behaviour and should be changed (2005-10-08, cstim).
- *
- * Again watch out: The caller takes ownership of the char buffer
- * '*dirname', i.e. the caller has to do a g_free(*dirname) when that
- * buffer is no longer in use.
- *
- * NOTE: We strongly recommend to use g_path_get_dirname() from glib
- * instead of this function. (There's one slight functional difference:
- * If filename is NULL or does not contain a separator,
- * g_path_get_dirname will return "." whereas this function here will
- * return NULL. 2006-03-02, cstim)
-*/
-void gnc_extract_directory (char **dirname, const char *filename);
+gchar *gnc_get_default_directory (const gchar *gconf_section);
+void gnc_set_default_directory (const gchar *gconf_section,
+				const gchar *directory);
 
-
 /* Engine enhancements & i18n ***************************************/
 QofBook * gnc_get_current_book (void);
-AccountGroup * gnc_get_current_group (void);
+Account * gnc_get_current_root_account (void);
 gnc_commodity_table * gnc_get_current_commodities (void);
 
 /*
@@ -184,10 +161,9 @@
   NUM_EQUITY_TYPES
 } GNCEquityType;
 
-Account * gnc_find_or_create_equity_account (AccountGroup *group,
+Account * gnc_find_or_create_equity_account (Account *root,
                                              GNCEquityType equity_type,
-                                             gnc_commodity *currency,
-                                             QofBook *book);
+                                             gnc_commodity *currency);
 gboolean gnc_account_create_opening_balance (Account *account,
                                              gnc_numeric balance,
                                              time_t date,
@@ -299,6 +275,9 @@
 const char * xaccPrintAmount (gnc_numeric val, GNCPrintAmountInfo info);
 int xaccSPrintAmount (char *buf, gnc_numeric val, GNCPrintAmountInfo info);
 
+const gchar *printable_value(gdouble val, gint denom);
+gchar *number_to_words(gdouble val, gint64 denom);
+gchar *numeric_to_words(gnc_numeric val);
 
 /* xaccParseAmount parses in_str to obtain a numeric result. The
  *   routine will parse as much of in_str as it can to obtain a single

Modified: gnucash/branches/gda-dev/src/app-utils/gncmod-app-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/gncmod-app-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/gncmod-app-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,13 +1,12 @@
 /*********************************************************************
  * gncmod-app-utils.c
- * module definition/initialization for the report infrastructure 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the report infrastructure
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -18,32 +17,26 @@
 #include "gnc-exp-parser.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_app_utils_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_app_utils_LTX_gnc_module_current  = 0;
-int libgncmod_app_utils_LTX_gnc_module_revision = 0;
-int libgncmod_app_utils_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_app_utils_LTX_gnc_module_path(void);
-char *libgncmod_app_utils_LTX_gnc_module_description(void);
-int libgncmod_app_utils_LTX_gnc_module_init(int refcount);
-int libgncmod_app_utils_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_app_utils_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/app-utils");
 }
 
-char * 
-libgncmod_app_utils_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Utilities for building gnc applications");
 }
 
 static void
-lmod(char * mn) 
+lmod(char * mn)
 {
   char * form = g_strdup_printf("(use-modules %s)\n", mn);
   scm_c_eval_string(form);
@@ -61,7 +54,7 @@
 extern SCM scm_init_sw_app_utils_module(void);
 
 int
-libgncmod_app_utils_LTX_gnc_module_init(int refcount)
+gnc_module_init(int refcount)
 {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
@@ -89,7 +82,7 @@
 }
 
 int
-libgncmod_app_utils_LTX_gnc_module_end(int refcount)
+gnc_module_end(int refcount)
 {
   if (refcount == 0)
     gnc_component_manager_shutdown ();

Modified: gnucash/branches/gda-dev/src/app-utils/guile-util.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/guile-util.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/guile-util.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,11 +25,16 @@
 #include <string.h>
 #include "swig-runtime.h"
 #include <libguile.h>
+#include <errno.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 
 #include "qof.h"
 #include "engine-helpers.h"
 #include "glib-helpers.h"
 #include "gnc-gconf-utils.h"
+#include "gnc-glib-utils.h"
 #include "guile-util.h"
 #include "guile-mappings.h"
 
@@ -74,7 +79,17 @@
   SCM is_trans_scm;
 } predicates;
 
+struct _Process
+{
+  GPid pid;
+  gint fd_stdin;
+  gint fd_stdout;
+  gint fd_stderr;
+  gboolean dead;
+  gboolean detached;
+};
 
+
 static void
 initialize_scm_functions()
 {
@@ -1158,3 +1173,117 @@
   g_strfreev(splits);
   return text;
 }
+
+
+static void
+on_child_exit (GPid pid, gint status, gpointer data)
+{
+  Process *proc = data;
+  g_return_if_fail (proc && proc->pid == pid);
+
+  g_spawn_close_pid (proc->pid);
+
+  /* free if the process is both dead and detached */
+  if (!proc->detached)
+    proc->dead = TRUE;
+  else
+    g_free (proc);
+}
+
+Process *
+gnc_spawn_process_async (GList *argl, const gboolean search_path)
+{
+  gboolean retval;
+  Process *proc;
+  GList *l_iter;
+  guint argc;
+  gchar **argv, **v_iter;
+  GSpawnFlags flags;
+  GError *error = NULL;
+
+  proc = g_new0 (Process, 1);
+
+  argc = g_list_length (argl);
+  argv = g_malloc ((argc+1) * sizeof(gchar*));
+
+  for (l_iter=argl, v_iter=argv; l_iter; l_iter=l_iter->next, v_iter++) {
+    *v_iter = (gchar*) l_iter->data;
+  }
+  *v_iter = NULL;
+  g_list_free (argl);
+
+  flags = G_SPAWN_DO_NOT_REAP_CHILD;
+  if (search_path)
+    flags |= G_SPAWN_SEARCH_PATH;
+
+  retval = g_spawn_async_with_pipes (
+    NULL, argv, NULL, flags, NULL, NULL, &proc->pid,
+    &proc->fd_stdin, &proc->fd_stdout, &proc->fd_stderr, &error);
+
+  if (!retval) {
+    g_warning ("Could not spawn %s: %s", *argv ? *argv : "(null)",
+               error->message ? error->message : "(null)");
+    g_free (proc);
+    proc = NULL;
+  }
+  g_strfreev (argv);
+
+  g_child_watch_add (proc->pid, on_child_exit, proc);
+
+  return proc;
+}
+
+gint
+gnc_process_get_fd (const Process *proc, const gint std_fd)
+{
+  const gint *retptr = NULL;
+  g_return_val_if_fail (proc, -1);
+
+  if (std_fd == 0)
+    retptr = &proc->fd_stdin;
+  else if (std_fd == 1)
+    retptr = &proc->fd_stdout;
+  else if (std_fd == 2)
+    retptr = &proc->fd_stderr;
+  else
+    g_return_val_if_reached (-1);
+
+  if (*retptr == -1)
+    g_warning ("Pipe to childs file descriptor %d is -1", std_fd);
+  return *retptr;
+}
+
+void
+gnc_detach_process (Process *proc, const gboolean kill_it)
+{
+  g_return_if_fail (proc && proc->pid);
+
+  errno = 0;
+  close (proc->fd_stdin);
+  if (errno) {
+    g_warning ("Close of childs stdin (%d) failed: %s", proc->fd_stdin,
+               g_strerror (errno));
+    errno = 0;
+  }
+  close (proc->fd_stdout);
+  if (errno) {
+    g_warning ("Close of childs stdout (%d) failed: %s", proc->fd_stdout,
+               g_strerror(errno));
+    errno = 0;
+  }
+  close (proc->fd_stderr);
+  if (errno) {
+    g_warning ("Close of childs stderr (%d) failed: %s", proc->fd_stderr,
+               g_strerror(errno));
+    errno = 0;
+  }
+
+  if (kill_it)
+    gnc_gpid_kill (proc->pid);
+
+  /* free if the process is both dead and detached */
+  if (!proc->dead)
+    proc->detached = TRUE;
+  else
+    g_free (proc);
+}

Modified: gnucash/branches/gda-dev/src/app-utils/guile-util.h
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/guile-util.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/guile-util.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,7 +29,7 @@
 
 #include "gnc-book.h"
 #include "qof.h"
-#include "Group.h"
+#include "Account.h"
 
 
 /* Helpful functions for calling functions that return
@@ -103,4 +103,40 @@
  *  comments. */
 gchar *gnc_guile_strip_comments (const gchar *text);
 
+/** An opaque process structure returned by gnc_spawn_process_async. */
+typedef struct _Process Process;
+
+/** Wraps g_spawn_async_with_pipes minimally.  Use gnc_process_get_fd to access
+ *  the file descriptors to the child.  To close them them and free the memory
+ *  allocated for the process once it has exited, call gnc_detach_process.
+ *
+ *  @param argl A list of null-terminated strings used as arguments for spawning,
+ *  i.e. "perl" "-w" "my-perl-script".  Will be freed inside.
+ *
+ *  @param search_path Determines whether the first element of argl will be
+ *  looked for in the user's PATH.
+ *
+ *  @return A pointer to a structure representing the process or NULL on failure.
+ */
+Process *gnc_spawn_process_async(GList *argl, const gboolean search_path);
+
+/** Accesses a given process structure and returns the file descriptor connected
+ *  to the childs stdin, stdout or stderr.
+ *
+ *  @param proc A process structure returned by gnc_spawn_process_async.
+ *
+ *  @param std_fd 0, 1 or 2.
+ *
+ *  @return The file descriptor to write to the child on 0, or read from the
+ *  childs output or error on 1 or 2, resp. */
+gint gnc_process_get_fd(const Process *proc, const gint std_fd);
+
+/** Close the file descriptors to a given process and declare it as detached.  If
+ *  it is both dead and detached, the allocated memory will be freed.
+ *
+ *  @param proc A process structure returned by gnc_spawn_process_async.
+ *
+ *  @param kill_it If TRUE, kill the process. */
+void gnc_detach_process(Process *proc, const gboolean kill_it);
+
 #endif

Modified: gnucash/branches/gda-dev/src/app-utils/options.scm
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/options.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/options.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -735,8 +735,8 @@
 		this-account
 		(find-first (cdr account-list))))))
 
-    (let* ((current-group (gnc-get-current-group))
-	   (account-list (xaccGroupGetSubAccountsSorted current-group)))
+    (let* ((current-root (gnc-get-current-root-account))
+	   (account-list (gnc-account-get-descendants-sorted current-root)))
       (find-first account-list)))
 	   
   (define (get-default)

Modified: gnucash/branches/gda-dev/src/app-utils/prefs.scm
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/prefs.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/prefs.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,7 +17,6 @@
 ;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
-(require 'sort)
 (require 'hash-table)
 
 ;; (define gnc:*double-entry-restriction*

Modified: gnucash/branches/gda-dev/src/app-utils/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,7 +3,8 @@
   test-load-module \
   test-exp-parser \
   test-scm-query-string \
-  test-print-parse-amount
+  test-print-parse-amount \
+  test-sx
 
 test_exp_parser_SOURCES = \
   ${top_builddir}/src/core-utils/gnc-gconf-utils.c \
@@ -14,42 +15,42 @@
   test-print-parse-amount.c
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
   --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/app-utils \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --gnc-module-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/scm \
+  --guile-load-dir ${top_builddir}/src/core-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
   --guile-load-dir ${top_builddir}/src/scm \
-  --guile-load-dir ${top_builddir}/src/gnome-utils \
-  --guile-load-dir ${top_builddir}/src/core-utils \
-  --guile-load-dir ${top_builddir}/src/gnome \
-  --library-dir    ${top_builddir}/src/gnome-utils \
+  --guile-load-dir ${top_builddir}/src/app-utils \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --library-dir    ${top_builddir}/src/gnome
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
 LDADD = \
    ${top_builddir}/src/engine/libgncmod-engine.la \
-   ${top_builddir}/src/gnc-module/libgncmodule.la \
+   ${top_builddir}/src/gnc-module/libgnc-module.la \
    ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
    ${top_builddir}/src/test-core/libgncmod-test.la \
    ${top_builddir}/src/engine/test-core/libgncmod-test-engine.la \
-   ${top_builddir}/src/core-utils/libcore-utils.la \
+   ${top_builddir}/src/core-utils/libgnc-core-utils.la \
    ${GUILE_LIBS} \
    ${QOF_LIBS} \
    ${GCONF_LIBS}
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-link-module \
   test-exp-parser \
   test-print-parse-amount \
   test-scm-query-string \
-  test-print-queries
+  test-print-queries \
+  test-sx
 
 EXTRA_DIST = \
   test-load-module

Modified: gnucash/branches/gda-dev/src/app-utils/test/test-exp-parser.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/test/test-exp-parser.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/test/test-exp-parser.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -209,10 +209,22 @@
 }
 
 static void
+test_variable_expressions()
+{
+  gnc_numeric num;
+  gchar *errLoc = NULL;
+  GHashTable *vars = g_hash_table_new(g_str_hash, g_str_equal);
+  do_test(gnc_exp_parser_parse_separate_vars("123 + a", &num, &errLoc, vars), "parsing");
+  do_test(g_hash_table_size(vars) == 1, "'a' is the variable; good job, gnc-exp-parser!");
+  success("variable found");
+}
+
+static void
 real_main (void *closure, int argc, char **argv)
 {
   /* set_should_print_success (TRUE); */
   test_parser();
+  test_variable_expressions();
   print_test_results();
   exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/app-utils/test/test-load-module
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/test/test-load-module	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/test/test-load-module	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,4 +1,4 @@
-#! /bin/bash
+#! /bin/sh
 exec guile -s "$0" 
 !#
 

Added: gnucash/branches/gda-dev/src/app-utils/test/test-sx.c
===================================================================
--- gnucash/branches/gda-dev/src/app-utils/test/test-sx.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/app-utils/test/test-sx.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,198 @@
+#include "config.h"
+#include <stdlib.h>
+#include <glib.h>
+#include "glib-compat.h"
+#include "SX-book.h"
+#include "gnc-sx-instance-model.h"
+#include "gnc-ui-util.h"
+
+#include "test-stuff.h"
+#include "test-engine-stuff.h"
+
+static void
+test_basic()
+{
+     GncSxInstanceModel *model;
+     GDate *yesterday, *range_end_tomorrow;
+     SchedXaction *foo;
+
+     yesterday = g_date_new();
+     g_date_clear(yesterday, 1);
+     g_date_set_time_t(yesterday, time(NULL));
+     g_date_subtract_days(yesterday, 1);
+
+     foo = add_daily_sx("foo", yesterday, NULL, NULL);
+
+     range_end_tomorrow = g_date_new();
+     g_date_clear(range_end_tomorrow, 1);
+     g_date_set_time_t(range_end_tomorrow, time(NULL));
+     g_date_add_days(range_end_tomorrow, 1);
+     model = gnc_sx_get_instances(range_end_tomorrow, TRUE);
+
+     {
+          GncSxInstances *insts;
+          GList *iter;
+
+          do_test(g_list_length(model->sx_instance_list) == 1, "1 GncSxInstances");
+          insts = (GncSxInstances*)model->sx_instance_list->data;
+          do_test(g_list_length(insts->list) == 3, "yesterday, today and tomorrow");
+          for (iter = insts->list; iter != NULL; iter = iter->next)
+          {
+               GncSxInstance *inst = (GncSxInstance*)iter->data;
+               do_test(inst->state == SX_INSTANCE_STATE_TO_CREATE, "to-create");
+          }
+     }
+
+     g_object_unref(G_OBJECT(model));
+     remove_sx(foo);
+}
+
+static void
+test_empty()
+{
+     // no sxes should exist at this point.
+     int way_in_the_future_year = 2038;
+     GDate *end;
+     GncSxInstanceModel *model;
+
+     end = g_date_new_dmy(31, 12, way_in_the_future_year);
+     model = gnc_sx_get_instances(end, TRUE);
+     do_test(g_list_length(model->sx_instance_list) == 0, "no instances");
+     g_object_unref(G_OBJECT(model));
+     success("empty");
+}
+
+static void
+test_once()
+{
+     SchedXaction *lonely;
+     GDate *when, *end;
+     int random_offset_within_one_year = 0;
+     GncSxInstanceModel *model;
+     GncSxInstances *instances;
+     GncSxInstance *instance;
+
+     when = g_date_new();
+     g_date_clear(when, 1);
+     g_date_set_time_t(when, time(NULL));
+     while (random_offset_within_one_year == 0)
+          random_offset_within_one_year = get_random_int_in_range(-365, 365);
+     g_date_add_days(when, random_offset_within_one_year);
+
+     end = g_date_new();
+     g_date_clear(end, 1);
+     g_date_set_time_t(end, time(NULL));
+     g_date_add_years(end, 1);
+
+     lonely = add_once_sx("once", when);
+
+     model = gnc_sx_get_instances(end, TRUE);
+
+     do_test(g_list_length(model->sx_instance_list) == 1, "1 instances");
+     instances = (GncSxInstances*)model->sx_instance_list->data;
+     do_test(g_list_length(instances->list) == 1, "1 instance");
+     instance = (GncSxInstance*)instances->list->data;
+     do_test(g_date_compare(when, &instances->next_instance_date) == 0, "next instance is expected");
+     do_test(g_date_compare(when, &instance->date) == 0, "instance date is expected");
+
+     g_object_unref(model);
+     success("model unref");
+     remove_sx(lonely);
+}
+
+static GncSxInstance*
+_nth_instance(GncSxInstances *instances, int i)
+{
+     return (GncSxInstance*)g_list_nth_data(instances->list, i);
+}
+
+static void
+test_state_changes()
+{
+     SchedXaction *foo;
+     GDate *start, *end;
+     GncSxInstanceModel *model;
+     GncSxInstances *insts;
+     GncSxInstance *inst;
+
+     start = g_date_new();
+     g_date_set_time_t(start, time(NULL));
+     
+     end = g_date_new();
+     g_date_set_time_t(end, time(NULL));
+     g_date_add_days(end, 3);
+
+     foo = add_daily_sx("foo", start, NULL, NULL);
+     model = gnc_sx_get_instances(end, TRUE);
+
+     do_test(g_list_length(model->sx_instance_list) == 1, "one sx");
+     insts = (GncSxInstances*)g_list_nth_data(model->sx_instance_list, 0);
+     do_test(g_list_length(insts->list) == 4, "4 instances");
+
+     inst = _nth_instance(insts, 2);
+     gnc_sx_instance_model_change_instance_state(model, inst, SX_INSTANCE_STATE_TO_CREATE);
+     {
+          int i;
+          for (i = 0; i < 4; i++)
+          {
+               inst = _nth_instance(insts, i);
+               do_test(inst->state == SX_INSTANCE_STATE_TO_CREATE, "0 didn't change");
+          }
+          success("nothing else changed");
+     }
+
+     inst = _nth_instance(insts, 1);
+     gnc_sx_instance_model_change_instance_state(model, inst, SX_INSTANCE_STATE_POSTPONED);
+     {
+          int i;
+          inst = _nth_instance(insts, 1);
+          do_test(inst->state == SX_INSTANCE_STATE_POSTPONED, "as we said");
+          for (i = 0; i < 4; i++)
+          {
+               if (i == 1)
+                    continue; // skip
+               inst = _nth_instance(insts, i);
+               do_test(inst->state == SX_INSTANCE_STATE_TO_CREATE, "still to create");
+          }
+     }
+     success("postponed changed what it needed to");
+
+     inst = _nth_instance(insts, 1);
+     gnc_sx_instance_model_change_instance_state(model, inst, SX_INSTANCE_STATE_REMINDER);
+     success("changed to reminder");
+     {
+          int i;
+          inst = _nth_instance(insts, 0);
+          do_test(inst->state == SX_INSTANCE_STATE_TO_CREATE, "left alone");
+          inst = _nth_instance(insts, 1);
+          do_test(inst->state == SX_INSTANCE_STATE_REMINDER, "as we asked for");
+          for (i = 2; i < 4; i++)
+          {
+               inst = _nth_instance(insts, i);
+               do_test(inst->state == SX_INSTANCE_STATE_REMINDER, "changed as well");
+          }
+     }
+
+     g_object_unref(model);
+     remove_sx(foo);
+}
+
+int
+main(int argc, char **argv)
+{
+     g_type_init();
+     qof_init();
+     gnc_engine_init(0, NULL);
+
+     test_empty();
+     {
+          int i;
+          for (i = 0; i < 10; i++)
+               test_once();
+     }
+     test_basic();
+     test_state_changes();
+
+     print_test_results();
+     exit(get_rv());
+}

Modified: gnucash/branches/gda-dev/src/backend/file/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,8 @@
 SUBDIRS = . test
 
 # Now a shared library AND a GModule
-lib_LTLIBRARIES = libgnc-backend-file-utils.la  libgnc-backend-file.la
+lib_LTLIBRARIES = libgnc-backend-file-utils.la
+pkglib_LTLIBRARIES = libgncmod-backend-file.la
 
 AM_CFLAGS = \
   -I.. -I../.. \
@@ -38,7 +39,7 @@
   sixtp-utils.c \
   sixtp.c
 
-libgnc_backend_file_la_SOURCES = \
+libgncmod_backend_file_la_SOURCES = \
   gnc-backend-file.c
 
 noinst_HEADERS = \
@@ -60,13 +61,15 @@
 libgnc_backend_file_utils_la_LIBADD = \
    ${GLIB_LIBS} ${GCONF_LIBS} ${LIBXML2_LIBS} \
    ${top_builddir}/src/engine/libgncmod-engine.la \
-   ${top_builddir}/src/core-utils/libcore-utils.la \
+   ${top_builddir}/src/core-utils/libgnc-core-utils.la \
    ${QOF_LIBS}
 
-libgnc_backend_file_la_LDFLAGS = -module -avoid-version
-libgnc_backend_file_la_LIBADD = \
+libgncmod_backend_file_la_LDFLAGS = -module -avoid-version
+libgncmod_backend_file_la_LIBADD = \
    ${GLIB_LIBS} ${GCONF_LIBS} ${LIBXML2_LIBS} \
    ${top_builddir}/src/engine/libgncmod-engine.la \
-   ${top_builddir}/src/core-utils/libcore-utils.la \
+   ${top_builddir}/src/core-utils/libgnc-core-utils.la \
    libgnc-backend-file-utils.la \
    ${QOF_LIBS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.backend.file\"

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-account-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-account-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-account-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -44,7 +44,6 @@
 #include "sixtp-dom-parsers.h"
 #include "AccountP.h"
 #include "Account.h"
-#include "Group.h"
 
 static QofLogModule log_module = GNC_MOD_IO;
 
@@ -71,12 +70,15 @@
 #define act_security_scu_string "act:security-scu"
 
 xmlNodePtr
-gnc_account_dom_tree_create(Account *act, gboolean exporting)
+gnc_account_dom_tree_create(Account *act,
+                            gboolean exporting,
+                            gboolean allow_incompat)
 {
     const char *str;
     kvp_frame *kf;
     xmlNodePtr ret;
     GList *n;
+    Account *parent;
 
     ENTER ("(account=%p)", act);
 
@@ -123,11 +125,12 @@
         }
     }
 
-    if(xaccAccountGetParentAccount(act))
+    parent = gnc_account_get_parent(act);
+    if (parent)
     {
-        xmlAddChild(ret, guid_to_dom_tree(
-                     act_parent_string,
-                     xaccAccountGetGUID(xaccAccountGetParentAccount(act))));
+      if (!gnc_account_is_root(parent) || allow_incompat)
+        xmlAddChild(ret, guid_to_dom_tree(act_parent_string,
+					  xaccAccountGetGUID(parent)));
     }
 
     n = xaccAccountGetLotList (act);
@@ -142,7 +145,8 @@
           xmlAddChild(toaddto, gnc_lot_dom_tree_create(lot));
        }
     }
-    
+
+    LEAVE("");
     return ret;
 }
 
@@ -194,7 +198,7 @@
 account_type_handler (xmlNodePtr node, gpointer act_pdata)
 {
     struct account_pdata *pdata = act_pdata;
-    int type;
+    GNCAccountType type = ACCT_TYPE_INVALID;
     char *string;
 
     string = (char*) xmlNodeGetContent (node->xmlChildrenNode);
@@ -322,7 +326,7 @@
       g_return_val_if_fail(parent, FALSE);
     }
 
-    xaccAccountInsertSubAccount(parent, pdata->account);
+    gnc_account_append_child(parent, pdata->account);
 
     g_free (gid);
 
@@ -405,10 +409,11 @@
                         gpointer *result, const gchar *tag)
 {
     int successful;
-    Account *acc;
+    Account *acc, *parent, *root;
     xmlNodePtr tree = (xmlNodePtr)data_for_children;
     gxpf_data *gdata = (gxpf_data*)global_data;
     QofBook *book = gdata->bookdata;
+    int type;
 
     successful = TRUE;
 
@@ -436,6 +441,21 @@
          * rebalances with #accounts rebalances at the end.  A BIG win!
          */
         xaccAccountBeginEdit(acc);
+
+	/* Backwards compatability.  If there's no parent, see if this
+	 * account is of type ROOT.  If not, find or create a ROOT
+	 * account and make that the parent. */
+        parent = gnc_account_get_parent(acc);
+        if (parent == NULL) {
+            type = xaccAccountGetType(acc);
+            if (type != ACCT_TYPE_ROOT) {
+                root = gnc_book_get_root_account(book);
+                if (root == NULL) {
+		  root = gnc_account_create_root(book);
+		}
+                gnc_account_append_child(root, acc);
+            }
+        }
     }
 
     xmlFreeNode(tree);

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-backend-file.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-backend-file.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-backend-file.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,9 +32,12 @@
 
 #include <glib.h>
 #include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#ifndef HAVE_GLIB_2_8
+#include <gstdio-2.8.h>
+#endif
 #include <libintl.h>
 #include <locale.h>
-#include <stdio.h>
 #include <fcntl.h>
 #include <limits.h>
 #include <sys/stat.h>
@@ -50,6 +53,7 @@
 #include "gnc-engine.h"
 
 #include "gnc-filepath-utils.h"
+#include "gnc-path.h"
 
 #include "io-gncxml.h"
 #include "io-gncxml-v2.h"
@@ -83,14 +87,14 @@
 gnc_file_be_get_file_lock (FileBackend *be)
 {
     struct stat statbuf;
-#ifndef _WIN32
+#ifndef G_OS_WIN32
     char pathbuf[PATH_MAX];
     char *path = NULL;
 #endif
     int rc;
     QofBackendError be_err;
 
-    rc = stat (be->lockfile, &statbuf);
+    rc = g_stat (be->lockfile, &statbuf);
     if (!rc)
     {
         /* oops .. file is locked by another user  .. */
@@ -98,7 +102,7 @@
         return FALSE;
     }
 
-    be->lockfd = open (be->lockfile, O_RDWR | O_CREAT | O_EXCL , 0);
+    be->lockfd = g_open (be->lockfile, O_RDWR | O_CREAT | O_EXCL , 0);
     if (be->lockfd < 0)
     {
         /* oops .. we can't create the lockfile .. */
@@ -132,7 +136,7 @@
      * provides a better long-term solution.
      */
 
-#ifndef _WIN32
+#ifndef G_OS_WIN32
     strcpy (pathbuf, be->lockfile);
     path = strrchr (pathbuf, '.');
     sprintf (path, ".%lx.%d.LNK", gethostid(), getpid());
@@ -153,29 +157,29 @@
 
         /* Otherwise, something else is wrong. */
         qof_backend_set_error ((QofBackend*)be, ERR_BACKEND_LOCKED);
-        unlink (pathbuf);
+        g_unlink (pathbuf);
         close (be->lockfd);
-        unlink (be->lockfile);
+        g_unlink (be->lockfile);
         return FALSE;
     }
 
-    rc = stat (be->lockfile, &statbuf);
+    rc = g_stat (be->lockfile, &statbuf);
     if (rc)
     {
         /* oops .. stat failed!  This can't happen! */
         qof_backend_set_error ((QofBackend*)be, ERR_BACKEND_LOCKED);
-        unlink (pathbuf);
+        g_unlink (pathbuf);
         close (be->lockfd);
-        unlink (be->lockfile);
+        g_unlink (be->lockfile);
         return FALSE;
     }
 
     if (statbuf.st_nlink != 2)
     {
         qof_backend_set_error ((QofBackend*)be, ERR_BACKEND_LOCKED);
-        unlink (pathbuf);
+        g_unlink (pathbuf);
         close (be->lockfd);
-        unlink (be->lockfile);
+        g_unlink (be->lockfile);
         return FALSE;
     }
 
@@ -183,12 +187,12 @@
 
     return TRUE;
 
-#else /* ifndef _WIN32 */
+#else /* ifndef G_OS_WIN32 */
     /* On windows, there is no NFS and the open(,O_CREAT | O_EXCL)
        is sufficient for locking. */
     be->linkfile = NULL;
     return TRUE;
-#endif /* ifndef _WIN32 */
+#endif /* ifndef G_OS_WIN32 */
 }
 
 /* ================================================================= */
@@ -207,6 +211,7 @@
     if (NULL == be->fullpath)
     {
         qof_backend_set_error (be_start, ERR_FILEIO_FILE_NOT_FOUND);
+        LEAVE("");
         return;
     }
     be->be.fullpath = be->fullpath;
@@ -217,7 +222,7 @@
         int rc;
 
 	/* Again check whether the directory can be accessed */
-        rc = stat (be->dirname, &statbuf);
+        rc = g_stat (be->dirname, &statbuf);
         if (rc != 0 || !S_ISDIR(statbuf.st_mode))
         {
 	    /* Error on stat or if it isn't a directory means we
@@ -225,17 +230,19 @@
             qof_backend_set_error (be_start, ERR_FILEIO_FILE_NOT_FOUND);
             g_free (be->fullpath); be->fullpath = NULL;
             g_free (be->dirname); be->dirname = NULL;
+            LEAVE("");
             return;
         }
 
-	/* Now check whether we can stat(2) the file itself */
-        rc = stat (be->fullpath, &statbuf);
+	/* Now check whether we can g_stat the file itself */
+        rc = g_stat (be->fullpath, &statbuf);
         if ((rc != 0) && (!create_if_nonexistent))
         {
 	    /* Error on stat means the file doesn't exist */
             qof_backend_set_error (be_start, ERR_FILEIO_FILE_NOT_FOUND);
             g_free (be->fullpath); be->fullpath = NULL;
             g_free (be->dirname); be->dirname = NULL;
+            LEAVE("");
             return;
         }
         if (rc == 0 && S_ISDIR(statbuf.st_mode))
@@ -247,6 +254,7 @@
             qof_backend_set_error (be_start, ERR_FILEIO_UNKNOWN_FILE_TYPE);
             g_free (be->fullpath); be->fullpath = NULL;
             g_free (be->dirname); be->dirname = NULL;
+            LEAVE("");
             return;
         }
     }
@@ -260,6 +268,7 @@
     if (!ignore_lock && !gnc_file_be_get_file_lock (be))
     {
         g_free (be->lockfile); be->lockfile = NULL;
+        LEAVE("");
         return;
     }
 
@@ -276,7 +285,7 @@
     ENTER (" ");
 
     if (be->linkfile)
-        unlink (be->linkfile);
+        g_unlink (be->linkfile);
 
     if (be->lockfd > 0)
         close (be->lockfd);
@@ -285,18 +294,14 @@
         int rv;
 #ifdef G_OS_WIN32
 	/* On windows, we need to allow write-access before
-	   unlink() can succeed */
-	rv = chmod (be->lockfile, S_IWRITE | S_IREAD);
-	if (rv) {
-	    PWARN("Error on chmod(%s): %d: %s", be->lockfile,
-		  errno, strerror(errno) ? strerror(errno) : "");
-	}
+	   g_unlink() can succeed */
+    	rv = g_chmod (be->lockfile, S_IWRITE | S_IREAD);
 #endif
-	rv = unlink (be->lockfile);
-	if (rv) {
-	    PWARN("Error on unlink(%s): %d: %s", be->lockfile,
-		  errno, strerror(errno) ? strerror(errno) : "");
-	}
+	    rv = g_unlink (be->lockfile);
+        if (rv) {
+             PWARN("Error on g_unlink(%s): %d: %s", be->lockfile,
+                   errno, strerror(errno) ? strerror(errno) : "");
+        }
     }
 
     g_free (be->dirname);
@@ -337,15 +342,20 @@
     char buf[buf_size];
     int orig_fd;
     int bkup_fd;
+    int flags=0;
     ssize_t count_write;
     ssize_t count_read;
 
-    orig_fd = open(orig, O_RDONLY);
+#ifdef G_OS_WIN32
+    flags = O_BINARY;
+#endif
+
+    orig_fd = g_open(orig, O_RDONLY | flags, 0);
     if(orig_fd == -1)
     {
         return FALSE;
     }
-    bkup_fd = creat(bkup, 0600);
+    bkup_fd = g_open(bkup, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL | flags, 0600);
     if(bkup_fd == -1)
     {
         close(orig_fd);
@@ -444,10 +454,10 @@
 
 	if (!path) { return FALSE; }
 	if (0 == safe_strcmp(path, QOF_STDOUT)) { return FALSE; }
-	t = fopen(path, "r");
+	t = g_fopen(path, "r");
 	if(!t) { PINFO (" new file"); return TRUE; }
 	fclose(t);
-	rc = stat(path, &sbuf);
+	rc = g_stat(path, &sbuf);
 	if(rc < 0) { return FALSE; }
 	if (sbuf.st_size == 0)    { PINFO (" empty file"); return TRUE; }
 	if(gnc_is_xml_data_file_v2(path, NULL)) { return TRUE; } 
@@ -468,7 +478,7 @@
 
     datafile = be->fullpath;
     
-    rc = stat (datafile, &statbuf);
+    rc = g_stat (datafile, &statbuf);
     if (rc)
       return (errno == ENOENT);
 
@@ -528,6 +538,7 @@
     if(!mktemp(tmp_name))
     {
         qof_backend_set_error(be, ERR_BACKEND_MISC);
+        LEAVE("");
         return FALSE;
     }
   
@@ -535,18 +546,19 @@
     {
         if(!gnc_file_be_backup_file(fbe))
         {
+            LEAVE("");
             return FALSE;
         }
     }
   
     if (gnc_book_write_to_xml_file_v2(book, tmp_name, fbe->file_compression))
     {
-        /* Record the file's permissions before unlinking it */
-        rc = stat(datafile, &statbuf);
+        /* Record the file's permissions before g_unlinking it */
+        rc = g_stat(datafile, &statbuf);
         if(rc == 0)
         {
             /* Use the permissions from the original data file */
-            if(chmod(tmp_name, statbuf.st_mode) != 0)
+            if(g_chmod(tmp_name, statbuf.st_mode) != 0)
             {
 	        /* qof_backend_set_error(be, ERR_BACKEND_PERM); */
 		/* Even if the chmod did fail, the save
@@ -580,28 +592,31 @@
             }
 #endif
         }
-        if(unlink(datafile) != 0 && errno != ENOENT)
+        if(g_unlink(datafile) != 0 && errno != ENOENT)
         {
             qof_backend_set_error(be, ERR_FILEIO_BACKUP_ERROR);
             PWARN("unable to unlink filename %s: %s",
                   datafile ? datafile : "(null)", 
                   strerror(errno) ? strerror(errno) : ""); 
             g_free(tmp_name);
+            LEAVE("");
             return FALSE;
         }
         if(!gnc_int_link_or_make_backup(fbe, tmp_name, datafile))
         {
             qof_backend_set_error(be, ERR_FILEIO_BACKUP_ERROR);
             g_free(tmp_name);
+            LEAVE("");
             return FALSE;
         }
-        if(unlink(tmp_name) != 0)
+        if(g_unlink(tmp_name) != 0)
         {
             qof_backend_set_error(be, ERR_BACKEND_PERM);
             PWARN("unable to unlink temp filename %s: %s", 
                    tmp_name ? tmp_name : "(null)", 
                    strerror(errno) ? strerror(errno) : ""); 
             g_free(tmp_name);
+            LEAVE("");
             return FALSE;
         }
         g_free(tmp_name);
@@ -614,7 +629,7 @@
     }
     else
     {
-        if(unlink(tmp_name) != 0)
+        if(g_unlink(tmp_name) != 0)
         {
             switch (errno) {
             case ENOENT:     /* tmp_name doesn't exist?  Assume "RO" error */
@@ -633,36 +648,33 @@
             /* already in an error just flow on through */
         }
         g_free(tmp_name);
+        LEAVE("");
         return FALSE;
     }
+    LEAVE("");
     return TRUE;
 }
 
 /* ================================================================= */
 
 static int
-gnc_file_be_select_files (const struct dirent *d)
+gnc_file_be_select_files (const gchar *d)
 {
-    int len = strlen(d->d_name) - 4;
-
-    if (len <= 0)
-        return(0);
-  
-    return((strcmp(d->d_name + len, ".LNK") == 0) ||
-           (strcmp(d->d_name + len, ".xac") == 0) ||
-           (strcmp(d->d_name + len, ".log") == 0));
+    return (g_str_has_suffix(d, ".LNK") ||
+            g_str_has_suffix(d, ".xac") ||
+            g_str_has_suffix(d, ".log"));
 }
 
 static void
 gnc_file_be_remove_old_files(FileBackend *be)
 {
-    struct dirent *dent;
-    DIR *dir;
+    const gchar *dent;
+    GDir *dir;
     struct stat lockstatbuf, statbuf;
     int pathlen;
     time_t now;
 
-    if (stat (be->lockfile, &lockstatbuf) != 0)
+    if (g_stat (be->lockfile, &lockstatbuf) != 0)
         return;
     pathlen = strlen(be->fullpath);
 
@@ -683,20 +695,20 @@
      * directory and then one pass over the 'matching' files. --
      * warlord at MIT.EDU 2002-05-06
      */
-    
-    dir = opendir (be->dirname);
+
+    dir = g_dir_open (be->dirname, 0, NULL);
     if (!dir)
         return;
 
     now = time(NULL);
-    while((dent = readdir(dir)) != NULL) {
+    while((dent = g_dir_read_name(dir)) != NULL) {
         char *name;
         int len;
 
         if (gnc_file_be_select_files (dent) == 0)
              continue;
 
-        name = g_build_filename(be->dirname, dent->d_name, (char*)NULL);
+        name = g_build_filename(be->dirname, dent, (gchar*)NULL);
         len = strlen(name) - 4;
 
         /* Is this file associated with the current data file */
@@ -706,11 +718,11 @@
                 /* Is a lock file. Skip the active lock file */
                 (safe_strcmp(name, be->linkfile) != 0) &&
                 /* Only delete lock files older than the active one */
-                (stat(name, &statbuf) == 0) &&
+                (g_stat(name, &statbuf) == 0) &&
                 (statbuf.st_mtime <lockstatbuf.st_mtime)) 
             {
                 PINFO ("unlink lock file: %s", name);
-                unlink(name);
+                g_unlink(name);
             } 
             else if (be->file_retention_days > 0) 
             {
@@ -735,14 +747,14 @@
                     && file_time > 0
                     && days > be->file_retention_days)
                 {
-                    PINFO ("unlink stale (%d days old) file: %s", days, name);
-                    unlink(name);
+                    PINFO ("g_unlink stale (%d days old) file: %s", days, name);
+                    g_unlink(name);
                 }
             }
         }
         g_free(name);
     }
-    closedir (dir);
+    g_dir_close (dir);
 }
 
 static void
@@ -934,7 +946,7 @@
 
   /* FIXME: Make sure this doesn't need more sophisticated semantics
    * in the face of special file, devices, pipes, symlinks, etc. */
-  if (stat(bend->fullpath, &statbuf) == 0) return TRUE;
+  if (g_stat(bend->fullpath, &statbuf) == 0) return TRUE;
   return FALSE;
 }
 
@@ -1019,7 +1031,7 @@
 	be->load_config = NULL;
 	be->get_config = NULL;
 
-        be->export = gnc_file_be_write_accounts_to_file;
+    be->export = gnc_file_be_write_accounts_to_file;
 
 	gnc_be->dirname = NULL;
 	gnc_be->fullpath = NULL;
@@ -1029,11 +1041,11 @@
 
 	gnc_be->primary_book = NULL;
 
-        gnc_be->file_retention_days = (int)gnc_gconf_get_float("general", "retain_days", NULL);
-        gnc_be->file_compression = gnc_gconf_get_bool("general", "file_compression", NULL);
+    gnc_be->file_retention_days = (int)gnc_gconf_get_float("general", "retain_days", NULL);
+    gnc_be->file_compression = gnc_gconf_get_bool("general", "file_compression", NULL);
 
-        gnc_gconf_general_register_cb("retain_days", retain_changed_cb, be);
-        gnc_gconf_general_register_cb("file_compression", compression_changed_cb, be);
+    gnc_gconf_general_register_cb("retain_days", retain_changed_cb, be);
+    gnc_gconf_general_register_cb("file_compression", compression_changed_cb, be);
 
 	return be;
 }
@@ -1051,10 +1063,16 @@
 {
 	QofBackendProvider *prov;
 #ifdef ENABLE_NLS
+	gchar *localedir = gnc_path_get_localedir ();
+	/* FIXME: It is unclear whether setlocale() is actually
+	   needed here (added in r11313). Some platforms might
+	   need it so that gettext works correctly in this
+	   GModule. We'll keep it for now. */
 	setlocale (LC_ALL, "");
-	bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
+	bindtextdomain (GETTEXT_PACKAGE, localedir);
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
+	g_free (localedir);
 #endif
         prov = g_new0 (QofBackendProvider, 1);
         prov->provider_name = "GnuCash File Backend Version 2";
@@ -1062,8 +1080,9 @@
         prov->partial_book_supported = FALSE;
         prov->backend_new = gnc_backend_new;
         prov->provider_free = gnc_provider_free;
-	prov->check_data_type = gnc_determine_file_type;
+        prov->check_data_type = gnc_determine_file_type;
         qof_backend_register_provider (prov);
+        g_module_make_resident (module);
         return NULL;
 }
 

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-book-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-book-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-book-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,6 +29,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "gnc-gconf-utils.h"
 #include "gnc-xml-helper.h"
 
 #include "sixtp.h"
@@ -45,7 +46,6 @@
 
 #include "sixtp-dom-parsers.h"
 #include "qof.h"
-#include "Group.h"
 
 /* non-static because it's used in io-gncxml-v2.c */
 const gchar *gnc_v2_book_version_string = "2.0.0";
@@ -62,25 +62,24 @@
 #ifdef IMPLEMENT_BOOK_DOM_TREES_LATER
 
 static void
-append_group(xmlNodePtr parent, AccountGroup *grp)
+append_account_tree (xmlNodePtr parent,
+		     Account *account,
+		     gboolean allow_incompat)
 {
-    GList *list;
-    GList *node;
+    GList *children, *node;
 
-    list = xaccGroupGetAccountList(grp);
-
-    for (node = list; node; node = node->next) {
+    children = gnc_account_get_children(account);
+    for (node = children; node; node = node->next) 
+    {
         xmlNodePtr accnode;
-        AccountGroup *newgrp;
+        Account *account;
 
-        accnode = gnc_account_dom_tree_create((Account*)(node->data), FALSE);
+        account = node->data;
+        accnode = gnc_account_dom_tree_create(account, FALSE, allow_incompat);
         xmlAddChild (parent, accnode);
-
-        newgrp = xaccAccountGetChildren((Account*)(node->data));
-
-        if (newgrp)
-            append_group(accnode, newgrp);
+        append_account_tree(accnode, account);
     }
+    g_list_free(children);
 }
 
 static int
@@ -102,7 +101,18 @@
 gnc_book_dom_tree_create(QofBook *book)
 {
     xmlNodePtr ret;
+    gboolean allow_incompat;
+    GError *err = NULL;
 
+    allow_incompat = gnc_gconf_get_bool("dev", "allow_file_incompatibility", &err);
+    if (err != NULL)
+    {
+        g_warning("error getting gconf value [%s]", err->message);
+        g_error_free(err);
+        allow_incompat = FALSE;
+    }
+    g_debug("allow_incompatibility: [%s]", allow_incompat ? "true" : "false");
+
     ret = xmlNewNode(NULL, BAD_CAST gnc_book_string);
     xmlSetProp(ret, BAD_CAST "version", BAD_CAST gnc_v2_book_version_string);
 
@@ -125,9 +135,14 @@
     xmlAddChild(ret, gnc_commodity_dom_tree_create(
                     gnc_book_get_commodity_table(book)));
     xmlAddChild(ret, gnc_pricedb_dom_tree_create(gnc_book_get_pricedb(book)));
-    append_group(ret, gnc_book_get_group(book));
+    if (allow_incompat) {
+      accnode = gnc_account_dom_tree_create(account, FALSE);
+      xmlAddChild (ret, rootAccNode);
+    }
+    append_account_tree (ret, gnc_book_get_root(book));
 
-    xaccGroupForEachTransaction(gnc_book_get_group(book), traverse_txns, ret);
+    xaccAccountTreeForEachTransaction (gnc_book_get_root_account(book),
+				       traverse_txns, ret);
 
     xmlAddChild(ret, gnc_freqSpec_dom_tree_create (book));
 

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-commodity-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-commodity-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-commodity-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -42,7 +42,6 @@
 #include "sixtp-dom-parsers.h"
 #include "AccountP.h"
 #include "Account.h"
-#include "Group.h"
 
 static QofLogModule log_module = GNC_MOD_IO;
 
@@ -58,6 +57,7 @@
 #define cmdty_get_quotes     "cmdty:get_quotes"
 #define cmdty_quote_source   "cmdty:quote_source"
 #define cmdty_quote_tz       "cmdty:quote_tz"
+#define cmdty_slots          "cmdty:slots"
 
 xmlNodePtr
 gnc_commodity_dom_tree_create(const gnc_commodity *com)
@@ -66,8 +66,11 @@
     const char *string;
     xmlNodePtr ret;
     gboolean currency = gnc_commodity_is_iso(com);
+    xmlNodePtr kvpnode =
+      kvp_frame_to_dom_tree(cmdty_slots,
+			    qof_instance_get_slots(QOF_INSTANCE(com)));
 
-    if (currency && !gnc_commodity_get_quote_flag(com))
+    if (currency && !gnc_commodity_get_quote_flag(com) && !kvpnode)
       return NULL;
 
     ret = xmlNewNode(NULL, BAD_CAST gnc_commodity_string);
@@ -108,6 +111,10 @@
       if (string)
 	xmlAddChild(ret, text_to_dom_tree(cmdty_quote_tz, string));
     }
+
+    if (kvpnode)
+      xmlAddChild(ret, kvpnode);
+
     return ret;
 }
 
@@ -159,6 +166,12 @@
 	gnc_commodity_set_quote_source(com, source);
         xmlFree (string);
     }
+    else if(safe_strcmp((char*)node->name, cmdty_slots) == 0)
+    {
+      /* We ignore the results here */
+      dom_tree_to_kvp_frame_given(node,
+				  qof_instance_get_slots(QOF_INSTANCE(com)));
+    }
     else 
     {
         struct com_char_handler *mark;

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-freqspec-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-freqspec-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-freqspec-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -125,6 +125,9 @@
         FreqSpec        *fs;              /* FreqSpec we're parsing into. */
         QofBook         *book;            /* Book we're loading into. */
 
+        Recurrence *recurrence;
+        GList *recurrence_list;
+
         /* fields used in the union of unions... :) */
         GDate                 once_day;     /* once */
         gint64                interval;     /* all [except once] */
@@ -132,6 +135,7 @@
         gint64                day;          /* monthly or month-relative */
         gint64                occurrence;   /* month-relative */
         GList                *list;         /* composite */
+        UIFreqType            uift;
 } fsParseData;
 
 static void
@@ -140,6 +144,9 @@
         fspd->fs      = NULL;
         fspd->list    = NULL;
         fspd->book    = NULL;
+        fspd->recurrence = g_new0(Recurrence, 1);
+        fspd->recurrence_list = NULL;
+        fspd->uift = UIFREQ_NONE;
         fspd->interval
                 = fspd->offset
                 = fspd->day
@@ -297,6 +304,7 @@
         for ( i=0; (tmp = uiFreqTypeStrs[i].str) != NULL; i++ ) {
                 if ( safe_strcmp( nodeTxt, tmp ) == 0 ) {
                         xaccFreqSpecSetUIType( fspd->fs, uiFreqTypeStrs[i].uift );
+                        fspd->uift = uiFreqTypeStrs[i].uift;
                         g_free( nodeTxt );
                         return TRUE;
                 }
@@ -399,10 +407,32 @@
 {
         fsParseData *fspd = data;
         FreqSpec        *fs;
+        GList *recurrences;
+
         fs = dom_tree_to_freqSpec( node, fspd->book );
         if ( fs == NULL )
                 return FALSE;
         fspd->list = g_list_append( fspd->list, fs );
+
+        recurrences = dom_tree_freqSpec_to_recurrences(node, fspd->book);
+        if (recurrences == NULL)
+                return FALSE;
+
+        {
+            GList *r_iter;
+            for (r_iter = recurrences; r_iter != NULL; r_iter = r_iter->next)
+            {
+                Recurrence *r = (Recurrence*)r_iter->data;
+                GDate recurrence_date;
+                if (fspd->uift == UIFREQ_SEMI_MONTHLY)
+                {
+                    // complementry hack around 'once' freqspects not being valid. :/
+                    recurrence_date = recurrenceGetDate(r);
+                    recurrenceSet(r, recurrenceGetMultiplier(r), PERIOD_MONTH, &recurrence_date);
+                }
+                fspd->recurrence_list = g_list_append(fspd->recurrence_list, r);
+            }
+        }
         return TRUE;
 }
 
@@ -417,8 +447,7 @@
         { NULL, NULL, 0, 0 },
 };
 
-static
-gboolean
+static gboolean
 fs_none_handler( xmlNodePtr node, gpointer data )
 {
         fsParseData *fspd = data;
@@ -444,22 +473,27 @@
                                              fspd );
         if ( !successful )
                 return FALSE;
+        recurrenceSet(fspd->recurrence, 0, PERIOD_ONCE, &fspd->once_day);
+        
         fspd->fs->type         = ONCE;
         fspd->fs->s.once.date  = fspd->once_day;
         return TRUE;
 }
 
-static
-gboolean
-fs_daily_handler( xmlNodePtr node, gpointer data)
+static gboolean
+fs_daily_handler(xmlNodePtr node, gpointer data)
 {
         fsParseData *fspd = data;
+        GDate offset_date;
         gboolean        successful;
-        successful = dom_tree_generic_parse( node,
-                                             fs_union_dom_handlers,
-                                             fspd );
-        if ( !successful )
-                return FALSE;
+        successful = dom_tree_generic_parse(node, fs_union_dom_handlers, fspd );
+        if (!successful)
+             return FALSE;
+
+        g_date_clear(&offset_date, 1);
+        g_date_set_julian(&offset_date, fspd->offset == 0 ? 7 : fspd->offset);
+        recurrenceSet(fspd->recurrence, fspd->interval, PERIOD_DAY, &offset_date);
+
         fspd->fs->type                      = DAILY;
         fspd->fs->s.daily.interval_days     = fspd->interval;
         fspd->fs->s.daily.offset_from_epoch = fspd->offset;
@@ -471,15 +505,22 @@
 fs_weekly_handler( xmlNodePtr node, gpointer data )
 {
         fsParseData *fspd = data;
+        GDate offset_date;
         gboolean        successful;
         successful = dom_tree_generic_parse( node,
                                              fs_union_dom_handlers,
                                              fspd );
         if ( !successful )
                 return FALSE;
+
+        g_date_clear(&offset_date, 1);
+        g_date_set_julian(&offset_date, fspd->offset == 0 ? 7 : fspd->offset);
+        recurrenceSet(fspd->recurrence, fspd->interval, PERIOD_WEEK, &offset_date);
+
         fspd->fs->type                       = WEEKLY;
         fspd->fs->s.weekly.interval_weeks    = fspd->interval;
         fspd->fs->s.weekly.offset_from_epoch = fspd->offset;
+
         return TRUE;
 }
 
@@ -488,16 +529,34 @@
 fs_monthly_handler( xmlNodePtr node, gpointer data)
 {
         fsParseData *fspd = data;
+        GDate offset_date;
         gboolean        successful;
         successful = dom_tree_generic_parse( node,
                                              fs_union_dom_handlers,
                                              fspd );
         if ( !successful )
                 return FALSE;
+
+
+        g_date_clear(&offset_date, 1);
+        g_date_set_julian(&offset_date, 1);
+        g_date_add_months(&offset_date, fspd->offset);
+        g_date_set_day(&offset_date, fspd->day);
+        if (fspd->uift == UIFREQ_ONCE)
+        {
+            // hack...
+            recurrenceSet(fspd->recurrence, fspd->interval, PERIOD_ONCE, &offset_date);
+        }
+        else
+        {
+            recurrenceSet(fspd->recurrence, fspd->interval, PERIOD_MONTH, &offset_date);
+        }
+        
         fspd->fs->type                        = MONTHLY;
         fspd->fs->s.monthly.interval_months   = fspd->interval;
         fspd->fs->s.monthly.offset_from_epoch = fspd->offset;
         fspd->fs->s.monthly.day_of_month      = fspd->day;
+
         return successful;
 }
 
@@ -505,19 +564,8 @@
 gboolean
 fs_month_relative_handler( xmlNodePtr node, gpointer data)
 {
-        fsParseData *fspd = data;
-        gboolean        successful;
-        successful = dom_tree_generic_parse( node,
-                                             fs_union_dom_handlers,
-                                             fspd );
-        if ( !successful )
-                return FALSE;
-        fspd->fs->type                               = MONTH_RELATIVE;
-        fspd->fs->s.month_relative.interval_months   = fspd->interval;
-        fspd->fs->s.month_relative.offset_from_epoch = fspd->offset;
-        fspd->fs->s.month_relative.weekday           = fspd->day;
-        fspd->fs->s.month_relative.occurrence        = fspd->occurrence;
-        return TRUE;
+        g_critical("this was never supported, how is it in the datafile?");
+        return FALSE;
 }
 
 static
@@ -544,6 +592,7 @@
                 return FALSE;
         fspd->fs->type                  = COMPOSITE;
         fspd->fs->s.composites.subSpecs = fspd->list;
+
         return TRUE;
 }
 
@@ -604,21 +653,40 @@
     return sixtp_dom_parser_new( gnc_freqSpec_end_handler, NULL, NULL );
 }
 
+static void
+common_parse(fsParseData *fspd, xmlNodePtr node, QofBook *book)
+{
+    gboolean        successful;
+
+    fspd->book = book;
+    fspd->fs = xaccFreqSpecMalloc(book);
+    successful = dom_tree_generic_parse( node, fs_dom_handlers, fspd );
+    if (!successful)
+    {
+        xmlElemDump(stdout, NULL, node);
+        xaccFreqSpecFree( fspd->fs );
+        fspd->fs = NULL;
+    }
+}
+
+GList*
+dom_tree_freqSpec_to_recurrences(xmlNodePtr node, QofBook *book)
+{
+    fsParseData        fspd;
+    fspd_init( &fspd );
+    common_parse(&fspd, node, book);
+    if (fspd.recurrence_list == NULL)
+    {
+        fspd.recurrence_list = g_list_append(fspd.recurrence_list, fspd.recurrence);
+    }
+    return fspd.recurrence_list;
+}
+
 FreqSpec*
 dom_tree_to_freqSpec(xmlNodePtr node, QofBook *book)
 {
-    gboolean        successful;
     fsParseData        fspd;
-
     fspd_init( &fspd );
-    fspd.book = book;
-
-    fspd.fs = xaccFreqSpecMalloc(book);
-    successful = dom_tree_generic_parse( node, fs_dom_handlers, &fspd );
-    if ( !successful ) {
-        xmlElemDump(stdout, NULL, node);
-        xaccFreqSpecFree( fspd.fs );
-        fspd.fs = NULL;
-    }
+    common_parse(&fspd, node, book);
     return fspd.fs;
 }

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-lot-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-lot-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-lot-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -60,7 +60,7 @@
     xmlNodePtr ret;
     kvp_frame *kf;
 
-	 ENTER("(lot=%p)", lot);
+    ENTER("(lot=%p)", lot);
     ret = xmlNewNode(NULL, BAD_CAST gnc_lot_string);
     xmlSetProp(ret, BAD_CAST "version", BAD_CAST lot_version_string);
 
@@ -76,6 +76,7 @@
         }
     }
 
+    LEAVE("");
     return ret;
 }
 
@@ -93,12 +94,13 @@
     struct lot_pdata *pdata = p;
     GUID *guid;
 
-	 ENTER("(lot=%p)", pdata->lot);
+    ENTER("(lot=%p)", pdata->lot);
     guid = dom_tree_to_guid(node);
     gnc_lot_set_guid(pdata->lot, *guid);
 
     g_free(guid);
     
+    LEAVE("");
     return TRUE;
 }
 
@@ -108,12 +110,12 @@
     struct lot_pdata *pdata = p;
     gboolean success;
 
-	 ENTER("(lot=%p)", pdata->lot);
+    ENTER("(lot=%p)", pdata->lot);
     success = dom_tree_to_kvp_frame_given
-      (node, gnc_lot_get_slots (pdata->lot));
+         (node, gnc_lot_get_slots (pdata->lot));
 
+    LEAVE("");
     g_return_val_if_fail(success, FALSE);
-    
     return TRUE;
 }
 
@@ -161,6 +163,7 @@
 
     xmlFreeNode(tree);
 
+    LEAVE("");
     return lot != NULL;
 }
 
@@ -186,6 +189,7 @@
         lot = NULL;
     }
 
+    LEAVE("");
     return lot;
 }
 

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-recurrence-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-recurrence-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-recurrence-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -90,7 +90,7 @@
     { NULL, NULL, 0, 0 }
 };
 
-Recurrence *
+Recurrence*
 dom_tree_to_recurrence(xmlNodePtr node)
 {
     gboolean successful;

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-schedxaction-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-schedxaction-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-schedxaction-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 /********************************************************************
  * gnc-schedxactions-xml-v2.c -- xml routines for transactions      *
- * Copyright (C) 2001 Joshua Sled <jsled at asynchronous.org>          *
+ * Copyright (C) 2001,2007 Joshua Sled <jsled at asynchronous.org>     *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
  * modify it under the terms of the GNU General Public License as   *
@@ -26,8 +26,6 @@
 #include <glib.h>
 #include <string.h>
 
-#include "Group.h"
-#include "SchedXactionP.h"
 #include "SX-book.h"
 
 #include "gnc-xml-helper.h"
@@ -46,8 +44,11 @@
 
 #include "sixtp-dom-parsers.h"
 
-static QofLogModule log_module = GNC_MOD_SX;
+#include "gnc-gconf-utils.h"
 
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.backend.file.sx"
+
 /**
  * The XML output should look something like:
  * <gnc:count-data cd:type="schedXaction">XXX</gnc:count-data>
@@ -55,6 +56,7 @@
  * <gnc:schedxaction version="1.0.0">
  *   <sx:id type="guid">...</sx:id>
  *   <sx:name>Rent</sx:name>
+ *   <sx:enabled>y</sx:enabled>
  *   <sx:autoCreate>y</sx:autoCreate>
  *   <sx:autoCreateNotify>n</sx:autoCreateNotify>
  *   <sx:advanceCreateDays>0</sx:advanceCreateDays>
@@ -117,6 +119,7 @@
 
 #define SX_ID                   "sx:id"
 #define SX_NAME                 "sx:name"
+#define SX_ENABLED              "sx:enabled"
 #define SX_AUTOCREATE           "sx:autoCreate"
 #define SX_AUTOCREATE_NOTIFY    "sx:autoCreateNotify"
 #define SX_ADVANCE_CREATE_DAYS  "sx:advanceCreateDays"
@@ -129,6 +132,7 @@
 #define SX_END                  "sx:end"
 #define SX_TEMPL_ACCT           "sx:templ-acct" 
 #define SX_FREQSPEC             "sx:freqspec"
+#define SX_SCHEDULE             "sx:schedule"
 #define SX_SLOTS                "sx:slots"
 #define SX_DEFER_INSTANCE       "sx:deferredInstance"
 
@@ -141,6 +145,7 @@
 #define GNC_SCHEDXACTION_TAG    "gnc:schedxaction"
 
 const gchar *schedxaction_version_string = "1.0.0";
+const gchar *schedxaction_version2_string = "2.0.0";
 
 xmlNodePtr
 gnc_schedXaction_dom_tree_create(SchedXaction *sx)
@@ -150,13 +155,27 @@
     GDate	*date;
     gint        instCount;
     const GUID        *templ_acc_guid;
+    gboolean allow_incompat = FALSE;
+    GError *err = NULL;
 
+    allow_incompat = gnc_gconf_get_bool("dev", "allow_file_incompatibility", &err);
+    if (err != NULL)
+    {
+        g_warning("error getting gconf value [%s]", err->message);
+        g_error_free(err);
+        allow_incompat = FALSE;
+    }
+    g_debug("allow_incompatibility: [%s]", allow_incompat ? "true" : "false");
+
     templ_acc_guid = xaccAccountGetGUID(sx->template_acct);
 
     /* FIXME: this should be the same as the def in io-gncxml-v2.c */
     ret = xmlNewNode( NULL, BAD_CAST GNC_SCHEDXACTION_TAG );
 
-    xmlSetProp( ret, BAD_CAST "version", BAD_CAST schedxaction_version_string );
+    if (allow_incompat)
+        xmlSetProp(ret, BAD_CAST "version", BAD_CAST schedxaction_version2_string);
+    else
+        xmlSetProp(ret, BAD_CAST "version", BAD_CAST schedxaction_version_string);
 
     xmlAddChild( ret,
                  guid_to_dom_tree(SX_ID,
@@ -164,12 +183,18 @@
 
     xmlNewTextChild( ret, NULL, BAD_CAST SX_NAME, BAD_CAST xaccSchedXactionGetName(sx) );
 
+    if (allow_incompat)
+    {
+        xmlNewTextChild( ret, NULL, BAD_CAST SX_ENABLED,
+                         BAD_CAST ( sx->enabled ? "y" : "n" ) );
+    }
+
     xmlNewTextChild( ret, NULL, BAD_CAST SX_AUTOCREATE,
                      BAD_CAST ( sx->autoCreateOption ? "y" : "n" ) );
     xmlNewTextChild( ret, NULL, BAD_CAST SX_AUTOCREATE_NOTIFY,
                      BAD_CAST ( sx->autoCreateNotify ? "y" : "n" ) );
     xmlAddChild(ret, int_to_dom_tree(SX_ADVANCE_CREATE_DAYS,
-                                     sx->advanceCreateDays));
+                                      sx->advanceCreateDays));
     xmlAddChild(ret, int_to_dom_tree(SX_ADVANCE_REMIND_DAYS,
                                      sx->advanceRemindDays));
 
@@ -203,7 +228,7 @@
     xmlAddChild( ret, 
 		 guid_to_dom_tree(SX_TEMPL_ACCT,
 				  templ_acc_guid));
-				  
+
     /* output freq spec */
     fsNode = xmlNewNode(NULL, BAD_CAST SX_FREQSPEC);
     xmlAddChild( fsNode,
@@ -211,6 +236,17 @@
                          xaccSchedXactionGetFreqSpec(sx)) );
     xmlAddChild( ret, fsNode );
 
+    if (allow_incompat)
+    {
+        xmlNodePtr schedule_node = xmlNewNode(NULL, "sx:schedule");
+        GList *schedule = gnc_sx_get_schedule(sx);
+        for (; schedule != NULL; schedule = schedule->next)
+        {
+            xmlAddChild(schedule_node, recurrence_to_dom_tree("gnc:recurrence", (Recurrence*)schedule->data));
+        }
+        xmlAddChild(ret, schedule_node);
+    }
+				  
     /* Output deferred-instance list. */
     {
             xmlNodePtr instNode;
@@ -252,6 +288,8 @@
 {
   SchedXaction *sx;
   QofBook *book;
+  gboolean saw_freqspec;
+  gboolean saw_recurrence;
 };
 
 static
@@ -276,11 +314,22 @@
     struct sx_pdata *pdata = sx_pdata;
     SchedXaction *sx = pdata->sx;
     gchar *tmp = dom_tree_to_text( node );
-
+    g_debug("sx named [%s]", tmp);
     g_return_val_if_fail( tmp, FALSE );
     xaccSchedXactionSetName( sx, tmp );
     g_free( tmp );
+    return TRUE;
+}
 
+static gboolean
+sx_enabled_handler( xmlNodePtr node, gpointer sx_pdata )
+{
+    struct sx_pdata *pdata = sx_pdata;
+    SchedXaction *sx = pdata->sx;
+    gchar *tmp = dom_tree_to_text( node );
+
+    sx->enabled = (safe_strcmp( tmp, "y" ) == 0 ? TRUE : FALSE );
+
     return TRUE;
 }
 
@@ -398,22 +447,108 @@
     return sx_set_date( node, sx, xaccSchedXactionSetEndDate );
 }
 
-static
-gboolean
+static void
+_fixup_recurrence_start_dates(GDate *sx_start_date, GList *schedule)
+{
+    GList *iter;
+    for (iter = schedule; iter != NULL; iter = iter->next) {
+        Recurrence *r;
+        GDate start, next;
+
+        r = (Recurrence*)iter->data;
+
+        start = *sx_start_date;
+        g_date_subtract_days(&start, 1);
+
+        g_date_clear(&next, 1);
+
+        recurrenceNextInstance(r, &start, &next);
+
+        if (recurrenceGetPeriodType(r) == PERIOD_MONTH)
+            g_date_set_month(&next, 1);
+
+        {
+            gchar date_str[128];
+            gchar *sched_str;
+
+            g_date_strftime(date_str, 127, "%x", &next);
+            sched_str = recurrenceToString(r);
+            g_debug("setting recurrence [%s] start date to [%s]",
+                    sched_str, date_str);
+            g_free(sched_str);
+        }
+
+        recurrenceSet(r,
+                      recurrenceGetMultiplier(r),
+                      recurrenceGetPeriodType(r), 
+                      &next);
+    }
+
+    if (g_list_length(schedule) == 1
+        && recurrenceGetPeriodType((Recurrence*)g_list_nth_data(schedule, 0)) == PERIOD_ONCE)
+    {
+        char date_buf[128];
+        Recurrence *fixup = (Recurrence*)g_list_nth_data(schedule, 0);
+        g_date_strftime(date_buf, 127, "%x", sx_start_date);
+        recurrenceSet(fixup, 1, PERIOD_ONCE, sx_start_date);
+        g_debug("fixed up period=ONCE Recurrence to date [%s]", date_buf);
+    }
+}
+
+static gboolean
 sx_freqspec_handler( xmlNodePtr node, gpointer sx_pdata )
 {
     struct sx_pdata *pdata = sx_pdata;
     SchedXaction *sx = pdata->sx;
-    FreqSpec *fs;
+    GList *schedule;
 
     g_return_val_if_fail( node, FALSE );
 
-    fs = dom_tree_to_freqSpec( node, pdata->book );
-    xaccSchedXactionSetFreqSpec( sx, fs );
+    xaccSchedXactionSetFreqSpec(sx, dom_tree_to_freqSpec(node, pdata->book));
 
+    schedule = dom_tree_freqSpec_to_recurrences(node, pdata->book);
+    gnc_sx_set_schedule(sx, schedule);
+    g_debug("parsed from freqspec [%s]", recurrenceListToString(schedule));
+
+    _fixup_recurrence_start_dates(xaccSchedXactionGetStartDate(sx), schedule);
+    pdata->saw_freqspec = TRUE;
+
     return TRUE;
 }
 
+static gboolean
+sx_schedule_recurrence_handler(xmlNodePtr node, gpointer parsing_data)
+{
+    GList **schedule = (GList**)parsing_data;
+    Recurrence *r = dom_tree_to_recurrence(node);
+    g_return_val_if_fail(r, FALSE);
+    g_debug("parsed recurrence [%s]", recurrenceToString(r));
+    *schedule = g_list_append(*schedule, r);
+    return TRUE;
+}
+
+struct dom_tree_handler sx_recurrence_list_handlers[] = {
+    { "gnc:recurrence", sx_schedule_recurrence_handler, 0, 0 },
+    { NULL, NULL, 0, 0 }
+};
+
+static gboolean
+sx_recurrence_handler(xmlNodePtr node, gpointer _pdata)
+{
+    struct sx_pdata *parsing_data = _pdata;
+    GList *schedule = NULL;
+     
+    g_return_val_if_fail(node, FALSE);
+
+    if (!dom_tree_generic_parse(node, sx_recurrence_list_handlers, &schedule))
+        return FALSE;
+    g_return_val_if_fail(schedule, FALSE);
+    g_debug("setting freshly-parsed schedule: [%s]", recurrenceListToString(schedule));
+    gnc_sx_set_schedule(parsing_data->sx, schedule);
+    parsing_data->saw_recurrence = TRUE;
+    return TRUE;
+}
+
 static
 gboolean
 sx_defer_last_handler( xmlNodePtr node, gpointer gpTSD )
@@ -518,13 +653,15 @@
   struct sx_pdata *pdata = sx_pdata;
   SchedXaction *sx = pdata->sx;
   GUID *templ_acct_guid = dom_tree_to_guid(node);
+  Account *account;
 
   if (!templ_acct_guid)
   {
     return FALSE;
   }
 
-  sx->template_acct = xaccAccountLookup(templ_acct_guid, pdata->book);
+  account = xaccAccountLookup(templ_acct_guid, pdata->book);
+  sx_set_template_account(sx, account);
   g_free(templ_acct_guid);
 
   return TRUE;
@@ -561,6 +698,7 @@
 struct dom_tree_handler sx_dom_handlers[] = {
     { SX_ID,                  sx_id_handler,         1, 0 },
     { SX_NAME,                sx_name_handler,       1, 0 },
+    { SX_ENABLED,             sx_enabled_handler,    0, 0 }, 
     { SX_AUTOCREATE,          sx_autoCreate_handler, 1, 0 },
     { SX_AUTOCREATE_NOTIFY,   sx_notify_handler,     1, 0 },
     { SX_ADVANCE_CREATE_DAYS, sx_advCreate_handler,  1, 0 },
@@ -572,7 +710,8 @@
     { SX_REM_OCCUR,           sx_remOccur_handler,   0, 0 },
     { SX_END,                 sx_end_handler,        0, 0 },
     { SX_TEMPL_ACCT,          sx_templ_acct_handler, 0, 0 },
-    { SX_FREQSPEC,            sx_freqspec_handler,   1, 0 },
+    { SX_FREQSPEC,            sx_freqspec_handler,   0, 0 },
+    { SX_SCHEDULE,            sx_recurrence_handler, 0, 0 },
     { SX_DEFER_INSTANCE,      sx_defer_inst_handler, 0, 0 },
     { SX_SLOTS,               sx_slots_handler,      0, 0 },
     { NULL,                   NULL, 0, 0 }
@@ -602,38 +741,62 @@
 
     sx = xaccSchedXactionMalloc( gdata->bookdata );
 
-    /* FIXME: this should be removed somewhere near 1.8 release time. */
-    {
-            /* This is the just-created template acct.  It can safely be
-               removed, as we either will find or don't have a relevent
-               template_acct. */
-            xaccAccountBeginEdit (sx->template_acct);
-            xaccAccountDestroy( sx->template_acct );
-            sx->template_acct = NULL;
-    }
-
+    memset(&sx_pdata, 0, sizeof(sx_pdata));
     sx_pdata.sx = sx;
     sx_pdata.book = gdata->bookdata;
 
     g_assert( sx_dom_handlers != NULL );
 
     successful = dom_tree_generic_parse( tree, sx_dom_handlers, &sx_pdata );
-
-    if ( successful ) 
+    if (!successful) 
     {
-            gdata->cb( tag, gdata->parsedata, sx );
-    } 
-    else 
-    {
-            PERR ("failed to parse scheduled xaction");
+            g_critical("failed to parse scheduled xaction");
             xmlElemDump( stdout, NULL, tree );
             xaccSchedXactionFree( sx );
+            goto done;
     }
 
+    if (tree->properties)
+    {
+         gchar *sx_name = xaccSchedXactionGetName(sx);
+         xmlAttr *attr;
+         for (attr = tree->properties; attr != NULL; attr = attr->next)
+         {
+              xmlChar *attr_value = attr->children->content;
+              g_debug("sx attribute name[%s] value[%s]", attr->name, attr_value);
+              if (strcmp(attr->name, "version") != 0)
+              {
+                   g_warning("unknown sx attribute [%s]", attr->name);
+                   continue;
+              }
+
+              // if version == 1.0.0: ensure freqspec, no recurrence
+              // if version == 2.0.0: ensure recurrence, no freqspec.
+              if (strcmp(attr_value, schedxaction_version_string) == 0)
+              {
+                   if (!sx_pdata.saw_freqspec)
+                        g_critical("did not see freqspec in version 1 sx [%s]", sx_name);
+                   if (sx_pdata.saw_recurrence)
+                        g_warning("saw recurrence in supposedly version 1 sx [%s]", sx_name);
+              }
+
+              if (strcmp(attr_value, schedxaction_version2_string) == 0)
+              {
+                   if (sx_pdata.saw_freqspec)
+                        g_warning("saw freqspec in version 2 sx [%s]", sx_name);
+                   if (!sx_pdata.saw_recurrence)
+                        g_critical("did not find recurrence in version 2 sx [%s]", sx_name);
+              }
+         }
+    }
+
+    // generic_callback -> book_callback: insert the SX in the book
+    gdata->cb( tag, gdata->parsedata, sx );
+
     /* FIXME: this should be removed somewhere near 1.8 release time. */
     if ( sx->template_acct == NULL )
     {
-            AccountGroup *ag = NULL;
+            Account *ra = NULL;
             const char *id = NULL;
             Account *acct = NULL;
             sixtp_gdv2 *sixdata = gdata->parsedata;
@@ -644,27 +807,24 @@
             /* We're dealing with a pre-200107<near-end-of-month> rgmerk
                change re: storing template accounts. */
             /* Fix: get account with name of our GUID from the template
-               accounts group.  Make that our template_acct pointer. */
+               accounts.  Make that our template_acct pointer. */
             /* THREAD-UNSAFE */
             id = guid_to_string( xaccSchedXactionGetGUID( sx ) );
-            ag = gnc_book_get_template_group(book);
-            if ( ag == NULL )
+            ra = gnc_book_get_template_root(book);
+            if ( ra == NULL )
             {
-                    PERR( "Error getting template account group "
-                          "from being-parsed Book." );
+                    g_warning( "Error getting template root account from being-parsed Book." );
                     xmlFreeNode( tree );
                     return FALSE;
             }
-            acct = xaccGetAccountFromName( ag, id );
+            acct = gnc_account_lookup_by_name( ra, id );
             if ( acct == NULL )
             {
-                    PERR( "Error getting template account "
-                          "with name \"%s\"", id );
+                    g_warning("no template account with name [%s]", id);
                     xmlFreeNode( tree );
                     return FALSE;
             }
-            DEBUG( "Got template account with name \"%s\" for "
-                   "SX with GUID \"%s\"",
+            g_debug("template account name [%s] for SX with GUID [%s]",
                    xaccAccountGetName( acct ), id );
 
             /* FIXME: free existing template account. 
@@ -675,6 +835,8 @@
 
             sx->template_acct = acct;
     }
+
+ done:
     xmlFreeNode( tree );
 
     return successful;
@@ -713,8 +875,8 @@
                            applies for
                            SchedXaction.c:xaccSchedXactionInit... */
                         com = gnc_commodity_new( txd->book,
-						 "template", "template",
                                                  "template", "template",
+                                                 "template", "template",
                                                  1 );
                         xaccAccountSetCommodity( acc, com );
                 }
@@ -769,9 +931,9 @@
         txd.accts = NULL;
         txd.transactions = NULL;
 
-        /* the DOM tree will have an account tree [the template group
-           and account] and a list of transactions [which will be
-           members of the template account].
+        /* the DOM tree will have an account tree [the template
+           accounts] and a list of transactions [which will be members
+           of the template account].
 
            we want to parse through the dom trees for each, placing
            the null-parent account in the book's template-group slot,
@@ -795,7 +957,7 @@
         } 
         else 
         {
-                PERR ("failed to parse template transaction");
+                g_warning("failed to parse template transaction");
                 xmlElemDump( stdout, NULL, tree );
         }
 

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-transaction-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-transaction-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-transaction-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -444,7 +444,7 @@
     return TRUE;
 }
 
-static inline gboolean
+static gboolean
 trn_id_handler(xmlNodePtr node, gpointer trans_pdata)
 {
     struct trans_pdata *pdata = trans_pdata;

Modified: gnucash/branches/gda-dev/src/backend/file/gnc-xml.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gnc-xml.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gnc-xml.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -33,7 +33,8 @@
 #include "gnc-xml-helper.h"
 #include "sixtp.h"
 
-xmlNodePtr gnc_account_dom_tree_create(Account *act, gboolean exporting);
+xmlNodePtr gnc_account_dom_tree_create(Account *act, gboolean exporting,
+				       gboolean allow_incompat);
 sixtp* gnc_account_sixtp_parser_create(void);
 
 xmlNodePtr gnc_book_dom_tree_create(QofBook *book);

Modified: gnucash/branches/gda-dev/src/backend/file/gncmod-backend-file.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/gncmod-backend-file.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/gncmod-backend-file.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,49 +1,43 @@
 /*********************************************************************
  * gncmod-file-backend.c
  * module definition/initialization for the file backend module
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include <stdio.h>
-#include <glib.h>
-#include <glib-gobject.h>
+#include <gmodule.h>
+/* #include <glib-gobject.h> */
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_backend_file_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_backend_file_LTX_gnc_module_current  = 0;
-int libgncmod_backend_file_LTX_gnc_module_revision = 0;
-int libgncmod_backend_file_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
 static GNCModule engine;
 
-/* forward references */
-char *libgncmod_backend_file_LTX_gnc_module_path(void);
-char *libgncmod_backend_file_LTX_gnc_module_description(void);
-int libgncmod_backend_file_LTX_gnc_module_init(int refcount);
-int libgncmod_backend_file_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_backend_file_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/backend/file");
 }
 
-char * 
-libgncmod_backend_file_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("The binary and XML (v1 and v2) backends for GnuCash");
 }
 
 int
-libgncmod_backend_file_LTX_gnc_module_init(int refcount) 
-{  
+gnc_module_init(int refcount)
+{
   engine = gnc_module_load("gnucash/engine", 0);
   if(!engine) return FALSE;
 
@@ -55,7 +49,7 @@
 }
 
 int
-libgncmod_backend_file_LTX_gnc_module_end(int refcount) 
+gnc_module_end(int refcount)
 {
   int unload = TRUE;
 

Modified: gnucash/branches/gda-dev/src/backend/file/io-example-account.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-example-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-example-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,6 +32,8 @@
 #include <unistd.h>
 
 #include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
 #include "sixtp.h"
 
 #include "gnc-engine.h"
@@ -43,7 +45,6 @@
 #include "sixtp-dom-parsers.h"
 #include "sixtp-parsers.h"
 
-#include "Group.h"
 #include "Scrub.h"
 #include "TransLog.h"
 
@@ -69,11 +70,11 @@
         g_free(gea->filename);
         gea->filename = NULL;
     }
-    if(gea->group != NULL)
+    if(gea->root != NULL)
     {
-        xaccAccountGroupBeginEdit (gea->group);
-        xaccAccountGroupDestroy(gea->group);
-        gea->group = NULL;
+        xaccAccountBeginEdit (gea->root);
+        xaccAccountDestroy(gea->root);
+        gea->root = NULL;
     }
     if(gea->short_description != NULL)
     {
@@ -85,6 +86,11 @@
         g_free(gea->long_description);
         gea->long_description = NULL;
     }
+    if(gea->book != NULL)
+    {
+        qof_book_destroy(gea->book);
+        gea->book = NULL;
+    }
     g_free(gea);
 }
 
@@ -138,10 +144,19 @@
 
     xaccAccountScrubCommodity (act);
 
-    if (!xaccAccountGetParent(act))
+    if (xaccAccountGetType(act) == ACCT_TYPE_ROOT)
     {
-        xaccGroupInsertAccount(gea->group, act);
+        gea->root = act;
     }
+    else if (!gnc_account_get_parent(act))
+    {
+        if (!gea->root) {
+            g_warning(_("The example account file should declared a ROOT "
+                        "account before declaring any other accounts."));
+            gea->root = gnc_book_get_root_account(gea->book);
+        }
+        gnc_account_append_child(gea->root, act);
+    }
 }
 
 static gboolean
@@ -289,19 +304,18 @@
 
 
 GncExampleAccount*
-gnc_read_example_account(QofBook *book, const gchar *filename)
+gnc_read_example_account(const gchar *filename)
 {
     GncExampleAccount *gea;
     sixtp *top_parser;
     sixtp *main_parser;
 
-    g_return_val_if_fail (book != NULL, NULL);
+    g_return_val_if_fail (filename != NULL, NULL);
 
     gea = g_new0(GncExampleAccount, 1);
 
-    gea->book = book;
+    gea->book = qof_book_new();
     gea->filename = g_strdup(filename);
-    gea->group = xaccMallocAccountGroup(book);
 
     top_parser = sixtp_new();
     main_parser = sixtp_new();
@@ -328,16 +342,13 @@
     }
 
     if(!gnc_xml_parse_file(top_parser, filename,
-                           generic_callback, gea, book))
+                           generic_callback, gea, gea->book))
     {
         sixtp_destroy(top_parser);
         xaccLogEnable ();
         return FALSE;
     }
 
-    xaccGroupMarkSaved(gea->group);
-    xaccAccountGroupCommitEdit(gea->group);
-    
     return gea;
 }
 
@@ -371,8 +382,9 @@
 gnc_write_example_account(GncExampleAccount *gea, const gchar *filename)
 {
     FILE *out;
+    sixtp_gdv2 data = { 0 };;
 
-    out = fopen(filename, "w");
+    out = g_fopen(filename, "w");
     if (out == NULL)
     {
         return FALSE;
@@ -389,7 +401,7 @@
     
     write_bool_part(out, GNC_ACCOUNT_EXCLUDEP, gea->exclude_from_select_all);
 
-    write_account_group(out, gea->group, NULL);
+    write_account_tree(out, gea->root, &data);
 
     fprintf(out, "</" GNC_ACCOUNT_STRING ">\n\n");
     
@@ -423,24 +435,14 @@
     g_slist_free(list);
 }
 
-static gboolean
-is_directory(const gchar *filename)
-{
-    struct stat fileinfo;
-
-    stat(filename, &fileinfo);
-
-    return S_ISDIR(fileinfo.st_mode);
-}
-    
 GSList*
-gnc_load_example_account_list(QofBook *book, const char *dirname)
+gnc_load_example_account_list(const char *dirname)
 {
     GSList *ret;
-    DIR *dir;
-    struct dirent *direntry;
+    GDir *dir;
+    const gchar *direntry;
 
-    dir = opendir(dirname);
+    dir = g_dir_open(dirname, 0, NULL);
 
     if(dir == NULL)
     {
@@ -449,28 +451,34 @@
     
     ret = NULL;
 
-    for(direntry = readdir(dir); direntry != NULL; direntry = readdir(dir))
+    for(direntry = g_dir_read_name(dir); direntry != NULL;
+        direntry = g_dir_read_name(dir))
     {
         gchar *filename;
         GncExampleAccount *gea;
-        filename = g_strdup_printf("%s/%s", dirname, direntry->d_name);
+        if (!g_str_has_suffix(direntry, "xea"))
+          continue;
 
-        if(!is_directory(filename))
+        filename = g_build_filename(dirname, direntry, (gchar*) NULL);
+
+        if(!g_file_test(filename, G_FILE_TEST_IS_DIR))
         {
-            gea = gnc_read_example_account(book, filename);
+            gea = gnc_read_example_account(filename);
 
             if(gea == NULL)
             {
                 g_free(filename);
                 gnc_free_example_account_list(ret);
+                g_dir_close(dir);
                 return NULL;
             }
-            
+
             ret = g_slist_append(ret, gea);
         }
-        
+
         g_free(filename);
     }
+    g_dir_close(dir);
 
     return ret;
 }

Modified: gnucash/branches/gda-dev/src/backend/file/io-example-account.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-example-account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-example-account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,7 +35,7 @@
     gchar *title;
     gchar *filename;
     QofBook *book;
-    AccountGroup *group;
+    Account *root;
     gchar *short_description;
     gchar *long_description;
     gboolean exclude_from_select_all;
@@ -47,13 +47,11 @@
 
 gboolean gnc_write_example_account(GncExampleAccount *gea,
                                    const gchar *filename);
-GncExampleAccount *gnc_read_example_account(QofBook *book,
-                                            const gchar *filename);
+GncExampleAccount *gnc_read_example_account(const gchar *filename);
 
 
 void gnc_free_example_account_list(GSList *list);
-GSList* gnc_load_example_account_list(QofBook *book,
-                                      const char *dirname);
+GSList* gnc_load_example_account_list(const char *dirname);
 
 gboolean gnc_is_example_account_xml(const gchar *name);
 

Deleted: gnucash/branches/gda-dev/src/backend/file/io-gncbin-r.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-gncbin-r.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-gncbin-r.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,1532 +0,0 @@
-/********************************************************************\
- * io-gncbin-r.c -- read (old X-Accountant format) binary datafile  *
- *                                                                  *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
- ********************************************************************
- * @file io-gncbin-r.c
- * @brief read (old X-Accountant format) binary datafile 
- * @author Copyright (C) 1997 Robin D. Clark
- * @author Copyright (C) 1997-2001 Linas Vepstas <linas at linas.org>
- * @author Copyright (C) 1999-2000 Rob Browning
- *
- * NOTE: the readxxxx/writexxxx functions changed the current       *
- *       position in the file, and so the order which these         *
- *       functions are called in important                          *
- *                                                                  *
- * Version 1 is the original file format                            *
- * Version 2 of the file format supports reading and writing of     *
- *    double-entry transactions.                                    *
- * Version 3 of the file format supports actions (Buy, Sell, etc.)  *
- * Version 4 of the file format adds account groups                 *
- * Version 5 of the file format adds splits                         *
- * Version 6 of the file format removes the source split            *
- * Version 7 of the file format adds currency & security types      *
- * Version 8 of the file format adds misc fields                    *
- * Version 9 changes the time format to a 64-bit int                *
- * Version 10 adds auxilliary account info                          *
- *                                                                  *
- * the format of the data in the file:                              *
- *   file        ::== token Group                                   *
- *   Group       ::== numAccounts (Account)^numAccounts             *
- *   Account     ::== accID flags type accountName accountCode      *
- *                    description notes currency security           *
- *                    AccInfo                                       *
- *                    numTran (Transaction)^numTrans                * 
- *                    numGroups (Group)^numGroups                   *
- *   Transaction ::== num date_entered date_posted description      *
- *                    docref numSplits (Split)^numSplits            *
- *   Split       ::== memo action reconciled  date_recned           *
- *                    docref amount share_price account             *
- *   token       ::== int  [the version of file format == VERSION]  * 
- *   numTrans    ::== int                                           * 
- *   numAccounts ::== int                                           * 
- *   accID       ::== int                                           * 
- *   flags       ::== char                                          * 
- *   type        ::== char                                          * 
- *   accountName ::== String                                        *  
- *   accountCode ::== String                                        *  
- *   description ::== String                                        *  
- *   notes       ::== String                                        *  
- *   currency    ::== String                                        *  
- *   security    ::== String                                        *  
- *   AccInfo     ::== (variable, depends on account type, ... )     *
- *                                                                  *
- *   num         ::== String                                        * 
- *   date_entered::== Date                                          * 
- *   date_posted ::== Date                                          * 
- *   date_recned ::== Date                                          * 
- *   description ::== String                                        * 
- *   memo        ::== String                                        * 
- *   action      ::== String                                        * 
- *   docref      ::== String                                        * 
- *   reconciled  ::== char                                          * 
- *   amount      ::== double                                        * 
- *   share_price ::== double                                        * 
- *   account     ::== int                                           *
- *   String      ::== size (char)^size                              * 
- *   size        ::== int                                           * 
- *   Date        ::== seconds nanoseconds                           * 
- *   seconds     ::== signed 64 bit int                             * 
- *   nanoseconds ::== signed 32 bit int                             * 
-\********************************************************************/
-
-#include <glib.h>
-#include <glib/gi18n.h>
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "config.h"
-
-#include "Account.h"
-#include "AccountP.h"
-#include "io-gncbin.h"
-#include "Group.h"
-#include "GroupP.h"
-#include "Transaction.h"
-#include "TransactionP.h"
-#include "TransLog.h"
-#include "gnc-engine.h"
-#include "gnc-pricedb.h"
-#include "gnc-pricedb-p.h"
-
-#define PERMS   0666
-#define WFLAGS  (O_WRONLY | O_CREAT | O_TRUNC)
-#define RFLAGS  O_RDONLY
-
-#undef VERSION
-#define VERSION 10
-
-
-/* The binary file format does not support most of the
- * new/improved account & transaction structures
- */
-
-/* This static indicates the debugging module that this .o belongs to.  */
-static QofLogModule log_module = GNC_MOD_IO;
-
-/** GLOBALS *********************************************************/
-
-/* the default currency is used when importin old-style
- * file formats, or when importing files with no currency 
- * specified.  This should probably be something that
- * is configurable from some user config menu.
- */
-#define DEFAULT_CURRENCY "USD"
-
-static int          error_code=0; /* error code, if error occurred */
-
-static AccountGroup *holder;      /* temporary holder for
-                                   *  unclassified accounts */
-static AccountGroup *maingrp;     /* temporary holder for file
-                                   * being read */
-
-/* Store mappings from the old/abolished id's to accounts since id's
-   have been deleted from Account's.
-
-   These shouldn't be global, but since the rest of this file is
-   completely non-reentrant, and since this file is dead once the xml
-   format is finished, I'm not going to get too torn up about it...
-
-   FIXME: a bigger issue is whether or not we're being totally kosher
-   in our handling of keys and values here.  We use int32s and
-   pointers interchangably ATM, and that may be problematic on some
-   architectures...
-
-   Only used *during* file read process.
-*/
-
-static GHashTable *ids_to_finished_accounts;
-static GHashTable *ids_to_unfinished_accounts;
-
-/** PriceDB bits ******************************************************/
-/* Commodity prices (stock quotes, etc.) used to be stored as zero
-   quantity (damount) splits inside the relevant accounts.  Now we
-   used the pricedb.  potential_quotes is where we put the info from
-   all these "quote splits" while reading, until we have a chance to
-   cram them into the pricedb.  We can't do it any sooner because
-   until we finish reading the file, the Account*'s havent' been
-   filled out and so their commodities and types may not have been
-   initilized yet.
-
-   This shouldn't be a static global but see comments above RE ids_to*
-   hashes.  */
-
-typedef struct {
-  Split *split;
-  gnc_numeric price;
-} GNCPotentialQuote;
-
-static GSList     *potential_quotes;
-
-
-#define EPS  (1.0e-6)
-#define DEQEPS(x,y,eps) (((((x)+(eps))>(y)) ? 1 : 0) && ((((x)-(eps))<(y)) ? 1 : 0))
-#define DEQ(x,y) DEQEPS(x,y,EPS)
-
-static void
-mark_potential_quote(Split *s, double price, double quantity)
-{
-  if((price != 0) && DEQ(quantity, 0)){
-    GNCPotentialQuote *q = g_new0(GNCPotentialQuote, 1);
-    q->split = s;
-    q->price = double_to_gnc_numeric(price,
-				     GNC_DENOM_AUTO,
-				     GNC_DENOM_SIGFIGS(9) | GNC_RND_ROUND);
-    potential_quotes = g_slist_prepend(potential_quotes, q);
-  }
-}
-
-static gboolean
-cvt_potential_prices_to_pricedb_and_cleanup(GNCPriceDB **prices,
-                                            QofBook *book)
-{
-  GSList *item = potential_quotes;
-
-  *prices = gnc_book_get_pricedb(book);
-  if (!*prices) return FALSE;
-
-  while(item)
-  {
-    GNCPotentialQuote *q = (GNCPotentialQuote *) item->data;
-    Account *split_acct = xaccSplitGetAccount(q->split);
-
-    /* at this point, we already know it's a split with a zero amount */
-    if (xaccAccountIsPriced(split_acct)) {
-      /* this is a quote -- file it in the db and kill the split */
-      Transaction *txn = xaccSplitGetParent(q->split);
-      GNCPrice *price = gnc_price_create(book);
-      Timespec time = xaccTransRetDatePostedTS(txn);
-
-      gnc_price_begin_edit(price);
-      gnc_price_set_commodity(price,
-                              DxaccAccountGetSecurity(split_acct));
-      gnc_price_set_currency(price,
-                             xaccTransGetCurrency(txn));
-      gnc_price_set_time(price, time);
-      gnc_price_set_source(price, "old-file-import");
-      gnc_price_set_type(price, "unknown");
-      gnc_price_set_value(price, q->price);
-      gnc_price_commit_edit(price);
-      if(!gnc_pricedb_add_price(*prices, price)) {
-        PERR("problem adding price to pricedb.\n");
-      }
-      gnc_price_unref(price);
-
-      xaccTransBeginEdit(txn);
-      xaccSplitDestroy(q->split);
-      xaccTransCommitEdit(txn);
-    }
-    g_free(item->data);
-    item->data = NULL;
-    item = item->next;
-  }
-  g_slist_free(potential_quotes);
-  potential_quotes = NULL;
-
-  return TRUE;
-}
-
-/** PROTOTYPES ******************************************************/
-static Account     *locateAccount (int acc_id, QofBook *book); 
-
-static AccountGroup *readGroup( QofBook *, int fd, Account *, int token );
-static Account      *readAccount( QofBook *book, int fd,
-                                  AccountGroup *, int token );
-static gboolean      readAccInfo( int fd, Account *, int token );
-static Transaction  *readTransaction( QofBook *book,
-                                      int fd, Account *, int token );
-static Split        *readSplit( QofBook *book, int fd, int token );
-static char         *readString( int fd, int token );
-static time_t        readDMYDate( int fd, int token );
-static int           readTSDate( int fd, Timespec *, int token );
-
-/*******************************************************/
-/* backwards compatibility definitions for numeric value 
- * of account type.  These numbers are used (are to be
- * used) nowhere else but here, precisely because they
- * are non-portable.  The values of these defines MUST
- * NOT BE CHANGED; ANY CHANGES WILL BREAK FILE COMPATIBILITY.
- * YOU HAVE BEEN WARNED!!!!
- */
-
-#define FF_BANK 	0
-#define FF_CASH 	1
-#define FF_ASSET	2
-#define FF_CREDIT 	3
-#define FF_LIABILITY 	4
-#define FF_STOCK	5
-#define FF_MUTUAL	6
-#define FF_INCOME	7
-#define FF_EXPENSE	8
-#define FF_EQUITY	9
-#define FF_CHECKING	10
-#define FF_SAVINGS	11
-#define FF_MONEYMRKT	12
-#define FF_CREDITLINE	13
-#define FF_CURRENCY	14
-
-/*******************************************************/
-
-QofBackendError
-gnc_get_binfile_io_error(void)
-{
-   /* reset the error code */
-   int rc = error_code;
-   error_code = 0;
-   return rc;
-}
-
-/*******************************************************/
-/* some endian stuff */
-
-/* if we are running on a little-endian system, we need to
- * do some endian flipping, because the xacc/gnucash native data
- * format is big-endian. In particular, Intel x86 is little-endian. */
-#if WORDS_BIGENDIAN
-  #define XACC_FLIP_DOUBLE(x)
-  #define XACC_FLIP_LONG_LONG(x) 
-  #define XACC_FLIP_INT(x) 
-  #define XACC_FLIP_SHORT(x) 
-#else
-
-/* flip endianness of int, short, etc */
-static int
-xaccFlipInt (int val) 
-{
-  guint32 flip;
-  flip = (val & 0xff000000) >> 24;
-  flip |= (val & 0xff0000) >> 8;
-  flip |= (val & 0xff00) << 8;
-  flip |= (val & 0xff) << 24;
-  return (int) flip;
-}
-
-static double
-xaccFlipDouble (double val) 
-{
-  union {
-     guint32 i[2];
-     double d;
-  } u;
-  guint32 w0, w1;
-  u.d = val;
-  w0 = xaccFlipInt (u.i[0]);
-  w1 = xaccFlipInt (u.i[1]);
-
-  u.i[0] = w1;
-  u.i[1] = w0;
-  return u.d;
-}
-
-static gint64
-xaccFlipLongLong (gint64 val) 
-{
-  union {
-     guint32 i[2];
-     gint64 d;
-  } u;
-  guint32 w0, w1;
-  u.d = val;
-  w0 = xaccFlipInt (u.i[0]);
-  w1 = xaccFlipInt (u.i[1]);
-
-  u.i[0] = w1;
-  u.i[1] = w0;
-  return u.d;
-}
-
-  #define XACC_FLIP_DOUBLE(x) { (x) = xaccFlipDouble (x); }
-  #define XACC_FLIP_LONG_LONG(x) { (x) = xaccFlipLongLong (x); }
-  #define XACC_FLIP_INT(x) { (x) = xaccFlipInt (x); }
-  #define XACC_FLIP_SHORT(x) { (x) = xaccFlipShort (x); }
-#endif /* WORDS_BIGENDIAN */
-
-
-
-/********************************************************************
- * handle legacy currencies : after we load old files, we MUST run the
- * gnucash currency conversion functions to get rid of the
- * GNC_LEGACY_CURRENCIES namespace.
- ********************************************************************/
-
-static gnc_commodity * 
-gnc_commodity_import_legacy(QofBook *book, const char * currency_name)
-{
-  gnc_commodity_table *table;
-  gnc_commodity * old = NULL;
-
-  table = gnc_book_get_commodity_table (book);
-
-  g_return_val_if_fail (table != NULL, NULL);
-
-  if(currency_name && (currency_name[0] != 0) ) {
-    old = gnc_commodity_table_lookup(table,
-                                     GNC_COMMODITY_NS_LEGACY,
-                                     currency_name);
-    
-    if(!old) {
-      old = gnc_commodity_new(book, currency_name,
-                              GNC_COMMODITY_NS_LEGACY, currency_name,
-                              0, 100000);
-      old = gnc_commodity_table_insert(table, old);
-    }
-    return old;
-  }
-  else {
-    return NULL;
-  }
-}
-
-
-/********************************************************************\
- ********************** LOAD DATA ***********************************
-\********************************************************************/
-
-gboolean gnc_is_bin_file (const gchar *name)
-{
-  int  fd, err, token;
-
-  err = 0;
-  token = 0;
-  fd = open( name, RFLAGS, 0 );
-
-  /* check for valid file descriptor */
-  if( 0 > fd ) { return FALSE; }
-
-  /* Read in the file format token */
-  err = read( fd, &token, sizeof(int) );
-  if( sizeof(int) != err ) { return FALSE; }
-  XACC_FLIP_INT (token);
-  close(fd);
-  if(token == VERSION ) { return TRUE; }
-  return FALSE;
-}
-
-/********************************************************************\
- *   reads in the data from file descriptor                         *
- *                                                                  * 
- * Args:   book -- the book in which to store the data              *
- *         fd -- the file descriptor to read the data from          * 
- * Return: the struct with the program data in it                   * 
-\********************************************************************/
-static gboolean
-gnc_load_financials_from_fd(QofBook *book, int fd)
-{
-  int  err=0;
-  int  token=0;
-  int  num_unclaimed;
-  AccountGroup *grp = 0x0;
-
-  maingrp = 0x0;
-  error_code = ERR_BACKEND_NO_ERR;
-
-  /* check for valid file descriptor */
-  if( 0 > fd ) 
-    {
-    error_code = ERR_FILEIO_FILE_NOT_FOUND;
-    return FALSE;
-    }
-
-  /* Read in the file format token */
-  err = read( fd, &token, sizeof(int) );
-  if( sizeof(int) != err ) 
-    {
-    error_code = ERR_FILEIO_FILE_EMPTY;
-    return FALSE;
-    }
-  XACC_FLIP_INT (token);
-  PINFO ("reading file version %d", token);
-  
-  /* If this is an old file, ask the user if the file
-   * should be updated */
-  if( VERSION > token ) {
-    error_code = ERR_FILEIO_FILE_TOO_OLD;
-  }
-  
-  /* If this is a newer file than we know how to deal
-   * with, warn the user */
-  if( VERSION < token ) {
-    error_code = ERR_BACKEND_TOO_NEW;
-    return FALSE;
-  }
-  
-  /* FIXME: is this OK (i.e. direct hashes for ints?) */
-  ids_to_finished_accounts = g_hash_table_new(g_direct_hash, g_direct_equal);
-  if(!ids_to_finished_accounts) {
-    error_code = ERR_BACKEND_ALLOC;
-    return FALSE;
-  }
-
-  ids_to_unfinished_accounts = g_hash_table_new(g_direct_hash, g_direct_equal);
-  if(!ids_to_unfinished_accounts) {
-    error_code = ERR_BACKEND_ALLOC;
-
-    g_hash_table_destroy(ids_to_finished_accounts);
-    ids_to_finished_accounts = NULL;
-
-    return FALSE;
-  }
-
-  potential_quotes = NULL;
-
-  /* disable logging during load; otherwise its just a mess */
-  xaccLogDisable();
-  holder = xaccMallocAccountGroup(book);
-  grp = readGroup (book, fd, NULL, token);
-
-  /* the number of unclaimed accounts should be zero if the 
-   * read succeeded.  But just in case of a very unlikely 
-   * error, try to continue anyway. */
-  num_unclaimed = xaccGroupGetNumSubAccounts (holder);
-  if (num_unclaimed) {
-    Account *acc;
-    error_code = ERR_FILEIO_FILE_BAD_READ;
-
-    /* create a lost account, put the missing accounts there */
-    acc = xaccMallocAccount(book);
-    xaccAccountBeginEdit (acc);
-    /* Translators: Name of the account where all the missing accounts
-       are put into. (FIXME: is this correct?) */
-    xaccAccountSetName (acc, _("Lost Accounts"));
-    acc -> children = holder;
-    xaccAccountCommitEdit (acc);
-    xaccGroupInsertAccount (grp, acc);
-  } else {
-    xaccFreeAccountGroup (holder);
-    holder = NULL;
-  }
-
-  maingrp = NULL;
-  g_hash_table_destroy(ids_to_finished_accounts);
-  ids_to_finished_accounts = NULL;
-  g_hash_table_destroy(ids_to_unfinished_accounts);
-  ids_to_unfinished_accounts = NULL;
-
-  {
-    GNCPriceDB *tmpdb;
-    if(!cvt_potential_prices_to_pricedb_and_cleanup(&tmpdb, book))
-    {
-      PWARN("pricedb import failed.");
-      error_code = ERR_BACKEND_MISC;
-      gnc_pricedb_destroy(tmpdb);
-    }
-  }
-
-  xaccLogEnable();
-
-  xaccSetAccountGroup(book, grp);
-
-  /* mark the newly read book as saved, since the act of putting it
-   * together will have caused it to be marked up as not-saved.  */
-  qof_book_mark_saved(book);
-
-  return (error_code == ERR_BACKEND_NO_ERR);
-}
-
-/********************************************************************\
- * xaccReadAccountGroupFile                                         * 
- *   reads in the data from file datafile                           *
- *                                                                  * 
- * Args:   datafile - the file to load the data from                * 
- * Return: the struct with the program data in it                   * 
-\********************************************************************/
-void
-qof_session_load_from_binfile(QofBook *book, const char * datafile)
-{
-  int  fd;
-
-  if(!datafile) {
-    error_code = ERR_BACKEND_MISC;
-    return;
-  }
-
-  maingrp = NULL;
-  error_code = ERR_BACKEND_NO_ERR;
-
-  fd = open( datafile, RFLAGS, 0 );
-  if( 0 > fd ) {
-    error_code = ERR_FILEIO_FILE_NOT_FOUND;
-    return;
-  }
-
-  xaccDisableDataScrubbing();
-  gnc_load_financials_from_fd(book, fd);
-  xaccEnableDataScrubbing();
-
-  close(fd);
-}
-
-/********************************************************************\
- * readGroup                                                        * 
- *   reads in a group of accounts                                   *
- *                                                                  * 
- * Args:                                                            * 
- * Return: the struct with the program data in it                   * 
-\********************************************************************/
-static AccountGroup *
-readGroup (QofBook *book, int fd, Account *aparent, int token)
-  {
-  int  numAcc;
-  int  err=0;
-  int  i;
-  AccountGroup *grp = xaccMallocAccountGroup(book);
-  
-  ENTER (" ");
-
-  if (NULL == aparent) {
-    maingrp = grp;
-  }
-
-  /* read numAccs */
-  err = read( fd, &numAcc, sizeof(int) );
-  if( sizeof(int) != err ) 
-    {
-    xaccFreeAccountGroup (grp);
-    return NULL;
-    }
-  XACC_FLIP_INT (numAcc);
-  
-  DEBUG ("expecting %d accounts", numAcc);
-
-  /* read in the accounts */
-  for( i=0; i<numAcc; i++ )
-    {
-    Account * acc = readAccount( book, fd, grp, token );
-    if( NULL == acc ) {
-      PERR("Short group read: \n"
-           "\texpected %d, got %d accounts\n",numAcc,i);
-      break;
-      }
-    }
-
-  /* if reading an account subgroup, place the subgroup
-   * into the parent account */
-  grp->parent = aparent;
-  if (aparent) {
-    aparent->children = grp;
-  }
-  return grp;
-}
-
-/********************************************************************\
- * readAccount                                                      * 
- *   reads in the data for an account from the datafile             *
- *                                                                  * 
- * Args:   book  - the top-level account object                     *
- *         fd    - the filedescriptor of the data file              * 
- *         acc   - the account structure to be filled in            *
- *         token - the datafile version                             * 
- * Return: error value, 0 if OK, else -1                            * 
-\********************************************************************/
-static Account *
-readAccount( QofBook *book, int fd, AccountGroup *grp, int token )
-{
-  int err=0;
-  int i;
-  int numTrans, accID;
-  Account *acc;
-  gnc_commodity * currency;
-  gnc_commodity * security;
-  char * tmp;
-
-  ENTER (" ");
-
-  /* version 1 does not store the account number */
-  if (1 < token) {
-    err = read( fd, &accID, sizeof(int) );
-    if( err != sizeof(int) ) { return NULL; }
-    XACC_FLIP_INT (accID);
-    acc = locateAccount (accID, book);
-    /* locateAccountAlways should always accounts that are open for
-       editing in this situation */
-  } else {
-    acc = xaccMallocAccount(book);
-    xaccGroupInsertAccount (holder, acc);
-    xaccAccountBeginEdit (acc);
-  }
-  
-  {
-    /* flags are now gone - if you need these, use kv pairs */
-    char tmpflags;
-    err = read( fd, &tmpflags, sizeof(char) );
-    if( err != sizeof(char) ) { return NULL; }
-  }
-  
-  /* if (9999>= token) */ {
-    char ff_acctype;
-    int acctype;
-    err = read( fd, &(ff_acctype), sizeof(char) );
-    if( err != sizeof(char) ) { return NULL; }
-    switch (ff_acctype) {
-      case FF_BANK: 		{ acctype = ACCT_TYPE_BANK; 		break; }
-      case FF_CASH: 		{ acctype = ACCT_TYPE_CASH; 		break; }
-      case FF_ASSET: 		{ acctype = ACCT_TYPE_ASSET; 		break; }
-      case FF_CREDIT: 		{ acctype = ACCT_TYPE_CREDIT; 		break; }
-      case FF_LIABILITY:	{ acctype = ACCT_TYPE_LIABILITY;	break; }
-      case FF_STOCK: 		{ acctype = ACCT_TYPE_STOCK; 		break; }
-      case FF_MUTUAL: 		{ acctype = ACCT_TYPE_MUTUAL; 		break; }
-      case FF_INCOME: 		{ acctype = ACCT_TYPE_INCOME; 		break; }
-      case FF_EXPENSE: 		{ acctype = ACCT_TYPE_EXPENSE; 		break; }
-      case FF_EQUITY: 		{ acctype = ACCT_TYPE_EQUITY; 		break; }
-      case FF_CHECKING: 	{ acctype = ACCT_TYPE_CHECKING; 	break; }
-      case FF_SAVINGS: 		{ acctype = ACCT_TYPE_SAVINGS; 		break; }
-      case FF_MONEYMRKT: 	{ acctype = ACCT_TYPE_MONEYMRKT; 	break; }
-      case FF_CREDITLINE: 	{ acctype = ACCT_TYPE_CREDITLINE; 	break; }
-      case FF_CURRENCY: 	{ acctype = ACCT_TYPE_CURRENCY;		break; }
-      default: return NULL;
-    }
-    xaccAccountSetType (acc, acctype);
-  }
-  
-  tmp = readString( fd, token );
-  if( NULL == tmp) return NULL;
-  DEBUG ("reading acct %s", tmp);
-  xaccAccountSetName (acc, tmp);
-  g_free (tmp);
-
-  if (8 <= token) {
-     tmp = readString( fd, token );
-     if( NULL == tmp) return NULL;
-     xaccAccountSetCode (acc, tmp);
-     g_free (tmp);
-  }
-  
-  tmp = readString( fd, token );
-  if( NULL == tmp ) return NULL;
-  xaccAccountSetDescription (acc, tmp);
-  g_free (tmp);
-  
-  tmp = readString( fd, token );
-  if( NULL == tmp ) return NULL;
-  if(strlen(tmp) > 0) {
-    xaccAccountSetNotes (acc, tmp);
-  }
-  g_free (tmp);
-  
-  /* currency and security strings first introduced 
-   * in version 7 of the file format */
-  if (7 <= token) {
-     tmp = readString( fd, token );
-     if( NULL == tmp ) return NULL;
-     
-     PINFO ("currency is %s", tmp);
-     currency = gnc_commodity_import_legacy(book, tmp);
-     DxaccAccountSetCurrency (acc, currency);
-     
-     if(tmp) g_free (tmp);
-
-     tmp = readString( fd, token );
-
-     if (!tmp || *tmp == '\0')
-     {
-         if (xaccAccountIsPriced(acc)) {
-             if (tmp) g_free (tmp);
-
-             tmp = strdup (xaccAccountGetName (acc));
-             if (tmp == NULL) return NULL;
-        }
-     }
-
-     PINFO ("security is %s", tmp);
-     security = gnc_commodity_import_legacy(book, tmp);
-     DxaccAccountSetSecurity (acc, security);
-
-     if(tmp) g_free (tmp);
-  } 
-  else {
-    /* set the default currency when importing old files */
-    currency = gnc_commodity_import_legacy(book, DEFAULT_CURRENCY);
-    DxaccAccountSetCurrency (acc, currency);
-  }
-
-  /* aux account info first appears in version ten files */
-  if (10 <= token) {
-    if(!readAccInfo(fd, acc, token)) {
-      return(NULL);
-    }
-  }
-
-  err = read( fd, &numTrans, sizeof(int) );
-  if( err != sizeof(int) ) { return NULL; }
-  XACC_FLIP_INT (numTrans);
-  
-  DEBUG ("expecting %d transactions", numTrans);
-  /* read the transactions */
-  for( i=0; i<numTrans; i++ ) {
-    Transaction *trans;
-    trans = readTransaction(book, fd, acc, token );
-    if(trans == NULL ) {
-      PERR ("Short Transaction Read: \n"
-            "\texpected %d got %d transactions \n", numTrans, i);
-      break;
-    }
-  }
-  
-  /* Not needed now.  Since we always look in ids_to_finished_accounts
-   * first, it doesn't matter if we don't ever delete anything from
-   * unfinished_accounts...
-   *
-   *  springAccount (acc->id); */
-
-  xaccGroupInsertAccount (grp, acc);
-
-  /* version 4 is the first file version that introduces
-   * sub-accounts */
-  if (4 <= token) {
-    int numGrps;
-    err = read( fd, &numGrps, sizeof(int) );
-    if( err != sizeof(int) ) { 
-       return NULL; 
-    }
-    XACC_FLIP_INT (numGrps);
-    if (numGrps) {
-       readGroup (book, fd, acc, token);
-    }
-  }
-
-  xaccAccountCommitEdit (acc);
-
-  return acc;
-}
-
-/********************************************************************\
- * locateAccount
- *
- * With the double-entry system, the file may reference accounts that
- * have not yet been read or properly parented.  Thus, we need a way
- * of dealing with this, and this routine performs this
- * work. Basically, accounts are requested by their id.  If an account
- * with the indicated ID does not exist, it is created and placed in a
- * temporary hash.  Accounts in the temp hash can be located, (so that
- * transactions can be added to them) and sprung (so that they can be
- * properly parented into a group).
- *
- * Also, if locate account creates a new account, it'll be open for
- * editing.
- */
-
-static Account *
-locateAccount (int acc_id, QofBook *book)
-{
-   Account * acc;
-   /* negative account ids denote no account */
-   if (0 > acc_id) return NULL;   
-
-   /* first, see if we've already created the account */
-   acc = (Account *) g_hash_table_lookup(ids_to_finished_accounts,
-                                         GINT_TO_POINTER(acc_id));
-   if (acc) return acc;
-
-   /* next, see if its an unclaimed account */
-   acc = (Account *) g_hash_table_lookup(ids_to_unfinished_accounts,
-                                         GINT_TO_POINTER(acc_id));
-   if (acc) return acc;
-
-   /* if neither, then it does not yet exist.  Create it.
-    * Put it in the drunk tank. */
-   acc = xaccMallocAccount (book);
-   xaccAccountBeginEdit(acc);
-   g_hash_table_insert(ids_to_unfinished_accounts,
-                       GINT_TO_POINTER(acc_id),
-                       (gpointer) acc);
-   return acc;
-}
-
-/********************************************************************\
- * readAccInfo                                                      * 
- *   reads in the auxilliary account info                           *
- *                                                                  * 
- * Args:   fd    - the filedescriptor of the data file              * 
- *         token - the datafile version                             * 
- * Return: the accinfo structure                                    * 
-\********************************************************************/
-
-static gboolean
-readAccInfo(int fd, Account *acc, int token) {
-
-  /* The only data that was ever stored in the account info was a
-     price src if it was an investment account.  The AccInfo
-     abstraction has been abandoned, and all that stuff will soon be
-     handled by other means, so we're just going to cram pricesrc into
-     the account kv table for now... */
-
-  GNCAccountType acc_type;
-  
-  if(!acc) return(FALSE);
-
-  acc_type = xaccAccountGetType(acc);
-  if ((acc_type == ACCT_TYPE_STOCK) || (acc_type == ACCT_TYPE_MUTUAL)) {
-    const char *tmp = readString( fd, token );
-    if(NULL == tmp) return(FALSE);
-    if(strlen(tmp) > 0) dxaccAccountSetPriceSrc(acc, tmp);
-    g_free((char *) tmp);
-  }
-  return(TRUE);
-}
-
-static void
-xaccTransSetMemo (Transaction *trans, const char *memo)
-{
-  Split *s;
-
-  if (!trans || !memo) return;
-
-  s = xaccTransGetSplit (trans, 0);
-  xaccSplitSetMemo (s, memo);
-
-  if (xaccTransCountSplits (trans) != 2)
-    return;
-
-  s = xaccTransGetSplit (trans, 1);
-  xaccSplitSetMemo (s, memo);
-}
-
-static void
-xaccTransSetAction (Transaction *trans, const char *action)
-{
-  Split *s;
-
-  if (!trans || !action) return;
-
-  s = xaccTransGetSplit (trans, 0);
-  xaccSplitSetAction (s, action);
-
-  if (xaccTransCountSplits (trans) != 2)
-    return;
-
-  s = xaccTransGetSplit (trans, 1);
-  xaccSplitSetAction (s, action);
-}
-
-/********************************************************************\
- * readTransaction                                                  * 
- *   reads in the data for a transaction from the datafile          *
- *                                                                  * 
- * Args:   fd    - the filedescriptor of the data file              * 
- *         token - the datafile version                             * 
- * Return: the transaction structure                                * 
-\********************************************************************/
-
-static Transaction *
-readTransaction(QofBook *book, int fd, Account *acc, int revision)
-  {
-  int err=0;
-  int acc_id;
-  int i;
-  int dummy_category;
-  int numSplits;
-  Transaction *trans = 0x0;
-  char *tmp;
-  char recn;
-  double num_shares = 0.0;
-  double share_price = 0.0;
-
-  ENTER (" ");
-
-  /* create a transaction structure */
-  trans = xaccMallocTransaction(book);
-  xaccTransBeginEdit (trans);  
-
-  tmp = readString( fd, revision );
-  if (NULL == tmp)
-    {
-    PERR ("Premature end of Transaction at num");
-    xaccTransDestroy(trans);
-    xaccTransCommitEdit (trans);
-    return NULL;
-    }
-  xaccTransSetNum (trans, tmp);
-  g_free (tmp);
-  
-  if (revision <= 7) {
-     time_t secs;
-     secs = readDMYDate( fd, revision );
-     if( 0 == secs )
-       {
-       PERR ("Premature end of Transaction at date");
-       xaccTransDestroy(trans);
-       xaccTransCommitEdit (trans);
-       return NULL;
-       }
-     xaccTransSetDateSecs (trans, secs);
-     xaccTransSetDateEnteredSecs (trans, secs);
-  } else  {
-     Timespec ts;
-     int rc;
-
-     /* read posted date first ... */
-     rc = readTSDate( fd, &ts, revision );
-     if( -1 == rc )
-       {
-       PERR ("Premature end of Transaction at date");
-       xaccTransDestroy(trans);
-       xaccTransCommitEdit (trans);
-       return NULL;
-       }
-     xaccTransSetDatePostedTS (trans, &ts);
-
-     /* then the entered date ... */
-     rc = readTSDate( fd, &ts, revision );
-     if( -1 == rc )
-       {
-       PERR ("Premature end of Transaction at date");
-       xaccTransDestroy(trans);
-       xaccTransCommitEdit (trans);
-       return NULL;
-       }
-     xaccTransSetDateEnteredTS (trans, &ts);
-  }
-  
-  tmp = readString( fd, revision );
-  if( NULL == tmp )
-    {
-    PERR ("Premature end of Transaction at description");
-    xaccTransDestroy(trans);
-    xaccTransCommitEdit (trans);
-    return NULL;
-    }
-  PINFO ("description=%s", tmp);
-  xaccTransSetDescription (trans, tmp);
-  g_free (tmp);
-  
-  /* docref first makes an appearance in version 8.  They're now
-     deprecated, and we don't think anyone ever used them anyway, but
-     to be safe, if we find one, we store it in the old-docref slot, a
-     la old-price-source. */
-  if (revision >= 8) {
-     tmp = readString( fd, revision );
-     if( NULL == tmp ) {
-       PERR ("Premature end of Transaction at docref");
-       xaccTransDestroy(trans);
-       xaccTransCommitEdit (trans);
-       return NULL;
-     }
-     if(strlen(tmp) > 0) {
-       kvp_value *new_value = kvp_value_new_string(tmp);
-       if(!new_value) {
-         PERR ("Failed to allocate kvp_value for transaction docref.");
-         g_free(tmp);
-         return(NULL);
-       }
-       kvp_frame_set_slot_nc(xaccTransGetSlots(trans), "old-docref", new_value);
-     }
-     g_free (tmp);
-  }
-
-  /* At version 5, most of the transaction stuff was 
-   * moved to splits. Thus, vast majority of stuff below 
-   * is skipped 
-   */
-  if (revision <= 4) { 
-    Split* s;
-
-    tmp = readString( fd, revision );
-    if( NULL == tmp )
-      {
-      PERR ("Premature end of Transaction at memo");
-      xaccTransDestroy(trans);
-      xaccTransCommitEdit (trans);
-      return NULL;
-      }
-
-    if(strlen(tmp) > 0) {
-      xaccTransSetMemo (trans, tmp);
-    }
-    g_free (tmp);
-    
-    /* action first introduced in version 3 of the file format */
-    if (revision >= 3) 
-       {
-       tmp = readString( fd, revision );
-       if( NULL == tmp )
-         {
-         PERR ("Premature end of Transaction at action");
-         xaccTransDestroy (trans);
-         xaccTransCommitEdit (trans);
-         return NULL;
-         }
-       xaccTransSetAction (trans, tmp);
-       g_free (tmp);
-      }
-    
-    /* category is now obsolete */
-    err = read( fd, &(dummy_category), sizeof(int) );
-    if( sizeof(int) != err )
-      {
-      PERR ("Premature end of Transaction at category");
-      xaccTransDestroy (trans);
-      xaccTransCommitEdit (trans);
-      return NULL;
-      }
-    
-    err = read( fd, &recn, sizeof(char) );
-    if( sizeof(char) != err )
-      {
-      PERR ("Premature end of Transaction at reconciled");
-      xaccTransDestroy(trans);
-      xaccTransCommitEdit (trans);
-      return NULL;
-      }
-
-    /* The code below really wants to assume that there are a pair
-     * of splits in every transaction, so make it so. 
-     */
-    s = xaccMallocSplit (book);
-    xaccTransAppendSplit (trans, s);
-    s = xaccMallocSplit (book);
-    xaccTransAppendSplit (trans, s);
-    
-    s = xaccTransGetSplit (trans, 0);
-    xaccSplitSetReconcile (s, recn);
-    s = xaccTransGetSplit (trans, 1);
-    xaccSplitSetReconcile (s, recn);
-
-    if(revision <= 1) {
-      /* Note: this is for version 0 of file format only.
-       * What used to be reconciled, is now cleared... transactions
-       * aren't reconciled until you get your bank statement, and
-       * use the reconcile window to mark the transaction reconciled
-       */
-      if( YREC == recn ) {
-        s = xaccTransGetSplit (trans, 0);
-        xaccSplitSetReconcile (s, CREC);
-        s = xaccTransGetSplit (trans, 1);
-        xaccSplitSetReconcile (s, CREC);
-      }
-    }
-  
-    /* Version 1 files stored the amount as an integer,
-     * with the amount recorded as pennies.
-     * Version 2 and above store the share amounts and 
-     * prices as doubles. */
-    if (1 == revision) {
-      int amount;
-      
-      err = read( fd, &amount, sizeof(int) );
-      if( sizeof(int) != err )
-        {
-        PERR ("Premature end of Transaction at V1 amount");
-        xaccTransDestroy(trans);
-        xaccTransCommitEdit (trans);
-        return NULL;
-        }
-      XACC_FLIP_INT (amount);
-      num_shares = 0.01 * ((double) amount); /* file stores pennies */
-      s = xaccTransGetSplit (trans, 0);
-      DxaccSplitSetShareAmount (s, num_shares);
-
-      /* Version 1 files did not do double-entry */
-      s = xaccTransGetSplit (trans, 0);
-      xaccAccountInsertSplit( acc, s );
-    } else {
-      Account *peer_acc;
-      double damount;
-  
-      /* first, read number of shares ... */
-      err = read( fd, &damount, sizeof(double) );
-      if( sizeof(double) != err )
-        {
-        PERR ("Premature end of Transaction at amount");
-        xaccTransDestroy(trans);
-        xaccTransCommitEdit (trans);
-        return NULL;
-        }
-      XACC_FLIP_DOUBLE (damount);
-      num_shares  = damount;
-  
-      /* ... next read the share price ... */
-      err = read( fd, &damount, sizeof(double) );
-      if( err != sizeof(double) )
-        {
-        PERR ("Premature end of Transaction at share_price");
-        xaccTransDestroy(trans);
-        xaccTransCommitEdit (trans);
-        return NULL;
-        }
-      XACC_FLIP_DOUBLE (damount);
-      share_price = damount;
-      s = xaccTransGetSplit (trans, 0);
-
-      DxaccSplitSetSharePriceAndAmount (s, share_price, num_shares);
-
-      /* Read the account numbers for double-entry */
-      /* These are first used in Version 2 of the file format */
-      
-      /* first, read the credit account number */
-      err = read( fd, &acc_id, sizeof(int) );
-      if( err != sizeof(int) )
-        {
-        PERR ("Premature end of Transaction at credit");
-        xaccTransDestroy (trans);
-        xaccTransCommitEdit (trans);
-        return NULL;
-        }
-      XACC_FLIP_INT (acc_id);
-      DEBUG ("credit %d\n", acc_id);
-      peer_acc = locateAccount (acc_id, book);
-  
-      /* insert the split part of the transaction into 
-       * the credited account */
-      s = xaccTransGetSplit (trans, 0);
-      if (peer_acc) xaccAccountInsertSplit( peer_acc, s);
-  
-      mark_potential_quote(s, share_price, num_shares);
-
-      /* next read the debit account number */
-      err = read( fd, &acc_id, sizeof(int) );
-      if( err != sizeof(int) )
-        {
-        PERR ("Premature end of Transaction at debit");
-        xaccTransDestroy(trans);
-        xaccTransCommitEdit (trans);
-        return NULL;
-        }
-      XACC_FLIP_INT (acc_id);
-      DEBUG ("debit %d\n", acc_id);
-      peer_acc = locateAccount (acc_id, book);
-      if (peer_acc) {
-         Split *s0 = xaccTransGetSplit (trans, 0);
-         Split *s1 = xaccTransGetSplit (trans, 1);
-         
-         /* duplicate many of the attributes in the credit split */
-         DxaccSplitSetSharePriceAndAmount (s1, share_price, -num_shares);
-         xaccSplitSetReconcile (s1, xaccSplitGetReconcile (s0));
-         xaccSplitSetMemo (s1, xaccSplitGetMemo (s0));
-         xaccSplitSetAction (s1, xaccSplitGetAction (s0));
-         xaccAccountInsertSplit (peer_acc, s1);
-         mark_potential_quote(s1, share_price, -num_shares);
-      }
-    }
-  } else { /* else, read version 5 and above files */
-
-    const char *notes = NULL;
-
-    if (revision == 5) {
-      /* Version 5 files included a split that immediately
-       * followed the transaction, before the destination splits.
-       * Later versions don't have this. */
-      Split *split = readSplit (book, fd, revision);
-      xaccTransAppendSplit(trans, split);
-    }
-    
-    /* read number of splits */
-    err = read( fd, &(numSplits), sizeof(int) );
-    if( err != sizeof(int) ) {
-      PERR ("Premature end of Transaction at num-splits");
-      xaccTransDestroy(trans);
-      xaccTransCommitEdit (trans);
-      return NULL;
-    }
-    XACC_FLIP_INT (numSplits);
-    for (i = 0; i < numSplits; i++) {
-      Split *split = readSplit(book, fd, revision);
-      xaccTransAppendSplit(trans, split);
-      
-      if(!notes) {
-        notes = xaccSplitGetMemo (split);
-        if(notes) xaccTransSetNotes (trans, notes);
-      }
-    }
-  }
-
-  xaccTransCommitEdit (trans);  
-
-  return trans;
-}
-
-/********************************************************************\
- * readSplit                                                        * 
- *   reads in the data for a split from the datafile                *
- *                                                                  * 
- * Args:   fd    - the filedescriptor of the data file              * 
- *         token - the datafile version                             * 
- * Return: the transaction structure                                * 
-\********************************************************************/
-
-static Split *
-readSplit ( QofBook *book, int fd, int token )
-{
-  Account *peer_acc;
-  Split *split;
-  int err=0;
-  int acc_id;
-  char *tmp;
-  char recn;
-  double num_shares, share_price;
-
-  ENTER (" ");
-
-  /* create a split structure */
-  split = xaccMallocSplit(book);
-
-  tmp = readString( fd, token );
-  if( NULL == tmp )
-    {
-    PERR ("Premature end of Split at memo");
-    xaccSplitDestroy(split);
-    return NULL;
-    }
-  PINFO ("memo=%s", tmp);
-  xaccSplitSetMemo (split, tmp);
-  g_free (tmp);
-  
-  tmp = readString( fd, token );
-  if( tmp == NULL )
-    {
-    PERR ("Premature end of Split at action");
-    xaccSplitDestroy (split);
-    return NULL;
-    }
-  xaccSplitSetAction (split, tmp);
-  g_free (tmp);
-  
-  err = read( fd, &recn, sizeof(char) );
-  if( err != sizeof(char) )
-    {
-    PERR ("Premature end of Split at reconciled");
-    xaccSplitDestroy (split);
-    return NULL;
-    }
-  
-  /* make sure the value of split->reconciled is valid...
-   * Do this mainly in case we change what NREC and
-   * YREC are defined to be... this way it might loose all
-   * the reconciled data, but at least the field is valid */
-  if( (YREC != recn) && 
-      (FREC != recn) &&
-      (CREC != recn) ) {
-    recn = NREC;
-  }
-  xaccSplitSetReconcile (split, recn);
-
-  /* version 8 and newer files store date-reconciled */ 
-  if (8 <= token)  {
-     Timespec ts;
-     int rc;
-
-     rc = readTSDate( fd, &ts, token );
-     if( -1 == rc )
-       {
-       PERR ("Premature end of Split at date");
-       xaccSplitDestroy (split);
-       return NULL;
-       }
-     xaccSplitSetDateReconciledTS (split, &ts);
-  } else {
-     time_t now;
-     now = time (0);
-     xaccSplitSetDateReconciledSecs (split, now);
-  }
-
-  /* docref first makes an appearance in version 8.  They're now
-     deprecated, and we don't think anyone ever used them anyway, but
-     to be safe, if we find one, we store it in the old-docref slot, a
-     la old-price-source. */
-  if (8 <= token) {
-     tmp = readString( fd, token );
-     if( NULL == tmp ) {
-       PERR ("Premature end of Split at docref");
-       xaccSplitDestroy (split);
-       return NULL;
-     }
-     if(strlen(tmp) > 0) {
-       kvp_value *new_value = kvp_value_new_string(tmp);
-       if(!new_value) {
-         PERR ("Failed to allocate kvp_value for split docref.");
-         g_free(tmp);
-         return(NULL);
-       }
-       kvp_frame_set_slot_nc(xaccSplitGetSlots(split), "old-docref", new_value);
-     }
-     g_free (tmp);
-  }
-
-  /* first, read number of shares ... */
-  err = read( fd, &num_shares, sizeof(double) );
-  if( sizeof(double) != err )
-    {
-    PERR ("Premature end of Split at amount");
-    xaccSplitDestroy (split);
-    return NULL;
-    }
-  XACC_FLIP_DOUBLE (num_shares);
-
-  /* ... next read the share price ... */
-  err = read( fd, &share_price, sizeof(double) );
-  if( sizeof(double) != err )
-  {
-    PERR ("Premature end of Split at share_price");
-    xaccSplitDestroy (split);
-    return NULL;
-  }
-  XACC_FLIP_DOUBLE (share_price);
-
-  DxaccSplitSetSharePriceAndAmount (split, share_price, num_shares);
-
-  DEBUG ("num_shares %f", num_shares);
-
-  /* Read the account number */
-
-  err = read( fd, &acc_id, sizeof(int) );
-  if( sizeof(int) != err )
-  {
-    PERR ("Premature end of Split at account");
-    xaccSplitDestroy (split);
-    return NULL;
-  }
-  XACC_FLIP_INT (acc_id);
-  DEBUG ("account id %d", acc_id);
-  peer_acc = locateAccount (acc_id, book);
-  xaccAccountInsertSplit (peer_acc, split);
-
-  mark_potential_quote(split, share_price, num_shares);
-  return split;
-}
-
-/********************************************************************\
- * readString                                                       * 
- *   reads in a string (char *) from the datafile                   *
- *                                                                  * 
- * Args:   fd    - the filedescriptor of the data file              * 
- *         token - the datafile version                             * 
- * Return: the string                                               * 
-\********************************************************************/
-static char *
-readString( int fd, int token )
-  {
-  int  err=0;
-  int  size;
-  char *str;
-  
-  err = read( fd, &size, sizeof(int) );
-  if( err != sizeof(int) )
-    return NULL;
-  XACC_FLIP_INT (size);
-  
-  str = (char *) g_malloc (size);
-  if (!str) {
-    PERR("malloc failed on size %d bytes at position %ld\n", size,
-         (long int) lseek(fd, 0, SEEK_CUR));
-    return NULL;
-  }
-  err = read( fd, str, size );
-  if( err != size )
-    {
-    PERR("size = %d err = %d str = %s\n", size, err, str );
-    g_free(str);
-    return NULL;
-    }
-  
-  return str;
-  }
-
-/********************************************************************\
- * readTSDate                                                       * 
- *   reads in a Date struct from the datafile                       *
- *                                                                  * 
- * Args:   fd    - the filedescriptor of the data file              * 
- *         token - the datafile version                             * 
- * Return: the Date struct                                          * 
-\********************************************************************/
-static int
-readTSDate( int fd, Timespec *ts, int token )
-  {
-  int  err=0;
-  gint64 secs = 0;   /* 64-bit int */
-  gint32 nsecs = 0;
-  
-  /* secs is a 32-bit in in version 8 & earlier files, 
-   * and goes 64-bit in the later files */
-  if (8 >= token) 
-    {
-    gint32 sicks;
-    err = read( fd, &sicks, sizeof(gint32) );
-    if( err != sizeof(gint32) )
-      {
-      return -1;
-      }
-    XACC_FLIP_INT (sicks);
-    secs = sicks;
-    } 
-  else 
-    {
-    err = read( fd, &secs, sizeof(gint64) );
-    if( err != sizeof(gint64) )
-      {
-      return -1;
-      }
-    XACC_FLIP_LONG_LONG (secs);
-    }
-  
-  err = read( fd, &nsecs, sizeof(gint32) );
-  if( err != sizeof(gint32) )
-    {
-    return -1;
-    }
-  XACC_FLIP_INT (nsecs);
-
-  ts->tv_sec = secs;
-  ts->tv_nsec = nsecs;
-  
-  return 2*err;
-  }
-
-/********************************************************************\
- * readDMYDate                                                      * 
- *   reads in a Date struct from the datafile                       *
- *                                                                  * 
- * Args:   fd    - the filedescriptor of the data file              * 
- *         token - the datafile version                             * 
- * Return: the Date struct                                          * 
-\********************************************************************/
-static time_t
-readDMYDate( int fd, int token )
-  {
-  int  err=0;
-  int day, month, year;
-  time_t secs;
-  
-  err = read( fd, &year, sizeof(int) );
-  if( err != sizeof(int) )
-    {
-    return 0;
-    }
-  XACC_FLIP_INT (year);
-  
-  err = read( fd, &month, sizeof(int) );
-  if( err != sizeof(int) )
-    {
-    return 0;
-    }
-  XACC_FLIP_INT (month);
-  
-  err = read( fd, &day, sizeof(int) );
-  if( err != sizeof(int) )
-    {
-    return 0;
-    }
-  XACC_FLIP_INT (day);
-  
-  secs = xaccDMYToSec (day, month, year);
-  return secs;
-  }
-
-
-/*********************** END OF FILE *********************************/

Deleted: gnucash/branches/gda-dev/src/backend/file/io-gncbin.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-gncbin.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-gncbin.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,64 +0,0 @@
-/********************************************************************\
- * io-gncbin.h -- read (old X-Accountant format) binary datafile    *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
- *   Author: Rob Clark                                              *
- * Internet: rclark at cs.hmc.edu                                      *
- *  Address: 609 8th Street                                         *
- *           Huntington Beach, CA 92648-4632                        *
-\********************************************************************/
-
-#ifndef IO_GNCBIN_H
-#define IO_GNCBIN_H
-
-#include "qof.h"
-
-/* @file io-gncbin.h
- * @brief read (old X-Accountant format) binary datafile
- * @author Copyright (C) 1997 Robin D. Clark
- * @author Copyright (C) 1998, 1999 Linas Vepstas <linas at linas.org>
-
-  @note These routines should not be used directly for file IO.  They
-    are not inherently safe against file-locking errors.  For direct
-    file IO, the QofBook's higher level functions should be used.
-*/
-/** Load the financial data represented by the book's file_path
-into the indicated book.*/
-void            qof_session_load_from_binfile(QofBook *, const char * filepath);
-
-/** Error handler.
-
-\return an error code for any error
-  detected that occured during reading or writing.
- 
-The error code will be reset after the call.
-  
- The current implementation can be
- thought of as a "stack of depth one", and this routine as a "pop".
-*/
-QofBackendError gnc_get_binfile_io_error(void);
-
-/** \brief Attempt to identify the binary format.
-
-Instead of assuming that anything not v1 or v2 XML is the gnc
-binary format, this function tries to load the version token
-from the file.
-*/
-gboolean gnc_is_bin_file (const gchar *name);
-
-#endif /* IO_GNCBIN_H */

Modified: gnucash/branches/gda-dev/src/backend/file/io-gncxml-v1.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-gncxml-v1.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-gncxml-v1.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,8 +35,6 @@
 #include "gnc-xml-helper.h"
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "Query.h"
 #include "QueryP.h"
 #include "Scrub.h"
@@ -95,8 +93,8 @@
   /* The book */
   QofBook *book;
 
-  /* The account group */
-  AccountGroup *account_group;
+  /* The root account */
+  Account *root_account;
 
   /* The pricedb */
   GNCPriceDB *pricedb;
@@ -222,7 +220,7 @@
    -----------
    start: NA
    before-child: make sure we don't get two ledger-data's (not allowed ATM).
-   after-child: if a ledger-data child, parse_data->account_group = *result.
+   after-child: if a ledger-data child, parse_data->root_account = *result.
    characters: allow_and_ignore_only_whitespace
 
    Similarly, only one query is allowed ... 
@@ -252,7 +250,7 @@
   g_return_val_if_fail(pstatus, FALSE);
 
   if(strcmp(child_tag, "ledger-data") == 0) {
-    if(pstatus->account_group) {
+    if(pstatus->root_account) {
       return(FALSE);
     }
   }
@@ -283,7 +281,7 @@
   {
     g_return_val_if_fail(child_result, FALSE);
     g_return_val_if_fail(child_result->data, FALSE);
-    pstatus->account_group = (AccountGroup *) child_result->data;
+    pstatus->root_account = (Account *) child_result->data;
     child_result->should_cleanup = FALSE;
   }
 
@@ -345,7 +343,7 @@
 
   global_parse_status->seen_version = FALSE;
   global_parse_status->gnc_parser = gnc_pr;
-  global_parse_status->account_group = NULL;
+  global_parse_status->root_account = NULL;
   global_parse_status->pricedb = NULL;
   //  global_parse_status->query = NULL;
   global_parse_status->error = GNC_PARSE_ERR_NONE;
@@ -362,6 +360,7 @@
   gpointer parse_result = NULL;
   sixtp *top_level_pr;
   GNCParseStatus global_parse_status;
+  Account *root;
 
   global_parse_status.book = book;
   g_return_val_if_fail(book, FALSE);
@@ -382,15 +381,16 @@
 
   if(parse_ok) 
   {
-    if(!global_parse_status.account_group) return FALSE;
+    if(!global_parse_status.root_account) return FALSE;
 
-    xaccSetAccountGroup(book, global_parse_status.account_group);
+    root = global_parse_status.root_account;
+    gnc_book_set_root_account(book, root);
 
     /* Fix account and transaction commodities */
-    xaccGroupScrubCommodities (gnc_book_get_group(book));
+    xaccAccountTreeScrubCommodities (root);
 
     /* Fix split amount/value */
-    xaccGroupScrubSplits (gnc_book_get_group(book));
+    xaccAccountTreeScrubSplits (root);
 
     return(TRUE);
   } else {
@@ -1079,18 +1079,18 @@
 /****************************************************************************/
 /* <ledger-data> (parent <gnc-data>)
 
-   On failure or on normal cleanup, the account group will be killed,
+   On failure or on normal cleanup, the root account will be killed,
    so if you want it, you better set should_cleanup to false
 
    input: NA
-   to-children-via-*result: new AccountGroup*
-   returns: an AccountGroup*
-   start: creates the account group and puts it into *result
+   to-children-via-*result: new root Account*
+   returns: an Account*
+   start: creates the root account and puts it into *result
    characters: NA
-   end: finishes up the account group and leaves it in result.
-   cleanup-result: deletes the account group (use should_cleanup to avoid).
+   end: finishes up the root account and leaves it in result.
+   cleanup-result: deletes the root account (use should_cleanup to avoid).
    cleanup-chars: NA
-   fail: deletes the account group in *result.
+   fail: deletes the root account in *result.
    result-fail: same as cleanup-result.
    chars-fail: NA
 
@@ -1103,16 +1103,16 @@
                           gpointer *result, const gchar *tag, gchar **attrs)
 {
   GNCParseStatus *pstatus = (GNCParseStatus *) global_data;
-  AccountGroup *ag;
+  Account *ra;
 
   /* disable logging during load; otherwise its just a mess */
   xaccLogDisable();
-  ag = xaccMallocAccountGroup(pstatus->book);
+  ra = xaccMallocAccount(pstatus->book);
 
-  g_return_val_if_fail(ag, FALSE);
+  g_return_val_if_fail(ra, FALSE);
 
-  *data_for_children = ag;
-  return(ag != NULL);
+  *data_for_children = ra;
+  return(ra != NULL);
 }
 
 static gboolean
@@ -1154,23 +1154,21 @@
                         gpointer *result, const gchar *tag)
 {
   
-  AccountGroup *ag = (AccountGroup *) data_for_children;
+  Account *ra = (Account *) data_for_children;
+  GList *descendants;
 
-  g_return_val_if_fail(ag, FALSE);
+  g_return_val_if_fail(ra, FALSE);
 
-  /* mark the newly read group as saved, since the act of putting 
-   * it together will have caused it to be marked up as not-saved. 
-   */
-  xaccGroupMarkSaved (ag);
-
-  /* commit all groups, this completes the BeginEdit started when the
+  /* commit all accounts, this completes the BeginEdit started when the
    * account_end_handler finished reading the account.
    */
-  xaccAccountGroupCommitEdit (ag);
+  descendants = gnc_account_get_descendants(ra);
+  g_list_foreach(descendants, (GFunc)xaccAccountCommitEdit, NULL);
+  g_list_free(descendants);
 
   xaccLogEnable();
 
-  *result = ag;
+  *result = ra;
   return(TRUE);
 }
 
@@ -1183,22 +1181,22 @@
                          gpointer *result,
                          const gchar *tag)
 {
-  AccountGroup *ag = (AccountGroup *) data_for_children;
-  if(ag) 
+  Account *account = (Account *) data_for_children;
+  if (account)
   {
-    xaccAccountGroupBeginEdit(ag);
-    xaccAccountGroupDestroy(ag);
+    xaccAccountBeginEdit(account);
+    xaccAccountDestroy(account);
   }
 }
 
 static void
 ledger_data_result_cleanup(sixtp_child_result *cr)
 {
-  AccountGroup *ag = (AccountGroup *) cr->data;
-  if(ag) 
+  Account *account = (Account *) cr->data;
+  if (account)
   {
-    xaccAccountGroupBeginEdit(ag);
-    xaccAccountGroupDestroy(ag);
+    xaccAccountBeginEdit(account);
+    xaccAccountDestroy(account);
   }
 }
 
@@ -1245,9 +1243,9 @@
    to its children.  It generates no data of its own, so it doesn't
    need any cleanup.
 
-   input: AccountGroup*
+   input: Account*
 
-   to-children-via-*result: AccountGroup*
+   to-children-via-*result: Account*
 
    returns: NA
    
@@ -1291,7 +1289,7 @@
    if the resultant account is OK, and if so, we add it to the
    ledger-data's account group.
  
-   input: AccountGroup*
+   input: Account*
    to-children-via-*result: new Account*
    returns: NA
    start: create new Account*, and leave in for children.
@@ -1331,21 +1329,19 @@
                             gpointer parent_data, gpointer global_data,
                             gpointer *result, const gchar *tag)
 {
-  AccountGroup *ag = (AccountGroup *) parent_data;
+  Account *parent = (Account *) parent_data;
   Account *acc = (Account *) *result;
-  AccountGroup *parent_ag;
 
-  g_return_val_if_fail((ag && acc), FALSE);
+  g_return_val_if_fail((parent && acc), FALSE);
 
   /* CHECKME: do we need to xaccAccountRecomputeBalance(acc) here? */
   xaccAccountCommitEdit(acc);
 
   /* If the account doesn't have a parent yet, just cram it into the
      top level */
-  parent_ag = xaccAccountGetParent(acc);
+  if (!gnc_account_get_parent(acc))
+    gnc_account_append_child(parent, acc);
 
-  if(!parent_ag) xaccGroupInsertAccount(ag, acc);
-
   *result = NULL;
 
   /* Now return the account to the "edit" state.  At the end of reading
@@ -1713,7 +1709,7 @@
   
   g_return_val_if_fail(parent, FALSE);
 
-  xaccAccountInsertSubAccount(parent, acc);
+  gnc_account_append_child(parent, acc);
 
   return(TRUE);
 }
@@ -2682,9 +2678,9 @@
    to its children.  It generates no data of its own, so it doesn't
    need any cleanup.
 
-   input: AccountGroup*
+   input: Account*
 
-   to-children-via-*result: AccountGroup*
+   to-children-via-*result: Account*
 
    returns: NA
    
@@ -2724,7 +2720,7 @@
    see if the resultant account is OK, and if so, we add it to the
    ledger-data's account group.
  
-   from parent: AccountGroup*
+   from parent: Account*
 
    for children: new Transaction*
 
@@ -2772,11 +2768,11 @@
                         gpointer parent_data, gpointer global_data,
                         gpointer *result, const gchar *tag)
 {
-  AccountGroup *ag = (AccountGroup *) parent_data;
+  Account *parent = (Account *) parent_data;
   Transaction *trans = (Transaction *) data_for_children;
 
   g_return_val_if_fail(trans, FALSE);
-  if(!ag) {
+  if (!parent) {
     xaccTransDestroy(trans);
     xaccTransCommitEdit(trans);
     return(FALSE);

Modified: gnucash/branches/gda-dev/src/backend/file/io-gncxml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-gncxml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-gncxml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -22,20 +22,15 @@
 #include "config.h"
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <fcntl.h>
 #include <string.h>
 #include <unistd.h>
 #include <zlib.h>
 #include <errno.h>
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
 
 #include "gnc-engine.h"
 #include "gnc-pricedb-p.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "Scrub.h"
 #include "SX-book.h"
 #include "SX-book-p.h"
@@ -54,8 +49,17 @@
 
 static QofLogModule log_module = GNC_MOD_IO;
 
-static pid_t gzip_child_pid = 0;
+/* map pointers, e.g. of type FILE*, to GThreads */
+static GHashTable *threads = NULL;
+G_LOCK_DEFINE_STATIC(threads);
 
+typedef struct {
+  gint fd;
+  gchar *filename;
+  gchar *perms;
+  gboolean compress;
+} gz_thread_params_t;
+
 /* Callback structure */
 struct file_backend {
   gboolean        ok;
@@ -163,6 +167,8 @@
 add_account_local(sixtp_gdv2 *data, Account *act)
 {
     gnc_commodity_table *table;
+    Account *parent, *root;
+    int type;
 
     table = gnc_book_get_commodity_table (data->book);
 
@@ -180,10 +186,20 @@
     xaccAccountScrubCommodity (act);
     xaccAccountScrubKvp (act);
 
-    if(!xaccAccountGetParent(act))
-    {
-        xaccGroupInsertAccount(gnc_book_get_group(data->book), act);
+    /* Backwards compatability.  If there's no parent, see if this
+     * account is of type ROOT.  If not, find or create a ROOT
+     * account and make that the parent. */
+    type = xaccAccountGetType(act);
+    if (type == ACCT_TYPE_ROOT) {
+      gnc_book_set_root_account(data->book, act);
+    } else {
+      parent = gnc_account_get_parent(act);
+      if (parent == NULL) {
+	root = gnc_book_get_root_account(data->book);
+	gnc_account_append_child(root, act);
+      }
     }
+
     data->counter.accounts_loaded++;
     run_callback(data, "account");
 
@@ -237,16 +253,12 @@
 static gboolean
 add_schedXaction_local(sixtp_gdv2 *data, SchedXaction *sx)
 {
-    GList *list;
-
-    list = gnc_book_get_schedxactions (data->book);
-    list = g_list_append(list, sx);
-
-    gnc_book_set_schedxactions(data->book, list);
-    data->counter.schedXactions_loaded++;
-    run_callback(data, "schedXactions");
-
-    return TRUE;
+     SchedXactions *sxes;
+     sxes = gnc_book_get_schedxactions(data->book);
+     gnc_sxes_add_sx(sxes, sx);
+     data->counter.schedXactions_loaded++;
+     run_callback(data, "schedXactions");
+     return TRUE;
 }
 
 static gboolean
@@ -255,7 +267,7 @@
 {
     GList *n;
     Account *tmpAcct;
-    AccountGroup *acctGroup = NULL;
+    Account *acctRoot = NULL;
     QofBook *book;
 
     book = data->book;
@@ -264,22 +276,20 @@
     /* . template accounts. */
     /* . transactions in those accounts. */
     for ( n = txd->accts; n; n = n->next ) {
-        if ( xaccAccountGetParent( (Account*)n->data ) == NULL ) {
+        if ( gnc_account_get_parent( (Account*)n->data ) == NULL ) {
             /* remove the gnc_book_init-created account of the same name */
-            acctGroup =
-            gnc_book_get_template_group(book);
-            tmpAcct =
-            xaccGetAccountFromName( acctGroup,
+            acctRoot = gnc_book_get_template_root(book);
+            tmpAcct = gnc_account_lookup_by_name( acctRoot,
                                     xaccAccountGetName( (Account*)n->data ) );
             if ( tmpAcct != NULL ) {
 /* XXX hack alert FIXME .... Should this be 'Remove', or 'Destroy'?
  * If we just remove, then this seems to be a memory leak to me, since
  * it is never reparented.  Shouldn't it be a Destroy ???
  */
-                xaccGroupRemoveAccount( acctGroup, tmpAcct );
+                gnc_account_remove_child( acctRoot, tmpAcct );
             }
 
-            xaccGroupInsertAccount( acctGroup, (Account*)n->data );
+            gnc_account_append_child( acctRoot, (Account*)n->data );
         }
 
     }
@@ -289,8 +299,6 @@
         add_transaction_local( data, (Transaction*)n->data );
     }
 
-    xaccAccountGroupCommitEdit (acctGroup);
-
     return TRUE;
 }
 
@@ -414,20 +422,20 @@
 }
 
 static void
-print_counter_data(load_counter *data)
+debug_print_counter_data(load_counter *data)
 {
-    PINFO("Transactions: Total: %d, Loaded: %d",
-           data->transactions_total, data->transactions_loaded);
-    PINFO("Accounts: Total: %d, Loaded: %d",
-           data->accounts_total, data->accounts_loaded);
-    PINFO("Books: Total: %d, Loaded: %d",
-           data->books_total, data->books_loaded);
-    PINFO("Commodities: Total: %d, Loaded: %d",
-           data->commodities_total, data->commodities_loaded);
-    PINFO("Scheduled Tansactions: Total: %d, Loaded: %d",
-           data->schedXactions_total, data->schedXactions_loaded);
-    PINFO("Budgets: Total: %d, Loaded: %d",
-	  data->budgets_total, data->budgets_loaded);
+    DEBUG("Transactions: Total: %d, Loaded: %d",
+          data->transactions_total, data->transactions_loaded);
+    DEBUG("Accounts: Total: %d, Loaded: %d",
+          data->accounts_total, data->accounts_loaded);
+    DEBUG("Books: Total: %d, Loaded: %d",
+          data->books_total, data->books_loaded);
+    DEBUG("Commodities: Total: %d, Loaded: %d",
+          data->commodities_total, data->commodities_loaded);
+    DEBUG("Scheduled Tansactions: Total: %d, Loaded: %d",
+          data->schedXactions_total, data->schedXactions_loaded);
+    DEBUG("Budgets: Total: %d, Loaded: %d",
+          data->budgets_total, data->budgets_loaded);
 }
 
 static void
@@ -642,7 +650,7 @@
     FileBackend *fbe, QofBook *book,
     sixtp_push_handler push_handler, gpointer push_user_data)
 {
-    AccountGroup *grp;
+    Account *root;
     QofBackend *be = &fbe->be;
     sixtp_gdv2 *gd;
     sixtp *top_parser;
@@ -732,7 +740,7 @@
         xaccEnableDataScrubbing();
         goto bail;
     }
-    DEBUGCMD (print_counter_data(&gd->counter));
+    debug_print_counter_data(&gd->counter);
 
     /* destroy the parser */
     sixtp_destroy (top_parser);
@@ -749,19 +757,21 @@
     qof_object_foreach_backend (GNC_FILE_BACKEND, scrub_cb, &be_data);
 
     /* fix price quote sources */
-    grp = gnc_book_get_group(book);
-    xaccGroupScrubQuoteSources (grp, gnc_book_get_commodity_table(book));
+    root = gnc_book_get_root_account(book);
+    xaccAccountTreeScrubQuoteSources (root, gnc_book_get_commodity_table(book));
 
     /* Fix account and transaction commodities */
-    xaccGroupScrubCommodities (grp);
+    xaccAccountTreeScrubCommodities (root);
 
     /* Fix split amount/value */
-    xaccGroupScrubSplits (grp);
+    xaccAccountTreeScrubSplits (root);
 
     /* commit all groups, this completes the BeginEdit started when the
      * account_end_handler finished reading the account.
      */
-    xaccAccountGroupCommitEdit (grp);
+    gnc_account_foreach_descendant(root,
+				   (AccountCb) xaccAccountCommitEdit,
+				   NULL);
 
     /* start logging again */
     xaccLogEnable ();
@@ -928,11 +938,11 @@
                  gnc_commodity_table_get_size(
                      gnc_book_get_commodity_table(book)),
                  "account",
-                 1 + xaccGroupGetNumSubAccounts(gnc_book_get_group(book)),
+                 1 + gnc_account_n_descendants(gnc_book_get_root_account(book)),
                  "transaction",
                  gnc_book_count_transactions(book),
                  "schedxaction",
-                 g_list_length( gnc_book_get_schedxactions(book) ),
+                 g_list_length(gnc_book_get_schedxactions(book)->sx_list),
 		 "budget", qof_collection_count(
                      qof_book_get_collection(book, GNC_ID_BUDGET)),
 		 NULL);
@@ -1040,26 +1050,26 @@
 
     be_data.out = out;
     be_data.gd = gd;
-    xaccGroupForEachTransaction(gnc_book_get_group(book),
-                                xml_add_trn_data,
-                                (gpointer) &be_data);
+    xaccAccountTreeForEachTransaction(gnc_book_get_root_account(book),
+				      xml_add_trn_data,
+				      (gpointer) &be_data);
 }
 
 static void
 write_template_transaction_data( FILE *out, QofBook *book, sixtp_gdv2 *gd )
 {
-    AccountGroup *ag;
+    Account *ra;
     struct file_backend be_data;
 
     be_data.out = out;
     be_data.gd = gd;
 
-    ag = gnc_book_get_template_group(book);
-    if ( xaccGroupGetNumSubAccounts(ag) > 0 )
+    ra = gnc_book_get_template_root(book);
+    if ( gnc_account_n_descendants(ra) > 0 )
     {
         fprintf( out, "<%s>\n", TEMPLATE_TRANSACTION_TAG );
-        write_account_group( out, ag, gd );
-        xaccGroupForEachTransaction( ag, xml_add_trn_data, (gpointer)&be_data );
+        write_account_tree( out, ra, gd );
+        xaccAccountTreeForEachTransaction( ra, xml_add_trn_data, (gpointer)&be_data );
         fprintf( out, "</%s>\n", TEMPLATE_TRANSACTION_TAG );
     }
 }
@@ -1067,25 +1077,24 @@
 static void
 write_schedXactions( FILE *out, QofBook *book, sixtp_gdv2 *gd)
 {
-    GList *schedXactions;
-    SchedXaction *tmpSX;
-    xmlNodePtr node;
+     GList *schedXactions;
+     SchedXaction *tmpSX;
+     xmlNodePtr node;
+     
+     schedXactions = gnc_book_get_schedxactions(book)->sx_list;
 
-    /* get list of scheduled transactions from QofBook */
-    schedXactions = gnc_book_get_schedxactions( book );
+     if ( schedXactions == NULL )
+          return;
 
-    if ( schedXactions == NULL )
-        return;
-
-    do {
-        tmpSX = schedXactions->data;
-        node = gnc_schedXaction_dom_tree_create( tmpSX );
-        xmlElemDump( out, NULL, node );
-        fprintf( out, "\n" );
-        xmlFreeNode( node );
-        gd->counter.schedXactions_loaded++;
-        run_callback(gd, "schedXactions");
-    } while ( (schedXactions = schedXactions->next) );
+     do {
+          tmpSX = schedXactions->data;
+          node = gnc_schedXaction_dom_tree_create( tmpSX );
+          xmlElemDump( out, NULL, node );
+          fprintf( out, "\n" );
+          xmlFreeNode( node );
+          gd->counter.schedXactions_loaded++;
+          run_callback(gd, "schedXactions");
+     } while ( (schedXactions = schedXactions->next) );
 }
 
 static void
@@ -1172,10 +1181,10 @@
     gd->counter.commodities_total =
       gnc_commodity_table_get_size(gnc_book_get_commodity_table(book));
     gd->counter.accounts_total = 1 + 
-      xaccGroupGetNumSubAccounts(gnc_book_get_group(book));
+      gnc_account_n_descendants(gnc_book_get_root_account(book));
     gd->counter.transactions_total = gnc_book_count_transactions(book);
     gd->counter.schedXactions_total =
-      g_list_length( gnc_book_get_schedxactions(book));
+      g_list_length(gnc_book_get_schedxactions(book)->sx_list);
     gd->counter.budgets_total = qof_collection_count(
         qof_book_get_collection(book, GNC_ID_BUDGET));
 
@@ -1194,14 +1203,14 @@
 gnc_book_write_accounts_to_xml_filehandle_v2(QofBackend *be, QofBook *book, FILE *out)
 {
     gnc_commodity_table *table;
-    AccountGroup *grp;
+    Account *root;
     int ncom, nacc;
     sixtp_gdv2 *gd;
 
     if (!out) return FALSE;
 
-    grp = gnc_book_get_group(book);
-    nacc = 1 + xaccGroupGetNumSubAccounts(grp);
+    root = gnc_book_get_root_account(book);
+    nacc = 1 + gnc_account_n_descendants(root);
 
     table = gnc_book_get_commodity_table(book);
     ncom = gnc_commodity_table_get_size(table);
@@ -1229,6 +1238,64 @@
 
 #define BUFLEN 4096
 
+/* Compress or decompress function that is to be run in a separate thread.
+ * Returns 1 on success or 0 otherwise, stuffed into a pointer type. */
+static gpointer
+gz_thread_func(gz_thread_params_t *params)
+{
+    gchar buffer[BUFLEN];
+    guint bytes;
+    gssize written;
+    gzFile *file;
+    gint success = 0;
+
+#ifdef G_OS_WIN32
+    {
+        gchar *conv_name = g_win32_locale_filename_from_utf8(params->filename);
+        gchar *perms;
+
+        if (!conv_name) {
+            g_warning("Could not convert '%s' to system codepage",
+                      params->filename);
+            goto cleanup_gz_thread_func;
+        }
+
+        if (strchr(params->perms, 'b'))
+            perms = g_strdup(params->perms);
+        else
+            perms = g_strdup_printf("%cb%s", *params->perms, params->perms + 1);
+
+        file = gzopen(conv_name, perms);
+        g_free(perms);
+        g_free(conv_name);
+    }
+#else /* !G_OS_WIN32 */
+    file = gzopen(params->filename, params->perms);
+#endif /* G_OS_WIN32 */
+
+    if (file == NULL) {
+        g_warning("Child threads gzopen failed");
+        goto cleanup_gz_thread_func;
+    }
+
+    if (params->compress)
+        while ((bytes = read(params->fd, buffer, BUFLEN)) > 0)
+            gzwrite(file, buffer, bytes);
+    else
+        while ((bytes = gzread(file, buffer, BUFLEN)) > 0)
+            written = write(params->fd, buffer, bytes);
+
+    gzclose(file);
+    success = 1;
+
+cleanup_gz_thread_func:
+    g_free(params->filename);
+    g_free(params->perms);
+    g_free(params);
+
+    return GINT_TO_POINTER(success);
+}
+
 static FILE *
 try_gz_open (const char *filename, const char *perms, gboolean use_gzip,
              gboolean compress)
@@ -1237,128 +1304,72 @@
       use_gzip = TRUE;
 
   if (!use_gzip)
-    return fopen(filename, perms);
+    return g_fopen(filename, perms);
 
-#ifdef _WIN32
-  PWARN("Compression not implemented on Windows. Opening uncompressed file.");
-  return fopen(filename, perms);
-
-  /* Potential implementation: Windows doesn't have pipe(); use
-     the g_spawn glib wrappers. */
   {
-    /* Start gzip from a command line, not by fork(). */
-    gchar *argv[] = {compress ? "gzip" : "gunzip",
-                     NULL};
-    GPid child_pid;
-    GError *error;
-    int child_stdin;
+    int filedes[2];
+    GThread *thread;
+    GError *error = NULL;
+    gz_thread_params_t *params;
+    FILE *file;
 
-    g_assert_not_reached(); /* Not yet correctly implemented. */
-
-    if ( !g_spawn_async_with_pipes(NULL, argv,
-				   NULL, G_SPAWN_SEARCH_PATH,
-				   NULL, NULL, 
-				   &child_pid,
-				   &child_stdin, NULL, NULL,
-				   &error) ) {
-      PWARN("G_spawn call failed. Opening uncompressed file.");
-      return fopen(filename, perms);
+    if (pipe(filedes) < 0) {
+      g_warning("Pipe call failed. Opening uncompressed file.");
+      return g_fopen(filename, perms);
     }
-    /* FIXME: Now need to set up the child process to write to the
-       file. */
 
-    return fdopen(child_stdin, compress ? "w" : "r");
+    params = g_new(gz_thread_params_t, 1);
+    params->fd = filedes[compress ? 0 : 1];
+    params->filename = g_strdup(filename);
+    params->perms = g_strdup(perms);
+    params->compress = compress;
 
-    /* Eventually the GPid must be cleanup up, but not here? */
-    /* g_spawn_close_pid(child_pid); */
-  }
-#else
-  {
-    /* Normal Posix platform (non-windows) */
-    int filedes[2];
-    pid_t pid;
+    thread = g_thread_create((GThreadFunc) gz_thread_func, params, TRUE, &error);
+    if (!thread) {
+      g_warning("Could not create thread for (de)compression: %s",
+                error->message);
+      g_error_free(error);
+      g_free(params->filename);
+      g_free(params->perms);
+      g_free(params);
+      close(filedes[0]);
+      close(filedes[1]);
 
-    /* avoid reading from file that is still being written to
-       by a child process */
-    g_assert(gzip_child_pid == 0);
-
-    if (pipe(filedes) < 0) {
-      PWARN("Pipe call failed. Opening uncompressed file.");
-      return fopen(filename, perms);
+      return g_fopen(filename, perms);
     }
 
-    pid = fork();
-    switch (pid) {
-    case -1:
-      PWARN("Fork call failed. Opening uncompressed file.");
-      return fopen(filename, perms);
+    if (compress)
+      file = fdopen(filedes[1], "w");
+    else
+      file = fdopen(filedes[0], "r");
 
-    case 0: /* child */ {
-      char buffer[BUFLEN];
-      unsigned bytes;
-      ssize_t written;
-      gzFile *file;
+    G_LOCK(threads);
+    if (!threads)
+      threads = g_hash_table_new(g_direct_hash, g_direct_equal);
 
-      file = gzopen(filename, perms);
-      if (file == NULL) {
-        PWARN("child gzopen failed\n");
-        exit(0);
-      }
-      if (compress) {
-        close(filedes[1]);
-        while ((bytes = read(filedes[0], buffer, BUFLEN)) > 0)
-          gzwrite(file, buffer, bytes);
-      }
-      else
-      {
-        close(filedes[0]);
-        while ((bytes = gzread(file, buffer, BUFLEN)) > 0)
-          written = write(filedes[1], buffer, bytes);
-      }
-      gzclose(file);
-      _exit(0);
-    }
+    g_hash_table_insert(threads, file, thread);
+    G_UNLOCK(threads);
 
-    default: /* parent */
-      if (compress) {
-        /* the calling code must wait_for_gzip() */
-        gzip_child_pid = pid;
-      }
-      sleep(2);
-      if (compress) {
-        close(filedes[0]);
-        return fdopen(filedes[1], "w");
-      }
-      else
-      {
-        close(filedes[1]);
-        return fdopen(filedes[0], "r");
-      }
-    }
+    return file;
   }
-#endif
 }
 
 static gboolean
-wait_for_gzip()
+wait_for_gzip(FILE *file)
 {
-    pid_t retval;
+    gboolean retval = TRUE;
 
-    if (gzip_child_pid == 0)
-        return TRUE;
+    G_LOCK(threads);
+    if (threads) {
+        GThread *thread = g_hash_table_lookup(threads, file);
+        if (thread) {
+            g_hash_table_remove(threads, file);
+            retval = GPOINTER_TO_INT(g_thread_join(thread));
+        }
+    }
+    G_UNLOCK(threads);
 
-#ifdef HAVE_SYS_WAIT_H
-    retval = waitpid(gzip_child_pid, NULL, WUNTRACED);
-#else
-    /* FIXME: Windows doesn't have waitpid. According to glib's
-       g_spawn_async_with_pipes(), we should use one of the
-       g_spawn functions and some Win32-API WaitFor*() function
-       here. For now, we ignore that race condition. */
-    retval = 1;
-#endif
-    gzip_child_pid = 0;
-
-    return retval != -1;
+    return retval;
 }
 
 gboolean
@@ -1385,7 +1396,7 @@
     }
 
     if (compress)
-        return wait_for_gzip();
+        return wait_for_gzip(out);
 
     return TRUE;
 }
@@ -1403,7 +1414,7 @@
 {
     FILE *out;
 
-    out = fopen(filename, "w");
+    out = g_fopen(filename, "w");
     if (out == NULL)
     {
         return FALSE;
@@ -1426,7 +1437,7 @@
 is_gzipped_file(const gchar *name)
 {
     unsigned char buf[2];
-    int fd = open(name, O_RDONLY);
+    int fd = g_open(name, O_RDONLY, 0);
 
     if (fd == -1) {
         return FALSE;
@@ -1456,7 +1467,19 @@
         char first_chunk[256];
         int num_read;
 
+#ifdef G_OS_WIN32
+        {
+            gchar *conv_name = g_win32_locale_filename_from_utf8(name);
+            if (!conv_name)
+                g_warning("Could not convert '%s' to system codepage", name);
+            else {
+                file = gzopen(conv_name, "rb");
+                g_free(conv_name);
+            }
+        }
+#else
         file = gzopen(name, "r");
+#endif
         if (file == NULL)
             return FALSE;
 
@@ -1701,8 +1724,11 @@
         g_hash_table_destroy(processed);
     if (ascii)
         g_free(ascii);
-    if (file)
+    if (file) {
         fclose(file);
+        if (is_compressed)
+            wait_for_gzip(file);
+    }
 
     return (clean_return) ? n_impossible : -1;
 }
@@ -1818,8 +1844,11 @@
         g_string_free(output, TRUE);
     if (ascii != (GIConv) -1)
         g_iconv_close(ascii);
-    if (file)
+    if (file) {
         fclose(file);
+        if (is_compressed)
+            wait_for_gzip(file);
+    }
 }
 
 gboolean

Modified: gnucash/branches/gda-dev/src/backend/file/io-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,10 +28,10 @@
 
 #include <glib.h>
 
-#include "Group.h"
 #include "gnc-xml.h"
 #include "gnc-xml.h"
 #include "io-utils.h"
+#include "gnc-gconf-utils.h"
 
 /*
   <!-- Local variables: -->
@@ -51,40 +51,52 @@
     fprintf(out, emacs_trailer);
 }
 
-void
-write_account_group(FILE *out, AccountGroup *grp, sixtp_gdv2 *gd)
+static void
+write_one_account(FILE *out,
+                  Account *account,
+                  sixtp_gdv2 *gd,
+                  gboolean allow_incompat)
 {
-    GList *list;
-    GList *node;
+    xmlNodePtr accnode;
 
-    list = xaccGroupGetAccountList(grp);
+    accnode =
+      gnc_account_dom_tree_create(account, gd && gd->exporting, allow_incompat);
 
-    for (node = list; node; node = node->next) 
-    {
-        xmlNodePtr accnode;
-        AccountGroup *newgrp;
-        
-        accnode = gnc_account_dom_tree_create((Account*)(node->data),
-                                              gd && gd->exporting);
+    xmlElemDump(out, NULL, accnode);
+    fprintf(out, "\n");
 
-        xmlElemDump(out, NULL, accnode);
-        fprintf(out, "\n");
+    xmlFreeNode(accnode);
+    gd->counter.accounts_loaded++;
+    run_callback(gd, "account");
+}
 
-        xmlFreeNode(accnode);
-        gd->counter.accounts_loaded++;
-        run_callback(gd, "account");
+void
+write_account_tree(FILE *out, Account *root, sixtp_gdv2 *gd)
+{
+    GList *descendants, *node;
+    gboolean allow_incompat = FALSE;
+    GError *err = NULL;
 
-        newgrp = xaccAccountGetChildren((Account*)(node->data));
+    allow_incompat = gnc_gconf_get_bool("dev", "allow_file_incompatibility", &err);
+    if (err != NULL)
+    {
+        g_warning("error getting gconf value [%s]", err->message);
+        g_error_free(err);
+        allow_incompat = FALSE;
+    }
+    g_debug("allow_incompatibility: [%s]", allow_incompat ? "true" : "false");
 
-        if (newgrp)
-        {
-            write_account_group(out, newgrp, gd);
-        }
-    }
+    if (allow_incompat)
+      write_one_account(out, root, gd, allow_incompat);
+
+    descendants = gnc_account_get_descendants(root);
+    for (node = descendants; node; node = g_list_next(node)) 
+      write_one_account(out, node->data, gd, allow_incompat);
+    g_list_free(descendants);
 }
 
 void
 write_accounts(FILE *out, QofBook *book, sixtp_gdv2 *gd)
 {
-    write_account_group(out, gnc_book_get_group(book), gd);
+    write_account_tree(out, gnc_book_get_root_account(book), gd);
 }

Modified: gnucash/branches/gda-dev/src/backend/file/io-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/io-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/io-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -27,11 +27,10 @@
 
 #include <stdio.h>
 
-#include "Group.h"
 #include "io-gncxml-v2.h"
 #include "qof.h"
 
-void write_account_group(FILE *out, AccountGroup *grp, sixtp_gdv2 *gd);
+void write_account_tree(FILE *out, Account *root, sixtp_gdv2 *gd);
 void write_accounts(FILE *out, QofBook *book, sixtp_gdv2 *gd);
 void write_book_parts(FILE *out, QofBook *book);
 void write_commodities(FILE *out, QofBook *book, sixtp_gdv2 *gd);

Modified: gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -475,18 +475,18 @@
   /* no nodes means it's an empty string text */
   if(!tree->xmlChildrenNode)
   {
-      PINFO ("No children");
+      DEBUG("No children");
       return g_strdup("");
   }
 
   temp = (char*)xmlNodeListGetString (NULL, tree->xmlChildrenNode, TRUE);
   if (!temp) 
   {
-    PINFO ("Null string");
+    DEBUG("Null string");
     return NULL;
   }
 
-  PINFO ("node string is >>>%s<<<", temp);
+  DEBUG("node string [%s]", (temp == NULL ? "(null)" : temp));
   result = g_strdup (temp);
   xmlFree (temp);
   return result;

Modified: gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/sixtp-dom-parsers.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,6 +39,7 @@
 gnc_commodity *dom_tree_to_commodity_ref_no_engine(xmlNodePtr node, QofBook *);
 
 FreqSpec* dom_tree_to_freqSpec( xmlNodePtr node, QofBook *book);
+GList* dom_tree_freqSpec_to_recurrences(xmlNodePtr node, QofBook *book);
 Recurrence* dom_tree_to_recurrence(xmlNodePtr node);
 
 Timespec dom_tree_to_timespec(xmlNodePtr node);

Modified: gnucash/branches/gda-dev/src/backend/file/sixtp-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/sixtp-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/sixtp-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -381,34 +381,36 @@
 
 #ifdef HAVE_TIMEGM
 #  define gnc_timegm timegm
-#else
+#else /* !HAVE_TIMEGM */
+
+/* This code originates from GLib 2.12, gtimer.c and works until the year 2100
+ * or the system-dependent maximal date that can be represented by a time_t,
+ * whatever comes first.  The old implementation called mktime after setting
+ * the environment variable TZ to UTC.  It did not work on Windows, at least.
+ */
+static const gint days_before[] = {
+  0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
+};
+
 static time_t
 gnc_timegm (struct tm *tm)
 {
-  time_t result;
-  char *old_tz;
+  time_t retval;
+  if (tm->tm_mon < 0 || tm->tm_mon > 11)
+    return (time_t) -1;
 
-  old_tz = getenv ("TZ");
-  /* FIXME: there's no way to report this error to the caller. */
-  if (!g_setenv("TZ", "UTC", 1))
-    PERR ("couldn't switch the TZ.");
-  result = mktime (tm);
-  if(old_tz)
-  {
-    /* FIXME: there's no way to report this error to the caller. */
-    if (!g_setenv("TZ", old_tz, 1))
-      PERR ("couldn't switch the TZ back.");
-  }
-  else
-  {
-    /* FIXME: there's no way to report this error to the caller. */
-    g_unsetenv("TZ");
-    if(errno != 0)
-      PERR ("couldn't restore the TZ to undefined.");
-  }
-  return result;
+  retval = (tm->tm_year - 70) * 365;
+  retval += (tm->tm_year - 68) / 4;
+  retval += days_before[tm->tm_mon] + tm->tm_mday - 1;
+
+  if (tm->tm_year % 4 == 0 && tm->tm_mon < 2)
+    retval -= 1;
+  
+  retval = ((((retval * 24) + tm->tm_hour) * 60) + tm->tm_min) * 60 + tm->tm_sec;
+
+  return retval;
 }
-#endif
+#endif /* HAVE_TIMEGM */
 
 
 /****************************************************************************/
@@ -529,8 +531,8 @@
   if (!localtime_r(&tmp_time, &parsed_time))
     return FALSE;
 
-  num_chars = strftime(str, TIMESPEC_SEC_FORMAT_MAX,
-                       TIMESPEC_TIME_FORMAT, &parsed_time);
+  num_chars = qof_strftime(str, TIMESPEC_SEC_FORMAT_MAX,
+                           TIMESPEC_TIME_FORMAT, &parsed_time);
   if (num_chars == 0)
     return FALSE;
 

Modified: gnucash/branches/gda-dev/src/backend/file/sixtp.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/sixtp.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/sixtp.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -24,6 +24,7 @@
 #include "config.h"
 
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <string.h>
 #include <ctype.h>
 #include <stdarg.h>
@@ -33,7 +34,8 @@
 #include "sixtp-parsers.h"
 #include "sixtp-stack.h"
 
-static QofLogModule log_module = GNC_MOD_IO;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.backend.file.sixtp"
 
 /************************************************************************/
 gboolean
@@ -159,7 +161,7 @@
     
     if(!tochange)
     {
-        PWARN("Null tochange passed");
+        g_warning("Null tochange passed");
         return NULL;
     }
 
@@ -219,7 +221,7 @@
 
         default:
             va_end(ap);
-            PERR("Bogus sixtp type %d", type);
+            g_critical("Bogus sixtp type %d", type);
             if(cleanup)
             {
                 sixtp_destroy(tochange);
@@ -253,20 +255,19 @@
   gpointer lookup_key;
   gpointer lookup_value;
 
-  PINFO ("Killing sixtp child under key <%s>",
-         key ? (char *) key : "(null)");
+  g_debug("Killing sixtp child under key <%s>", key ? (char *) key : "(null)");
   g_free(key);
 
   if(!corpses) 
   {
-    PERR("no corpses in sixtp_destroy_child <%s>",
-         key ? (char *) key : "(null)");
+    g_critical("no corpses in sixtp_destroy_child <%s>",
+               key ? (char *) key : "(null)");
     return;
   }
   if(!child) 
   {
-    PERR("no child in sixtp_destroy_child <%s>",
-         key ? (char *) key : "");
+    g_critical("no child in sixtp_destroy_child <%s>",
+               key ? (char *) key : "");
     return;
   }
 
@@ -336,7 +337,7 @@
         handler = va_arg(ap, sixtp*);
         if(!handler)
         {
-            PWARN("Handler for tag %s is null",
+            g_warning("Handler for tag %s is null",
                       tag ? tag : "(null)");
 
             if(cleanup)
@@ -399,8 +400,8 @@
           (gpointer) &next_parser_tag, (gpointer) &next_parser);
       if(!lookup_success) 
       {
-          PERR("Tag <%s> not allowed in current context.",
-               name ? (char *) name : "(null)");
+          g_critical("Tag <%s> not allowed in current context.",
+                     name ? (char *) name : "(null)");
           pdata->parsing_ok = FALSE;
 	  next_parser = pdata->bad_xml_parser;
       }
@@ -503,7 +504,7 @@
      necessary? */
   if(safe_strcmp(current_frame->tag, (gchar*) name) != 0) 
   {
-    PWARN ("bad closing tag (start <%s>, end <%s>)", current_frame->tag, name);
+    g_warning("bad closing tag (start <%s>, end <%s>)", current_frame->tag, name);
     pdata->parsing_ok = FALSE;
 
     /* See if we're just off by one and try to recover */
@@ -511,7 +512,7 @@
       pdata->stack = sixtp_pop_and_destroy_frame(pdata->stack);
       current_frame = (sixtp_stack_frame *) pdata->stack->data;
       parent_frame = (sixtp_stack_frame *) pdata->stack->next->data;
-      PWARN ("found matching start <%s> tag up one level", name);
+      g_warning("found matching start <%s> tag up one level", name);
     }
   }
   
@@ -547,8 +548,7 @@
   /* grab it before it goes away - we own the reference */
   end_tag = current_frame->tag;
 
-  PINFO("Finished with end of <%s>",
-        end_tag ? end_tag : "(null)");
+  g_debug("Finished with end of <%s>", end_tag ? end_tag : "(null)");
 
   /*sixtp_print_frame_stack(pdata->stack, stderr);*/
 
@@ -611,7 +611,7 @@
   GSList *lp;
   GSList **stack = &(sax_data->stack);
 
-  PERR("parse failed at:");
+  g_critical("parse failed at:");
   sixtp_print_frame_stack(sax_data->stack, stderr);
 
   while(*stack) 
@@ -688,7 +688,7 @@
 
     if(!(ctxt = sixtp_context_new(sixtp, global_data, data_for_top_level)))
     {
-        PERR("sixtp_context_new returned null");
+        g_critical("sixtp_context_new returned null");
         return FALSE;
     }
 
@@ -727,7 +727,21 @@
                  gpointer *parse_result) 
 {
     gboolean ret;
-    xmlParserCtxtPtr context = xmlCreateFileParserCtxt( filename );
+    xmlParserCtxtPtr context;
+
+#ifdef G_OS_WIN32
+    {
+        gchar *conv_name = g_win32_locale_filename_from_utf8(filename);
+        if (!conv_name) {
+            g_warning("Could not convert '%s' to system codepage", filename);
+            return FALSE;
+        }
+        context = xmlCreateFileParserCtxt(conv_name);
+        g_free(conv_name);
+    }
+#else
+    context = xmlCreateFileParserCtxt(filename);
+#endif
     ret = sixtp_parse_file_common(sixtp, context, data_for_top_level,
                                   global_data, parse_result);
     return ret;
@@ -760,12 +774,12 @@
     xmlParserCtxtPtr xml_context;
 
     if (!push_handler) {
-        PERR("No push handler specified");
+        g_critical("No push handler specified");
         return FALSE;
     }
 
     if (!(ctxt = sixtp_context_new(sixtp, global_data, data_for_top_level))) {
-        PERR("sixtp_context_new returned null");
+        g_critical("sixtp_context_new returned null");
         return FALSE;
     }
 
@@ -843,7 +857,7 @@
   g_return_val_if_fail(filename, FALSE);
   g_return_val_if_fail(first_tag, FALSE);
 
-  f = fopen(filename, "r");
+  f = g_fopen(filename, "r");
   if (f == NULL) {
     return FALSE;
   }

Modified: gnucash/branches/gda-dev/src/backend/file/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -74,6 +74,7 @@
   ${top_srcdir}/src/backend/file/gnc-account-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-lot-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-schedxaction-xml-v2.c \
+  ${top_srcdir}/src/backend/file/gnc-recurrence-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-freqspec-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-transaction-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-commodity-xml-v2.c \
@@ -92,6 +93,7 @@
   ${top_srcdir}/src/backend/file/gnc-account-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-lot-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-schedxaction-xml-v2.c \
+  ${top_srcdir}/src/backend/file/gnc-recurrence-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-freqspec-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-transaction-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-commodity-xml-v2.c \
@@ -110,6 +112,7 @@
   ${top_srcdir}/src/backend/file/gnc-account-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-lot-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-schedxaction-xml-v2.c \
+  ${top_srcdir}/src/backend/file/gnc-recurrence-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-freqspec-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-transaction-xml-v2.c \
   ${top_srcdir}/src/backend/file/gnc-commodity-xml-v2.c \
@@ -177,13 +180,13 @@
   test-xml2-is-file
 
 GNC_TEST_DEPS := \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --library-dir    ${top_builddir}/src/backend/file \
+  --guile-load-dir ${top_builddir}/src/engine \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --gnc-module-dir ${top_srcdir}/src/engine
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/backend/file
 
 TESTS_ENVIRONMENT := \
   GNC_ACCOUNT_PATH=${top_srcdir}/accounts/C \
@@ -191,13 +194,13 @@
   SRCDIR=${srcdir} \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_LTLIBRARIES = libgnc-test-file-stuff.la
+check_LTLIBRARIES = libgnc-test-file-stuff.la
 
 libgnc_test_file_stuff_la_SOURCES = test-file-stuff.c
 libgnc_test_file_stuff_la_LIBADD = \
   ${top_builddir}/src/engine/libgncmod-engine.la
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-date-converting \
   test-dom-converters1 \
   test-kvp-frames \
@@ -215,10 +218,10 @@
 noinst_HEADERS = test-file-stuff.h
 
 LDADD = ${top_builddir}/src/test-core/libgncmod-test.la \
-        ${top_builddir}/src/gnc-module/libgncmodule.la \
+        ${top_builddir}/src/gnc-module/libgnc-module.la \
         ${top_builddir}/src/engine/libgncmod-engine.la \
         ${top_builddir}/src/engine/test-core/libgncmod-test-engine.la \
-        ${top_builddir}/src/core-utils/libcore-utils.la \
+        ${top_builddir}/src/core-utils/libgnc-core-utils.la \
         ./libgnc-test-file-stuff.la \
         ${LIBXML2_LIBS} \
         ${QOF_LIBS} \
@@ -237,10 +240,13 @@
   ${LIBXML2_CFLAGS} \
   ${GLIB_CFLAGS} \
   ${QOF_CFLAGS} \
-  ${GUILE_INCS}
+  ${GUILE_INCS} \
+  ${GCONF_CFLAGS}
 
 EXTRA_DIST = \
   grab-types.pl \
   test-dom-parser1.c \
   test-real-data.sh \
   test-xml2-is-file.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.backend.file\"

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-dom-parser1.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-dom-parser1.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-dom-parser1.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -60,7 +60,7 @@
 {
     parse_file("test-dom-parser1-1.xml", get_parser1_1_parser1());
     parse_file("test-dom-parser1-1.xml", get_parser1_1_parser2());
-    exit(0);
+    exit(get_rv());
 }
 
 static void

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-file-stuff.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-file-stuff.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-file-stuff.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,10 +28,10 @@
 #include <sys/stat.h>
 #include <dirent.h>
 #include <fcntl.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
+#include <glib/gstdio.h>
 
 #include "gnc-engine.h"
 #include "sixtp-dom-parsers.h"
@@ -58,8 +58,8 @@
     int fd1, fd2;
     int amount_read1, amount_read2;
 
-    fd1 = open(f1, O_RDONLY);
-    fd2 = open(f2, O_RDONLY);
+    fd1 = g_open(f1, O_RDONLY, 0);
+    fd2 = g_open(f2, O_RDONLY, 0);
 
     do
     {
@@ -372,7 +372,7 @@
     {
         struct stat file_info;
         const char *to_open = argv[count];
-        if(stat(to_open, &file_info) != 0)
+        if(g_stat(to_open, &file_info) != 0)
         {
             printf("cannot stat %s.\n", to_open);
             failure("unable to stat file");

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-kvp-frames.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-kvp-frames.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-kvp-frames.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -215,6 +215,7 @@
 int
 main(int argc, char** argv)
 {
+    qof_init();
     test_kvp_create_delete();
     test_kvp_printing();
     test_kvp_frames1();

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-load-backend.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-load-backend.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-load-backend.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,7 +30,7 @@
 #include "cashobjects.h"
 #include "test-stuff.h"
 
-#define GNC_LIB_NAME "gnc-backend-file"
+#define GNC_LIB_NAME "gncmod-backend-file"
 
 int main (int argc, char ** argv)
 {
@@ -41,5 +41,5 @@
         " loading gnc-backend-file GModule failed");
     print_test_results();
     qof_close();
-    return 0;
+    exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-load-example-account.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-load-example-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-load-example-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -45,11 +45,11 @@
 static const gchar *da_ending = ".gnucash-xea";
 
 static void
-test_load_file(QofBook *book, const char *filename)
+test_load_file(const char *filename)
 {
     GncExampleAccount *gea;
 
-    gea = gnc_read_example_account(book, filename);
+    gea = gnc_read_example_account(filename);
 
     if(gea != NULL)
     {
@@ -66,10 +66,9 @@
 static void
 guile_main (void *closure, int argc, char **argv)
 {
-    const char *location = getenv("GNC_ACCOUNT_PATH");
+    const char *location = g_getenv("GNC_ACCOUNT_PATH");
     GSList *list = NULL;
-    DIR *ea_dir;
-    QofBook *book;
+    GDir *ea_dir;
 
     if (!location)
     {
@@ -79,42 +78,31 @@
     gnc_module_system_init();
     gnc_module_load("gnucash/engine", 0);
 
-    book = qof_book_new ();
-
-    if((ea_dir = opendir(location)) == NULL)
+    if((ea_dir = g_dir_open(location, 0, NULL)) == NULL)
     {
         failure("unable to open ea directory");
     }
     else
     {
-        struct dirent *entry;
+        const gchar *entry;
 
-        while((entry = readdir(ea_dir)) != NULL)
+        while((entry = g_dir_read_name(ea_dir)) != NULL)
         {
-            struct stat file_info;
-            if(strstr(entry->d_name, da_ending) != NULL)
+            if(g_str_has_suffix(entry, da_ending))
             {
-                char *to_open = g_strdup_printf("%s/%s", location,
-                                                entry->d_name);
-                if(stat(to_open, &file_info) != 0)
+                gchar *to_open = g_build_filename(location, entry, (gchar*)NULL);
+                if (!g_file_test(to_open, G_FILE_TEST_IS_DIR))
                 {
-                    failure("unable to stat file");
+                    test_load_file(to_open);
                 }
-                else
-                {
-                    if(!S_ISDIR(file_info.st_mode))
-                    {
-                        test_load_file(book, to_open);
-                    }
-                }
                 g_free(to_open);
             }
         }
     }
-    closedir(ea_dir);
+    g_dir_close(ea_dir);
     
     {
-        list = gnc_load_example_account_list(book, location);
+        list = gnc_load_example_account_list(location);
 
         do_test(list != NULL, "gnc_load_example_account_list");
         
@@ -130,5 +118,5 @@
 main (int argc, char ** argv)
 {
   scm_boot_guile (argc, argv, guile_main, NULL);
-  return 0;
+  exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-load-xml2.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-load-xml2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-load-xml2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,6 @@
 
 #include "config.h"
 #include <stdlib.h>
-#include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -36,9 +35,9 @@
 #include <string.h>
 #include <glib.h>
 #include <glib-object.h>
+#include <glib/gstdio.h>
 
 #include "cashobjects.h"
-#include "Group.h"
 #include "TransLog.h"
 #include "gnc-engine.h"
 #include "gnc-backend-file.h"
@@ -48,7 +47,7 @@
 #include "test-engine-stuff.h"
 #include "test-file-stuff.h"
 
-#define GNC_LIB_NAME "gnc-backend-file"
+#define GNC_LIB_NAME "gncmod-backend-file"
 
 static void
 remove_files_pattern(const char *begining, const char *ending)
@@ -63,9 +62,9 @@
     
     {
         to_remove = g_strdup_printf("%s.LCK", filename);
-        if(stat(to_remove, &buf) != -1)
+        if(g_stat(to_remove, &buf) != -1)
         {
-            unlink(to_remove);
+            g_unlink(to_remove);
         }
         g_free(to_remove);
     }
@@ -78,22 +77,22 @@
 {
     QofSession *session;
     QofBook *book;
-    AccountGroup *grp;
+    Account *root;
     gboolean ignore_lock;
 
     session = qof_session_new();
 
     remove_locks(filename);
 
-    ignore_lock = (safe_strcmp(getenv("SRCDIR"), ".") != 0);
+    ignore_lock = (safe_strcmp(g_getenv("SRCDIR"), ".") != 0);
     qof_session_begin(session, filename, ignore_lock, FALSE);
 
     qof_session_load(session, NULL);
     book = qof_session_get_book (session);
 
-    grp = xaccGetAccountGroup(book);
-    do_test (xaccGroupGetBook (grp) == book,
-             "book and group don't match");
+    root = gnc_book_get_root_account(book);
+    do_test (gnc_account_get_book (root) == book,
+             "book and root account don't match");
 
     do_test_args(qof_session_get_error(session) == ERR_BACKEND_NO_ERR,
                  "session load xml2", __FILE__, __LINE__, 
@@ -106,8 +105,8 @@
 int
 main (int argc, char ** argv)
 {
-    const char *location = getenv("GNC_TEST_FILES");
-    DIR *xml2_dir;
+    const char *location = g_getenv("GNC_TEST_FILES");
+    GDir *xml2_dir;
 
     g_type_init();
     qof_init();
@@ -122,40 +121,31 @@
 
     xaccLogDisable();
     
-    if((xml2_dir = opendir(location)) == NULL)
+    if((xml2_dir = g_dir_open(location, 0, NULL)) == NULL)
     {
         failure("unable to open xml2 directory");
     }
     else
     {
-        struct dirent *entry;
+        const gchar *entry;
 
-        while((entry = readdir(xml2_dir)) != NULL)
+        while((entry = g_dir_read_name(xml2_dir)) != NULL)
         {
-            if(strstr(entry->d_name, ".gml2") != NULL)
+            if(g_str_has_suffix(entry, ".gml2"))
             {
-                struct stat file_info;
-                char *to_open = g_strdup_printf("%s/%s", location,
-                                                entry->d_name);
-                if(stat(to_open, &file_info) != 0)
+                gchar *to_open = g_build_filename(location, entry, (gchar*)NULL);
+                if(!g_file_test(to_open, G_FILE_TEST_IS_DIR))
                 {
-                    failure("unable to stat file");
+                    test_load_file(to_open);
                 }
-                else
-                {
-                    if(!S_ISDIR(file_info.st_mode))
-                    {
-                        test_load_file(to_open);
-                    }
-                }
                 g_free(to_open);
             }
         }
     }
 
-    closedir(xml2_dir);
+    g_dir_close(xml2_dir);
 
     print_test_results();
     qof_close();
-    return 0;
+    exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-save-in-lang.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-save-in-lang.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-save-in-lang.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,6 @@
 #include "config.h"
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -92,8 +93,8 @@
             return g_strdup_printf("qof_session_load errorid %d", err);
         }
 
-        if (!g_setenv("LANG", possible_envs[i], 1))
-          return g_strdup_printf("setenv for LANG");
+        if (!g_setenv("LANG", possible_envs[i], TRUE))
+          return g_strdup("setenv for LANG");
 
         new_session = qof_session_new();
         
@@ -134,28 +135,28 @@
 int
 main(int argc, char **argv)
 {
-    DIR *adir;
+    GDir *adir;
 
     gnc_engine_init(argc, argv);
     xaccLogDisable();
     
-    if((adir = opendir(test_dir)) == NULL)
+    if((adir = g_dir_open(test_dir, 0, NULL)) == NULL)
     {
-        failure_args("opendir", __FILE__, __LINE__,
+        failure_args("g_dir_open", __FILE__, __LINE__,
                      "couldn't open dir %s", test_dir);
     }
     else
     {
-        struct dirent *next_file;
+        const gchar *next_file;
 
-        while((next_file = readdir(adir)) != NULL)
+        while((next_file = g_dir_read_name(adir)) != NULL)
         {
             struct stat file_info;
             char* filename;
 
-            filename = g_strdup_printf("%s/%s", test_dir, next_file->d_name);
-            
-            if(stat(filename, &file_info) != 0)
+            filename = g_build_filename(test_dir, next_file, (gchar*) NULL);
+
+            if(g_stat(filename, &file_info) != 0)
             {
                 failure_args("stat", __FILE__, __LINE__,
                              "couldn't stat file %s: %s", filename,
@@ -164,7 +165,7 @@
                 break;
             }
 
-            if (!g_setenv("LANG", base_env, 1))
+            if (!g_setenv("LANG", base_env, TRUE))
             {
               failure_args("setenv", __FILE__, __LINE__,
                            "setenv of LANG failed");
@@ -187,6 +188,7 @@
 
             g_free(filename);
         }
+        g_dir_close(adir);
     }
     
     print_test_results();

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-string-converters.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-string-converters.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-string-converters.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -102,6 +102,7 @@
 int
 main(int argc, char **argv)
 {
+    qof_log_init();
     test_binary();
     fflush(stdout);
     test_string_converters();

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-xml-account.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-xml-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-xml-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,7 @@
 #include "config.h"
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 
@@ -41,7 +41,6 @@
 #include "test-file-stuff.h"
 
 #include "Account.h"
-#include "Group.h"
 #include "Scrub.h"
 
 static QofBook *sixbook;
@@ -114,7 +113,8 @@
         else if(safe_strcmp((char*)mark->name, "act:commodity") == 0)
         {
             if(!equals_node_val_vs_commodity(
-                   mark, xaccAccountGetCommodity(act), xaccAccountGetBook(act)))
+                   mark, xaccAccountGetCommodity(act),
+                   gnc_account_get_book(act)))
             {
                 return g_strdup("commodities differ");
             }
@@ -146,8 +146,7 @@
         else if(safe_strcmp((char*)mark->name, "act:parent") == 0)
         {
             if(!equals_node_val_vs_guid(
-                   mark, xaccAccountGetGUID(xaccGroupGetParentAccount(
-                                                xaccAccountGetParent(act)))))
+                   mark, xaccAccountGetGUID(gnc_account_get_parent(act))))
             {
                 return g_strdup("parent ids differ");
             }
@@ -221,7 +220,7 @@
     gchar *compare_msg;
     int fd;
 
-    test_node = gnc_account_dom_tree_create(test_act, FALSE);
+    test_node = gnc_account_dom_tree_create(test_act, FALSE, TRUE);
 
     if(!test_node)
     {
@@ -247,7 +246,7 @@
         
     filename1 = g_strdup_printf("test_file_XXXXXX");
         
-    fd = mkstemp(filename1);
+    fd = g_mkstemp(filename1);
         
     write_dom_node_to_file(test_node, fd);
 
@@ -274,7 +273,7 @@
     }
         
 
-    unlink(filename1);
+    g_unlink(filename1);
     g_free(filename1);
     xmlFreeNode(test_node);
 }
@@ -317,7 +316,7 @@
 /*         act1 = get_random_account(); */
 /*         act2 = get_random_account(); */
 
-/*         xaccAccountInsertSubAccount(act1, act2); */
+/*         gnc_account_append_child(act1, act2); */
 
 /*         test_account(-1, act2); */
 /*         test_account(-1, act1); */
@@ -334,9 +333,9 @@
     char *msg;
     Account *act = (Account*)data;
 
-    if(!xaccAccountGetParent(act))
+    if(!gnc_account_get_parent(act))
     {
-        xaccGroupInsertAccount(xaccGetAccountGroup(sixbook), act);
+        gnc_account_append_child(gnc_book_get_root_account(sixbook), act);
     }
 
     msg = node_and_account_equal((xmlNodePtr)global_data, act);
@@ -370,5 +369,5 @@
     qof_session_destroy(session);        
     print_test_results();
     qof_close();
-    return 0;
+    exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-xml-commodity.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-xml-commodity.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-xml-commodity.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,8 +1,8 @@
 #include "config.h"
 
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <libguile.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 
@@ -178,7 +178,7 @@
         
         filename1 = g_strdup_printf("test_file_XXXXXX");
         
-        fd = mkstemp(filename1);
+        fd = g_mkstemp(filename1);
         
         write_dom_node_to_file(test_node, fd);
 
@@ -204,7 +204,7 @@
             /* sixtp_destroy(parser); */
         }
 
-        unlink(filename1);
+        g_unlink(filename1);
         g_free(filename1);
         gnc_commodity_destroy(ran_com);
         xmlFreeNode(test_node);

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-xml-pricedb.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-xml-pricedb.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-xml-pricedb.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,7 @@
 #include "config.h"
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 
@@ -84,7 +84,7 @@
 
   filename1 = g_strdup_printf ("test_file_XXXXXX");
         
-  fd = mkstemp (filename1);
+  fd = g_mkstemp (filename1);
         
   write_dom_node_to_file (test_node, fd);
 
@@ -116,7 +116,7 @@
     }
   }
 
-  unlink (filename1);
+  g_unlink (filename1);
   g_free (filename1);
   xmlFreeNode (test_node);
 }
@@ -150,12 +150,12 @@
 {
    qof_init();
    cashobjects_register();
-   qof_log_init_filename("/tmp/gnctest.trace");
-   qof_log_set_default(QOF_LOG_DETAIL);
-   qof_log_set_level(GNC_MOD_PRICE, QOF_LOG_DETAIL);
-  session = qof_session_new ();
-  test_generation ();
-  print_test_results ();
+   //qof_log_init_filename("/tmp/gnctest.trace");
+   //qof_log_set_default(QOF_LOG_DETAIL);
+   //qof_log_set_level(GNC_MOD_PRICE, QOF_LOG_DETAIL);
+   session = qof_session_new ();
+   test_generation ();
+   print_test_results ();
    qof_close();
-  return 0;
+   exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-xml-transaction.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-xml-transaction.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-xml-transaction.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,7 @@
 #include "config.h"
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 
@@ -365,14 +365,16 @@
     for(i = 0; i < 50; i++)
     {
         Transaction *ran_trn;
-        AccountGroup *grp;
+        Account *root;
         xmlNodePtr test_node;
         gnc_commodity *com;
         gchar *compare_msg;
         gchar *filename1;
         int fd;
 
-        grp = get_random_group(book);
+	/* The next line exists for its side effect of creating the
+	 * account tree. */
+	root = get_random_account_tree(book);
         ran_trn = get_random_transaction(book);
         if(!ran_trn)
         {
@@ -429,7 +431,7 @@
         
         filename1 = g_strdup_printf("test_file_XXXXXX");
         
-        fd = mkstemp(filename1);
+        fd = g_mkstemp(filename1);
         
         write_dom_node_to_file(test_node, fd);
 
@@ -473,7 +475,7 @@
             /* sixtp_destroy(parser); */
         }
 
-        unlink(filename1);
+        g_unlink(filename1);
         g_free(filename1);
         really_get_rid_of_transaction(ran_trn);
         xmlFreeNode(test_node);
@@ -517,5 +519,5 @@
 
     print_test_results();
     qof_close();
-  return 0;
+    exit(get_rv());
 }

Modified: gnucash/branches/gda-dev/src/backend/file/test/test-xml2-is-file.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/file/test/test-xml2-is-file.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/file/test/test-xml2-is-file.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -13,7 +13,7 @@
 int
 main(int argc, char **argv)
 {
-    const char *directory = getenv("GNC_TEST_FILES");
+    const char *directory = g_getenv("GNC_TEST_FILES");
     char *filename;
 
     if (!directory)

Modified: gnucash/branches/gda-dev/src/backend/gda/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,8 +1,10 @@
 SUBDIRS = .
 
 # Now a shared library AND a GModule
-lib_LTLIBRARIES = libgnc-backend-gda.la
+lib_LTLIBRARIES = libgnc-backend-gda-utils.la
+pkglib_LTLIBRARIES = libgncmod-backend-gda.la
 
+
 AM_CFLAGS = \
   -I.. -I../.. \
   -DLOCALE_DIR=\""$(datadir)/locale"\" \
@@ -12,11 +14,11 @@
   -I${top_srcdir}/lib/libc\
   ${QOF_CFLAGS} \
   ${GLIB_CFLAGS} \
+  ${LIBGDA_CFLAGS} \
   ${GCONF_CFLAGS} \
-  ${LIBGDA_CFLAGS}
+  ${WARN_CFLAGS}
 
-libgnc_backend_gda_la_SOURCES = \
-  gnc-backend-gda.c \
+libgnc_backend_gda_utils_la_SOURCES = \
   gnc-backend-util-gda.c \
   gnc-account-gda.c \
   gnc-book-gda.c \
@@ -28,22 +30,32 @@
   gnc-slots-gda.c \
   gnc-transaction-gda.c
 
-#noinst_HEADERS = \
-#  gnc-backend-file.h \
-#  gnc-xml.h \
-#  gnc-xml-helper.h \
-#  io-example-account.h \
-#  io-gncxml-gen.h \
-#  io-gncxml.h \
-#  io-gncxml-v2.h \
-#  io-utils.h \
-#  sixtp-dom-generators.h \
-#  sixtp-dom-parsers.h \
-#  sixtp.h \
-#  sixtp-parsers.h \
-#  sixtp-stack.h \
-#  sixtp-utils.h
+libgncmod_backend_gda_la_SOURCES = \
+  gnc-backend-gda.c
 
-libgnc_backend_gda_la_LDFLAGS = -module -avoid-version
-libgnc_backend_gda_la_LIBADD = \
-	${LIBGDA_LIBS}
+noinst_HEADERS = \
+  gnc-account-gda.h \
+  gnc-backend-gda.h \
+  gnc-backend-util-gda.h \
+  gnc-book-gda.h \
+  gnc-budget-gda.h \
+  gnc-commodity-gda.h \
+  gnc-lots-gda.h \
+  gnc-price-gda.h \
+  gnc-schedxaction-gda.h \
+  gnc-slots-gda.h \
+  gnc-transaction-gda.h
+
+libgnc_backend_gda_utils_la_LIBADD = \
+   ${GLIB_LIBS} ${GCONF_LIBS} \
+   ${top_builddir}/src/engine/libgncmod-engine.la \
+   ${LIBGDA_LIBS}
+
+libgncmod_backend_gda_la_LDFLAGS = -module -avoid-version
+libgncmod_backend_gda_la_LIBADD = \
+   ${GLIB_LIBS} ${GCONF_LIBS} \
+   ${top_builddir}/src/engine/libgncmod-engine.la \
+   libgnc-backend-gda-utils.la \
+   ${LIBGDA_LIBS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.backend.gda\"

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-account-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-account-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-account-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,7 +32,6 @@
 #include <libgda/libgda.h>
 
 #include "qof.h"
-#include "Group.h"
 #include "AccountP.h"
 
 #include "gnc-backend-util-gda.h"
@@ -57,182 +56,196 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)xaccAccountSetGUID },
-	{ "name",			CT_STRING,	ACCOUNT_MAX_NAME_LEN, COL_NNUL,	ACCOUNT_NAME_ },
-	{ "account_type",	CT_STRING,	ACCOUNT_MAX_TYPE_LEN, COL_NNUL,	ACCOUNT_TYPE_ },
-	{ "commodity_guid",	CT_GUID,	0, COL_NNUL,	NULL,
-			get_commodity, set_commodity },
-	{ "parent_guid",	CT_GUID,	0, 0,	NULL, get_parent, set_parent },
-	{ "code",			CT_STRING,	ACCOUNT_MAX_CODE_LEN, 0,	ACCOUNT_CODE_ },
-	{ "description",	CT_STRING,	ACCOUNT_MAX_DESCRIPTION_LEN, 0,	ACCOUNT_DESCRIPTION_ },
-	{ NULL }
+    { "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)xaccAccountSetGUID },
+    { "name",			CT_STRING,	ACCOUNT_MAX_NAME_LEN, COL_NNUL,	ACCOUNT_NAME_ },
+    { "account_type",	CT_STRING,	ACCOUNT_MAX_TYPE_LEN, COL_NNUL,	ACCOUNT_TYPE_ },
+    { "commodity_guid",	CT_GUID,	0, COL_NNUL,	NULL,
+            get_commodity, set_commodity },
+    { "parent_guid",	CT_GUID,	0, 0,	NULL, get_parent, set_parent },
+    { "code",			CT_STRING,	ACCOUNT_MAX_CODE_LEN, 0,	ACCOUNT_CODE_ },
+    { "description",	CT_STRING,	ACCOUNT_MAX_DESCRIPTION_LEN, 0,	ACCOUNT_DESCRIPTION_ },
+    { NULL }
 };
 
 /* ================================================================= */
 static gpointer
 get_commodity( gpointer pObject, const QofParam* param )
 {
-	const Account* pAccount = GNC_ACCOUNT(pObject);
+    const Account* pAccount = GNC_ACCOUNT(pObject);
 
-	return (gpointer)qof_instance_get_guid(
-						QOF_INSTANCE(xaccAccountGetCommodity( pAccount )) );
+    return (gpointer)qof_instance_get_guid(
+                        QOF_INSTANCE(xaccAccountGetCommodity( pAccount )) );
 }
 
 static void 
 set_commodity( gpointer pObject, gpointer pValue )
 {
-	Account* pAccount = GNC_ACCOUNT(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pAccount) );
-	gnc_commodity* pCommodity;
-	GUID* guid = (GUID*)pValue;
+    Account* pAccount = GNC_ACCOUNT(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pAccount) );
+    gnc_commodity* pCommodity;
+    GUID* guid = (GUID*)pValue;
 
-	pCommodity = gnc_commodity_find_commodity_by_guid( guid, pBook );
-	xaccAccountSetCommodity( pAccount, pCommodity );
+    pCommodity = gnc_commodity_find_commodity_by_guid( guid, pBook );
+    xaccAccountSetCommodity( pAccount, pCommodity );
 }
 
 static gpointer
 get_parent( gpointer pObject, const QofParam* param )
 {
-	const Account* pAccount = GNC_ACCOUNT(pObject);
-	const Account* pParent = xaccAccountGetParentAccount( pAccount );
-	const GUID* parent_guid;
+    const Account* pAccount = GNC_ACCOUNT(pObject);
+    const Account* pParent = gnc_account_get_parent( pAccount );
+    const GUID* parent_guid;
 
-	if( pParent == NULL ) {
-		parent_guid = NULL;
-	} else {
-		parent_guid = qof_instance_get_guid( QOF_INSTANCE(pParent) );
-	}
+    if( pParent == NULL ) {
+        parent_guid = NULL;
+    } else {
+        parent_guid = qof_instance_get_guid( QOF_INSTANCE(pParent) );
+    }
 
-	return (gpointer)parent_guid;
+    return (gpointer)parent_guid;
 }
 
 static void 
 set_parent( gpointer pObject, gpointer pValue )
 {
-	Account* pAccount = GNC_ACCOUNT(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pAccount) );
-	GUID* guid = (GUID*)pValue;
-	Account* pParent;
-	
-	if( guid != NULL ) {
-		pParent = xaccAccountLookup( guid, pBook );
-		if( pParent != NULL ) {
-			xaccAccountInsertSubAccount( pParent, pAccount );
-		}
-	}
+    Account* pAccount = GNC_ACCOUNT(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pAccount) );
+    GUID* guid = (GUID*)pValue;
+    Account* pParent;
+    
+    if( guid != NULL ) {
+        pParent = xaccAccountLookup( guid, pBook );
+        if( pParent != NULL ) {
+            gnc_account_append_child( pParent, pAccount );
+        }
+    }
 }
 
 static Account*
 load_account( GncGdaBackend* be, GdaDataModel* pModel, int row,
-			Account* pAccount )
+            Account* pAccount )
 {
-	const GUID* guid;
-	GUID acc_guid;
+    const GUID* guid;
+    GUID acc_guid;
 
-	guid = gnc_gda_load_guid( pModel, row );
-	acc_guid = *guid;
+    guid = gnc_gda_load_guid( pModel, row );
+    acc_guid = *guid;
 
-	if( pAccount == NULL ) {
-		pAccount = xaccAccountLookup( &acc_guid, be->primary_book );
-		if( pAccount == NULL ) {
-			pAccount = xaccMallocAccount( be->primary_book );
-		}
-	}
-	gnc_gda_load_object( pModel, row, GNC_ID_ACCOUNT, pAccount, col_table );
-	gnc_gda_slots_load( be, xaccAccountGetGUID( pAccount ),
-							qof_instance_get_slots( QOF_INSTANCE(pAccount) ) );
+    if( pAccount == NULL ) {
+        pAccount = xaccAccountLookup( &acc_guid, be->primary_book );
+        if( pAccount == NULL ) {
+            pAccount = xaccMallocAccount( be->primary_book );
+        }
+    }
+    gnc_gda_load_object( pModel, row, GNC_ID_ACCOUNT, pAccount, col_table );
+    gnc_gda_slots_load( be, xaccAccountGetGUID( pAccount ),
+                        qof_instance_get_slots( QOF_INSTANCE(pAccount) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pAccount) );
+    qof_instance_mark_clean( QOF_INSTANCE(pAccount) );
 
-	return pAccount;
+    return pAccount;
 }
 
 static void
 load_accounts( GncGdaBackend* be )
 {
-	static GdaQuery* query = NULL;
-	GdaObject* ret;
-	QofBook* pBook = be->primary_book;
-	gnc_commodity_table* pTable = gnc_commodity_table_get_table( pBook );
+    static GdaQuery* query = NULL;
+    GdaObject* ret;
+    QofBook* pBook = be->primary_book;
+    gnc_commodity_table* pTable = gnc_commodity_table_get_table( pBook );
 
-	/* First time, create the query */
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, TABLE_NAME );
-	}
+    /* First time, create the query */
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, TABLE_NAME );
+    }
 
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
-		Account* pAccount;
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
+        Account* pAccount;
+        Account* parent;
 
-		for( r = 0; r < numRows; r++ ) {
-			pAccount = load_account( be, pModel, r, NULL );
+        for( r = 0; r < numRows; r++ ) {
+            pAccount = load_account( be, pModel, r, NULL );
 
-			if( pAccount != NULL ) {
-				if( xaccAccountGetParent( pAccount ) == NULL ) {
-        			xaccGroupInsertAccount(
-									gnc_book_get_group( pBook ),
-									pAccount );
-				}
-			}
-		}
-	}
+            if( pAccount != NULL ) {
+
+                /* Backwards compatibility.  If there's no parent, see if
+                 * this account is of type ROOT.  If not, find or create a
+                 * ROOT account and make that the parent. */
+                parent = gnc_account_get_parent( pAccount );
+                if( parent == NULL ) {
+                    int type;
+
+                    type = xaccAccountGetType( pAccount );
+                    if( type != ACCT_TYPE_ROOT ) {
+                        Account* root;
+                        root = gnc_book_get_root_account( pBook );
+                        if( root == NULL ) {
+                            root = gnc_account_create_root( pBook );
+                        }
+                        gnc_account_append_child( root, pAccount ); 
+                    }
+                }
+            }
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_account_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
+    gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
 }
 
 /* ================================================================= */
 static void
 commit_account( GncGdaBackend* be, QofInstance* inst )
 {
-	Account* pAcc = GNC_ACCOUNT(inst);
-	const GUID* guid;
+    Account* pAcc = GNC_ACCOUNT(inst);
+    const GUID* guid;
 
-	// If there is no commodity yet, this might be because a new account name has been entered directly
-	// into the register and an account window will be opened.  The account info is not complete yet,
-	// but the name has been set, triggering this commit
-	if( xaccAccountGetCommodity( pAcc ) != NULL ) {
-		// Ensure the commodity is in the db
-		gnc_gda_save_commodity( be, xaccAccountGetCommodity( pAcc ) );
+    // If there is no commodity yet, this might be because a new account name has been entered directly
+    // into the register and an account window will be opened.  The account info is not complete yet,
+    // but the name has been set, triggering this commit
+    if( xaccAccountGetCommodity( pAcc ) != NULL ) {
+        // Ensure the commodity is in the db
+        gnc_gda_save_commodity( be, xaccAccountGetCommodity( pAcc ) );
 
-		(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						TABLE_NAME,
-						GNC_ID_ACCOUNT, pAcc,
-						col_table );
+        (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        TABLE_NAME,
+                        GNC_ID_ACCOUNT, pAcc,
+                        col_table );
 
-		// Now, commit or delete any slots
-		guid = qof_instance_get_guid( inst );
-		if( !inst->do_free ) {
-			gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
-		} else {
-			gnc_gda_slots_delete( be, guid );
-		}
-	}
+        // Now, commit or delete any slots
+        guid = qof_instance_get_guid( inst );
+        if( !inst->do_free ) {
+            gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
+        } else {
+            gnc_gda_slots_delete( be, guid );
+        }
+    }
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_account_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_ACCOUNT,
-		commit_account,				/* commit */
-		load_accounts,				/* initial_load */
-		create_account_tables		/* create_tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_ACCOUNT,
+        commit_account,				/* commit */
+        load_accounts,				/* initial_load */
+        create_account_tables		/* create_tables */
+    };
 
-	qof_object_register_backend( GNC_ID_ACCOUNT, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_ACCOUNT, GNC_GDA_BACKEND, &be_data );
 }
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-backend-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-backend-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-backend-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -54,22 +54,22 @@
 static const gchar* convert_search_obj( QofIdType objType );
 static void gnc_gda_init_object_handlers( void );
 static void add_table_column( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
-			gint size, gint flags );
+            xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
+            gint size, gint flags );
 
 typedef struct {
-	QofIdType searchObj;
-	gpointer pCompiledQuery;
+    QofIdType searchObj;
+    gpointer pCompiledQuery;
 } gnc_gda_query_info;
 
 /* callback structure */
 typedef struct {
-	gboolean ok;
-	GncGdaBackend* be;
-	QofInstance* inst;
-	QofQuery* pQuery;
-	gpointer pCompiledQuery;
-	gnc_gda_query_info* pQueryInfo;
+    gboolean ok;
+    GncGdaBackend* be;
+    QofInstance* inst;
+    QofQuery* pQuery;
+    gpointer pCompiledQuery;
+    gnc_gda_query_info* pQueryInfo;
 } gda_backend;
 
 static QofLogModule log_module = GNC_MOD_BACKEND;
@@ -79,15 +79,15 @@
 static void
 create_tables_cb( const gchar* type, gpointer data_p, gpointer be_data_p )
 {
-	GncGdaDataType_t* pData = data_p;
-	gda_backend* be_data = be_data_p;
+    GncGdaDataType_t* pData = data_p;
+    gda_backend* be_data = be_data_p;
 
-	g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
-	g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
+    g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
+    g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
 
-	if( pData->create_tables != NULL ) {
-		(pData->create_tables)( be_data->be );
-	}
+    if( pData->create_tables != NULL ) {
+        (pData->create_tables)( be_data->be );
+    }
 }
 
 static void
@@ -96,67 +96,67 @@
                    gboolean ignore_lock, gboolean create_if_nonexistent)
 {
     GncGdaBackend *be = (GncGdaBackend*) be_start;
-	GError* error = NULL;
-	gda_backend be_data;
-	gchar* book_info;
-	gchar* dsn;
-	gchar* username;
-	gchar* password;
+    GError* error = NULL;
+    gda_backend be_data;
+    gchar* book_info;
+    gchar* dsn;
+    gchar* username;
+    gchar* password;
 
     ENTER (" ");
 
-	be->pClient = gda_client_new();
+    be->pClient = gda_client_new();
 
-	/* Split book_id into provider and connection string */
-	book_info = g_strdup( book_id );
-	dsn = strchr( book_info, ':' );
-	*dsn = '\0';
-	dsn += 3;
-	username = strchr( dsn, ':' );
-	if( username != NULL ) {
-		*username++ = '\0';
-	} else {
-		username = "";
-	}
-	password = strchr( username, ':' );
-	if( password != NULL ) {
-		*password++ = '\0';
-	} else {
-		password = "";
-	}
+    /* Split book_id into provider and connection string */
+    book_info = g_strdup( book_id );
+    dsn = strchr( book_info, ':' );
+    *dsn = '\0';
+    dsn += 3;
+    username = strchr( dsn, ':' );
+    if( username != NULL ) {
+        *username++ = '\0';
+    } else {
+        username = "";
+    }
+    password = strchr( username, ':' );
+    if( password != NULL ) {
+        *password++ = '\0';
+    } else {
+        password = "";
+    }
 
-	be->pConnection = gda_client_open_connection( be->pClient,
+    be->pConnection = gda_client_open_connection( be->pClient,
 						dsn,
 						username, password,
 						0,
 						&error );
-	g_free( book_info );
+    g_free( book_info );
 
-	if( be->pConnection == NULL ) {
-		printf( "SQL error: %s\n", error->message );
-		qof_backend_set_error( be_start, ERR_BACKEND_NO_SUCH_DB );
-		return;
-	}
+    if( be->pConnection == NULL ) {
+        g_critical( "SQL error: %s\n", error->message );
+        qof_backend_set_error( be_start, ERR_BACKEND_NO_SUCH_DB );
+        return;
+    }
 
-	// Set up the dictionary
-	be->pDict = gda_dict_new();
-	gda_dict_set_connection( be->pDict, be->pConnection );
-	gda_dict_update_dbms_meta_data( be->pDict, 0, NULL, &error );
-	if( error != NULL ) {
-		printf( "gda_dict_update_dbms_meta_data() error: %s\n", error->message );
-	}
+    // Set up the dictionary
+    be->pDict = gda_dict_new();
+    gda_dict_set_connection( be->pDict, be->pConnection );
+    gda_dict_update_dbms_meta_data( be->pDict, 0, NULL, &error );
+    if( error != NULL ) {
+        g_critical( "gda_dict_update_dbms_meta_data() error: %s\n", error->message );
+    }
 
-	// Call all object backends to create any required tables
-	be_data.ok = FALSE;
-	be_data.be = be;
-	be_data.inst = NULL;
-	qof_object_foreach_backend( GNC_GDA_BACKEND, create_tables_cb, &be_data );
+    // Call all object backends to create any required tables
+    be_data.ok = FALSE;
+    be_data.be = be;
+    be_data.inst = NULL;
+    qof_object_foreach_backend( GNC_GDA_BACKEND, create_tables_cb, &be_data );
 
-	// Update the dictionary because new tables may exist
-	gda_dict_update_dbms_meta_data( be->pDict, 0, NULL, &error );
-	if( error != NULL ) {
-		printf( "gda_dict_update_dbms_meta_data() error: %s\n", error->message );
-	}
+    // Update the dictionary because new tables may exist
+    gda_dict_update_dbms_meta_data( be->pDict, 0, NULL, &error );
+    if( error != NULL ) {
+        g_critical( "gda_dict_update_dbms_meta_data() error: %s\n", error->message );
+    }
 
     LEAVE (" ");
 }
@@ -169,18 +169,18 @@
     GncGdaBackend *be = (GncGdaBackend*)be_start;
     ENTER (" ");
 
-	if( be->pDict != NULL ) {
-		g_object_unref( G_OBJECT(be->pDict) );
-		be->pDict = NULL;
-	}
-	if( be->pConnection != NULL && gda_connection_is_opened( be->pConnection ) ) {
-		gda_connection_close( be->pConnection );
-	}
-	be->pConnection = NULL;
-	if( be->pClient != NULL ) {
-		g_object_unref( G_OBJECT(be->pClient ) );
-		be->pClient = NULL;
-	}
+    if( be->pDict != NULL ) {
+        g_object_unref( G_OBJECT(be->pDict) );
+        be->pDict = NULL;
+    }
+    if( be->pConnection != NULL && gda_connection_is_opened( be->pConnection ) ) {
+        gda_connection_close( be->pConnection );
+    }
+    be->pConnection = NULL;
+    if( be->pClient != NULL ) {
+        g_object_unref( G_OBJECT(be->pClient ) );
+        be->pClient = NULL;
+    }
 
     LEAVE (" ");
 }
@@ -196,39 +196,39 @@
 static void
 initial_load_cb( const gchar* type, gpointer data_p, gpointer be_data_p )
 {
-	GncGdaDataType_t* pData = data_p;
-	gda_backend* be_data = be_data_p;
+    GncGdaDataType_t* pData = data_p;
+    gda_backend* be_data = be_data_p;
 
-	g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
-	g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
+    g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
+    g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
 
-	if( pData->initial_load != NULL ) {
-		(pData->initial_load)( be_data->be );
-	}
+    if( pData->initial_load != NULL ) {
+        (pData->initial_load)( be_data->be );
+    }
 }
 
 static void
 gnc_gda_load(QofBackend* be_start, QofBook *book)
 {
     GncGdaBackend *be = (GncGdaBackend*)be_start;
-	gda_backend be_data;
+    gda_backend be_data;
 
     ENTER (" ");
 
-	g_assert( be->primary_book == NULL );
-	be->primary_book = book;
+    g_assert( be->primary_book == NULL );
+    be->primary_book = book;
 
-	/* Load any initial stuff */
-	be->loading = TRUE;
+    /* Load any initial stuff */
+    be->loading = TRUE;
+    
+    be_data.ok = FALSE;
+    be_data.be = be;
+    be_data.inst = NULL;
+    qof_object_foreach_backend( GNC_GDA_BACKEND, initial_load_cb, &be_data );
 
-	be_data.ok = FALSE;
-	be_data.be = be;
-	be_data.inst = NULL;
-	qof_object_foreach_backend( GNC_GDA_BACKEND, initial_load_cb, &be_data );
+    be->loading = FALSE;
 
-	be->loading = FALSE;
-
-	LEAVE( "" );
+    LEAVE( "" );
 }
 
 /* ================================================================= */
@@ -237,57 +237,57 @@
 gnc_gda_sync_all(QofBackend* be, QofBook *book)
 {
     GncGdaBackend *fbe = (GncGdaBackend *) be;
-	GdaDataModel* tables;
-	GError* error = NULL;
-	gint row;
-	gint numTables;
-	gda_backend be_data;
+    GdaDataModel* tables;
+    GError* error = NULL;
+    gint row;
+    gint numTables;
+    gda_backend be_data;
 
     ENTER ("book=%p, primary=%p", book, fbe->primary_book);
 
-	/* Destroy the current contents of the database */
-	tables = gda_connection_get_schema( fbe->pConnection,
-										GDA_CONNECTION_SCHEMA_TABLES,
-										NULL,
-										&error );
-	if( error != NULL ) {
-		printf( "SQL error: %s\n", error->message );
-	}
-	numTables = gda_data_model_get_n_rows( tables );
-	for( row = 0; row < numTables; row++ ) {
-		const GValue* row_value;
-		const gchar* table_name;
+    /* Destroy the current contents of the database */
+    tables = gda_connection_get_schema( fbe->pConnection,
+                                        GDA_CONNECTION_SCHEMA_TABLES,
+                                        NULL,
+                                        &error );
+    if( error != NULL ) {
+        g_critical( "SQL error: %s\n", error->message );
+    }
+    numTables = gda_data_model_get_n_rows( tables );
+    for( row = 0; row < numTables; row++ ) {
+        const GValue* row_value;
+        const gchar* table_name;
 
-		row_value = gda_data_model_get_value_at( tables, 0, row );
-		table_name = g_value_get_string( row_value );
-		error = NULL;
-		if( !gda_drop_table( fbe->pConnection, table_name, &error ) ) {
-			printf( "Unable to drop table %s\n", table_name );
-			if( error != NULL ) {
-				printf( "SQL error: %s\n", error->message );
-			}
-		}
-	}
+        row_value = gda_data_model_get_value_at( tables, 0, row );
+        table_name = g_value_get_string( row_value );
+        error = NULL;
+        if( !gda_drop_table( fbe->pConnection, table_name, &error ) ) {
+            g_critical( "Unable to drop table %s\n", table_name );
+            if( error != NULL ) {
+                g_critical( "SQL error: %s\n", error->message );
+            }
+        }
+    }
 
-	/* Create new tables */
-	be_data.ok = FALSE;
-	be_data.be = fbe;
-	be_data.inst = NULL;
-	qof_object_foreach_backend( GNC_GDA_BACKEND, create_tables_cb, &be_data );
+    /* Create new tables */
+    be_data.ok = FALSE;
+    be_data.be = fbe;
+    be_data.inst = NULL;
+    qof_object_foreach_backend( GNC_GDA_BACKEND, create_tables_cb, &be_data );
 
-	// Update the dictionary because new tables may exist
-	gda_dict_update_dbms_meta_data( fbe->pDict, 0, NULL, &error );
-	if( error != NULL ) {
-		printf( "gda_dict_update_dbms_meta_data() error: %s\n", error->message );
-	}
+    // Update the dictionary because new tables may exist
+    gda_dict_update_dbms_meta_data( fbe->pDict, 0, NULL, &error );
+    if( error != NULL ) {
+        g_critical( "gda_dict_update_dbms_meta_data() error: %s\n", error->message );
+    }
 
-	/* Save all contents */
+    /* Save all contents */
 
-	/* Accounts */
-	/* Prices */
-	/* Budgets */
-	/* Sched tx */
-	/* Transactions */
+    /* Accounts */
+    /* Prices */
+    /* Budgets */
+    /* Sched tx */
+    /* Transactions */
 
     LEAVE ("book=%p", book);
 }
@@ -332,34 +332,34 @@
 gnc_gda_commit_edit (QofBackend *be_start, QofInstance *inst)
 {
     GncGdaBackend *be = (GncGdaBackend*)be_start;
-	gda_backend be_data;
+    gda_backend be_data;
 
-	/* During initial load where objects are being created, don't commit
-	anything */
+    /* During initial load where objects are being created, don't commit
+    anything */
 
-	if( be->loading ) return;
+    if( be->loading ) return;
 
-	printf( "gda_commit_edit(): %s dirty = %d, do_free=%d\n", inst->entity.e_type, inst->dirty, inst->do_free );
+    g_debug( "gda_commit_edit(): %s dirty = %d, do_free=%d\n", inst->entity.e_type, inst->dirty, inst->do_free );
 
-	if( !inst->dirty && !inst->do_free && GNC_IS_TRANS(inst) ) {
-		gnc_gda_transaction_commit_splits( be, GNC_TRANS(inst) );
-	}
+    if( !inst->dirty && !inst->do_free && GNC_IS_TRANS(inst) ) {
+        gnc_gda_transaction_commit_splits( be, GNC_TRANS(inst) );
+    }
 
-	if( !inst->dirty && !inst->do_free ) return;
+    if( !inst->dirty && !inst->do_free ) return;
 
-	be_data.ok = FALSE;
-	be_data.be = be;
-	be_data.inst = inst;
-	qof_object_foreach_backend( GNC_GDA_BACKEND, commit_cb, &be_data );
+    be_data.ok = FALSE;
+    be_data.be = be;
+    be_data.inst = inst;
+    qof_object_foreach_backend( GNC_GDA_BACKEND, commit_cb, &be_data );
 
-	if( !be_data.ok ) {
-		printf( "gnc_gda_commit_edit(): Unknown object type %s\n",
-				inst->entity.e_type );
-		return;
-	}
+    if( !be_data.ok ) {
+        g_critical( "gnc_gda_commit_edit(): Unknown object type %s\n",
+                inst->entity.e_type );
+        return;
+    }
 
-	inst->dirty = FALSE;
-	qof_book_mark_saved( be->primary_book );
+    inst->dirty = FALSE;
+    qof_book_mark_saved( be->primary_book );
 }
 /* ---------------------------------------------------------------------- */
 
@@ -368,274 +368,274 @@
 static const gchar*
 convert_search_obj( QofIdType objType )
 {
-	return (gchar*)objType;
+    return (gchar*)objType;
 }
 
 static void
 handle_and_term( QofQueryTerm* pTerm, gchar* sql )
 {
-	GSList* pParamPath = qof_query_term_get_param_path( pTerm );
-	QofQueryPredData* pPredData = qof_query_term_get_pred_data( pTerm );
-	gboolean isInverted = qof_query_term_is_inverted( pTerm );
-	GSList* name;
-	gchar val[GUID_ENCODING_LENGTH+1];
+    GSList* pParamPath = qof_query_term_get_param_path( pTerm );
+    QofQueryPredData* pPredData = qof_query_term_get_pred_data( pTerm );
+    gboolean isInverted = qof_query_term_is_inverted( pTerm );
+    GSList* name;
+    gchar val[GUID_ENCODING_LENGTH+1];
 
-	strcat( sql, "(" );
-	if( isInverted ) {
-		strcat( sql, "!" );
-	}
+    strcat( sql, "(" );
+    if( isInverted ) {
+        strcat( sql, "!" );
+    }
 
-	for( name = pParamPath; name != NULL; name = name->next ) {
-		if( name != pParamPath ) strcat( sql, "." );
-		strcat( sql, name->data );
-	}
+    for( name = pParamPath; name != NULL; name = name->next ) {
+        if( name != pParamPath ) strcat( sql, "." );
+        strcat( sql, name->data );
+    }
 
-	if( pPredData->how == QOF_COMPARE_LT ) {
-		strcat( sql, "<" );
-	} else if( pPredData->how == QOF_COMPARE_LTE ) {
-		strcat( sql, "<=" );
-	} else if( pPredData->how == QOF_COMPARE_EQUAL ) {
-		strcat( sql, "=" );
-	} else if( pPredData->how == QOF_COMPARE_GT ) {
-		strcat( sql, ">" );
-	} else if( pPredData->how == QOF_COMPARE_GTE ) {
-		strcat( sql, ">=" );
-	} else if( pPredData->how == QOF_COMPARE_NEQ ) {
-		strcat( sql, "~=" );
-	} else {
-		strcat( sql, "??" );
-	}
+    if( pPredData->how == QOF_COMPARE_LT ) {
+        strcat( sql, "<" );
+    } else if( pPredData->how == QOF_COMPARE_LTE ) {
+        strcat( sql, "<=" );
+    } else if( pPredData->how == QOF_COMPARE_EQUAL ) {
+        strcat( sql, "=" );
+    } else if( pPredData->how == QOF_COMPARE_GT ) {
+        strcat( sql, ">" );
+    } else if( pPredData->how == QOF_COMPARE_GTE ) {
+        strcat( sql, ">=" );
+    } else if( pPredData->how == QOF_COMPARE_NEQ ) {
+        strcat( sql, "~=" );
+    } else {
+        strcat( sql, "??" );
+    }
 
-	if( strcmp( pPredData->type_name, "string" ) == 0 ) {
-		query_string_t pData = (query_string_t)pPredData;
-		strcat( sql, "'" );
-		strcat( sql, pData->matchstring );
-		strcat( sql, "'" );
-	} else if( strcmp( pPredData->type_name, "date" ) == 0 ) {
-		query_date_t pData = (query_date_t)pPredData;
+    if( strcmp( pPredData->type_name, "string" ) == 0 ) {
+        query_string_t pData = (query_string_t)pPredData;
+        strcat( sql, "'" );
+        strcat( sql, pData->matchstring );
+        strcat( sql, "'" );
+    } else if( strcmp( pPredData->type_name, "date" ) == 0 ) {
+        query_date_t pData = (query_date_t)pPredData;
 
-		(void)gnc_timespec_to_iso8601_buff( pData->date, val );
-		strcat( sql, "'" );
-		strncat( sql, val, 4+1+2+1+2 );
-		strcat( sql, "'" );
-	} else if( strcmp( pPredData->type_name, "numeric" ) == 0 ) {
-		query_numeric_t pData = (query_numeric_t)pPredData;
+        (void)gnc_timespec_to_iso8601_buff( pData->date, val );
+        strcat( sql, "'" );
+        strncat( sql, val, 4+1+2+1+2 );
+        strcat( sql, "'" );
+    } else if( strcmp( pPredData->type_name, "numeric" ) == 0 ) {
+        query_numeric_t pData = (query_numeric_t)pPredData;
+    
+        strcat( sql, "numeric" );
+    } else if( strcmp( pPredData->type_name, "guid" ) == 0 ) {
+        query_guid_t pData = (query_guid_t)pPredData;
+        (void)guid_to_string_buff( pData->guids->data, val );
+        strcat( sql, "'" );
+        strcat( sql, val );
+        strcat( sql, "'" );
+    } else if( strcmp( pPredData->type_name, "gint32" ) == 0 ) {
+        query_int32_t pData = (query_int32_t)pPredData;
 
-		strcat( sql, "numeric" );
-	} else if( strcmp( pPredData->type_name, "guid" ) == 0 ) {
-		query_guid_t pData = (query_guid_t)pPredData;
-		(void)guid_to_string_buff( pData->guids->data, val );
-		strcat( sql, "'" );
-		strcat( sql, val );
-		strcat( sql, "'" );
-	} else if( strcmp( pPredData->type_name, "gint32" ) == 0 ) {
-		query_int32_t pData = (query_int32_t)pPredData;
+        sprintf( val, "%d", pData->val );
+        strcat( sql, val );
+    } else if( strcmp( pPredData->type_name, "gint64" ) == 0 ) {
+        query_int64_t pData = (query_int64_t)pPredData;
+    
+        sprintf( val, "%lld", pData->val );
+        strcat( sql, val );
+    } else if( strcmp( pPredData->type_name, "double" ) == 0 ) {
+        query_double_t pData = (query_double_t)pPredData;
 
-		sprintf( val, "%d", pData->val );
-		strcat( sql, val );
-	} else if( strcmp( pPredData->type_name, "gint64" ) == 0 ) {
-		query_int64_t pData = (query_int64_t)pPredData;
+        sprintf( val, "%f", pData->val );
+        strcat( sql, val );
+    } else if( strcmp( pPredData->type_name, "boolean" ) == 0 ) {
+        query_boolean_t pData = (query_boolean_t)pPredData;
 
-		sprintf( val, "%lld", pData->val );
-		strcat( sql, val );
-	} else if( strcmp( pPredData->type_name, "double" ) == 0 ) {
-		query_double_t pData = (query_double_t)pPredData;
+        sprintf( val, "%d", pData->val );
+        strcat( sql, val );
+    } else {
+        g_assert( FALSE );
+    }
 
-		sprintf( val, "%f", pData->val );
-		strcat( sql, val );
-	} else if( strcmp( pPredData->type_name, "boolean" ) == 0 ) {
-		query_boolean_t pData = (query_boolean_t)pPredData;
-
-		sprintf( val, "%d", pData->val );
-		strcat( sql, val );
-	} else {
-		g_assert( FALSE );
-	}
-
-	strcat( sql, ")" );
+    strcat( sql, ")" );
 }
 
 static void
 compile_query_cb( const gchar* type, gpointer data_p, gpointer be_data_p )
 {
-	GncGdaDataType_t* pData = data_p;
-	gda_backend* be_data = be_data_p;
+    GncGdaDataType_t* pData = data_p;
+    gda_backend* be_data = be_data_p;
 
-	g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
-	g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
+    g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
+    g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
 
-	g_return_if_fail( strcmp( type, be_data->pQueryInfo->searchObj ) == 0 );
-	g_return_if_fail( !be_data->ok );
+    g_return_if_fail( strcmp( type, be_data->pQueryInfo->searchObj ) == 0 );
+    g_return_if_fail( !be_data->ok );
 
-	if( pData->compile_query != NULL ) {
-		be_data->pQueryInfo->pCompiledQuery = (pData->compile_query)(
-															be_data->be,
-															be_data->pQuery );
-		be_data->ok = TRUE;
-	}
+    if( pData->compile_query != NULL ) {
+        be_data->pQueryInfo->pCompiledQuery = (pData->compile_query)(
+                                                            be_data->be,
+                                                            be_data->pQuery );
+        be_data->ok = TRUE;
+    }
 }
 
 static gpointer
 gnc_gda_compile_query(QofBackend* pBEnd, QofQuery* pQuery)
 {
     GncGdaBackend *be = (GncGdaBackend*)pBEnd;
-	GList* pBookList;
-	QofIdType searchObj;
-	gchar sql[1000];
-	gda_backend be_data;
-	gnc_gda_query_info* pQueryInfo;
+    GList* pBookList;
+    QofIdType searchObj;
+    gchar sql[1000];
+    gda_backend be_data;
+    gnc_gda_query_info* pQueryInfo;
 
-	searchObj = qof_query_get_search_for( pQuery );
+    searchObj = qof_query_get_search_for( pQuery );
 
-	pQueryInfo = g_malloc( sizeof( gnc_gda_query_info ) );
+    pQueryInfo = g_malloc( sizeof( gnc_gda_query_info ) );
 
-	// Try various objects first
-	be_data.ok = FALSE;
-	be_data.be = be;
-	be_data.pQuery = pQuery;
-	pQueryInfo->searchObj = searchObj;
-	be_data.pQueryInfo = pQueryInfo;
+    // Try various objects first
+    be_data.ok = FALSE;
+    be_data.be = be;
+    be_data.pQuery = pQuery;
+    pQueryInfo->searchObj = searchObj;
+    be_data.pQueryInfo = pQueryInfo;
 
-	qof_object_foreach_backend( GNC_GDA_BACKEND, compile_query_cb, &be_data );
-	if( be_data.ok ) {
-		return be_data.pQueryInfo;
-	}
+    qof_object_foreach_backend( GNC_GDA_BACKEND, compile_query_cb, &be_data );
+    if( be_data.ok ) {
+        return be_data.pQueryInfo;
+    }
 
-	pBookList = qof_query_get_books( pQuery );
+    pBookList = qof_query_get_books( pQuery );
 
-	/* Convert search object type to table name */
-	sprintf( sql, "SELECT * from %s", convert_search_obj( searchObj ) );
-	if( !qof_query_has_terms( pQuery ) ) {
-		strcat( sql, ";" );
-	} else {
-		GList* pOrTerms = qof_query_get_terms( pQuery );
-		GList* orTerm;
+    /* Convert search object type to table name */
+    sprintf( sql, "SELECT * from %s", convert_search_obj( searchObj ) );
+    if( !qof_query_has_terms( pQuery ) ) {
+        strcat( sql, ";" );
+    } else {
+        GList* pOrTerms = qof_query_get_terms( pQuery );
+        GList* orTerm;
 
-		strcat( sql, " WHERE " );
+        strcat( sql, " WHERE " );
 
-		for( orTerm = pOrTerms; orTerm != NULL; orTerm = orTerm->next ) {
-			GList* pAndTerms = (GList*)orTerm->data;
-			GList* andTerm;
+        for( orTerm = pOrTerms; orTerm != NULL; orTerm = orTerm->next ) {
+            GList* pAndTerms = (GList*)orTerm->data;
+            GList* andTerm;
 
-			if( orTerm != pOrTerms ) strcat( sql, " OR " );
-			strcat( sql, "(" );
-			for( andTerm = pAndTerms; andTerm != NULL; andTerm = andTerm->next ) {
-				if( andTerm != pAndTerms ) strcat( sql, " AND " );
-				handle_and_term( (QofQueryTerm*)andTerm->data, sql );
-			}
-			strcat( sql, ")" );
-		}
-	}
+            if( orTerm != pOrTerms ) strcat( sql, " OR " );
+            strcat( sql, "(" );
+            for( andTerm = pAndTerms; andTerm != NULL; andTerm = andTerm->next ) {
+                if( andTerm != pAndTerms ) strcat( sql, " AND " );
+                handle_and_term( (QofQueryTerm*)andTerm->data, sql );
+            }
+            strcat( sql, ")" );
+        }
+    }
 
-	printf( "Compiled: %s\n", sql );
-	pQueryInfo->pCompiledQuery =  g_strdup( sql );
+    g_debug( "Compiled: %s\n", sql );
+    pQueryInfo->pCompiledQuery =  g_strdup( sql );
 
-	return pQueryInfo;
+    return pQueryInfo;
 }
 
 static void
 free_query_cb( const gchar* type, gpointer data_p, gpointer be_data_p )
 {
-	GncGdaDataType_t* pData = data_p;
-	gda_backend* be_data = be_data_p;
+    GncGdaDataType_t* pData = data_p;
+    gda_backend* be_data = be_data_p;
 
-	g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
-	g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
-	g_return_if_fail( strcmp( type, be_data->pQueryInfo->searchObj ) == 0 );
+    g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
+    g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
+    g_return_if_fail( strcmp( type, be_data->pQueryInfo->searchObj ) == 0 );
 
-	g_return_if_fail( !be_data->ok );
+    g_return_if_fail( !be_data->ok );
 
-	if( pData->free_query != NULL ) {
-		(pData->free_query)( be_data->be, be_data->pCompiledQuery );
-		be_data->ok = TRUE;
-	}
+    if( pData->free_query != NULL ) {
+        (pData->free_query)( be_data->be, be_data->pCompiledQuery );
+        be_data->ok = TRUE;
+    }
 }
 
 static void
 gnc_gda_free_query(QofBackend* pBEnd, gpointer pQuery)
 {
     GncGdaBackend *be = (GncGdaBackend*)pBEnd;
-	gnc_gda_query_info* pQueryInfo = (gnc_gda_query_info*)pQuery;
-	gda_backend be_data;
+    gnc_gda_query_info* pQueryInfo = (gnc_gda_query_info*)pQuery;
+    gda_backend be_data;
 
-	// Try various objects first
-	be_data.ok = FALSE;
-	be_data.be = be;
-	be_data.pCompiledQuery = pQuery;
-	be_data.pQueryInfo = pQueryInfo;
+    // Try various objects first
+    be_data.ok = FALSE;
+    be_data.be = be;
+    be_data.pCompiledQuery = pQuery;
+    be_data.pQueryInfo = pQueryInfo;
 
-	qof_object_foreach_backend( GNC_GDA_BACKEND, free_query_cb, &be_data );
-	if( be_data.ok ) {
-		return;
-	}
+    qof_object_foreach_backend( GNC_GDA_BACKEND, free_query_cb, &be_data );
+    if( be_data.ok ) {
+        return;
+    }
 
-	printf( "gda_free_query(): %s\n", (gchar*)pQueryInfo->pCompiledQuery );
-	g_free( pQueryInfo->pCompiledQuery );
-	g_free( pQueryInfo );
+    g_debug( "gda_free_query(): %s\n", (gchar*)pQueryInfo->pCompiledQuery );
+    g_free( pQueryInfo->pCompiledQuery );
+    g_free( pQueryInfo );
 }
 
 static void
 run_query_cb( const gchar* type, gpointer data_p, gpointer be_data_p )
 {
-	GncGdaDataType_t* pData = data_p;
-	gda_backend* be_data = be_data_p;
+    GncGdaDataType_t* pData = data_p;
+    gda_backend* be_data = be_data_p;
 
-	g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
-	g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
-	g_return_if_fail( strcmp( type, be_data->pQueryInfo->searchObj ) == 0 );
+    g_return_if_fail( type != NULL && pData != NULL && be_data != NULL );
+    g_return_if_fail( pData->version == GNC_GDA_BACKEND_VERSION );
+    g_return_if_fail( strcmp( type, be_data->pQueryInfo->searchObj ) == 0 );
 
-	g_return_if_fail( !be_data->ok );
+    g_return_if_fail( !be_data->ok );
 
-	if( pData->run_query != NULL ) {
-		(pData->run_query)( be_data->be, be_data->pCompiledQuery );
-		be_data->ok = TRUE;
-	}
+    if( pData->run_query != NULL ) {
+        (pData->run_query)( be_data->be, be_data->pCompiledQuery );
+        be_data->ok = TRUE;
+    }
 }
 
 static void
 gnc_gda_run_query(QofBackend* pBEnd, gpointer pQuery)
 {
     GncGdaBackend *be = (GncGdaBackend*)pBEnd;
-	gnc_gda_query_info* pQueryInfo = (gnc_gda_query_info*)pQuery;
-	gda_backend be_data;
+    gnc_gda_query_info* pQueryInfo = (gnc_gda_query_info*)pQuery;
+    gda_backend be_data;
 
-	g_return_if_fail( !be->in_query );
+    g_return_if_fail( !be->in_query );
 
-	be->loading = TRUE;
-	be->in_query = TRUE;
+    be->loading = TRUE;
+    be->in_query = TRUE;
 
-	qof_event_suspend();
+    qof_event_suspend();
 
-	// Try various objects first
-	be_data.ok = FALSE;
-	be_data.be = be;
-	be_data.pCompiledQuery = pQueryInfo->pCompiledQuery;
-	be_data.pQueryInfo = pQueryInfo;
+    // Try various objects first
+    be_data.ok = FALSE;
+    be_data.be = be;
+    be_data.pCompiledQuery = pQueryInfo->pCompiledQuery;
+    be_data.pQueryInfo = pQueryInfo;
 
-	qof_object_foreach_backend( GNC_GDA_BACKEND, run_query_cb, &be_data );
-	be->loading = FALSE;
-	be->in_query = FALSE;
-	qof_event_resume();
-	if( be_data.ok ) {
-		return;
-	}
+    qof_object_foreach_backend( GNC_GDA_BACKEND, run_query_cb, &be_data );
+    be->loading = FALSE;
+    be->in_query = FALSE;
+    qof_event_resume();
+    if( be_data.ok ) {
+       	return;
+    }
 
-	printf( "gda_run_query(): %s\n", (gchar*)pQueryInfo->pCompiledQuery );
+    g_debug( "gda_run_query(): %s\n", (gchar*)pQueryInfo->pCompiledQuery );
 }
 
 /* ================================================================= */
 static void
 gnc_gda_init_object_handlers( void )
 {
-	gnc_gda_init_book_handler();
-	gnc_gda_init_commodity_handler();
-	gnc_gda_init_account_handler();
-	gnc_gda_init_budget_handler();
-	gnc_gda_init_price_handler();
-	gnc_gda_init_transaction_handler();
-	gnc_gda_init_slots_handler();
-	gnc_gda_init_schedxaction_handler();
-	gnc_gda_init_lot_handler();
+    gnc_gda_init_book_handler();
+    gnc_gda_init_commodity_handler();
+    gnc_gda_init_account_handler();
+    gnc_gda_init_budget_handler();
+    gnc_gda_init_price_handler();
+    gnc_gda_init_transaction_handler();
+    gnc_gda_init_slots_handler();
+    gnc_gda_init_schedxaction_handler();
+    gnc_gda_init_lot_handler();
 }
 
 /* ================================================================= */
@@ -643,45 +643,52 @@
 static QofBackend*
 gnc_gda_backend_new(void)
 {
-	GncGdaBackend *gnc_be;
-	QofBackend *be;
+    GncGdaBackend *gnc_be;
+    QofBackend *be;
+    static gboolean initialized = FALSE;
 
-	gnc_be = g_new0(GncGdaBackend, 1);
-	be = (QofBackend*) gnc_be;
-	qof_backend_init(be);
+    gnc_be = g_new0(GncGdaBackend, 1);
+    be = (QofBackend*) gnc_be;
+    qof_backend_init(be);
 
-	be->session_begin = gnc_gda_session_begin;
-	be->session_end = gnc_gda_session_end;
-	be->destroy_backend = gnc_gda_destroy_backend;
+    be->session_begin = gnc_gda_session_begin;
+    be->session_end = gnc_gda_session_end;
+    be->destroy_backend = gnc_gda_destroy_backend;
 
-	be->load = gnc_gda_load;
-	be->save_may_clobber_data = NULL;
+    be->load = gnc_gda_load;
+    be->save_may_clobber_data = NULL;
 
-	/* The gda backend treats accounting periods transactionally. */
-	be->begin = gnc_gda_begin_edit;
-	be->commit = gnc_gda_commit_edit;
-	be->rollback = gnc_gda_rollback_edit;
+    /* The gda backend treats accounting periods transactionally. */
+    be->begin = gnc_gda_begin_edit;
+    be->commit = gnc_gda_commit_edit;
+    be->rollback = gnc_gda_rollback_edit;
 
-	/* The gda backend uses queries to load data ... */
-	be->compile_query = gnc_gda_compile_query;
-	be->free_query = gnc_gda_free_query;
-	be->run_query = gnc_gda_run_query;
+    /* The gda backend uses queries to load data ... */
+    be->compile_query = gnc_gda_compile_query;
+    be->free_query = gnc_gda_free_query;
+    be->run_query = gnc_gda_run_query;
 
-	be->counter = NULL;
+    be->counter = NULL;
 
-	/* The gda backend will not be multi-user (for now)... */
-	be->events_pending = NULL;
-	be->process_events = NULL;
+    /* The gda backend will not be multi-user (for now)... */
+    be->events_pending = NULL;
+    be->process_events = NULL;
 
-	be->sync = gnc_gda_sync_all;
-	be->load_config = NULL;
-	be->get_config = NULL;
+    be->sync = gnc_gda_sync_all;
+    be->load_config = NULL;
+    be->get_config = NULL;
 
     be->export = NULL;
 
-	gnc_be->primary_book = NULL;
+    gnc_be->primary_book = NULL;
 
-	return be;
+    if( !initialized ) {
+        gda_init( "gnucash", "2.0", 0, NULL );
+        gnc_gda_init_object_handlers();
+        initialized = TRUE;
+    }
+
+    return be;
 }
 
 static void
@@ -695,20 +702,17 @@
 G_MODULE_EXPORT const gchar *
 g_module_check_init(GModule *module)
 {
-	QofBackendProvider *prov;
+    QofBackendProvider *prov;
 
-	prov = g_new0 (QofBackendProvider, 1);
+    prov = g_new0 (QofBackendProvider, 1);
     prov->provider_name = "GnuCash LibGDA Backend (MySQL)";
     prov->access_method = "gda";
     prov->partial_book_supported = FALSE;
     prov->backend_new = gnc_gda_backend_new;
     prov->provider_free = gnc_gda_provider_free;
-	prov->check_data_type = NULL;
+    prov->check_data_type = NULL;
     qof_backend_register_provider (prov);
 
-	gda_init( "gnucash", "2.0", 0, NULL );
-
-	gnc_gda_init_object_handlers();
     return NULL;
 }
 

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-backend-util-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-backend-util-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-backend-util-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,47 +41,43 @@
 #include "gnc-backend-util-gda.h"
 #include "gnc-gconf-utils.h"
 
-static const gchar* convert_search_obj( QofIdType objType );
-static void gnc_gda_init_object_handlers( void );
 static void add_table_column( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
-			gint size, gint flags );
+            xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
+            gint size, gint flags );
 
 typedef struct {
-	QofIdType searchObj;
-	gpointer pCompiledQuery;
+    QofIdType searchObj;
+    gpointer pCompiledQuery;
 } gnc_gda_query_info;
 
 /* callback structure */
 typedef struct {
-	gboolean ok;
-	GncGdaBackend* be;
-	QofInstance* inst;
-	QofQuery* pQuery;
-	gpointer pCompiledQuery;
-	gnc_gda_query_info* pQueryInfo;
+    gboolean ok;
+    GncGdaBackend* be;
+    QofInstance* inst;
+    QofQuery* pQuery;
+    gpointer pCompiledQuery;
+    gnc_gda_query_info* pQueryInfo;
 } gda_backend;
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
-
 typedef void (*GNC_GDA_LOAD_FN)( GdaDataModel* pModel, gint row,
-								QofSetterFunc setter, gpointer pObject,
-								const col_cvt_t* table );
+                                QofSetterFunc setter, gpointer pObject,
+                                const col_cvt_t* table );
 typedef void (*GNC_GDA_CREATE_COL_FN)( GdaServerProvider* server,
-						GdaConnection* cnn, xmlNodePtr array_data,
-						const col_cvt_t* table_row );
+                        GdaConnection* cnn, xmlNodePtr array_data,
+                        const col_cvt_t* table_row );
 typedef void (*GNC_GDA_GET_GVALUE_QUERY_FN)( GncGdaBackend* be,
-				QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GdaQuery* query );
+                QofIdTypeConst obj_name, gpointer pObject,
+                const col_cvt_t* table_row, GdaQuery* query );
 typedef GdaQueryCondition* (*GNC_GDA_GET_GVALUE_COND_FN)( GncGdaBackend* be,
-				QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GdaQuery* query );
+                QofIdTypeConst obj_name, gpointer pObject,
+                const col_cvt_t* table_row, GdaQuery* query );
 
 typedef struct {
-	GNC_GDA_LOAD_FN			load_fn;
-	GNC_GDA_CREATE_COL_FN	create_col_fn;
-	GNC_GDA_GET_GVALUE_QUERY_FN	get_gvalue_query_fn;
-	GNC_GDA_GET_GVALUE_COND_FN	get_gvalue_cond_fn;
+    GNC_GDA_LOAD_FN             load_fn;
+    GNC_GDA_CREATE_COL_FN       create_col_fn;
+    GNC_GDA_GET_GVALUE_QUERY_FN get_gvalue_query_fn;
+    GNC_GDA_GET_GVALUE_COND_FN  get_gvalue_cond_fn;
 } col_type_handler_t;
 
 
@@ -89,762 +85,757 @@
 static void
 add_field_to_query( GdaQuery* query, const gchar* col_name, const GValue* value )
 {
-	GdaQueryField* field;
-	GdaQueryField* field_value;
+    GdaQueryField* field;
+    GdaQueryField* field_value;
 
-	field = gda_query_field_field_new( query, col_name );
-	gda_query_field_set_visible( field, TRUE );
+    field = gda_query_field_field_new( query, col_name );
+    gda_query_field_set_visible( field, TRUE );
 
-	field_value = gda_query_field_value_new( query, G_VALUE_TYPE(value) );
-	gda_query_field_set_visible( field_value, TRUE );
-	gda_query_field_value_set_value( GDA_QUERY_FIELD_VALUE(field_value), value );
-	g_object_set( field, "value-provider", field_value, NULL );
-	g_object_unref( G_OBJECT(field_value) );
+    field_value = gda_query_field_value_new( query, G_VALUE_TYPE(value) );
+    gda_query_field_set_visible( field_value, TRUE );
+    gda_query_field_value_set_value( GDA_QUERY_FIELD_VALUE(field_value), value );
+    g_object_set( field, "value-provider", field_value, NULL );
+    g_object_unref( G_OBJECT(field_value) );
 
-	gda_entity_add_field( GDA_ENTITY(query), GDA_ENTITY_FIELD(field) );
-	g_object_unref( G_OBJECT(field) );
+    gda_entity_add_field( GDA_ENTITY(query), GDA_ENTITY_FIELD(field) );
+    g_object_unref( G_OBJECT(field) );
 }
 
 GdaQueryCondition*
 gnc_gda_create_condition_from_field( GdaQuery* query, const gchar* col_name,
-								const GValue* value )
+                                const GValue* value )
 {
-	GdaQueryCondition* cond;
-	GdaQueryField* key;
-	GdaQueryField* key_value;
+    GdaQueryCondition* cond;
+    GdaQueryField* key;
+    GdaQueryField* key_value;
 
-	cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_EQUAL );
+    cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_EQUAL );
 
-	key = gda_query_field_field_new( query, col_name );
-	gda_query_field_set_visible( key, TRUE );
-	gda_query_condition_leaf_set_operator( cond,
-											GDA_QUERY_CONDITION_OP_LEFT,
-											GDA_QUERY_FIELD(key) );
-	g_object_unref( G_OBJECT(key) );
+    key = gda_query_field_field_new( query, col_name );
+    gda_query_field_set_visible( key, TRUE );
+    gda_query_condition_leaf_set_operator( cond,
+                                            GDA_QUERY_CONDITION_OP_LEFT,
+                                            GDA_QUERY_FIELD(key) );
+    g_object_unref( G_OBJECT(key) );
 
-	key_value = gda_query_field_value_new( query, G_VALUE_TYPE(value) );
-	gda_query_field_set_visible( key_value, TRUE );
-	gda_query_condition_leaf_set_operator( cond, GDA_QUERY_CONDITION_OP_RIGHT,
-												GDA_QUERY_FIELD(key_value) );
-	g_object_unref( G_OBJECT(key_value) );
+    key_value = gda_query_field_value_new( query, G_VALUE_TYPE(value) );
+    gda_query_field_set_visible( key_value, TRUE );
+    gda_query_condition_leaf_set_operator( cond, GDA_QUERY_CONDITION_OP_RIGHT,
+                                                GDA_QUERY_FIELD(key_value) );
+    g_object_unref( G_OBJECT(key_value) );
 
-	gda_query_field_value_set_value( GDA_QUERY_FIELD_VALUE(key_value), value );
+    gda_query_field_value_set_value( GDA_QUERY_FIELD_VALUE(key_value), value );
 
-	return cond;
+    return cond;
 }
 /* ----------------------------------------------------------------- */
 static QofAccessFunc
 get_getter( QofIdTypeConst obj_name, const col_cvt_t* table_row )
 {
-	QofAccessFunc getter;
+    QofAccessFunc getter;
 
-	if( table_row->param_name != NULL ) {
-		getter = qof_class_get_parameter_getter( obj_name,
-												table_row->param_name );
-	} else {
-		getter = table_row->getter;
-	}
+    if( table_row->param_name != NULL ) {
+        getter = qof_class_get_parameter_getter( obj_name,
+                                                table_row->param_name );
+    } else {
+        getter = table_row->getter;
+    }
 
-	return getter;
+    return getter;
 }
 
 static void
 load_string( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	const gchar* s;
+    const GValue* val;
+    const gchar* s;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		s = NULL;
-	} else {
-		s = g_value_get_string( val );
-	}
-	(*setter)( pObject, (const gpointer)s );
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        s = NULL;
+    } else {
+        s = g_value_get_string( val );
+    }
+    (*setter)( pObject, (const gpointer)s );
 }
 
 static void
 get_gvalue_string( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GValue* value )
+                gpointer pObject, const col_cvt_t* table_row, GValue* value )
 {
-	QofAccessFunc getter;
-	gchar* s;
+    QofAccessFunc getter;
+    gchar* s;
 
-	memset( value, 0, sizeof( GValue ) );
-	getter = get_getter( obj_name, table_row );
-	s = (gchar*)(*getter)( pObject, NULL );
-	if( s ) {
-		g_value_init( value, G_TYPE_STRING );
-		g_value_set_string( value, s );
-	}
+    memset( value, 0, sizeof( GValue ) );
+    getter = get_getter( obj_name, table_row );
+    s = (gchar*)(*getter)( pObject, NULL );
+    if( s ) {
+        g_value_init( value, G_TYPE_STRING );
+        g_value_set_string( value, s );
+    }
 }
 
 static void
 get_gvalue_string_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_string( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_string( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_string_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_string( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name,
-											&value );
+    get_gvalue_string( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name,
+                                            &value );
 }
 
 static void
 create_string_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	const gchar* dbms_type;
+    const gchar* dbms_type;
 
-	dbms_type = gda_server_provider_get_default_dbms_type( server,
-														cnn, G_TYPE_STRING );
-	add_table_column( server, cnn, array_data, table_row->col_name,
-					dbms_type, table_row->size, table_row->flags );
+    dbms_type = gda_server_provider_get_default_dbms_type( server,
+                                                        cnn, G_TYPE_STRING );
+    add_table_column( server, cnn, array_data, table_row->col_name,
+                    dbms_type, table_row->size, table_row->flags );
 }
 
 static col_type_handler_t string_handler
-	= { load_string, create_string_col,
-		get_gvalue_string_for_query, get_gvalue_string_cond };
+    = { load_string, create_string_col,
+        get_gvalue_string_for_query, get_gvalue_string_cond };
 /* ----------------------------------------------------------------- */
 
 static void
 load_int( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	gint int_value;
+    const GValue* val;
+    gint int_value;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		int_value = 0;
-	} else {
-		int_value = g_value_get_int( val );
-	}
-	(*setter)( pObject, (gpointer)int_value );
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        int_value = 0;
+    } else {
+        int_value = g_value_get_int( val );
+    }
+    (*setter)( pObject, (gpointer)int_value );
 }
 
 static void
 get_gvalue_int( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GValue* value )
+                gpointer pObject, const col_cvt_t* table_row, GValue* value )
 {
-	gint int_value;
-	QofAccessFunc getter;
+    gint int_value;
+    QofAccessFunc getter;
 
-	memset( value, 0, sizeof( GValue ) );
+    memset( value, 0, sizeof( GValue ) );
 
-	getter = get_getter( obj_name, table_row );
-	int_value = (gint)(*getter)( pObject, NULL );
-	g_value_init( value, G_TYPE_INT );
-	g_value_set_int( value, int_value );
+    getter = get_getter( obj_name, table_row );
+    int_value = (gint)(*getter)( pObject, NULL );
+    g_value_init( value, G_TYPE_INT );
+    g_value_set_int( value, int_value );
 }
 
 static void
 get_gvalue_int_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_int( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_int( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_int_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_int( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    get_gvalue_int( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
 }
 
 static void
 create_int_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	const gchar* dbms_type;
+    const gchar* dbms_type;
 
-	dbms_type = gda_server_provider_get_default_dbms_type( server,
-														cnn, G_TYPE_INT );
-	add_table_column( server, cnn, array_data, table_row->col_name,
-					dbms_type, table_row->size, table_row->flags );
+    dbms_type = gda_server_provider_get_default_dbms_type( server,
+                                                        cnn, G_TYPE_INT );
+    add_table_column( server, cnn, array_data, table_row->col_name,
+                    dbms_type, table_row->size, table_row->flags );
 }
 
 static col_type_handler_t int_handler =
-		{ load_int, create_int_col,
-			get_gvalue_int_for_query, get_gvalue_int_cond };
+        { load_int, create_int_col,
+            get_gvalue_int_for_query, get_gvalue_int_cond };
 /* ----------------------------------------------------------------- */
 
 static void
 load_int64( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	gint64 i64_value;
+    const GValue* val;
+    gint64 i64_value;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		(*setter)( pObject, NULL );
-	} else {	
-		i64_value = g_value_get_int64( val );
-		(*setter)( pObject, (gpointer)&i64_value );
-	}
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        (*setter)( pObject, NULL );
+    } else {    
+        i64_value = g_value_get_int64( val );
+        (*setter)( pObject, (gpointer)&i64_value );
+    }
 }
 
 static void
 get_gvalue_int64( GncGdaBackend* be, QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GValue* value )
+                const col_cvt_t* table_row, GValue* value )
 {
-	gint64* pInt64;
-	gint64 i64_value;
-	QofAccessFunc getter;
+    gint64* pInt64;
+    gint64 i64_value;
+    QofAccessFunc getter;
 
-	memset( value, 0, sizeof( GValue ) );
-	getter = get_getter( obj_name, table_row );
-	pInt64 = (*getter)( pObject, NULL );
-	if( pInt64 != NULL ) {
-		gchar* s;
-
-		i64_value = *pInt64;
-		g_value_init( value, G_TYPE_INT64 );
-		g_value_set_int64( value, i64_value );
-	}
+    memset( value, 0, sizeof( GValue ) );
+    getter = get_getter( obj_name, table_row );
+    pInt64 = (*getter)( pObject, NULL );
+    if( pInt64 != NULL ) {
+        i64_value = *pInt64;
+        g_value_init( value, G_TYPE_INT64 );
+        g_value_set_int64( value, i64_value );
+    }
 }
 
 static void
 get_gvalue_int64_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_int64( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_int64( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_int64_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_int64( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    get_gvalue_int64( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
 }
 
 static void
 create_int64_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	const gchar* dbms_type;
+    const gchar* dbms_type;
 
-	dbms_type = gda_server_provider_get_default_dbms_type( server,
-														cnn, G_TYPE_INT64 );
-	add_table_column( server, cnn, array_data, table_row->col_name,
-					dbms_type, table_row->size, table_row->flags );
+    dbms_type = gda_server_provider_get_default_dbms_type( server,
+                                                        cnn, G_TYPE_INT64 );
+    add_table_column( server, cnn, array_data, table_row->col_name,
+                    dbms_type, table_row->size, table_row->flags );
 }
 
 static col_type_handler_t int64_handler =
-		{ load_int64, create_int64_col,
-			get_gvalue_int64_for_query, get_gvalue_int64_cond };
+        { load_int64, create_int64_col,
+            get_gvalue_int64_for_query, get_gvalue_int64_cond };
 /* ----------------------------------------------------------------- */
 
 static void
 load_double( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	gdouble d_value;
+    const GValue* val;
+    gdouble d_value;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		(*setter)( pObject, (gpointer)NULL );
-	} else {
-		d_value = g_value_get_double( val );
-		(*setter)( pObject, (gpointer)&d_value );
-	}
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        (*setter)( pObject, (gpointer)NULL );
+    } else {
+        d_value = g_value_get_double( val );
+        (*setter)( pObject, (gpointer)&d_value );
+    }
 }
 
 static void
 get_gvalue_double( GncGdaBackend* be, QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GValue* value )
+                const col_cvt_t* table_row, GValue* value )
 {
-	QofAccessFunc getter;
-	gdouble* pDouble;
-	gdouble d_value;
+    QofAccessFunc getter;
+    gdouble* pDouble;
+    gdouble d_value;
 
-	memset( value, 0, sizeof( GValue ) );
+    memset( value, 0, sizeof( GValue ) );
 
-	getter = get_getter( obj_name, table_row );
-	pDouble = (*getter)( pObject, NULL );
-	if( pDouble != NULL ) {
-		d_value = *pDouble;
-		g_value_init( value, G_TYPE_DOUBLE );
-		g_value_set_double( value, d_value );
-	}
+    getter = get_getter( obj_name, table_row );
+    pDouble = (*getter)( pObject, NULL );
+    if( pDouble != NULL ) {
+        d_value = *pDouble;
+        g_value_init( value, G_TYPE_DOUBLE );
+        g_value_set_double( value, d_value );
+    }
 }
 
 static void
 get_gvalue_double_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_double( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_double( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_double_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_double( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    get_gvalue_double( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
 }
 
 static void
 create_double_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	const gchar* dbms_type;
+    const gchar* dbms_type;
 
-	dbms_type = gda_server_provider_get_default_dbms_type( server,
-														cnn, G_TYPE_INT64 );
-	add_table_column( server, cnn, array_data, table_row->col_name,
-					dbms_type, table_row->size, table_row->flags );
+    dbms_type = gda_server_provider_get_default_dbms_type( server,
+                                                        cnn, G_TYPE_INT64 );
+    add_table_column( server, cnn, array_data, table_row->col_name,
+                    dbms_type, table_row->size, table_row->flags );
 }
 
 static col_type_handler_t double_handler =
-		{ load_double, create_double_col,
-			get_gvalue_double_for_query, get_gvalue_double_cond };
+        { load_double, create_double_col,
+            get_gvalue_double_for_query, get_gvalue_double_cond };
 /* ----------------------------------------------------------------- */
 
 static void
 load_guid( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	GUID guid;
-	const GUID* pGuid;
+    const GValue* val;
+    GUID guid;
+    const GUID* pGuid;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		pGuid = NULL;
-	} else {
-		string_to_guid( g_value_get_string( val ), &guid );
-		pGuid = &guid;
-	}
-	(*setter)( pObject, (gpointer)pGuid );
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        pGuid = NULL;
+    } else {
+        string_to_guid( g_value_get_string( val ), &guid );
+        pGuid = &guid;
+    }
+    (*setter)( pObject, (gpointer)pGuid );
 }
 
 static void
 get_gvalue_guid( GncGdaBackend* be, QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GValue* value )
+                const col_cvt_t* table_row, GValue* value )
 {
-	QofAccessFunc getter;
-	const GUID* guid;
-	gchar guid_buf[GUID_ENCODING_LENGTH+1];
+    QofAccessFunc getter;
+    const GUID* guid;
+    gchar guid_buf[GUID_ENCODING_LENGTH+1];
 
-	memset( value, 0, sizeof( GValue ) );
+    memset( value, 0, sizeof( GValue ) );
 
-	getter = get_getter( obj_name, table_row );
-	guid = (*getter)( pObject, NULL );
-	if( guid != NULL ) {
-		(void)guid_to_string_buff( guid, guid_buf );
-		g_value_init( value, G_TYPE_STRING );
-		g_value_set_string( value, guid_buf );
-	}
+    getter = get_getter( obj_name, table_row );
+    guid = (*getter)( pObject, NULL );
+    if( guid != NULL ) {
+        (void)guid_to_string_buff( guid, guid_buf );
+        g_value_init( value, G_TYPE_STRING );
+        g_value_set_string( value, guid_buf );
+    }
 }
 
 static void
 get_gvalue_guid_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_guid( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_guid( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_guid_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_guid( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    get_gvalue_guid( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
 }
 
 static void
 create_guid_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	add_table_column( server, cnn, array_data, table_row->col_name,
-					"char", GUID_ENCODING_LENGTH, table_row->flags );
+    add_table_column( server, cnn, array_data, table_row->col_name,
+                    "char", GUID_ENCODING_LENGTH, table_row->flags );
 }
 
 static col_type_handler_t guid_handler =
-		{ load_guid, create_guid_col,
-			get_gvalue_guid_for_query, get_gvalue_guid_cond };
+        { load_guid, create_guid_col,
+            get_gvalue_guid_for_query, get_gvalue_guid_cond };
 /* ----------------------------------------------------------------- */
 static void
 load_timespec( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	GDate* date;
-	Timespec ts;
+    const GValue* val;
+    GDate* date;
+    Timespec ts;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		(*setter)( pObject, NULL );
-	} else {
-		date = (GDate*)g_value_get_boxed( val );
-		if( date != NULL ) {
-			ts = gnc_dmy2timespec( g_date_get_day( date ),
-								g_date_get_month( date ),
-								g_date_get_year( date ) );
-			(*setter)( pObject, &ts );
-		}
-	}
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        (*setter)( pObject, NULL );
+    } else {
+        date = (GDate*)g_value_get_boxed( val );
+        if( date != NULL ) {
+            ts = gnc_dmy2timespec( g_date_get_day( date ),
+                                g_date_get_month( date ),
+                                g_date_get_year( date ) );
+            (*setter)( pObject, &ts );
+        }
+    }
 }
 
 static void
 get_gvalue_timespec( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GValue* value )
+                gpointer pObject, const col_cvt_t* table_row, GValue* value )
 {
-	QofAccessFunc getter;
-	Timespec* pTimespec;
+    QofAccessFunc getter;
+    Timespec* pTimespec;
 
-	memset( value, 0, sizeof( GValue ) );
+    memset( value, 0, sizeof( GValue ) );
 
-	getter = get_getter( obj_name, table_row );
-	pTimespec = (Timespec*)(*getter)( pObject, NULL );
-	if( pTimespec != NULL ) {
-		GDate* date;
-		gchar* s;
-		gint y, m, d;
-		gchar iso8601_buf[33];
+    getter = get_getter( obj_name, table_row );
+    pTimespec = (Timespec*)(*getter)( pObject, NULL );
+    if( pTimespec != NULL ) {
+        GDate* date;
+        gint y, m, d;
+        gchar iso8601_buf[33];
 
-		date = g_date_new();
-		(void)gnc_timespec_to_iso8601_buff( *pTimespec, iso8601_buf );
-		sscanf( iso8601_buf, "%d-%d-%d", &y, &m, &d );
-		g_date_set_dmy( date, d, m, y );
-		g_value_init( value, G_TYPE_DATE );
-		g_value_set_boxed( value, date );
-	}
+        date = g_date_new();
+        (void)gnc_timespec_to_iso8601_buff( *pTimespec, iso8601_buf );
+        sscanf( iso8601_buf, "%d-%d-%d", &y, &m, &d );
+        g_date_set_dmy( date, d, m, y );
+        g_value_init( value, G_TYPE_DATE );
+        g_value_set_boxed( value, date );
+    }
 }
 
 static void
 get_gvalue_timespec_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_timespec( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_timespec( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_timespec_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_timespec( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    get_gvalue_timespec( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
 }
 
 static void
 create_timespec_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	const gchar* dbms_type;
+    const gchar* dbms_type;
 
-	dbms_type = gda_server_provider_get_default_dbms_type( server,
-														cnn, G_TYPE_DATE );
-	add_table_column( server, cnn, array_data, table_row->col_name,
-					dbms_type, table_row->size, table_row->flags );
+    dbms_type = gda_server_provider_get_default_dbms_type( server,
+                                                        cnn, G_TYPE_DATE );
+    add_table_column( server, cnn, array_data, table_row->col_name,
+                    dbms_type, table_row->size, table_row->flags );
 }
 
 static col_type_handler_t timespec_handler =
-		{ load_timespec, create_timespec_col,
-			get_gvalue_timespec_for_query, get_gvalue_timespec_cond };
+        { load_timespec, create_timespec_col,
+            get_gvalue_timespec_for_query, get_gvalue_timespec_cond };
 /* ----------------------------------------------------------------- */
 static void
 load_date( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	GDate* date;
+    const GValue* val;
+    GDate* date;
 
-	val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
-	if( gda_value_is_null( val ) ) {
-		(*setter)( pObject, NULL );
-	} else {
-		date = (GDate*)g_value_get_boxed( val );
-		if( date != NULL ) {
-			(*setter)( pObject, date );
-		}
-	}
+    val = gda_data_model_get_value_at_col_name( pModel, table->col_name, row );
+    if( gda_value_is_null( val ) ) {
+        (*setter)( pObject, NULL );
+    } else {
+        date = (GDate*)g_value_get_boxed( val );
+        if( date != NULL ) {
+            (*setter)( pObject, date );
+        }
+    }
 }
 
 static void
 get_gvalue_date( GncGdaBackend* be, QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GValue* value )
+                const col_cvt_t* table_row, GValue* value )
 {
-	GDate* date;
-	QofAccessFunc getter;
+    GDate* date;
+    QofAccessFunc getter;
 
-	memset( value, 0, sizeof( GValue ) );
+    memset( value, 0, sizeof( GValue ) );
 
-	getter = get_getter( obj_name, table_row );
-	date = (GDate*)(*getter)( pObject, NULL );
-	if( date != NULL ) {
-		g_value_init( value, G_TYPE_DATE );
-		g_value_set_boxed( value, date );
-	}
+    getter = get_getter( obj_name, table_row );
+    date = (GDate*)(*getter)( pObject, NULL );
+    if( date != NULL ) {
+        g_value_init( value, G_TYPE_DATE );
+        g_value_set_boxed( value, date );
+    }
 }
 
 static void
 get_gvalue_date_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_date( be, obj_name, pObject, table_row, &value );
-	add_field_to_query( query, table_row->col_name, &value );
+    get_gvalue_date( be, obj_name, pObject, table_row, &value );
+    add_field_to_query( query, table_row->col_name, &value );
 }
 
 static GdaQueryCondition*
 get_gvalue_date_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
+    GValue value;
 
-	get_gvalue_date( be, obj_name, pObject, table_row, &value );
-	return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    get_gvalue_date( be, obj_name, pObject, table_row, &value );
+    return gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
 }
 
 static col_type_handler_t date_handler =
-		{ load_date, create_timespec_col,
-			get_gvalue_date_for_query, get_gvalue_date_cond };
+        { load_date, create_timespec_col,
+            get_gvalue_date_for_query, get_gvalue_date_cond };
 /* ----------------------------------------------------------------- */
 static void
 load_numeric( GdaDataModel* pModel, gint row,
-			QofSetterFunc setter, gpointer pObject,
-			const col_cvt_t* table )
+            QofSetterFunc setter, gpointer pObject,
+            const col_cvt_t* table )
 {
-	const GValue* val;
-	gchar* buf;
-	gint64 num, denom;
-	gnc_numeric n;
-	gboolean isNull = FALSE;
+    const GValue* val;
+    gchar* buf;
+    gint64 num, denom;
+    gnc_numeric n;
+    gboolean isNull = FALSE;
 
-	buf = g_strdup_printf( "%s_num", table->col_name );
-	val = gda_data_model_get_value_at_col_name( pModel, buf, row );
-	g_free( buf );
-	if( gda_value_is_null( val ) ) {
-		isNull = TRUE;
-		num = 0;
-	} else {
-		num = g_value_get_int64( val );
-	}
-	buf = g_strdup_printf( "%s_denom", table->col_name );
-	val = gda_data_model_get_value_at_col_name( pModel, buf, row );
-	g_free( buf );
-	if( gda_value_is_null( val ) ) {
-		isNull = TRUE;
-		denom = 1;
-	} else {
-		denom = g_value_get_int64( val );
-	}
-	n = gnc_numeric_create( num, denom );
-	if( isNull ) {
-		(*setter)( pObject, NULL );
-	} else {
-		(*setter)( pObject, &n );
-	}
+    buf = g_strdup_printf( "%s_num", table->col_name );
+    val = gda_data_model_get_value_at_col_name( pModel, buf, row );
+    g_free( buf );
+    if( gda_value_is_null( val ) ) {
+        isNull = TRUE;
+        num = 0;
+    } else {
+        num = g_value_get_int64( val );
+    }
+    buf = g_strdup_printf( "%s_denom", table->col_name );
+    val = gda_data_model_get_value_at_col_name( pModel, buf, row );
+    g_free( buf );
+    if( gda_value_is_null( val ) ) {
+        isNull = TRUE;
+        denom = 1;
+    } else {
+        denom = g_value_get_int64( val );
+    }
+    n = gnc_numeric_create( num, denom );
+    if( isNull ) {
+        (*setter)( pObject, NULL );
+    } else {
+        (*setter)( pObject, &n );
+    }
 }
 
 static void
 get_gvalue_numeric( GncGdaBackend* be, QofIdTypeConst obj_name, gpointer pObject,
-				const col_cvt_t* table_row, GValue* value )
+                const col_cvt_t* table_row, GValue* value )
 {
-	QofAccessFunc getter;
-	gnc_numeric* n;
+    QofAccessFunc getter;
+    gnc_numeric* n;
 
-	memset( value, 0, sizeof( GValue ) );
+    memset( value, 0, sizeof( GValue ) );
 
-	getter = get_getter( obj_name, table_row );
-	n = (gnc_numeric*)(*getter)( pObject, NULL );
-	if( n != NULL ) {
-		g_value_init( value, gnc_numeric_get_type() );
-		g_value_set_boxed( value, n );
-	}
+    getter = get_getter( obj_name, table_row );
+    n = (gnc_numeric*)(*getter)( pObject, NULL );
+    if( n != NULL ) {
+        g_value_init( value, gnc_numeric_get_type() );
+        g_value_set_boxed( value, n );
+    }
 }
 
 static void
 get_gvalue_numeric_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
-	GValue num_value;
-	GValue denom_value;
-	gnc_numeric* n;
-	gchar* s;
+    GValue value;
+    GValue num_value;
+    GValue denom_value;
+    gnc_numeric* n;
+    gchar* s;
 
-	memset( &value, 0, sizeof( GValue ) );
-	memset( &num_value, 0, sizeof( GValue ) );
-	memset( &denom_value, 0, sizeof( GValue ) );
+    memset( &value, 0, sizeof( GValue ) );
+    memset( &num_value, 0, sizeof( GValue ) );
+    memset( &denom_value, 0, sizeof( GValue ) );
 
-	get_gvalue_numeric( be, obj_name, pObject, table_row, &value );
-	if( G_VALUE_TYPE(&value) != 0 ) {
-		n = g_value_get_boxed( &value );
-		g_value_init( &num_value, G_TYPE_INT64 );
-		g_value_set_int64( &num_value, gnc_numeric_num( *n ) );
-		g_value_init( &denom_value, G_TYPE_INT64 );
-		g_value_set_int64( &denom_value, gnc_numeric_denom( *n ) );
-	}
+    get_gvalue_numeric( be, obj_name, pObject, table_row, &value );
+    if( G_VALUE_TYPE(&value) != 0 ) {
+        n = g_value_get_boxed( &value );
+        g_value_init( &num_value, G_TYPE_INT64 );
+        g_value_set_int64( &num_value, gnc_numeric_num( *n ) );
+        g_value_init( &denom_value, G_TYPE_INT64 );
+        g_value_set_int64( &denom_value, gnc_numeric_denom( *n ) );
+    }
 
-	s = g_strdup_printf( "%s_num", table_row->col_name );
-	add_field_to_query( query, s, &num_value );
-	g_free( s );
-	s = g_strdup_printf( "%s_denom", table_row->col_name );
-	add_field_to_query( query, s, &denom_value );
-	g_free( s );
+    s = g_strdup_printf( "%s_num", table_row->col_name );
+    add_field_to_query( query, s, &num_value );
+    g_free( s );
+    s = g_strdup_printf( "%s_denom", table_row->col_name );
+    add_field_to_query( query, s, &denom_value );
+    g_free( s );
 }
 
 static GdaQueryCondition*
 get_gvalue_numeric_cond( GncGdaBackend* be, QofIdTypeConst obj_name,
-				gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
+                gpointer pObject, const col_cvt_t* table_row, GdaQuery* query )
 {
-	GValue value;
-	GValue num_value;
-	GValue denom_value;
-	gnc_numeric* n;
-	gint64 num;
-	gint64 denom;
-	gchar* s;
-	GdaQueryCondition* num_cond;
-	GdaQueryCondition* denom_cond;
-	GdaQueryCondition* cond;
+    GValue value;
+    GValue num_value;
+    GValue denom_value;
+    gnc_numeric* n;
+    gchar* s;
+    GdaQueryCondition* num_cond;
+    GdaQueryCondition* denom_cond;
+    GdaQueryCondition* cond;
 
-	memset( &value, 0, sizeof( GValue ) );
-	memset( &num_value, 0, sizeof( GValue ) );
-	memset( &denom_value, 0, sizeof( GValue ) );
+    memset( &value, 0, sizeof( GValue ) );
+    memset( &num_value, 0, sizeof( GValue ) );
+    memset( &denom_value, 0, sizeof( GValue ) );
 
-	get_gvalue_numeric( be, obj_name, pObject, table_row, &value );
-	if( G_VALUE_TYPE(&value) != 0 ) {
-		n = g_value_get_boxed( &value );
-		g_value_init( &num_value, G_TYPE_INT64 );
-		g_value_set_int64( &num_value, gnc_numeric_num( *n ) );
-		g_value_init( &denom_value, G_TYPE_INT64 );
-		g_value_set_int64( &denom_value, gnc_numeric_denom( *n ) );
-	}
+    get_gvalue_numeric( be, obj_name, pObject, table_row, &value );
+    if( G_VALUE_TYPE(&value) != 0 ) {
+        n = g_value_get_boxed( &value );
+        g_value_init( &num_value, G_TYPE_INT64 );
+        g_value_set_int64( &num_value, gnc_numeric_num( *n ) );
+        g_value_init( &denom_value, G_TYPE_INT64 );
+        g_value_set_int64( &denom_value, gnc_numeric_denom( *n ) );
+    }
 
-	s = g_strdup_printf( "%s_num", table_row->col_name );
-	num_cond = gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
-	g_free( s );
-	s = g_strdup_printf( "%s_denom", table_row->col_name );
-	denom_cond = gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
-	g_free( s );
+    s = g_strdup_printf( "%s_num", table_row->col_name );
+    num_cond = gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    g_free( s );
+    s = g_strdup_printf( "%s_denom", table_row->col_name );
+    denom_cond = gnc_gda_create_condition_from_field( query, table_row->col_name, &value );
+    g_free( s );
 
-	cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_NODE_AND );
-	gda_query_condition_node_add_child( cond, num_cond, NULL );
-	gda_query_condition_node_add_child( cond, denom_cond, NULL );
+    cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_NODE_AND );
+    gda_query_condition_node_add_child( cond, num_cond, NULL );
+    gda_query_condition_node_add_child( cond, denom_cond, NULL );
 
-	return cond;
+    return cond;
 }
 
 static void
 create_numeric_col( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const col_cvt_t* table_row )
+            xmlNodePtr array_data, const col_cvt_t* table_row )
 {
-	const gchar* dbms_type;
-	gchar* buf;
+    const gchar* dbms_type;
+    gchar* buf;
 
-	dbms_type = gda_server_provider_get_default_dbms_type( server, cnn,
-															G_TYPE_INT64 );
-	buf = g_strdup_printf( "%s_num", table_row->col_name );
-	add_table_column( server, cnn, array_data, buf, dbms_type,
-						table_row->size, table_row->flags );
-	g_free( buf );
-	buf = g_strdup_printf( "%s_denom", table_row->col_name );
-	add_table_column( server, cnn, array_data, buf, dbms_type,
-						table_row->size, table_row->flags );
-	g_free( buf );
+    dbms_type = gda_server_provider_get_default_dbms_type( server, cnn,
+                                                            G_TYPE_INT64 );
+    buf = g_strdup_printf( "%s_num", table_row->col_name );
+    add_table_column( server, cnn, array_data, buf, dbms_type,
+                        table_row->size, table_row->flags );
+    g_free( buf );
+    buf = g_strdup_printf( "%s_denom", table_row->col_name );
+    add_table_column( server, cnn, array_data, buf, dbms_type,
+                        table_row->size, table_row->flags );
+    g_free( buf );
 }
 
 static col_type_handler_t numeric_handler =
-		{ load_numeric, create_numeric_col,
-			get_gvalue_numeric_for_query, get_gvalue_numeric_cond };
+        { load_numeric, create_numeric_col,
+            get_gvalue_numeric_for_query, get_gvalue_numeric_cond };
 /* ================================================================= */
 
 static col_type_handler_t*
 get_handler( int col_type )
 {
-	col_type_handler_t* pHandler;
+    col_type_handler_t* pHandler;
 
-	switch( col_type ) {
-		case CT_STRING:
-			pHandler = &string_handler;
-			break;
+    switch( col_type ) {
+        case CT_STRING:
+            pHandler = &string_handler;
+            break;
 
-		case CT_BOOLEAN:
-		case CT_INT:
-			pHandler = &int_handler;
-			break;
+        case CT_BOOLEAN:
+        case CT_INT:
+            pHandler = &int_handler;
+            break;
 
-		case CT_INT64:
-			pHandler = &int64_handler;
-			break;
+        case CT_INT64:
+            pHandler = &int64_handler;
+            break;
 
-		case CT_DOUBLE:
-			pHandler = &double_handler;
-			break;
+        case CT_DOUBLE:
+            pHandler = &double_handler;
+            break;
 
-		case CT_GUID:
-			pHandler = &guid_handler;
-			break;
-				
-		case CT_TIMESPEC:
-			pHandler = &timespec_handler;
-			break;
+        case CT_GUID:
+            pHandler = &guid_handler;
+            break;
+                
+        case CT_TIMESPEC:
+            pHandler = &timespec_handler;
+            break;
 
-		case CT_GDATE:
-			pHandler = &date_handler;
-			break;
+        case CT_GDATE:
+            pHandler = &date_handler;
+            break;
 
-		case CT_NUMERIC:
-			pHandler = &numeric_handler;
-			break;
+        case CT_NUMERIC:
+            pHandler = &numeric_handler;
+            break;
 
-		default:	/* undefined col type */
-			g_assert( FALSE );
-	}
+        default:    /* undefined col type */
+            g_assert( FALSE );
+    }
 
-	return pHandler;
+    return pHandler;
 }
 
 static void retrieve_guid( gpointer pObject, gpointer pValue );
@@ -852,561 +843,551 @@
 static void 
 retrieve_guid( gpointer pObject, gpointer pValue )
 {
-	GUID** ppGuid = (GUID**)pObject;
-	GUID* guid = (GUID*)pValue;
+    GUID** ppGuid = (GUID**)pObject;
+    GUID* guid = (GUID*)pValue;
 
-	*ppGuid = guid;
+    *ppGuid = guid;
 }
 
 
 // Table to retrieve just the guid
 static col_cvt_t guid_table[] =
 {
-	{ "guid", CT_GUID, 0, 0, NULL, NULL, retrieve_guid },
-	{ NULL }
+    { "guid", CT_GUID, 0, 0, NULL, NULL, retrieve_guid },
+    { NULL }
 };
 
 const GUID*
 gnc_gda_load_guid( GdaDataModel* pModel, gint row )
 {
-	const GUID* guid;
+    const GUID* guid;
 
-	gnc_gda_load_object( pModel, row, NULL, &guid, guid_table );
+    gnc_gda_load_object( pModel, row, NULL, &guid, guid_table );
 
-	return guid;
+    return guid;
 }
 
 void
 gnc_gda_load_object( GdaDataModel* pModel, gint row,
-					QofIdTypeConst obj_name, gpointer pObject,
-					const col_cvt_t* table )
+                    QofIdTypeConst obj_name, gpointer pObject,
+                    const col_cvt_t* table )
 {
-	int col;
-	QofSetterFunc setter;
-	col_type_handler_t* pHandler;
+    int col;
+    QofSetterFunc setter;
+    col_type_handler_t* pHandler;
 
-	for( col = 0; table[col].col_name != NULL; col++ ) {
-		if( table[col].param_name != NULL ) {
-			setter = qof_class_get_parameter_setter( obj_name,
-													table[col].param_name );
-		} else {
-			setter = table[col].setter;
-		}
-		pHandler = get_handler( table[col].col_type );
-		pHandler->load_fn( pModel, row, setter, pObject, &table[col] );
-	}
+    for( col = 0; table[col].col_name != NULL; col++ ) {
+        if( table[col].param_name != NULL ) {
+            setter = qof_class_get_parameter_setter( obj_name,
+                                                    table[col].param_name );
+        } else {
+            setter = table[col].setter;
+        }
+        pHandler = get_handler( table[col].col_type );
+        pHandler->load_fn( pModel, row, setter, pObject, &table[col] );
+    }
 }
 
 /* ================================================================= */
 GdaQuery*
 gnc_gda_create_select_query( const GncGdaBackend* be, const gchar* table_name )
 {
-	GdaQuery* query;
-	GdaQueryTarget* target;
-	GdaQueryField* allFields;
+    GdaQuery* query;
+    GdaQueryTarget* target;
+    GdaQueryField* allFields;
 
-	/* SELECT */
-	query = gda_query_new( be->pDict );
-	gda_query_set_query_type( query, GDA_QUERY_TYPE_SELECT );
+    /* SELECT */
+    query = gda_query_new( be->pDict );
+    gda_query_set_query_type( query, GDA_QUERY_TYPE_SELECT );
 
-	/* FROM */
-	target = gda_query_target_new( query, table_name );
-	gda_query_add_target( query, target, NULL );
-	g_object_unref( G_OBJECT(target) );
+    /* FROM */
+    target = gda_query_target_new( query, table_name );
+    gda_query_add_target( query, target, NULL );
+    g_object_unref( G_OBJECT(target) );
 
-	/* all fields */
-	allFields = gda_query_field_all_new( query, table_name );
-	gda_query_field_set_visible( allFields, TRUE );
-	gda_entity_add_field( GDA_ENTITY(query), GDA_ENTITY_FIELD(allFields) );
-	g_object_unref( G_OBJECT(allFields) );
+    /* all fields */
+    allFields = gda_query_field_all_new( query, table_name );
+    gda_query_field_set_visible( allFields, TRUE );
+    gda_entity_add_field( GDA_ENTITY(query), GDA_ENTITY_FIELD(allFields) );
+    g_object_unref( G_OBJECT(allFields) );
 
-	return query;
+    return query;
 }
 
 /* ================================================================= */
 GdaObject*
 gnc_gda_execute_query( GncGdaBackend* be, GdaQuery* query )
 {
-	GError* error = NULL;
+    GError* error = NULL;
 
-	GdaObject* ret;
+    GdaObject* ret;
 
-	ret = gda_query_execute( query, NULL, FALSE, &error );
+    ret = gda_query_execute( query, NULL, FALSE, &error );
 
-	if( error != NULL ) {
-		printf( "SQL error: %s\n", error->message );
-	}
+    if( error != NULL ) {
+        g_critical( "SQL error: %s\n", error->message );
+    }
 
-	return ret;
+    return ret;
 }
 
 GdaObject*
 gnc_gda_execute_sql( GncGdaBackend* be, const gchar* sql )
 {
-	GError* error = NULL;
+    GError* error = NULL;
 
-	GdaQuery* query;
+    GdaQuery* query;
 
-	query = gda_query_new_from_sql( be->pDict, sql, &error );
-	if( query == NULL ) {
-		printf( "SQL error: %s\n", error->message );
-		return NULL;
-	}
-	return gnc_gda_execute_query( be, query );
+    query = gda_query_new_from_sql( be->pDict, sql, &error );
+    if( query == NULL ) {
+        g_critical( "SQL error: %s\n", error->message );
+        return NULL;
+    }
+    return gnc_gda_execute_query( be, query );
 }
 
 int
 gnc_gda_execute_select_get_count( GncGdaBackend* be, const gchar* sql )
 {
-	GError* error = NULL;
-	int count = 0;
+    GError* error = NULL;
+    int count = 0;
 
-	GdaObject* ret;
+    GdaObject* ret;
 
-	ret = gnc_gda_execute_sql( be, sql );
-	if( GDA_IS_DATA_MODEL(ret) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		count = gda_data_model_get_n_rows( pModel );
-	}
+    ret = gnc_gda_execute_sql( be, sql );
+    if( GDA_IS_DATA_MODEL(ret) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        count = gda_data_model_get_n_rows( pModel );
+    }
 
-	if( error != NULL ) {
-		printf( "SQL error: %s\n", error->message );
-	}
+    if( error != NULL ) {
+        g_critical( "SQL error: %s\n", error->message );
+    }
 
-	return count;
+    return count;
 }
 
 int
 gnc_gda_execute_query_get_count( GncGdaBackend* be, GdaQuery* query )
 {
-	int count = 0;
+    int count = 0;
 
-	GdaObject* ret;
+    GdaObject* ret;
 
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL(ret) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		count = gda_data_model_get_n_rows( pModel );
-	}
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL(ret) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        count = gda_data_model_get_n_rows( pModel );
+    }
 
-	return count;
+    return count;
 }
 /* ================================================================= */
 static void
 get_col_gvalue_for_query( GncGdaBackend* be, QofIdTypeConst obj_name,
-						gpointer pObject, const col_cvt_t* table_row,
-						GdaQuery* query )
+                        gpointer pObject, const col_cvt_t* table_row,
+                        GdaQuery* query )
 {
-	GValue value;
-	col_type_handler_t* pHandler;
+    col_type_handler_t* pHandler;
 
-	pHandler = get_handler( table_row->col_type );
-	pHandler->get_gvalue_query_fn( be, obj_name, pObject, table_row, query );
+    pHandler = get_handler( table_row->col_type );
+    pHandler->get_gvalue_query_fn( be, obj_name, pObject, table_row, query );
 }
 
 static void
 get_col_gvalue_for_condition( GncGdaBackend* be, QofIdTypeConst obj_name,
-						gpointer pObject, const col_cvt_t* table_row,
-						GdaQuery* query )
+                        gpointer pObject, const col_cvt_t* table_row,
+                        GdaQuery* query )
 {
-	GValue value;
-	col_type_handler_t* pHandler;
-	GdaQueryCondition* cond;
+    col_type_handler_t* pHandler;
+    GdaQueryCondition* cond;
 
-	pHandler = get_handler( table_row->col_type );
-	cond = pHandler->get_gvalue_cond_fn( be, obj_name, pObject, table_row, query );
+    pHandler = get_handler( table_row->col_type );
+    cond = pHandler->get_gvalue_cond_fn( be, obj_name, pObject, table_row, query );
 
-	gda_query_set_condition( query, cond );
-	g_object_unref( G_OBJECT(cond) );
+    gda_query_set_condition( query, cond );
+    g_object_unref( G_OBJECT(cond) );
 }
 
 gboolean
 gnc_gda_object_is_it_in_db( GncGdaBackend* be, const gchar* table_name,
-					QofIdTypeConst obj_name, gpointer pObject,
-					const col_cvt_t* table )
+                    QofIdTypeConst obj_name, gpointer pObject,
+                    const col_cvt_t* table )
 {
-	GdaQuery* query;
-	GValue value;
-	int count;
+    GdaQuery* query;
+    int count;
 
-	/* SELECT * FROM */
-	query = gnc_gda_create_select_query( be, table_name );
+    /* SELECT * FROM */
+    query = gnc_gda_create_select_query( be, table_name );
 
-	/* WHERE */
-	get_col_gvalue_for_condition( be, obj_name, pObject, &table[0], query );
+    /* WHERE */
+    get_col_gvalue_for_condition( be, obj_name, pObject, &table[0], query );
 
-	count = gnc_gda_execute_query_get_count( be, query );
-	if( count == 0 ) {
-		return FALSE;
-	} else {
-		return TRUE;
-	}
+    count = gnc_gda_execute_query_get_count( be, query );
+    if( count == 0 ) {
+        return FALSE;
+    } else {
+        return TRUE;
+    }
 }
 
 gboolean
 gnc_gda_do_db_operation( GncGdaBackend* be,
-						E_DB_OPERATION op,
-						const gchar* table_name,
-						QofIdTypeConst obj_name, gpointer pObject,
-						const col_cvt_t* table )
+                        E_DB_OPERATION op,
+                        const gchar* table_name,
+                        QofIdTypeConst obj_name, gpointer pObject,
+                        const col_cvt_t* table )
 {
-	GdaQuery* pQuery;
+    GdaQuery* pQuery;
 
-	if( op == OP_DB_ADD_OR_UPDATE ) {
-		if( gnc_gda_object_is_it_in_db( be, table_name, obj_name, pObject, table ) ) {
-			pQuery = gnc_gda_build_update_query( be, table_name, obj_name, pObject, table );
-		} else {
-			pQuery = gnc_gda_build_insert_query( be, table_name, obj_name, pObject, table );
-		}
-	} else if( op == OP_DB_DELETE ) {
-		pQuery = gnc_gda_build_delete_query( be, table_name, obj_name, pObject, table );
-	} else if( op == OP_DB_ADD ) {
-		pQuery = gnc_gda_build_insert_query( be, table_name, obj_name, pObject, table );
-	} else {
-		g_assert( FALSE );
-	}
-	if( pQuery != NULL ) {
-		gnc_gda_execute_query( be, pQuery );
-		g_object_unref( G_OBJECT(pQuery) );
+    if( op == OP_DB_ADD_OR_UPDATE ) {
+        if( gnc_gda_object_is_it_in_db( be, table_name, obj_name, pObject, table ) ) {
+            pQuery = gnc_gda_build_update_query( be, table_name, obj_name, pObject, table );
+        } else {
+            pQuery = gnc_gda_build_insert_query( be, table_name, obj_name, pObject, table );
+        }
+    } else if( op == OP_DB_DELETE ) {
+        pQuery = gnc_gda_build_delete_query( be, table_name, obj_name, pObject, table );
+    } else if( op == OP_DB_ADD ) {
+        pQuery = gnc_gda_build_insert_query( be, table_name, obj_name, pObject, table );
+    } else {
+        g_assert( FALSE );
+    }
+    if( pQuery != NULL ) {
+        gnc_gda_execute_query( be, pQuery );
+        g_object_unref( G_OBJECT(pQuery) );
 
-		return TRUE;
-	} else {
-		return FALSE;
-	}
+        return TRUE;
+    } else {
+        return FALSE;
+    }
 }
 
 #define INITIAL_SQL_BUF_LEN 500
 
 GdaQuery*
 gnc_gda_build_insert_query( GncGdaBackend* be,
-							const gchar* table_name,
-							QofIdTypeConst obj_name, gpointer pObject,
-							const col_cvt_t* table )
+                            const gchar* table_name,
+                            QofIdTypeConst obj_name, gpointer pObject,
+                            const col_cvt_t* table )
 {
-	GdaQuery* query;
-	int col;
+    GdaQuery* query;
+    int col;
 
-	GdaQueryTarget* target;
+    GdaQueryTarget* target;
 
-	/* INSERT */
-	query = gda_query_new( be->pDict );
-	gda_query_set_query_type( query, GDA_QUERY_TYPE_INSERT );
+    /* INSERT */
+    query = gda_query_new( be->pDict );
+    gda_query_set_query_type( query, GDA_QUERY_TYPE_INSERT );
 
-	/* INTO */
-	target = gda_query_target_new( query, table_name );
-	gda_query_add_target( query, target, NULL );
+    /* INTO */
+    target = gda_query_target_new( query, table_name );
+    gda_query_add_target( query, target, NULL );
 
-	/* VALUES */
-	for( col = 0; table[col].col_name != NULL; col++ ) {
-		get_col_gvalue_for_query( be, obj_name, pObject, &table[col], query );
-	}
+    /* VALUES */
+    for( col = 0; table[col].col_name != NULL; col++ ) {
+        get_col_gvalue_for_query( be, obj_name, pObject, &table[col], query );
+    }
 
-	return query;
+    return query;
 }
 
 GdaQuery*
 gnc_gda_build_update_query( GncGdaBackend* be,
-							const gchar* table_name,
-							QofIdTypeConst obj_name, gpointer pObject,
-							const col_cvt_t* table )
+                            const gchar* table_name,
+                            QofIdTypeConst obj_name, gpointer pObject,
+                            const col_cvt_t* table )
 {
-	GdaQuery* query;
-	int col;
+    GdaQuery* query;
+    int col;
 
-	GdaQueryTarget* target;
+    GdaQueryTarget* target;
 
-	/* UPDATE */
-	query = gda_query_new( be->pDict );
-	gda_query_set_query_type( query, GDA_QUERY_TYPE_UPDATE );
-	target = gda_query_target_new( query, table_name );
-	gda_query_add_target( query, target, NULL );
+    /* UPDATE */
+    query = gda_query_new( be->pDict );
+    gda_query_set_query_type( query, GDA_QUERY_TYPE_UPDATE );
+    target = gda_query_target_new( query, table_name );
+    gda_query_add_target( query, target, NULL );
 
-	/* SET */
-	for( col = 1; table[col].col_name != NULL; col++ ) {
-		get_col_gvalue_for_query( be, obj_name, pObject, &table[col], query );
-	}
+    /* SET */
+    for( col = 1; table[col].col_name != NULL; col++ ) {
+        get_col_gvalue_for_query( be, obj_name, pObject, &table[col], query );
+    }
 
-	/* WHERE */
-	get_col_gvalue_for_condition( be, obj_name, pObject, &table[0], query );
+    /* WHERE */
+    get_col_gvalue_for_condition( be, obj_name, pObject, &table[0], query );
 
-	return query;
+    return query;
 }
 
 GdaQuery*
 gnc_gda_build_delete_query( GncGdaBackend* be,
-							const gchar* table_name,
-							QofIdTypeConst obj_name, gpointer pObject,
-							const col_cvt_t* table )
+                            const gchar* table_name,
+                            QofIdTypeConst obj_name, gpointer pObject,
+                            const col_cvt_t* table )
 {
-	GdaQuery* query;
-	GdaQueryTarget* target;
-	GdaQueryField* key;
-	GdaQueryField* key_value;
+    GdaQuery* query;
+    GdaQueryTarget* target;
 
-	/* DELETE */
-	query = gda_query_new( be->pDict );
-	gda_query_set_query_type( query, GDA_QUERY_TYPE_DELETE );
+    /* DELETE */
+    query = gda_query_new( be->pDict );
+    gda_query_set_query_type( query, GDA_QUERY_TYPE_DELETE );
 
-	/* FROM */
-	target = gda_query_target_new( query, table_name );
-	gda_query_add_target( query, target, NULL );
-	g_object_unref( G_OBJECT(target) );
+    /* FROM */
+    target = gda_query_target_new( query, table_name );
+    gda_query_add_target( query, target, NULL );
+    g_object_unref( G_OBJECT(target) );
 
-	/* WHERE */
-	get_col_gvalue_for_condition( be, obj_name, pObject, &table[0], query );
+    /* WHERE */
+    get_col_gvalue_for_condition( be, obj_name, pObject, &table[0], query );
 
-	return query;
+    return query;
 }
 
 /* ================================================================= */
 static void
 add_table_column( GdaServerProvider* server, GdaConnection* cnn,
-			xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
-			gint size, gint flags )
+            xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
+            gint size, gint flags )
 {
-	xmlNodePtr array_row, array_value;
-	gchar* buf;
+    xmlNodePtr array_row, array_value;
+    gchar* buf;
 
-	array_row = xmlNewChild( array_data, NULL, "gda_array_row", NULL );
-	array_value = xmlNewChild( array_row, NULL, "gda_array_value", arg );
-	xmlSetProp( array_value, "colid", "COLUMN_NAME" );
-	array_value = xmlNewChild( array_row, NULL, "gda_array_value", dbms_type );
-	xmlSetProp( array_value, "colid", "COLUMN_TYPE" );
-	if( size != 0 ) {
-		buf = g_strdup_printf( "%d", size );
-		array_value = xmlNewChild( array_row, NULL, "gda_array_value", buf );
-		xmlSetProp( array_value, "colid", "COLUMN_SIZE" );
-		g_free( buf );
-	}
-	if( (flags & COL_PKEY) != 0 ) {
-		array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
-		xmlSetProp( array_value, "colid", "COLUMN_PKEY" );
-	}
-	if( (flags & COL_NNUL) != 0 ) {
-		array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
-		xmlSetProp( array_value, "colid", "COLUMN_NNUL" );
-	}
-	if( (flags & COL_AUTOINC) != 0 ) {
-		array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
-		xmlSetProp( array_value, "colid", "COLUMN_AUTOINC" );
-	}
-	if( (flags & COL_UNIQUE) != 0 ) {
-		array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
-		xmlSetProp( array_value, "colid", "COLUMN_UNIQUE" );
-	}
+    array_row = xmlNewChild( array_data, NULL, "gda_array_row", NULL );
+    array_value = xmlNewChild( array_row, NULL, "gda_array_value", arg );
+    xmlSetProp( array_value, "colid", "COLUMN_NAME" );
+    array_value = xmlNewChild( array_row, NULL, "gda_array_value", dbms_type );
+    xmlSetProp( array_value, "colid", "COLUMN_TYPE" );
+    if( size != 0 ) {
+        buf = g_strdup_printf( "%d", size );
+        array_value = xmlNewChild( array_row, NULL, "gda_array_value", buf );
+        xmlSetProp( array_value, "colid", "COLUMN_SIZE" );
+        g_free( buf );
+    }
+    if( (flags & COL_PKEY) != 0 ) {
+        array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
+        xmlSetProp( array_value, "colid", "COLUMN_PKEY" );
+    }
+    if( (flags & COL_NNUL) != 0 ) {
+        array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
+        xmlSetProp( array_value, "colid", "COLUMN_NNUL" );
+    }
+    if( (flags & COL_AUTOINC) != 0 ) {
+        array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
+        xmlSetProp( array_value, "colid", "COLUMN_AUTOINC" );
+    }
+    if( (flags & COL_UNIQUE) != 0 ) {
+        array_value = xmlNewChild( array_row, NULL, "gda_array_value", "TRUE" );
+        xmlSetProp( array_value, "colid", "COLUMN_UNIQUE" );
+    }
 }
 
 gboolean
 gnc_gda_create_table( GdaConnection* cnn, const gchar* table_name,
-					col_cvt_t* col_table, GError** error )
+                    col_cvt_t* col_table, GError** error )
 {
-	GdaServerOperation *op;
-	GdaServerProvider *server;
-	
-	g_return_val_if_fail( GDA_IS_CONNECTION(cnn), FALSE );
-	g_return_val_if_fail( gda_connection_is_opened(cnn), FALSE );
-	
-	server = gda_connection_get_provider_obj( cnn );
-	
-	op = gda_server_provider_create_operation( server, cnn, 
-						   GDA_SERVER_OPERATION_CREATE_TABLE, NULL, error );
-	if( GDA_IS_SERVER_OPERATION(op) ) {
-		gint col;
-		GType type;
-		xmlDocPtr parameters;
-		xmlNodePtr root;
-		xmlNodePtr table, op_data, array_data, array_row, array_value;
-		
-		if( table_name == NULL ) {
-			g_message( "Table name is NULL!" );      
-			g_set_error( error,
-					GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
-				    "Couldn't create table with a NULL string" );
-			return FALSE;    
-		}
-		
-	
-		/* Initation of the xmlDoc */
-		parameters = xmlNewDoc( "1.0" );
-		
-		root = xmlNewDocNode( parameters, NULL, "serv_op_data", NULL );
-		xmlDocSetRootElement( parameters, root );
-		table = xmlNewChild( root, NULL, "op_data", table_name );
-		xmlSetProp( table, "path", "/TABLE_DEF_P/TABLE_NAME" );
+    GdaServerOperation *op;
+    GdaServerProvider *server;
+    
+    g_return_val_if_fail( GDA_IS_CONNECTION(cnn), FALSE );
+    g_return_val_if_fail( gda_connection_is_opened(cnn), FALSE );
+    
+    server = gda_connection_get_provider_obj( cnn );
+    
+    op = gda_server_provider_create_operation( server, cnn, 
+                           GDA_SERVER_OPERATION_CREATE_TABLE, NULL, error );
+    if( GDA_IS_SERVER_OPERATION(op) ) {
+        gint col;
+        GType type;
+        xmlDocPtr parameters;
+        xmlNodePtr root;
+        xmlNodePtr table, op_data, array_data;
+        
+        if( table_name == NULL ) {
+            g_message( "Table name is NULL!" );      
+            g_set_error( error,
+                    GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
+                    "Couldn't create table with a NULL string" );
+            return FALSE;    
+        }
+        
+    
+        /* Initation of the xmlDoc */
+        parameters = xmlNewDoc( "1.0" );
+        
+        root = xmlNewDocNode( parameters, NULL, "serv_op_data", NULL );
+        xmlDocSetRootElement( parameters, root );
+        table = xmlNewChild( root, NULL, "op_data", table_name );
+        xmlSetProp( table, "path", "/TABLE_DEF_P/TABLE_NAME" );
 
-		op_data = xmlNewChild( root, NULL, "op_data", NULL );
-		xmlSetProp( op_data, "path", "/FIELDS_A" );
-		array_data = xmlNewChild( op_data, NULL, "gda_array_data", NULL );
+        op_data = xmlNewChild( root, NULL, "op_data", NULL );
+        xmlSetProp( op_data, "path", "/FIELDS_A" );
+        array_data = xmlNewChild( op_data, NULL, "gda_array_data", NULL );
 
-		type = 0;
-		
-		for( col = 0; col_table[col].col_name != NULL; col++ ) {
-			gchar* buf;
-			gchar *dbms_type = NULL;
-			const gchar *arg;
-			gint size;
-			gint flags;
-			col_type_handler_t* pHandler;
+        type = 0;
+        
+        for( col = 0; col_table[col].col_name != NULL; col++ ) {
+            col_type_handler_t* pHandler;
 
-			pHandler = get_handler( col_table[col].col_type );
+            pHandler = get_handler( col_table[col].col_type );
 
-			pHandler->create_col_fn( server, cnn, array_data, &col_table[col] );
-		}
-		
-		if( !gda_server_operation_load_data_from_xml(op, root, error ) ) {
-			/* error */
-			g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
-				     "The XML operation doesn't exist or could't be loaded" );
-			g_object_unref( op );
-			xmlFreeDoc( parameters );
-			return FALSE;
-		} else {
-			if( !gda_server_provider_perform_operation( server, cnn, op, error ) ) {
-				/* error */
-				g_set_error( error,
-					GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
-					"The Server couldn't perform the CREATE TABLE operation!" );
-				g_object_unref( op );
-				xmlFreeDoc( parameters );
-				return FALSE;
-			}
-		}
+            pHandler->create_col_fn( server, cnn, array_data, &col_table[col] );
+        }
+        
+        if( !gda_server_operation_load_data_from_xml(op, root, error ) ) {
+            /* error */
+            g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
+                     "The XML operation doesn't exist or could't be loaded" );
+            g_object_unref( op );
+            xmlFreeDoc( parameters );
+            return FALSE;
+        } else {
+            if( !gda_server_provider_perform_operation( server, cnn, op, error ) ) {
+                /* error */
+                g_set_error( error,
+                    GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
+                    "The Server couldn't perform the CREATE TABLE operation!" );
+                g_object_unref( op );
+                xmlFreeDoc( parameters );
+                return FALSE;
+            }
+        }
 
-		g_object_unref( op );
-		xmlFreeDoc( parameters );
-	} else {
-		g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
-			    "The Server doesn't support the CREATE TABLE operation!" );
-		return FALSE;
-	}
-	return TRUE;
+        g_object_unref( op );
+        xmlFreeDoc( parameters );
+    } else {
+        g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
+                "The Server doesn't support the CREATE TABLE operation!" );
+        return FALSE;
+    }
+    return TRUE;
 }
 
 void gnc_gda_create_table_if_needed( GncGdaBackend* be,
-						const gchar* table_name, col_cvt_t* col_table )
+                        const gchar* table_name, col_cvt_t* col_table )
 {
-	GdaDictTable* table;
-	GError* error = NULL;
-	GdaDictDatabase* db;
-	
-	db = gda_dict_get_database( be->pDict );
-	table = gda_dict_database_get_table_by_name( db, table_name );
-	if( !GDA_IS_DICT_TABLE(table) ) {
-		gnc_gda_create_table( be->pConnection, table_name, col_table, &error );
-		if( error != NULL ) {
-			printf( "Error creating table: %s\n", error->message );
-		}
-	}
+    GdaDictTable* table;
+    GError* error = NULL;
+    GdaDictDatabase* db;
+    
+    db = gda_dict_get_database( be->pDict );
+    table = gda_dict_database_get_table_by_name( db, table_name );
+    if( !GDA_IS_DICT_TABLE(table) ) {
+        gnc_gda_create_table( be->pConnection, table_name, col_table, &error );
+        if( error != NULL ) {
+            g_critical( "Error creating table: %s\n", error->message );
+        }
+    }
 }
 /* ================================================================= */
-
+#if 0
 static gboolean
 create_or_drop_db( GdaConnection* cnn, GdaServerOperationType opType,
-				const gchar* db_name, GError** error )
+                const gchar* db_name, GError** error )
 {
-	typedef struct {
-		GdaServerOperationType opType;
-		const gchar* op_name;
-		const gchar* op_path_name;
-	} S_ServerOpInfo;
+    typedef struct {
+        GdaServerOperationType opType;
+        const gchar* op_name;
+        const gchar* op_path_name;
+    } S_ServerOpInfo;
 #define NUMOF(X) (sizeof(X)/sizeof(X[0]))
-	static S_ServerOpInfo s_op_info[] =
-	{
-		{ GDA_SERVER_OPERATION_CREATE_DB, "CREATE DB", "DB_DEF_P" },
-		{ GDA_SERVER_OPERATION_DROP_DB,   "DROP DB",   "DB_DESC_P" }
-	};
+    static S_ServerOpInfo s_op_info[] =
+    {
+        { GDA_SERVER_OPERATION_CREATE_DB, "CREATE DB", "DB_DEF_P" },
+        { GDA_SERVER_OPERATION_DROP_DB,   "DROP DB",   "DB_DESC_P" }
+    };
 #define NUM_OPS NUMOF(s_op_info)
-	S_ServerOpInfo* op_info;
-	GdaServerOperation *op;
-	GdaServerProvider *server;
-	gchar* buf;
-	gint i;
-	
-	g_return_val_if_fail( GDA_IS_CONNECTION(cnn), FALSE );
-	g_return_val_if_fail( gda_connection_is_opened(cnn), FALSE );
-	
-	if( db_name == NULL ) {
-		g_message( "Database name is NULL!" );      
-		g_set_error( error,
-				GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
-				"Couldn't create or drop database with a NULL string" );
-		return FALSE;    
-	}
+    S_ServerOpInfo* op_info;
+    GdaServerOperation *op;
+    GdaServerProvider *server;
+    gchar* buf;
+    gint i;
+    
+    g_return_val_if_fail( GDA_IS_CONNECTION(cnn), FALSE );
+    g_return_val_if_fail( gda_connection_is_opened(cnn), FALSE );
+    
+    if( db_name == NULL ) {
+        g_message( "Database name is NULL!" );      
+        g_set_error( error,
+                GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
+                "Couldn't create or drop database with a NULL string" );
+        return FALSE;    
+    }
 
-	for( i = 0, op_info = NULL; i < NUM_OPS; i++ ) {
-		if( s_op_info[i].opType == opType ) {
-			op_info = &s_op_info[i];
-			break;
-		}
-	}
+    for( i = 0, op_info = NULL; i < NUM_OPS; i++ ) {
+        if( s_op_info[i].opType == opType ) {
+            op_info = &s_op_info[i];
+            break;
+        }
+    }
 
-	g_return_val_if_fail( op_info != NULL, FALSE );
-	
-	server = gda_connection_get_provider_obj( cnn );
-	op = gda_server_provider_create_operation( server, cnn, opType, NULL,
-											error );
-	if( GDA_IS_SERVER_OPERATION(op) ) {
-		xmlDocPtr parameters;
-		xmlNodePtr root;
-		xmlNodePtr db;
-	
-		/* Initation of the xmlDoc */
-		parameters = xmlNewDoc( "1.0" );
-		
-		root = xmlNewDocNode( parameters, NULL, "serv_op_data", NULL );
-		xmlDocSetRootElement( parameters, root );
-		db = xmlNewChild( root, NULL, "op_data", db_name );
-		buf = g_strdup_printf( "/%s/DB_NAME", op_info->op_path_name );
-		xmlSetProp( db, "path", buf );
-		g_free( buf );
+    g_return_val_if_fail( op_info != NULL, FALSE );
+    
+    server = gda_connection_get_provider_obj( cnn );
+    op = gda_server_provider_create_operation( server, cnn, opType, NULL,
+                                            error );
+    if( GDA_IS_SERVER_OPERATION(op) ) {
+        xmlDocPtr parameters;
+        xmlNodePtr root;
+        xmlNodePtr db;
+    
+        /* Initation of the xmlDoc */
+        parameters = xmlNewDoc( "1.0" );
+        
+        root = xmlNewDocNode( parameters, NULL, "serv_op_data", NULL );
+        xmlDocSetRootElement( parameters, root );
+        db = xmlNewChild( root, NULL, "op_data", db_name );
+        buf = g_strdup_printf( "/%s/DB_NAME", op_info->op_path_name );
+        xmlSetProp( db, "path", buf );
+        g_free( buf );
 
-		if( !gda_server_operation_load_data_from_xml(op, root, error ) ) {
-			/* error */
-			g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
-				     "The XML operation doesn't exist or could't be loaded" );
-			g_object_unref( op );
-			xmlFreeDoc( parameters );
-			return FALSE;
-		} else {
-			if( !gda_server_provider_perform_operation( server, cnn, op, error ) ) {
-				/* error */
-				buf = g_strdup_printf( "The server couldn't perform the %s operation",
-										op_info->op_name );
-				g_set_error( error,
-					GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
-					buf );
-				g_free( buf );
-				g_object_unref( op );
-				xmlFreeDoc( parameters );
-				return FALSE;
-			}
-		}
+        if( !gda_server_operation_load_data_from_xml(op, root, error ) ) {
+            /* error */
+            g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
+                     "The XML operation doesn't exist or could't be loaded" );
+            g_object_unref( op );
+            xmlFreeDoc( parameters );
+            return FALSE;
+        } else {
+            if( !gda_server_provider_perform_operation( server, cnn, op, error ) ) {
+                /* error */
+                buf = g_strdup_printf( "The server couldn't perform the %s operation",
+                                        op_info->op_name );
+                g_set_error( error,
+                    GDA_GENERAL_ERROR, GDA_GENERAL_OPERATION_ERROR, 
+                    buf );
+                g_free( buf );
+                g_object_unref( op );
+                xmlFreeDoc( parameters );
+                return FALSE;
+            }
+        }
 
-		g_object_unref( op );
-		xmlFreeDoc( parameters );
-	} else {
-		buf = g_strdup_printf( "The server doesn't support the %s operation",
-								op_info->op_name );
-		g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
-			    	buf );
-		g_free( buf );
-		return FALSE;
-	}
-	return TRUE;
+        g_object_unref( op );
+        xmlFreeDoc( parameters );
+    } else {
+        buf = g_strdup_printf( "The server doesn't support the %s operation",
+                                op_info->op_name );
+        g_set_error( error, GDA_GENERAL_ERROR, GDA_GENERAL_OBJECT_NAME_ERROR, 
+                    buf );
+        g_free( buf );
+        return FALSE;
+    }
+    return TRUE;
 }
 
 static gboolean
 drop_db( GncGdaBackend* be, const gchar* db_name, GError** error )
 {
-	return create_or_drop_db( be->pConnection, GDA_SERVER_OPERATION_DROP_DB,
-								db_name, error );
+    return create_or_drop_db( be->pConnection, GDA_SERVER_OPERATION_DROP_DB,
+                                db_name, error );
 }
 
 static gboolean
 create_db( GncGdaBackend* be, const gchar* db_name, GError** error )
 {
-	return create_or_drop_db( be->pConnection, GDA_SERVER_OPERATION_CREATE_DB,
-								db_name, error );
+    return create_or_drop_db( be->pConnection, GDA_SERVER_OPERATION_CREATE_DB,
+                                db_name, error );
 }
-
+#endif
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-book-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-book-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-book-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -47,102 +47,102 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)qof_entity_set_guid },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY,    NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)qof_entity_set_guid },
+    { NULL }
 };
 
 /* ================================================================= */
 static GNCBook*
 load_book( GncGdaBackend* be, GdaDataModel* pModel, int row,
-			GNCBook* pBook )
+            GNCBook* pBook )
 {
-	const GUID* guid;
-	GUID book_guid;
+    const GUID* guid;
+    GUID book_guid;
 
-	guid = gnc_gda_load_guid( pModel, row );
-	book_guid = *guid;
+    guid = gnc_gda_load_guid( pModel, row );
+    book_guid = *guid;
 
-	if( pBook == NULL ) {
-		pBook = gnc_book_new();
-	}
+    if( pBook == NULL ) {
+        pBook = gnc_book_new();
+    }
 
-	gnc_gda_load_object( pModel, row, GNC_ID_BOOK, pBook, col_table );
-	gnc_gda_slots_load( be, gnc_book_get_guid( pBook ),
-							qof_instance_get_slots( QOF_INSTANCE(pBook) ) );
+    gnc_gda_load_object( pModel, row, GNC_ID_BOOK, pBook, col_table );
+    gnc_gda_slots_load( be, gnc_book_get_guid( pBook ),
+                            qof_instance_get_slots( QOF_INSTANCE(pBook) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pBook) );
+    qof_instance_mark_clean( QOF_INSTANCE(pBook) );
 
-	return pBook;
+    return pBook;
 }
 
 static void
 load_books( GncGdaBackend* be )
 {
-	static GdaQuery* query;
-	GdaObject* ret;
-	QofBook* pBook = be->primary_book;
+    static GdaQuery* query;
+    GdaObject* ret;
+    QofBook* pBook = be->primary_book;
 
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, BOOK_TABLE );
-	}
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, BOOK_TABLE );
+    }
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
 
-		for( r = 0; r < numRows; r++ ) {
-			(void)load_book( be, pModel, r, NULL );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            (void)load_book( be, pModel, r, NULL );
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_book_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, BOOK_TABLE, col_table );
+    gnc_gda_create_table_if_needed( be, BOOK_TABLE, col_table );
 }
 
 /* ================================================================= */
 static void
 commit_book( GncGdaBackend* be, QofInstance* inst )
 {
-	GNCBook* pBook = GNC_BOOK(inst);
-	const GUID* guid;
+    GNCBook* pBook = GNC_BOOK(inst);
+    const GUID* guid;
 
-	(void)gnc_gda_do_db_operation( be,
-						inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE,
-						BOOK_TABLE,
-						GNC_ID_BOOK, pBook,
-						col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE,
+                        BOOK_TABLE,
+                        GNC_ID_BOOK, pBook,
+                        col_table );
 
-	// Delete old slot info
-	guid = qof_instance_get_guid( inst );
+    // Delete old slot info
+    guid = qof_instance_get_guid( inst );
 
-	// Now, commit any slots
-	if( !inst->do_free ) {
-		gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
-	} else {
-		gnc_gda_slots_delete( be, guid );
-	}
+    // Now, commit any slots
+    if( !inst->do_free ) {
+        gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
+    } else {
+        gnc_gda_slots_delete( be, guid );
+    }
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_book_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_BOOK,
-		commit_book,				/* commit */
-		load_books,					/* initial_load */
-		create_book_tables			/* create_tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_BOOK,
+        commit_book,                /* commit */
+        load_books,                    /* initial_load */
+        create_book_tables            /* create_tables */
+    };
 
-	qof_object_register_backend( GNC_ID_BOOK, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_BOOK, GNC_GDA_BACKEND, &be_data );
 }
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-budget-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-budget-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-budget-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,175 +58,175 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)qof_entity_set_guid },
-	{ "name",			CT_STRING,	BUDGET_MAX_NAME_LEN, COL_NNUL,	"name" },
-	{ "description",	CT_STRING,	BUDGET_MAX_DESCRIPTION_LEN, 0,	"description" },
-	{ "num_periods",	CT_INT,		0, COL_NNUL, "num_periods" },
-	{ "recurrence_mult", CT_INT,	0, COL_NNUL, NULL,
-			get_recurrence_mult, set_recurrence_mult },
-	{ "recurrence_period_type", CT_STRING, BUDGET_MAX_RECURRENCE_PERIOD_TYPE_LEN,
-			COL_NNUL, NULL, get_recurrence_period_type, set_recurrence_period_type },
-	{ "recurrence_period_start", CT_GDATE, 0, COL_NNUL, NULL,
-			get_recurrence_period_start, set_recurrence_period_start },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY,    NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)qof_entity_set_guid },
+    { "name",            CT_STRING,    BUDGET_MAX_NAME_LEN, COL_NNUL,    "name" },
+    { "description",    CT_STRING,    BUDGET_MAX_DESCRIPTION_LEN, 0,    "description" },
+    { "num_periods",    CT_INT,        0, COL_NNUL, "num_periods" },
+    { "recurrence_mult", CT_INT,    0, COL_NNUL, NULL,
+            get_recurrence_mult, set_recurrence_mult },
+    { "recurrence_period_type", CT_STRING, BUDGET_MAX_RECURRENCE_PERIOD_TYPE_LEN,
+            COL_NNUL, NULL, get_recurrence_period_type, set_recurrence_period_type },
+    { "recurrence_period_start", CT_GDATE, 0, COL_NNUL, NULL,
+            get_recurrence_period_start, set_recurrence_period_start },
+    { NULL }
 };
 
 /* ================================================================= */
 static gpointer
 get_recurrence_mult( gpointer pObject, const QofParam* param )
 {
-	GncBudget* budget = GNC_BUDGET(pObject);
-	const Recurrence* r = gnc_budget_get_recurrence( budget );
-	guint m = r->mult;
+    GncBudget* budget = GNC_BUDGET(pObject);
+    const Recurrence* r = gnc_budget_get_recurrence( budget );
+    guint m = r->mult;
 
-	return (gpointer)m;
+    return (gpointer)m;
 }
 
 static void
 set_recurrence_mult( gpointer pObject, gpointer pValue )
 {
-	GncBudget* budget = GNC_BUDGET(pObject);
-	Recurrence* r = (Recurrence*)gnc_budget_get_recurrence( budget );
-	guint m = (guint)pValue;
+    GncBudget* budget = GNC_BUDGET(pObject);
+    Recurrence* r = (Recurrence*)gnc_budget_get_recurrence( budget );
+    guint m = (guint)pValue;
 
-	r->mult = m;
+    r->mult = m;
 }
 
 static gpointer
 get_recurrence_period_type( gpointer pObject, const QofParam* param )
 {
-	GncBudget* budget = GNC_BUDGET(pObject);
-	const Recurrence* r = gnc_budget_get_recurrence( budget );
+    GncBudget* budget = GNC_BUDGET(pObject);
+    const Recurrence* r = gnc_budget_get_recurrence( budget );
 
-	return (gpointer)recurrencePeriodTypeToString(
-							recurrenceGetPeriodType( r ) );
+    return (gpointer)recurrencePeriodTypeToString(
+                            recurrenceGetPeriodType( r ) );
 }
 
 static void
 set_recurrence_period_type( gpointer pObject, gpointer pValue )
 {
-	GncBudget* budget = GNC_BUDGET(pObject);
-	Recurrence* r = (Recurrence*)gnc_budget_get_recurrence( budget );
+    GncBudget* budget = GNC_BUDGET(pObject);
+    Recurrence* r = (Recurrence*)gnc_budget_get_recurrence( budget );
 
-	r->ptype = recurrencePeriodTypeFromString( (gchar*)pValue );
+    r->ptype = recurrencePeriodTypeFromString( (gchar*)pValue );
 }
 
 static gpointer
 get_recurrence_period_start( gpointer pObject, const QofParam* param )
 {
-	GncBudget* budget = GNC_BUDGET(pObject);
-	const Recurrence* r = gnc_budget_get_recurrence( budget );
-	static GDate date;
+    GncBudget* budget = GNC_BUDGET(pObject);
+    const Recurrence* r = gnc_budget_get_recurrence( budget );
+    static GDate date;
 
-	date = recurrenceGetDate( r );
-	return (gpointer)&date;
+    date = recurrenceGetDate( r );
+    return (gpointer)&date;
 }
 
 static void
 set_recurrence_period_start( gpointer pObject, gpointer pValue )
 {
-	GncBudget* budget = GNC_BUDGET(pObject);
-	Recurrence* r = (Recurrence*)gnc_budget_get_recurrence( budget );
-	GDate* date = (GDate*)pValue;
+    GncBudget* budget = GNC_BUDGET(pObject);
+    Recurrence* r = (Recurrence*)gnc_budget_get_recurrence( budget );
+    GDate* date = (GDate*)pValue;
 
-	r->start = *date;
+    r->start = *date;
 }
 
 /* ================================================================= */
 static GncBudget*
 load_budget( GncGdaBackend* be, GdaDataModel* pModel, int row,
-			GncBudget* pBudget )
+            GncBudget* pBudget )
 {
-	const GUID* guid;
-	GUID budget_guid;
+    const GUID* guid;
+    GUID budget_guid;
 
-	guid = gnc_gda_load_guid( pModel, row );
-	budget_guid = *guid;
+    guid = gnc_gda_load_guid( pModel, row );
+    budget_guid = *guid;
 
-	if( pBudget == NULL ) {
-		pBudget = gnc_budget_lookup( &budget_guid, be->primary_book );
-		if( pBudget == NULL ) {
-			pBudget = gnc_budget_new( be->primary_book );
-		}
-	}
+    if( pBudget == NULL ) {
+        pBudget = gnc_budget_lookup( &budget_guid, be->primary_book );
+        if( pBudget == NULL ) {
+            pBudget = gnc_budget_new( be->primary_book );
+        }
+    }
 
-	gnc_gda_load_object( pModel, row, GNC_ID_BUDGET, pBudget, col_table );
-	gnc_gda_slots_load( be, gnc_budget_get_guid( pBudget ),
-							qof_instance_get_slots( QOF_INSTANCE(pBudget) ) );
+    gnc_gda_load_object( pModel, row, GNC_ID_BUDGET, pBudget, col_table );
+    gnc_gda_slots_load( be, gnc_budget_get_guid( pBudget ),
+                            qof_instance_get_slots( QOF_INSTANCE(pBudget) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pBudget) );
+    qof_instance_mark_clean( QOF_INSTANCE(pBudget) );
 
-	return pBudget;
+    return pBudget;
 }
 
 static void
 load_budgets( GncGdaBackend* be )
 {
-	static GdaQuery* query;
-	GdaObject* ret;
-	QofBook* pBook = be->primary_book;
+    static GdaQuery* query;
+    GdaObject* ret;
+    QofBook* pBook = be->primary_book;
 
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, BUDGET_TABLE );
-	}
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, BUDGET_TABLE );
+    }
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
 
-		for( r = 0; r < numRows; r++ ) {
-			(void)load_budget( be, pModel, r, NULL );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            (void)load_budget( be, pModel, r, NULL );
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_budget_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, BUDGET_TABLE, col_table );
+    gnc_gda_create_table_if_needed( be, BUDGET_TABLE, col_table );
 }
 
 /* ================================================================= */
 static void
 commit_budget( GncGdaBackend* be, QofInstance* inst )
 {
-	GncBudget* pBudget = GNC_BUDGET(inst);
-	const GUID* guid;
+    GncBudget* pBudget = GNC_BUDGET(inst);
+    const GUID* guid;
 
-	(void)gnc_gda_do_db_operation( be,
-						inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE,
-						BUDGET_TABLE,
-						GNC_ID_BUDGET, pBudget,
-						col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE,
+                        BUDGET_TABLE,
+                        GNC_ID_BUDGET, pBudget,
+                        col_table );
 
-	// Delete old slot info
-	guid = qof_instance_get_guid( inst );
+    // Delete old slot info
+    guid = qof_instance_get_guid( inst );
 
-	// Now, commit any slots
-	if( !inst->do_free ) {
-		gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
-	} else {
-		gnc_gda_slots_delete( be, guid );
-	}
+    // Now, commit any slots
+    if( !inst->do_free ) {
+        gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
+    } else {
+        gnc_gda_slots_delete( be, guid );
+    }
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_budget_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_BUDGET,
-		commit_budget,				/* commit */
-		load_budgets,				/* initial_load */
-		create_budget_tables		/* create_tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_BUDGET,
+        commit_budget,                /* commit */
+        load_budgets,                /* initial_load */
+        create_budget_tables        /* create_tables */
+    };
 
-	qof_object_register_backend( GNC_ID_BUDGET, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_BUDGET, GNC_GDA_BACKEND, &be_data );
 }
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-commodity-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-commodity-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-commodity-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -57,33 +57,33 @@
 #define COMMODITY_MAX_QUOTE_TZ_LEN 50
 
 static col_cvt_t col_table[] = {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)qof_entity_set_guid },
-	{ "namespace",		CT_STRING,	COMMODITY_MAX_NAMESPACE_LEN, COL_NNUL,	NULL,
-			(QofAccessFunc)gnc_commodity_get_namespace,
-			(QofSetterFunc)gnc_commodity_set_namespace },
-	{ "mnemonic",		CT_STRING,	COMMODITY_MAX_MNEMONIC_LEN, COL_NNUL,	NULL,
-			(QofAccessFunc)gnc_commodity_get_mnemonic,
-			(QofSetterFunc)gnc_commodity_set_mnemonic },
-	{ "fullname",		CT_STRING,	COMMODITY_MAX_FULLNAME_LEN, COL_NNUL,	NULL,
-			(QofAccessFunc)gnc_commodity_get_fullname,
-			(QofSetterFunc)gnc_commodity_set_fullname },
-	{ "cusip",			CT_STRING,	COMMODITY_MAX_CUSIP_LEN, COL_NNUL,	NULL,
-			(QofAccessFunc)gnc_commodity_get_cusip,
-			(QofSetterFunc)gnc_commodity_set_cusip },
-	{ "fraction",		CT_INT,		0, COL_NNUL,	NULL,
-			(QofAccessFunc)gnc_commodity_get_fraction,
-			(QofSetterFunc)gnc_commodity_set_fraction },
-	{ "quote_flag",		CT_INT,		0, COL_NNUL,	NULL,
-			(QofAccessFunc)gnc_commodity_get_quote_flag,
-			(QofSetterFunc)gnc_commodity_set_quote_flag },
-	{ "quote_source",	CT_STRING,	COMMODITY_MAX_QUOTESOURCE_LEN, 0,	NULL,
-			get_quote_source_name, set_quote_source_name },
-	{ "quote_tz",		CT_STRING,	COMMODITY_MAX_QUOTE_TZ_LEN, 0,	NULL,
-			(QofAccessFunc)gnc_commodity_get_quote_tz,
-			(QofSetterFunc)gnc_commodity_set_quote_tz },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY,    NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)qof_entity_set_guid },
+    { "namespace",        CT_STRING,    COMMODITY_MAX_NAMESPACE_LEN, COL_NNUL,    NULL,
+            (QofAccessFunc)gnc_commodity_get_namespace,
+            (QofSetterFunc)gnc_commodity_set_namespace },
+    { "mnemonic",        CT_STRING,    COMMODITY_MAX_MNEMONIC_LEN, COL_NNUL,    NULL,
+            (QofAccessFunc)gnc_commodity_get_mnemonic,
+            (QofSetterFunc)gnc_commodity_set_mnemonic },
+    { "fullname",        CT_STRING,    COMMODITY_MAX_FULLNAME_LEN, COL_NNUL,    NULL,
+            (QofAccessFunc)gnc_commodity_get_fullname,
+            (QofSetterFunc)gnc_commodity_set_fullname },
+    { "cusip",            CT_STRING,    COMMODITY_MAX_CUSIP_LEN, COL_NNUL,    NULL,
+            (QofAccessFunc)gnc_commodity_get_cusip,
+            (QofSetterFunc)gnc_commodity_set_cusip },
+    { "fraction",        CT_INT,        0, COL_NNUL,    NULL,
+            (QofAccessFunc)gnc_commodity_get_fraction,
+            (QofSetterFunc)gnc_commodity_set_fraction },
+    { "quote_flag",        CT_INT,        0, COL_NNUL,    NULL,
+            (QofAccessFunc)gnc_commodity_get_quote_flag,
+            (QofSetterFunc)gnc_commodity_set_quote_flag },
+    { "quote_source",    CT_STRING,    COMMODITY_MAX_QUOTESOURCE_LEN, 0,    NULL,
+            get_quote_source_name, set_quote_source_name },
+    { "quote_tz",        CT_STRING,    COMMODITY_MAX_QUOTE_TZ_LEN, 0,    NULL,
+            (QofAccessFunc)gnc_commodity_get_quote_tz,
+            (QofSetterFunc)gnc_commodity_set_quote_tz },
+    { NULL }
 };
 
 /* ================================================================= */
@@ -91,133 +91,133 @@
 static gpointer
 get_quote_source_name( gpointer pObject, const QofParam* param )
 {
-	const gnc_commodity* pCommodity = GNC_COMMODITY(pObject);
+    const gnc_commodity* pCommodity = GNC_COMMODITY(pObject);
 
-	return (gpointer)gnc_quote_source_get_internal_name(
-							gnc_commodity_get_quote_source(pCommodity));
+    return (gpointer)gnc_quote_source_get_internal_name(
+                            gnc_commodity_get_quote_source(pCommodity));
 }
 
 static void 
 set_quote_source_name( gpointer pObject, gpointer pValue )
 {
-	gnc_commodity* pCommodity = GNC_COMMODITY(pObject);
-	const gchar* quote_source_name = (const gchar*)pValue;
-	gnc_quote_source* quote_source;
+    gnc_commodity* pCommodity = GNC_COMMODITY(pObject);
+    const gchar* quote_source_name = (const gchar*)pValue;
+    gnc_quote_source* quote_source;
 
-	quote_source = gnc_quote_source_lookup_by_internal( quote_source_name );
-	gnc_commodity_set_quote_source( pCommodity, quote_source );
+    quote_source = gnc_quote_source_lookup_by_internal( quote_source_name );
+    gnc_commodity_set_quote_source( pCommodity, quote_source );
 }
 
 static gnc_commodity*
 load_commodity( GncGdaBackend* be, GdaDataModel* pModel, int row,
-				gnc_commodity* pCommodity )
+                gnc_commodity* pCommodity )
 {
-	QofBook* pBook = be->primary_book;
-	int col;
-	const GValue* val;
+    QofBook* pBook = be->primary_book;
+    int col;
+    const GValue* val;
 
-	if( pCommodity == NULL ) {
-		pCommodity = gnc_commodity_new( pBook, NULL, NULL, NULL, NULL, 100 );
-	}
+    if( pCommodity == NULL ) {
+        pCommodity = gnc_commodity_new( pBook, NULL, NULL, NULL, NULL, 100 );
+    }
 
-	gnc_gda_load_object( pModel, row, GNC_ID_COMMODITY, pCommodity, col_table );
-	gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pCommodity) ),
-							qof_instance_get_slots( QOF_INSTANCE(pCommodity) ) );
+    gnc_gda_load_object( pModel, row, GNC_ID_COMMODITY, pCommodity, col_table );
+    gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pCommodity) ),
+                            qof_instance_get_slots( QOF_INSTANCE(pCommodity) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pCommodity) );
+    qof_instance_mark_clean( QOF_INSTANCE(pCommodity) );
 
-	return pCommodity;
+    return pCommodity;
 }
 
 static void
 load_commodities( GncGdaBackend* be )
 {
-	static GdaQuery* query;
-	GdaObject* ret;
-	gnc_commodity_table* pTable = gnc_commodity_table_get_table( be->primary_book );
+    static GdaQuery* query;
+    GdaObject* ret;
+    gnc_commodity_table* pTable = gnc_commodity_table_get_table( be->primary_book );
 
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, COMMODITIES_TABLE );
-	}
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
-		gnc_commodity* pCommodity;
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, COMMODITIES_TABLE );
+    }
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
+        gnc_commodity* pCommodity;
 
-		for( r = 0; r < numRows; r++ ) {
-			gnc_commodity* c;
+        for( r = 0; r < numRows; r++ ) {
+            gnc_commodity* c;
 
-			pCommodity = load_commodity( be, pModel, r, NULL );
+            pCommodity = load_commodity( be, pModel, r, NULL );
 
-			if( pCommodity != NULL ) {
-				GUID guid;
+            if( pCommodity != NULL ) {
+                GUID guid;
 
-				guid = *qof_entity_get_guid( QOF_ENTITY(pCommodity) );
-				pCommodity = gnc_commodity_table_insert( pTable, pCommodity );
-				qof_entity_set_guid( QOF_ENTITY(pCommodity), &guid );
-			}
-		}
-	}
+                guid = *qof_entity_get_guid( QOF_ENTITY(pCommodity) );
+                pCommodity = gnc_commodity_table_insert( pTable, pCommodity );
+                qof_entity_set_guid( QOF_ENTITY(pCommodity), &guid );
+            }
+        }
+    }
 }
 /* ================================================================= */
 static void
 create_commodities_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, COMMODITIES_TABLE, col_table );
+    gnc_gda_create_table_if_needed( be, COMMODITIES_TABLE, col_table );
 }
 
 /* ================================================================= */
 static void
 commit_commodity( GncGdaBackend* be, QofInstance* inst )
 {
-	const GUID* guid;
+    const GUID* guid;
 
-	(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						COMMODITIES_TABLE,
-						GNC_ID_COMMODITY, (gnc_commodity*)inst,
-						col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        COMMODITIES_TABLE,
+                        GNC_ID_COMMODITY, (gnc_commodity*)inst,
+                        col_table );
 
-	// Delete old slot info
-	guid = qof_instance_get_guid( inst );
+    // Delete old slot info
+    guid = qof_instance_get_guid( inst );
 
-	// Now, commit or delete any slots
-	if( !inst->do_free ) {
-		gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
-	} else {
-		gnc_gda_slots_delete( be, guid );
-	}
+    // Now, commit or delete any slots
+    if( !inst->do_free ) {
+        gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
+    } else {
+        gnc_gda_slots_delete( be, guid );
+    }
 }
 
 static gboolean
 is_commodity_in_db( GncGdaBackend* be, gnc_commodity* pCommodity )
 {
-	return gnc_gda_object_is_it_in_db( be, COMMODITIES_TABLE, GNC_ID_COMMODITY,
-								pCommodity, col_table );
+    return gnc_gda_object_is_it_in_db( be, COMMODITIES_TABLE, GNC_ID_COMMODITY,
+                                pCommodity, col_table );
 }
 
 void gnc_gda_save_commodity( GncGdaBackend* be, gnc_commodity* pCommodity )
 {
-	if( !is_commodity_in_db( be, pCommodity ) ) {
-		commit_commodity( be, QOF_INSTANCE(pCommodity) );
-	}
+    if( !is_commodity_in_db( be, pCommodity ) ) {
+        commit_commodity( be, QOF_INSTANCE(pCommodity) );
+    }
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_commodity_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_COMMODITY,
-		commit_commodity,			/* commit */
-		load_commodities,			/* initial_load */
-		create_commodities_tables	/* create_tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_COMMODITY,
+        commit_commodity,            /* commit */
+        load_commodities,            /* initial_load */
+        create_commodities_tables    /* create_tables */
+    };
 
-	qof_object_register_backend( GNC_ID_COMMODITY, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_COMMODITY, GNC_GDA_BACKEND, &be_data );
 }
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-lots-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-lots-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-lots-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -50,99 +50,99 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)qof_entity_set_guid },
-	{ "account_guid",	CT_GUID,	  0, COL_NNUL,	NULL,
-			get_lot_account, set_lot_account },
-	{ "is_closed",		CT_STRING,  1, COL_NNUL, NULL,
-			get_lot_is_closed, set_lot_is_closed },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY,    NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)qof_entity_set_guid },
+    { "account_guid",    CT_GUID,      0, COL_NNUL,    NULL,
+            get_lot_account, set_lot_account },
+    { "is_closed",        CT_STRING,  1, COL_NNUL, NULL,
+            get_lot_is_closed, set_lot_is_closed },
+    { NULL }
 };
 
 /* ================================================================= */
 static gpointer
 get_lot_account( gpointer pObject, const QofParam* param )
 {
-	const GNCLot* lot = GNC_LOT(pObject);
-	const Account* pAccount = gnc_lot_get_account( lot );
+    const GNCLot* lot = GNC_LOT(pObject);
+    const Account* pAccount = gnc_lot_get_account( lot );
 
-	return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pAccount) );
+    return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pAccount) );
 }
 
 static void 
 set_lot_account( gpointer pObject, gpointer pValue )
 {
-	GNCLot* lot = GNC_LOT(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(lot) );
-	GUID* guid = (GUID*)pValue;
-	Account* pAccount = xaccAccountLookup( guid, pBook );
+    GNCLot* lot = GNC_LOT(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(lot) );
+    GUID* guid = (GUID*)pValue;
+    Account* pAccount = xaccAccountLookup( guid, pBook );
 
-	xaccAccountInsertLot( pAccount, lot );
+    xaccAccountInsertLot( pAccount, lot );
 }
 
 static gpointer
 get_lot_is_closed( gpointer pObject, const QofParam* param )
 {
-	GNCLot* lot = GNC_LOT(pObject);
-	static gboolean is_closed; 
+    GNCLot* lot = GNC_LOT(pObject);
+    static gboolean is_closed; 
 
-	is_closed = gnc_lot_is_closed( lot );
-	return &is_closed;
+    is_closed = gnc_lot_is_closed( lot );
+    return &is_closed;
 }
 
 static void
 set_lot_is_closed( gpointer pObject, gpointer pValue )
 {
-	GNCLot* lot = GNC_LOT(pObject);
-	const gboolean* pBoolean = (const gboolean*)pValue;
+    GNCLot* lot = GNC_LOT(pObject);
+    const gboolean* pBoolean = (const gboolean*)pValue;
 
-	lot->is_closed = *pBoolean;
+    lot->is_closed = *pBoolean;
 }
 
 static GNCLot*
 load_lot( GncGdaBackend* be, GdaDataModel* pModel, int row, GNCLot* lot )
 {
-	if( lot == NULL ) {
-		lot = gnc_lot_new( be->primary_book );
-	}
+    if( lot == NULL ) {
+        lot = gnc_lot_new( be->primary_book );
+    }
 
-	gnc_gda_load_object( pModel, row, GNC_ID_LOT, lot, col_table );
-	gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(lot) ),
-							qof_instance_get_slots( QOF_INSTANCE(lot) ) );
+    gnc_gda_load_object( pModel, row, GNC_ID_LOT, lot, col_table );
+    gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(lot) ),
+                            qof_instance_get_slots( QOF_INSTANCE(lot) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(lot) );
+    qof_instance_mark_clean( QOF_INSTANCE(lot) );
 
-	return lot;
+    return lot;
 }
 
 static void
 load_lots( GncGdaBackend* be )
 {
-	static GdaQuery* query;
-	GdaObject* ret;
+    static GdaQuery* query;
+    GdaObject* ret;
 
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, TABLE_NAME );
-	}
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
-		GNCLot* lot;
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, TABLE_NAME );
+    }
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
+        GNCLot* lot;
 
-		for( r = 0; r < numRows; r++ ) {
-			lot = load_lot( be, pModel, r, NULL );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            lot = load_lot( be, pModel, r, NULL );
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_lots_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
+    gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
 }
 
 /* ================================================================= */
@@ -150,33 +150,33 @@
 static void
 commit_lot( GncGdaBackend* be, QofInstance* inst )
 {
-	GNCLot* lot = GNC_LOT(inst);
+    GNCLot* lot = GNC_LOT(inst);
 
-	(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						TABLE_NAME,
-						GNC_ID_LOT, lot,
-						col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        TABLE_NAME,
+                        GNC_ID_LOT, lot,
+                        col_table );
 
-	// Now, commit any slots
-	gnc_gda_slots_save( be, qof_instance_get_guid( inst ),
-						qof_instance_get_slots( inst ) );
+    // Now, commit any slots
+    gnc_gda_slots_save( be, qof_instance_get_guid( inst ),
+                        qof_instance_get_slots( inst ) );
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_lot_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_LOT,
-		commit_lot,			/* commit */
-		load_lots,			/* initial_load */
-		create_lots_tables	/* create tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_LOT,
+        commit_lot,            /* commit */
+        load_lots,            /* initial_load */
+        create_lots_tables    /* create tables */
+    };
 
-	qof_object_register_backend( GNC_ID_LOT, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_LOT, GNC_GDA_BACKEND, &be_data );
 }
 
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-price-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-price-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-price-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -57,149 +57,149 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)qof_entity_set_guid },
-	{ "commodity_guid",	CT_GUID,	0, COL_NNUL, NULL,
-			get_commodity_guid, set_commodity_guid },
-	{ "currency_guid",	CT_GUID,	0, COL_NNUL, NULL,
-			get_currency_guid, set_currency_guid },
-	{ "date",			CT_TIMESPEC,	0, COL_NNUL, NULL,
-			get_date, set_date },
-	{ "source",			CT_STRING,	PRICE_MAX_SOURCE_LEN, 0, PRICE_SOURCE },
-	{ "type",			CT_STRING,	PRICE_MAX_TYPE_LEN, 0, PRICE_TYPE },
-	{ "value",			CT_NUMERIC,	0, COL_NNUL, NULL, get_value, set_value },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY,    NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)qof_entity_set_guid },
+    { "commodity_guid",    CT_GUID,    0, COL_NNUL, NULL,
+            get_commodity_guid, set_commodity_guid },
+    { "currency_guid",    CT_GUID,    0, COL_NNUL, NULL,
+            get_currency_guid, set_currency_guid },
+    { "date",            CT_TIMESPEC,    0, COL_NNUL, NULL,
+            get_date, set_date },
+    { "source",            CT_STRING,    PRICE_MAX_SOURCE_LEN, 0, PRICE_SOURCE },
+    { "type",            CT_STRING,    PRICE_MAX_TYPE_LEN, 0, PRICE_TYPE },
+    { "value",            CT_NUMERIC,    0, COL_NNUL, NULL, get_value, set_value },
+    { NULL }
 };
 
 /* ================================================================= */
 static gpointer
 get_value( gpointer pObject, const QofParam* param )
 {
-	const GNCPrice* pPrice = GNC_PRICE(pObject);
-	static gnc_numeric v;
+    const GNCPrice* pPrice = GNC_PRICE(pObject);
+    static gnc_numeric v;
 
-	v = gnc_price_get_value( pPrice );
-	return &v;
+    v = gnc_price_get_value( pPrice );
+    return &v;
 }
 
 static void
 set_value( gpointer pObject, gpointer pValue )
 {
-	GNCPrice* pPrice = GNC_PRICE(pObject);
-	const gnc_numeric* pNumeric = (const gnc_numeric*)pValue;
+    GNCPrice* pPrice = GNC_PRICE(pObject);
+    const gnc_numeric* pNumeric = (const gnc_numeric*)pValue;
 
-	gnc_price_set_value( pPrice, *pNumeric );
+    gnc_price_set_value( pPrice, *pNumeric );
 }
 
 static gpointer
 get_date( gpointer pObject, const QofParam* param )
 {
-	const GNCPrice* pPrice = GNC_PRICE(pObject);
-	static Timespec t;
+    const GNCPrice* pPrice = GNC_PRICE(pObject);
+    static Timespec t;
 
-	t = gnc_price_get_time( pPrice );
-	return &t;
+    t = gnc_price_get_time( pPrice );
+    return &t;
 }
 
 static void
 set_date( gpointer pObject, gpointer pValue )
 {
-	GNCPrice* pPrice = GNC_PRICE(pObject);
-	const Timespec* pTimespec = (const Timespec*)pValue;
+    GNCPrice* pPrice = GNC_PRICE(pObject);
+    const Timespec* pTimespec = (const Timespec*)pValue;
 
-	gnc_price_set_time( pPrice, *pTimespec );
+    gnc_price_set_time( pPrice, *pTimespec );
 }
 
 static gpointer
 get_currency_guid( gpointer pObject, const QofParam* param )
 {
-	const GNCPrice* pPrice = GNC_PRICE(pObject);
+    const GNCPrice* pPrice = GNC_PRICE(pObject);
 
-	return (gpointer)qof_instance_get_guid(
-							QOF_INSTANCE(gnc_price_get_currency( pPrice )) );
+    return (gpointer)qof_instance_get_guid(
+                            QOF_INSTANCE(gnc_price_get_currency( pPrice )) );
 }
 
 static void 
 set_currency_guid( gpointer pObject, gpointer pValue )
 {
-	GNCPrice* pPrice = GNC_PRICE(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pPrice) );
-	gnc_commodity* pCurrency;
-	GUID* guid = (GUID*)pValue;
+    GNCPrice* pPrice = GNC_PRICE(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pPrice) );
+    gnc_commodity* pCurrency;
+    GUID* guid = (GUID*)pValue;
 
-	pCurrency = gnc_commodity_find_commodity_by_guid( guid, pBook );
-	gnc_price_set_currency( pPrice, pCurrency );
+    pCurrency = gnc_commodity_find_commodity_by_guid( guid, pBook );
+    gnc_price_set_currency( pPrice, pCurrency );
 }
 
 static gpointer
 get_commodity_guid( gpointer pObject, const QofParam* param )
 {
-	const GNCPrice* pPrice = GNC_PRICE(pObject);
+    const GNCPrice* pPrice = GNC_PRICE(pObject);
 
-	return (gpointer)qof_instance_get_guid(
-						QOF_INSTANCE(gnc_price_get_commodity( pPrice )) );
+    return (gpointer)qof_instance_get_guid(
+                        QOF_INSTANCE(gnc_price_get_commodity( pPrice )) );
 }
 
 static void 
 set_commodity_guid( gpointer pObject, gpointer pValue )
 {
-	GNCPrice* pPrice = GNC_PRICE(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pPrice) );
-	gnc_commodity* pCommodity;
-	GUID* guid = (GUID*)pValue;
+    GNCPrice* pPrice = GNC_PRICE(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pPrice) );
+    gnc_commodity* pCommodity;
+    GUID* guid = (GUID*)pValue;
 
-	pCommodity = gnc_commodity_find_commodity_by_guid( guid, pBook );
-	gnc_price_set_commodity( pPrice, pCommodity );
+    pCommodity = gnc_commodity_find_commodity_by_guid( guid, pBook );
+    gnc_price_set_commodity( pPrice, pCommodity );
 }
 
 static GNCPrice*
 load_price( GncGdaBackend* be, GdaDataModel* pModel, int row, GNCPrice* pPrice )
 {
-	if( pPrice == NULL ) {
-		pPrice = gnc_price_create( be->primary_book );
-	}
+    if( pPrice == NULL ) {
+        pPrice = gnc_price_create( be->primary_book );
+    }
 
-	gnc_gda_load_object( pModel, row, GNC_ID_PRICE, pPrice, col_table );
+    gnc_gda_load_object( pModel, row, GNC_ID_PRICE, pPrice, col_table );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pPrice) );
+    qof_instance_mark_clean( QOF_INSTANCE(pPrice) );
 
-	return pPrice;
+    return pPrice;
 }
 
 static void
 load_prices( GncGdaBackend* be )
 {
-	static GdaQuery* query;
-	GdaObject* ret;
-	QofBook* pBook = be->primary_book;
-	GNCPriceDB* pPriceDB = gnc_book_get_pricedb( pBook );
+    static GdaQuery* query;
+    GdaObject* ret;
+    QofBook* pBook = be->primary_book;
+    GNCPriceDB* pPriceDB = gnc_book_get_pricedb( pBook );
 
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, TABLE_NAME );
-	}
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
-		GNCPrice* pPrice;
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, TABLE_NAME );
+    }
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
+        GNCPrice* pPrice;
 
-		for( r = 0; r < numRows; r++ ) {
-			pPrice = load_price( be, pModel, r, NULL );
+        for( r = 0; r < numRows; r++ ) {
+            pPrice = load_price( be, pModel, r, NULL );
 
-			if( pPrice != NULL ) {
-				gnc_pricedb_add_price( pPriceDB, pPrice );
-			}
-		}
-	}
+            if( pPrice != NULL ) {
+                gnc_pricedb_add_price( pPriceDB, pPrice );
+            }
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_prices_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
+    gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
 }
 
 /* ================================================================= */
@@ -207,33 +207,33 @@
 static void
 commit_price( GncGdaBackend* be, QofInstance* inst )
 {
-	GNCPrice* pPrice = GNC_PRICE(inst);
+    GNCPrice* pPrice = GNC_PRICE(inst);
 
-	/* Ensure commodity and currency are in the db */
-	gnc_gda_save_commodity( be, gnc_price_get_commodity( pPrice ) );
-	gnc_gda_save_commodity( be, gnc_price_get_currency( pPrice ) );
+    /* Ensure commodity and currency are in the db */
+    gnc_gda_save_commodity( be, gnc_price_get_commodity( pPrice ) );
+    gnc_gda_save_commodity( be, gnc_price_get_currency( pPrice ) );
 
-	(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						TABLE_NAME,
-						GNC_ID_PRICE, pPrice,
-						col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        TABLE_NAME,
+                        GNC_ID_PRICE, pPrice,
+                        col_table );
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_price_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_PRICE,
-		commit_price,			/* commit */
-		load_prices,			/* initial_load */
-		create_prices_tables	/* create tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_PRICE,
+        commit_price,            /* commit */
+        load_prices,            /* initial_load */
+        create_prices_tables    /* create tables */
+    };
 
-	qof_object_register_backend( GNC_ID_PRICE, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_PRICE, GNC_GDA_BACKEND, &be_data );
 }
 
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-schedxaction-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -53,25 +53,25 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY,	NULL,
-			(QofAccessFunc)qof_entity_get_guid,
-			(QofSetterFunc)qof_entity_set_guid },
-	{ "name",			CT_STRING, SX_MAX_NAME_LEN, COL_NNUL, GNC_SX_NAME },
-	{ "start_date",		CT_GDATE,	0, COL_NNUL, GNC_SX_START_DATE },
-	{ "last_occur",		CT_GDATE,	0, COL_NNUL, GNC_SX_LAST_DATE },
-	{ "num_occur",		CT_INT,		0, COL_NNUL, GNC_SX_NUM_OCCUR },
-	{ "rem_occur",		CT_INT,		0, COL_NNUL, GNC_SX_REM_OCCUR },
-	{ "auto_create",	CT_BOOLEAN,	0, COL_NNUL, NULL,
-			get_autocreate, set_autocreate },
-	{ "auto_notify",	CT_BOOLEAN,	0, COL_NNUL, NULL,
-			get_autonotify, set_autonotify },
-	{ "adv_creation",	CT_INT,		0, COL_NNUL, NULL,
-			(QofAccessFunc)xaccSchedXactionGetAdvanceCreation,
-			(QofSetterFunc)xaccSchedXactionSetAdvanceCreation },
-	{ "adv_notify",	CT_INT,		0, COL_NNUL, NULL,
-			(QofAccessFunc)xaccSchedXactionGetAdvanceReminder,
-			(QofSetterFunc)xaccSchedXactionSetAdvanceReminder },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY,    NULL,
+            (QofAccessFunc)qof_entity_get_guid,
+            (QofSetterFunc)qof_entity_set_guid },
+    { "name",            CT_STRING, SX_MAX_NAME_LEN, COL_NNUL, GNC_SX_NAME },
+    { "start_date",        CT_GDATE,    0, COL_NNUL, GNC_SX_START_DATE },
+    { "last_occur",        CT_GDATE,    0, COL_NNUL, GNC_SX_LAST_DATE },
+    { "num_occur",        CT_INT,        0, COL_NNUL, GNC_SX_NUM_OCCUR },
+    { "rem_occur",        CT_INT,        0, COL_NNUL, GNC_SX_REM_OCCUR },
+    { "auto_create",    CT_BOOLEAN,    0, COL_NNUL, NULL,
+            get_autocreate, set_autocreate },
+    { "auto_notify",    CT_BOOLEAN,    0, COL_NNUL, NULL,
+            get_autonotify, set_autonotify },
+    { "adv_creation",    CT_INT,        0, COL_NNUL, NULL,
+            (QofAccessFunc)xaccSchedXactionGetAdvanceCreation,
+            (QofSetterFunc)xaccSchedXactionSetAdvanceCreation },
+    { "adv_notify",    CT_INT,        0, COL_NNUL, NULL,
+            (QofAccessFunc)xaccSchedXactionGetAdvanceReminder,
+            (QofSetterFunc)xaccSchedXactionSetAdvanceReminder },
+    { NULL }
 };
 
 /* ================================================================= */
@@ -79,139 +79,139 @@
 static gpointer
 get_autocreate( gpointer pObject, const QofParam* param )
 {
-	const SchedXaction* pSx = GNC_SX(pObject);
-	gboolean autoCreate;
-	gboolean autoNotify;
+    const SchedXaction* pSx = GNC_SX(pObject);
+    gboolean autoCreate;
+    gboolean autoNotify;
 
-	xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
-	return (gpointer)autoCreate;
+    xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
+    return (gpointer)autoCreate;
 }
 
 static void 
 set_autocreate( gpointer pObject, gpointer pValue )
 {
-	SchedXaction* pSx = GNC_SX(pObject);
-	gboolean autoCreate;
-	gboolean autoNotify;
+    SchedXaction* pSx = GNC_SX(pObject);
+    gboolean autoCreate;
+    gboolean autoNotify;
 
-	xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
-	autoCreate = (gboolean)pValue;
-	xaccSchedXactionSetAutoCreate( pSx, autoCreate, autoNotify );
+    xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
+    autoCreate = (gboolean)pValue;
+    xaccSchedXactionSetAutoCreate( pSx, autoCreate, autoNotify );
 }
 
 static gpointer
 get_autonotify( gpointer pObject, const QofParam* param )
 {
-	const SchedXaction* pSx = GNC_SX(pObject);
-	gboolean autoCreate;
-	gboolean autoNotify;
+    const SchedXaction* pSx = GNC_SX(pObject);
+    gboolean autoCreate;
+    gboolean autoNotify;
 
-	xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
-	return (gpointer)autoNotify;
+    xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
+    return (gpointer)autoNotify;
 }
 
 static void 
 set_autonotify( gpointer pObject, gpointer pValue )
 {
-	SchedXaction* pSx = GNC_SX(pObject);
-	gboolean autoCreate;
-	gboolean autoNotify;
+    SchedXaction* pSx = GNC_SX(pObject);
+    gboolean autoCreate;
+    gboolean autoNotify;
 
-	xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
-	autoNotify = (gboolean)pValue;
-	xaccSchedXactionSetAutoCreate( pSx, autoCreate, autoNotify );
+    xaccSchedXactionGetAutoCreate( pSx, &autoCreate, &autoNotify );
+    autoNotify = (gboolean)pValue;
+    xaccSchedXactionSetAutoCreate( pSx, autoCreate, autoNotify );
 }
 
 /* ================================================================= */
 static SchedXaction*
 load_sx( GncGdaBackend* be, GdaDataModel* pModel, int row,
-			SchedXaction* pSx )
+            SchedXaction* pSx )
 {
-	const GUID* guid;
-	GUID sx_guid;
+    const GUID* guid;
+    GUID sx_guid;
 
-	guid = gnc_gda_load_guid( pModel, row );
-	sx_guid = *guid;
+    guid = gnc_gda_load_guid( pModel, row );
+    sx_guid = *guid;
 
-	if( pSx == NULL ) {
-		pSx = xaccSchedXactionMalloc( be->primary_book );
-	}
+    if( pSx == NULL ) {
+        pSx = xaccSchedXactionMalloc( be->primary_book );
+    }
 
-	gnc_gda_load_object( pModel, row, /*GNC_ID_SCHEDXACTION*/GNC_SX_ID, pSx, col_table );
-	gnc_gda_slots_load( be, qof_entity_get_guid( QOF_ENTITY(pSx) ),
-							qof_instance_get_slots( QOF_INSTANCE(pSx) ) );
+    gnc_gda_load_object( pModel, row, /*GNC_ID_SCHEDXACTION*/GNC_SX_ID, pSx, col_table );
+    gnc_gda_slots_load( be, qof_entity_get_guid( QOF_ENTITY(pSx) ),
+                            qof_instance_get_slots( QOF_INSTANCE(pSx) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pSx) );
+    qof_instance_mark_clean( QOF_INSTANCE(pSx) );
 
-	return pSx;
+    return pSx;
 }
 
 static void
 load_sxes( GncGdaBackend* be )
 {
-	static GdaQuery* query;
-	GdaObject* ret;
-	QofBook* pBook = be->primary_book;
+    static GdaQuery* query;
+    GdaObject* ret;
+    QofBook* pBook = be->primary_book;
 
-	if( query == NULL ) {
-		query = gnc_gda_create_select_query( be, SCHEDXACTION_TABLE );
-	}
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
+    if( query == NULL ) {
+        query = gnc_gda_create_select_query( be, SCHEDXACTION_TABLE );
+    }
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
 
-		for( r = 0; r < numRows; r++ ) {
-			(void)load_sx( be, pModel, r, NULL );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            (void)load_sx( be, pModel, r, NULL );
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_sx_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, SCHEDXACTION_TABLE, col_table );
+    gnc_gda_create_table_if_needed( be, SCHEDXACTION_TABLE, col_table );
 }
 
 /* ================================================================= */
 static void
 commit_sx( GncGdaBackend* be, QofInstance* inst )
 {
-	SchedXaction* pSx = GNC_SX(inst);
-	const GUID* guid;
+    SchedXaction* pSx = GNC_SX(inst);
+    const GUID* guid;
 
-	(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						SCHEDXACTION_TABLE,
-						/*GNC_ID_SCHEDXACTION*/GNC_SX_ID, pSx,
-						col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        SCHEDXACTION_TABLE,
+                        /*GNC_ID_SCHEDXACTION*/GNC_SX_ID, pSx,
+                        col_table );
 
-	// Delete old slot info
-	guid = qof_instance_get_guid( inst );
+    // Delete old slot info
+    guid = qof_instance_get_guid( inst );
 
-	// Now, commit any slots
-	if( !inst->do_free ) {
-		gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
-	} else {
-		gnc_gda_slots_delete( be, guid );
-	}
+    // Now, commit any slots
+    if( !inst->do_free ) {
+        gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
+    } else {
+        gnc_gda_slots_delete( be, guid );
+    }
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_schedxaction_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_SCHEDXACTION,
-		commit_sx,				/* commit */
-		load_sxes,				/* initial_load */
-		create_sx_tables		/* create_tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_SCHEDXACTION,
+        commit_sx,                /* commit */
+        load_sxes,                /* initial_load */
+        create_sx_tables        /* create_tables */
+    };
 
-	qof_object_register_backend( GNC_ID_SCHEDXACTION, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( GNC_ID_SCHEDXACTION, GNC_GDA_BACKEND, &be_data );
 }
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-slots-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-slots-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-slots-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -43,12 +43,12 @@
 #define TABLE_NAME "slots"
 
 typedef struct {
-	GncGdaBackend* be;
-	const GUID* guid;
-	KvpFrame* pKvpFrame;
-	KvpValueType value_type;
-	KvpValue* pKvpValue;
-	GString* path;
+    GncGdaBackend* be;
+    const GUID* guid;
+    KvpFrame* pKvpFrame;
+    KvpValueType value_type;
+    KvpValue* pKvpValue;
+    GString* path;
 } slot_info_t;
 
 static gpointer get_slot_id( gpointer pObject, const QofParam* param );
@@ -77,36 +77,36 @@
 
 static col_cvt_t col_table[] =
 {
-	{ "slot_id",		CT_INT,		0, COL_NNUL|COL_PKEY|COL_AUTOINC, NULL,
-			get_slot_id, set_slot_id },
-	{ "obj_guid",		CT_GUID,	0, COL_NNUL,	NULL,
-			get_obj_guid, set_obj_guid },
-	{ "name",			CT_STRING,	SLOT_MAX_PATHNAME_LEN, COL_NNUL,	NULL,
-			get_path, set_path },
-	{ "slot_type",		CT_INT,		0, COL_NNUL,	NULL,
-			get_slot_type, set_slot_type, },
-	{ "int64_val",		CT_INT64,	0, 0,			NULL,
-			get_int64_val, set_int64_val },
-	{ "string_val",		CT_STRING,	SLOT_MAX_PATHNAME_LEN, 0,			NULL,
-			get_string_val, set_string_val },
-	{ "double_val",		CT_DOUBLE,	0, 0,			NULL,
-			get_double_val, set_double_val },
-	{ "timespec_val",	CT_TIMESPEC, 0, 0,			NULL,
-			get_timespec_val, set_timespec_val },
-	{ "guid_val",		CT_GUID,	0, 0,			NULL,
-			get_guid_val, set_guid_val },
-	{ "numeric_val",	CT_NUMERIC,	0, 0,			NULL,
-			get_numeric_val, set_numeric_val },
-	{ NULL }
+    { "slot_id",        CT_INT,        0, COL_NNUL|COL_PKEY|COL_AUTOINC, NULL,
+            get_slot_id, set_slot_id },
+    { "obj_guid",        CT_GUID,    0, COL_NNUL,    NULL,
+            get_obj_guid, set_obj_guid },
+    { "name",            CT_STRING,    SLOT_MAX_PATHNAME_LEN, COL_NNUL,    NULL,
+            get_path, set_path },
+    { "slot_type",        CT_INT,        0, COL_NNUL,    NULL,
+            get_slot_type, set_slot_type, },
+    { "int64_val",        CT_INT64,    0, 0,            NULL,
+            get_int64_val, set_int64_val },
+    { "string_val",        CT_STRING,    SLOT_MAX_PATHNAME_LEN, 0,            NULL,
+            get_string_val, set_string_val },
+    { "double_val",        CT_DOUBLE,    0, 0,            NULL,
+            get_double_val, set_double_val },
+    { "timespec_val",    CT_TIMESPEC, 0, 0,            NULL,
+            get_timespec_val, set_timespec_val },
+    { "guid_val",        CT_GUID,    0, 0,            NULL,
+            get_guid_val, set_guid_val },
+    { "numeric_val",    CT_NUMERIC,    0, 0,            NULL,
+            get_numeric_val, set_numeric_val },
+    { NULL }
 };
 
 /* Special column table because we need to be able to access the table by
 a column other than the primary key */
 static col_cvt_t guid_col_table[] =
 {
-	{ "obj_guid",		CT_GUID,	  0, COL_NNUL,	NULL,
-			get_obj_guid, set_obj_guid },
-	{ NULL }
+    { "obj_guid",        CT_GUID,      0, COL_NNUL,    NULL,
+            get_obj_guid, set_obj_guid },
+    { NULL }
 };
 
 /* ================================================================= */
@@ -114,354 +114,354 @@
 static gpointer
 get_slot_id( gpointer pObject, const QofParam* param )
 {
-	// Just need a 0 to force a new slot id
-	return (gpointer)0;
+    // Just need a 0 to force a new slot id
+    return (gpointer)0;
 }
 
 static void
 set_slot_id( gpointer pObject, gpointer pValue )
 {
-	// Nowhere to put the ID
+    // Nowhere to put the ID
 }
 
 static gpointer
 get_obj_guid( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	return (gpointer)pInfo->guid;
+    return (gpointer)pInfo->guid;
 }
 
 static void
 set_obj_guid( gpointer pObject, gpointer pValue )
 {
-	// Nowhere to put the GUID
+    // Nowhere to put the GUID
 }
 
 static gpointer
 get_path( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	return (gpointer)pInfo->path->str;
+    return (gpointer)pInfo->path->str;
 }
 
 static void
 set_path( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	pInfo->path = g_string_new( (gchar*)pValue );
+    pInfo->path = g_string_new( (gchar*)pValue );
 }
 
 static gpointer
 get_slot_type( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	return (gpointer)kvp_value_get_type( pInfo->pKvpValue );
+    return (gpointer)kvp_value_get_type( pInfo->pKvpValue );
 }
 
 static void
 set_slot_type( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	pInfo->value_type = (KvpValueType)pValue;
+    pInfo->value_type = (KvpValueType)pValue;
 }
 
 static gpointer
 get_int64_val( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
-	static gint64 i64_val;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
+    static gint64 i64_val;
 
-	if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_GINT64 ) {
-		i64_val = kvp_value_get_gint64( pInfo->pKvpValue );
-		return &i64_val;
-	} else {
-		return NULL;
-	}
+    if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_GINT64 ) {
+        i64_val = kvp_value_get_gint64( pInfo->pKvpValue );
+        return &i64_val;
+    } else {
+        return NULL;
+    }
 }
 
 static void
 set_int64_val( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( pInfo->value_type == KVP_TYPE_GINT64 ) {
-		kvp_frame_add_gint64( pInfo->pKvpFrame, pInfo->path->str, *(gint64*)pValue );
-	}
+    if( pInfo->value_type == KVP_TYPE_GINT64 ) {
+        kvp_frame_add_gint64( pInfo->pKvpFrame, pInfo->path->str, *(gint64*)pValue );
+    }
 }
 
 static gpointer
 get_string_val( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_STRING ) {
-		return (gpointer)kvp_value_get_string( pInfo->pKvpValue );
-	} else {
-		return NULL;
-	}
+    if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_STRING ) {
+        return (gpointer)kvp_value_get_string( pInfo->pKvpValue );
+    } else {
+        return NULL;
+    }
 }
 
 static void
 set_string_val( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( pInfo->value_type == KVP_TYPE_STRING ) {
-		kvp_frame_add_string( pInfo->pKvpFrame, pInfo->path->str, (const gchar*)pValue );
-	}
+    if( pInfo->value_type == KVP_TYPE_STRING ) {
+        kvp_frame_add_string( pInfo->pKvpFrame, pInfo->path->str, (const gchar*)pValue );
+    }
 }
 
 static gpointer
 get_double_val( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
-	static double d_val;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
+    static double d_val;
 
-	if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_DOUBLE ) {
-		d_val = kvp_value_get_double( pInfo->pKvpValue );
-		return (gpointer)&d_val;
-	} else {
-		return NULL;
-	}
+    if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_DOUBLE ) {
+        d_val = kvp_value_get_double( pInfo->pKvpValue );
+        return (gpointer)&d_val;
+    } else {
+        return NULL;
+    }
 }
 
 static void
 set_double_val( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( pInfo->value_type == KVP_TYPE_DOUBLE ) {
-		kvp_frame_add_double( pInfo->pKvpFrame, pInfo->path->str, *(double*)pValue );
-	}
+    if( pInfo->value_type == KVP_TYPE_DOUBLE ) {
+        kvp_frame_add_double( pInfo->pKvpFrame, pInfo->path->str, *(double*)pValue );
+    }
 }
 
 static gpointer
 get_timespec_val( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
-	static Timespec ts;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
+    static Timespec ts;
 
-	if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_TIMESPEC ) {
-		ts = kvp_value_get_timespec( pInfo->pKvpValue );
-		return (gpointer)&ts;
-	} else {
-		return NULL;
-	}
+    if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_TIMESPEC ) {
+        ts = kvp_value_get_timespec( pInfo->pKvpValue );
+        return (gpointer)&ts;
+    } else {
+        return NULL;
+    }
 }
 
 static void
 set_timespec_val( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( pInfo->value_type == KVP_TYPE_TIMESPEC ) {
-		kvp_frame_add_timespec( pInfo->pKvpFrame, pInfo->path->str, *(Timespec*)pValue );
-	}
+    if( pInfo->value_type == KVP_TYPE_TIMESPEC ) {
+        kvp_frame_add_timespec( pInfo->pKvpFrame, pInfo->path->str, *(Timespec*)pValue );
+    }
 }
 
 static gpointer
 get_guid_val( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_GUID ) {
-		return (gpointer)kvp_value_get_guid( pInfo->pKvpValue );
-	} else {
-		return NULL;
-	}
+    if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_GUID ) {
+        return (gpointer)kvp_value_get_guid( pInfo->pKvpValue );
+    } else {
+        return NULL;
+    }
 }
 
 static void
 set_guid_val( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( pInfo->value_type == KVP_TYPE_GUID ) {
-		kvp_frame_add_guid( pInfo->pKvpFrame, pInfo->path->str, (GUID*)pValue );
-	}
+    if( pInfo->value_type == KVP_TYPE_GUID ) {
+        kvp_frame_add_guid( pInfo->pKvpFrame, pInfo->path->str, (GUID*)pValue );
+    }
 }
 
 static gpointer
 get_numeric_val( gpointer pObject, const QofParam* param )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
-	static gnc_numeric n_val;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
+    static gnc_numeric n_val;
 
-	if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_NUMERIC ) {
-		n_val = kvp_value_get_numeric( pInfo->pKvpValue );
-		return (gpointer)&n_val;
-	} else {
-		return NULL;
-	}
+    if( kvp_value_get_type( pInfo->pKvpValue ) == KVP_TYPE_NUMERIC ) {
+        n_val = kvp_value_get_numeric( pInfo->pKvpValue );
+        return (gpointer)&n_val;
+    } else {
+        return NULL;
+    }
 }
 
 static void
 set_numeric_val( gpointer pObject, gpointer pValue )
 {
-	slot_info_t* pInfo = (slot_info_t*)pObject;
+    slot_info_t* pInfo = (slot_info_t*)pObject;
 
-	if( pInfo->value_type == KVP_TYPE_NUMERIC ) {
-		kvp_frame_add_numeric( pInfo->pKvpFrame, pInfo->path->str, *(gnc_numeric*)pValue );
-	}
+    if( pInfo->value_type == KVP_TYPE_NUMERIC ) {
+        kvp_frame_add_numeric( pInfo->pKvpFrame, pInfo->path->str, *(gnc_numeric*)pValue );
+    }
 }
 
 static void
 save_slot( const gchar* key, KvpValue* value, gpointer data )
 {
-	slot_info_t* pSlot_info = (slot_info_t*)data;
-	gint curlen = pSlot_info->path->len;
+    slot_info_t* pSlot_info = (slot_info_t*)data;
+    gint curlen = pSlot_info->path->len;
 
-	pSlot_info->pKvpValue = value;
-	if( curlen != 0 ) {
-		g_string_append( pSlot_info->path, "/" );
-	}
-	g_string_append( pSlot_info->path, key );
+    pSlot_info->pKvpValue = value;
+    if( curlen != 0 ) {
+        g_string_append( pSlot_info->path, "/" );
+    }
+    g_string_append( pSlot_info->path, key );
 
-	if( kvp_value_get_type( value ) == KVP_TYPE_FRAME ) {
-		KvpFrame* pKvpFrame = kvp_value_get_frame( value );
-		kvp_frame_for_each_slot( pKvpFrame, save_slot, pSlot_info );
-	} else {
-		(void)gnc_gda_do_db_operation( pSlot_info->be, OP_DB_ADD, TABLE_NAME,
-										TABLE_NAME, pSlot_info, col_table );
-	}
+    if( kvp_value_get_type( value ) == KVP_TYPE_FRAME ) {
+        KvpFrame* pKvpFrame = kvp_value_get_frame( value );
+        kvp_frame_for_each_slot( pKvpFrame, save_slot, pSlot_info );
+    } else {
+        (void)gnc_gda_do_db_operation( pSlot_info->be, OP_DB_ADD, TABLE_NAME,
+                                        TABLE_NAME, pSlot_info, col_table );
+    }
 
-	g_string_truncate( pSlot_info->path, curlen );
+    g_string_truncate( pSlot_info->path, curlen );
 }
 
 void
 gnc_gda_slots_save( GncGdaBackend* be, const GUID* guid, KvpFrame* pFrame )
 {
-	slot_info_t slot_info;
+    slot_info_t slot_info;
 
-	/* First, delete the old slots for this object */
-	gnc_gda_slots_delete( be, guid );
+    /* First, delete the old slots for this object */
+    gnc_gda_slots_delete( be, guid );
 
-	slot_info.be = be;
-	slot_info.guid = guid;
-	slot_info.path = g_string_new( "" );
-	kvp_frame_for_each_slot( pFrame, save_slot, &slot_info );
-	g_string_free( slot_info.path, FALSE );
+    slot_info.be = be;
+    slot_info.guid = guid;
+    slot_info.path = g_string_new( "" );
+    kvp_frame_for_each_slot( pFrame, save_slot, &slot_info );
+    g_string_free( slot_info.path, FALSE );
 }
 
 void
 gnc_gda_slots_delete( GncGdaBackend* be, const GUID* guid )
 {
-	slot_info_t slot_info;
+    slot_info_t slot_info;
 
-	slot_info.be = be;
-	slot_info.guid = guid;
-	(void)gnc_gda_do_db_operation( be, OP_DB_DELETE, TABLE_NAME,
-								TABLE_NAME, &slot_info, guid_col_table );
+    slot_info.be = be;
+    slot_info.guid = guid;
+    (void)gnc_gda_do_db_operation( be, OP_DB_DELETE, TABLE_NAME,
+                                TABLE_NAME, &slot_info, guid_col_table );
 }
 
 static void
 load_slot( GncGdaBackend* be, GdaDataModel* pModel, gint row, KvpFrame* pFrame )
 {
-	slot_info_t slot_info;
+    slot_info_t slot_info;
 
-	slot_info.be = be;
-	slot_info.pKvpFrame = pFrame;
-	slot_info.path = NULL;
+    slot_info.be = be;
+    slot_info.pKvpFrame = pFrame;
+    slot_info.path = NULL;
 
-	gnc_gda_load_object( pModel, row, TABLE_NAME, &slot_info, col_table );
+    gnc_gda_load_object( pModel, row, TABLE_NAME, &slot_info, col_table );
 
-	if( slot_info.path != NULL ) {
-		g_string_free( slot_info.path, TRUE );
-	}
+    if( slot_info.path != NULL ) {
+        g_string_free( slot_info.path, TRUE );
+    }
 }
 
 void
 gnc_gda_slots_load( GncGdaBackend* be, const GUID* guid, KvpFrame* pFrame )
 {
-	gchar* buf;
-	GdaObject* ret;
-	gchar guid_buf[GUID_ENCODING_LENGTH+1];
-	gchar* field_name;
+    gchar* buf;
+    GdaObject* ret;
+    gchar guid_buf[GUID_ENCODING_LENGTH+1];
+    gchar* field_name;
 
-	static GdaQuery* query = NULL;
-	GdaQueryCondition* cond;
-	GdaQueryField* key_value;
-	GValue value;
+    static GdaQuery* query = NULL;
+    GdaQueryCondition* cond;
+    GdaQueryField* key_value;
+    GValue value;
 
-	guid_to_string_buff( guid, guid_buf );
+    guid_to_string_buff( guid, guid_buf );
 
-	/* First time, create the query */
-	if( query == NULL ) {
-		GdaQueryTarget* target;
-		GdaQueryField* key;
+    /* First time, create the query */
+    if( query == NULL ) {
+        GdaQueryTarget* target;
+        GdaQueryField* key;
 
-		/* SELECT */
-		query = gnc_gda_create_select_query( be, TABLE_NAME );
-		target = gda_query_get_target_by_alias( query, TABLE_NAME );
+        /* SELECT */
+        query = gnc_gda_create_select_query( be, TABLE_NAME );
+        target = gda_query_get_target_by_alias( query, TABLE_NAME );
 
-		/* WHERE */
-		cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_EQUAL );
-		gda_query_set_condition( query, cond );
+        /* WHERE */
+        cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_EQUAL );
+        gda_query_set_condition( query, cond );
 
-		field_name = g_strdup_printf( "%s.%s",
-						gda_query_target_get_alias( target ), "obj_guid" );
-		key = gda_query_field_field_new( query, field_name );
-		g_free( field_name );
-		gda_query_field_set_visible( key, TRUE );
-		gda_query_condition_leaf_set_operator( cond,
-												GDA_QUERY_CONDITION_OP_LEFT,
-												GDA_QUERY_FIELD(key) );
-		g_object_unref( G_OBJECT(key) );
+        field_name = g_strdup_printf( "%s.%s",
+                        gda_query_target_get_alias( target ), "obj_guid" );
+        key = gda_query_field_field_new( query, field_name );
+        g_free( field_name );
+        gda_query_field_set_visible( key, TRUE );
+        gda_query_condition_leaf_set_operator( cond,
+                                                GDA_QUERY_CONDITION_OP_LEFT,
+                                                GDA_QUERY_FIELD(key) );
+        g_object_unref( G_OBJECT(key) );
 
-		key_value = gda_query_field_value_new( query, G_TYPE_STRING );
-		gda_query_field_set_visible( key_value, TRUE );
-		gda_query_condition_leaf_set_operator( cond, GDA_QUERY_CONDITION_OP_RIGHT,
-												GDA_QUERY_FIELD(key_value) );
-		g_object_unref( G_OBJECT(key_value) );
-	}
+        key_value = gda_query_field_value_new( query, G_TYPE_STRING );
+        gda_query_field_set_visible( key_value, TRUE );
+        gda_query_condition_leaf_set_operator( cond, GDA_QUERY_CONDITION_OP_RIGHT,
+                                                GDA_QUERY_FIELD(key_value) );
+        g_object_unref( G_OBJECT(key_value) );
+    }
 
-	/* Fill in the guid value */
-	cond = gda_query_get_condition( query );
-	key_value = gda_query_condition_leaf_get_operator( cond, 
-												GDA_QUERY_CONDITION_OP_RIGHT );
-	memset( &value, 0, sizeof( value ) );
-	g_value_init( &value, G_TYPE_STRING );
-	g_value_set_string( &value, guid_buf );
-	gda_query_field_value_set_value( GDA_QUERY_FIELD_VALUE(key_value), &value );
+    /* Fill in the guid value */
+    cond = gda_query_get_condition( query );
+    key_value = gda_query_condition_leaf_get_operator( cond, 
+                                                GDA_QUERY_CONDITION_OP_RIGHT );
+    memset( &value, 0, sizeof( value ) );
+    g_value_init( &value, G_TYPE_STRING );
+    g_value_set_string( &value, guid_buf );
+    gda_query_field_value_set_value( GDA_QUERY_FIELD_VALUE(key_value), &value );
 
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
-		KvpValue* pValue;
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
+        KvpValue* pValue;
 
-		for( r = 0; r < numRows; r++ ) {
-			load_slot( be, pModel, r, pFrame );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            load_slot( be, pModel, r, pFrame );
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_slots_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
+    gnc_gda_create_table_if_needed( be, TABLE_NAME, col_table );
 }
 
 /* ================================================================= */
 void
 gnc_gda_init_slots_handler( void )
 {
-	static GncGdaDataType_t be_data =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_ACCOUNT,
-		NULL,					/* commit - cannot occur */
-		NULL,					/* initial_load - cannot occur */
-		create_slots_tables		/* create_tables */
-	};
+    static GncGdaDataType_t be_data =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_ACCOUNT,
+        NULL,                    /* commit - cannot occur */
+        NULL,                    /* initial_load - cannot occur */
+        create_slots_tables        /* create_tables */
+    };
 
-	qof_object_register_backend( TABLE_NAME, GNC_GDA_BACKEND, &be_data );
+    qof_object_register_backend( TABLE_NAME, GNC_GDA_BACKEND, &be_data );
 }
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gnc-transaction-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gnc-transaction-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gnc-transaction-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -52,8 +52,8 @@
 #define SPLIT_TABLE "splits"
 
 typedef struct {
-	GncGdaBackend* be;
-	const GUID* guid;
+    GncGdaBackend* be;
+    const GUID* guid;
 } split_info_t;
 
 static gpointer get_guid( gpointer pObject, const QofParam* param );
@@ -72,20 +72,20 @@
 
 static col_cvt_t tx_col_table[] =
 {
-	{ "guid",			CT_GUID,	0, COL_NNUL|COL_PKEY, NULL,
-			get_guid, set_guid },
-	{ "currency_guid",	CT_GUID,	0, COL_NNUL,	NULL,
-			get_tx_currency_guid, set_tx_currency_guid },
-	{ "num",			CT_STRING,	TX_MAX_NUM_LEN, COL_NNUL, NULL,
-			get_tx_num, set_tx_num },
-	{ "post_date",		CT_TIMESPEC, 0, COL_NNUL, NULL,
-			get_tx_post_date, set_tx_post_date },
-	{ "enter_date",		CT_TIMESPEC, 0, COL_NNUL, NULL,
-			get_tx_enter_date, set_tx_enter_date },
-	{ "description",	CT_STRING,	TX_MAX_DESCRIPTION_LEN, 0,	NULL,
-			(QofAccessFunc)xaccTransGetDescription,
-			(QofSetterFunc)xaccTransSetDescription },
-	{ NULL }
+    { "guid",            CT_GUID,    0, COL_NNUL|COL_PKEY, NULL,
+            get_guid, set_guid },
+    { "currency_guid",    CT_GUID,    0, COL_NNUL,    NULL,
+            get_tx_currency_guid, set_tx_currency_guid },
+    { "num",            CT_STRING,    TX_MAX_NUM_LEN, COL_NNUL, NULL,
+            get_tx_num, set_tx_num },
+    { "post_date",        CT_TIMESPEC, 0, COL_NNUL, NULL,
+            get_tx_post_date, set_tx_post_date },
+    { "enter_date",        CT_TIMESPEC, 0, COL_NNUL, NULL,
+            get_tx_enter_date, set_tx_enter_date },
+    { "description",    CT_STRING,    TX_MAX_DESCRIPTION_LEN, 0,    NULL,
+            (QofAccessFunc)xaccTransGetDescription,
+            (QofSetterFunc)xaccTransSetDescription },
+    { NULL }
 };
 
 static gpointer get_split_tx_guid( gpointer pObject, const QofParam* param );
@@ -106,605 +106,605 @@
 
 static col_cvt_t split_col_table[] =
 {
-	{ "guid",			CT_GUID,	 0, COL_NNUL|COL_PKEY,	NULL,
-			get_guid, set_guid },
-	{ "tx_guid",		CT_GUID,	 0, COL_NNUL,	NULL,
-			get_split_tx_guid, set_split_tx_guid },
-	{ "memo",			CT_STRING,	 SPLIT_MAX_MEMO_LEN, COL_NNUL,	SPLIT_MEMO },
-	{ "action",			CT_STRING,	 SPLIT_MAX_ACTION_LEN, COL_NNUL,	SPLIT_ACTION },
-	{ "reconcile_state", CT_STRING,	 1, COL_NNUL,	NULL,
-			get_split_reconcile_state, set_split_reconcile_state },
-	{ "reconcile_date",	CT_TIMESPEC, 0, COL_NNUL,	NULL,
-			get_split_reconcile_date, set_split_reconcile_date },
-	{ "value",			CT_NUMERIC,	 0, COL_NNUL,	NULL,
-			get_split_value, set_split_value },
-	{ "quantity",		CT_NUMERIC,	 0, COL_NNUL,	NULL,
-			get_split_quantity, set_split_quantity },
-	{ "account_guid",	CT_GUID,	 0, COL_NNUL,	NULL,
-			get_split_account_guid, set_split_account_guid },
-	{ NULL }
+    { "guid",            CT_GUID,     0, COL_NNUL|COL_PKEY,    NULL,
+            get_guid, set_guid },
+    { "tx_guid",        CT_GUID,     0, COL_NNUL,    NULL,
+            get_split_tx_guid, set_split_tx_guid },
+    { "memo",            CT_STRING,     SPLIT_MAX_MEMO_LEN, COL_NNUL,    SPLIT_MEMO },
+    { "action",            CT_STRING,     SPLIT_MAX_ACTION_LEN, COL_NNUL,    SPLIT_ACTION },
+    { "reconcile_state", CT_STRING,     1, COL_NNUL,    NULL,
+            get_split_reconcile_state, set_split_reconcile_state },
+    { "reconcile_date",    CT_TIMESPEC, 0, COL_NNUL,    NULL,
+            get_split_reconcile_date, set_split_reconcile_date },
+    { "value",            CT_NUMERIC,     0, COL_NNUL,    NULL,
+            get_split_value, set_split_value },
+    { "quantity",        CT_NUMERIC,     0, COL_NNUL,    NULL,
+            get_split_quantity, set_split_quantity },
+    { "account_guid",    CT_GUID,     0, COL_NNUL,    NULL,
+            get_split_account_guid, set_split_account_guid },
+    { NULL }
 };
 
 static col_cvt_t guid_col_table[] =
 {
-	{ "tx_guid", CT_GUID, 0, 0, NULL, get_guid, set_guid },
-	{ NULL }
+    { "tx_guid", CT_GUID, 0, 0, NULL, get_guid, set_guid },
+    { NULL }
 };
 
 /* ================================================================= */
 static gpointer
 get_guid( gpointer pObject, const QofParam* param )
 {
-	return (gpointer)qof_entity_get_guid( QOF_ENTITY(pObject) );
+    return (gpointer)qof_entity_get_guid( QOF_ENTITY(pObject) );
 }
 
 static void 
 set_guid( gpointer pObject, gpointer pValue )
 {
-	QofEntity* pEntity = QOF_ENTITY(pObject);
-	GUID* guid = (GUID*)pValue;
+    QofEntity* pEntity = QOF_ENTITY(pObject);
+    GUID* guid = (GUID*)pValue;
 
-	qof_entity_set_guid( pEntity, guid );
+    qof_entity_set_guid( pEntity, guid );
 }
 
 static gpointer
 get_tx_currency_guid( gpointer pObject, const QofParam* param )
 {
-	const Transaction* pTx = GNC_TRANS(pObject);
+    const Transaction* pTx = GNC_TRANS(pObject);
 
-	return (gpointer)qof_instance_get_guid(
-						QOF_INSTANCE(xaccTransGetCurrency( pTx )) );
+    return (gpointer)qof_instance_get_guid(
+                        QOF_INSTANCE(xaccTransGetCurrency( pTx )) );
 }
 
 static void 
 set_tx_currency_guid( gpointer pObject, gpointer pValue )
 {
-	Transaction* pTx = GNC_TRANS(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pTx) );
-	gnc_commodity* pCurrency;
-	GUID* guid = (GUID*)pValue;
+    Transaction* pTx = GNC_TRANS(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pTx) );
+    gnc_commodity* pCurrency;
+    GUID* guid = (GUID*)pValue;
 
-	pCurrency = gnc_commodity_find_commodity_by_guid( guid, pBook );
-	xaccTransSetCurrency( pTx, pCurrency );
+    pCurrency = gnc_commodity_find_commodity_by_guid( guid, pBook );
+    xaccTransSetCurrency( pTx, pCurrency );
 }
 
 static gpointer
 get_tx_num( gpointer pObject, const QofParam* param )
 {
-	const Transaction* pTx = GNC_TRANS(pObject);
-	const gchar* s;
+    const Transaction* pTx = GNC_TRANS(pObject);
+    const gchar* s;
 
-	s = xaccTransGetNum( pTx );
-	return (gpointer)s;
+    s = xaccTransGetNum( pTx );
+    return (gpointer)s;
 }
 
 static void 
 set_tx_num( gpointer pObject, gpointer pValue )
 {
-	Transaction* pTx = GNC_TRANS(pObject);
-	const gchar* s = (const gchar*)pValue;
+    Transaction* pTx = GNC_TRANS(pObject);
+    const gchar* s = (const gchar*)pValue;
 
-	xaccTransSetNum( pTx, s );
+    xaccTransSetNum( pTx, s );
 }
 
 static gpointer
 get_tx_post_date( gpointer pObject, const QofParam* param )
 {
-	const Transaction* pTx = GNC_TRANS(pObject);
-	static Timespec ts;
+    const Transaction* pTx = GNC_TRANS(pObject);
+    static Timespec ts;
 
-	ts = xaccTransRetDatePostedTS( pTx );
-	return (gpointer)&ts;
+    ts = xaccTransRetDatePostedTS( pTx );
+    return (gpointer)&ts;
 }
 
 static void 
 set_tx_post_date( gpointer pObject, gpointer pValue )
 {
-	Transaction* pTx = GNC_TRANS(pObject);
-	Timespec* pTS = (Timespec*)pValue;
+    Transaction* pTx = GNC_TRANS(pObject);
+    Timespec* pTS = (Timespec*)pValue;
 
-	xaccTransSetDatePostedTS( pTx, pTS );
+    xaccTransSetDatePostedTS( pTx, pTS );
 }
 
 static gpointer
 get_tx_enter_date( gpointer pObject, const QofParam* param )
 {
-	const Transaction* pTx = GNC_TRANS(pObject);
-	static Timespec ts;
+    const Transaction* pTx = GNC_TRANS(pObject);
+    static Timespec ts;
 
-	ts = xaccTransRetDateEnteredTS( pTx );
-	return (gpointer)&ts;
+    ts = xaccTransRetDateEnteredTS( pTx );
+    return (gpointer)&ts;
 }
 
 static void 
 set_tx_enter_date( gpointer pObject, gpointer pValue )
 {
-	Transaction* pTx = GNC_TRANS(pObject);
-	Timespec* pTS = (Timespec*)pValue;
+    Transaction* pTx = GNC_TRANS(pObject);
+    Timespec* pTS = (Timespec*)pValue;
 
-	xaccTransSetDateEnteredTS( pTx, pTS );
+    xaccTransSetDateEnteredTS( pTx, pTS );
 }
 
 static gpointer
 get_split_tx_guid( gpointer pObject, const QofParam* param )
 {
-	const Split* pSplit = GNC_SPLIT(pObject);
-	Transaction* pTx = xaccSplitGetParent( pSplit );
+    const Split* pSplit = GNC_SPLIT(pObject);
+    Transaction* pTx = xaccSplitGetParent( pSplit );
 
-	return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pTx) );
+    return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pTx) );
 }
 
 static void 
 set_split_tx_guid( gpointer pObject, gpointer pValue )
 {
-	Split* pSplit = GNC_SPLIT(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pSplit) );
-	GUID* guid = (GUID*)pValue;
-	Transaction* pTx = xaccTransLookup( guid, pBook );
+    Split* pSplit = GNC_SPLIT(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pSplit) );
+    GUID* guid = (GUID*)pValue;
+    Transaction* pTx = xaccTransLookup( guid, pBook );
 
-	xaccSplitSetParent( pSplit, pTx );
+    xaccSplitSetParent( pSplit, pTx );
 }
 
 static gpointer
 get_split_reconcile_state( gpointer pObject, const QofParam* param )
 {
-	const Split* pSplit = GNC_SPLIT(pObject);
-	static gchar c[2];
+    const Split* pSplit = GNC_SPLIT(pObject);
+    static gchar c[2];
 
-	c[0] = xaccSplitGetReconcile( pSplit );
-	c[1] = '\0';
-	return (gpointer)c;
+    c[0] = xaccSplitGetReconcile( pSplit );
+    c[1] = '\0';
+    return (gpointer)c;
 }
 
 static void 
 set_split_reconcile_state( gpointer pObject, gpointer pValue )
 {
-	Split* pSplit = GNC_SPLIT(pObject);
-	const gchar* s = (const gchar*)pValue;
+    Split* pSplit = GNC_SPLIT(pObject);
+    const gchar* s = (const gchar*)pValue;
 
-	xaccSplitSetReconcile( pSplit, s[0] );
+    xaccSplitSetReconcile( pSplit, s[0] );
 }
 
 static gpointer
 get_split_reconcile_date( gpointer pObject, const QofParam* param )
 {
-	const Split* pSplit = GNC_SPLIT(pObject);
-	static Timespec ts;
+    const Split* pSplit = GNC_SPLIT(pObject);
+    static Timespec ts;
 
-	ts = xaccSplitRetDateReconciledTS( pSplit );
-	return (gpointer)&ts;
+    ts = xaccSplitRetDateReconciledTS( pSplit );
+    return (gpointer)&ts;
 }
 
 static void 
 set_split_reconcile_date( gpointer pObject, gpointer pValue )
 {
-	Split* pSplit = GNC_SPLIT(pObject);
-	Timespec* pTS = (Timespec*)pValue;
+    Split* pSplit = GNC_SPLIT(pObject);
+    Timespec* pTS = (Timespec*)pValue;
 
-	xaccSplitSetDateReconciledTS( pSplit, pTS );
+    xaccSplitSetDateReconciledTS( pSplit, pTS );
 }
 
 static gpointer
 get_split_value( gpointer pObject, const QofParam* param )
 {
-	const Split* pSplit = GNC_SPLIT(pObject);
-	static gnc_numeric v;
+    const Split* pSplit = GNC_SPLIT(pObject);
+    static gnc_numeric v;
 
-	v = xaccSplitGetValue( pSplit );
-	return (gpointer)&v;
+    v = xaccSplitGetValue( pSplit );
+    return (gpointer)&v;
 }
 
 static void 
 set_split_value( gpointer pObject, gpointer pValue )
 {
-	Split* pSplit = GNC_SPLIT(pObject);
-	gnc_numeric* pV = (gnc_numeric*)pValue;
+    Split* pSplit = GNC_SPLIT(pObject);
+    gnc_numeric* pV = (gnc_numeric*)pValue;
 
-	xaccSplitSetValue( pSplit, *pV );
+    xaccSplitSetValue( pSplit, *pV );
 }
 
 static gpointer
 get_split_quantity( gpointer pObject, const QofParam* param )
 {
-	const Split* pSplit = GNC_SPLIT(pObject);
-	static gnc_numeric v;
+    const Split* pSplit = GNC_SPLIT(pObject);
+    static gnc_numeric v;
 
-	v = xaccSplitGetAmount( pSplit );
-	return (gpointer)&v;
+    v = xaccSplitGetAmount( pSplit );
+    return (gpointer)&v;
 }
 
 static void 
 set_split_quantity( gpointer pObject, gpointer pValue )
 {
-	Split* pSplit = GNC_SPLIT(pObject);
-	gnc_numeric* pV = (gnc_numeric*)pValue;
+    Split* pSplit = GNC_SPLIT(pObject);
+    gnc_numeric* pV = (gnc_numeric*)pValue;
 
-	xaccSplitSetAmount( pSplit, *pV );
+    xaccSplitSetAmount( pSplit, *pV );
 }
 
 static gpointer
 get_split_account_guid( gpointer pObject, const QofParam* param )
 {
-	const Split* pSplit = GNC_SPLIT(pObject);
-	Account* pAccount = xaccSplitGetAccount( pSplit );
+    const Split* pSplit = GNC_SPLIT(pObject);
+    Account* pAccount = xaccSplitGetAccount( pSplit );
 
-	return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pAccount) );
+    return (gpointer)qof_instance_get_guid( QOF_INSTANCE(pAccount) );
 }
 
 static void 
 set_split_account_guid( gpointer pObject, gpointer pValue )
 {
-	Split* pSplit = GNC_SPLIT(pObject);
-	QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pSplit) );
-	GUID* guid = (GUID*)pValue;
-	Account* pAccount = xaccAccountLookup( guid, pBook );
+    Split* pSplit = GNC_SPLIT(pObject);
+    QofBook* pBook = qof_instance_get_book( QOF_INSTANCE(pSplit) );
+    GUID* guid = (GUID*)pValue;
+    Account* pAccount = xaccAccountLookup( guid, pBook );
 
-	xaccSplitSetAccount( pSplit, pAccount );
+    xaccSplitSetAccount( pSplit, pAccount );
 }
 
 static Split*
 load_split( GncGdaBackend* be, GdaDataModel* pModel, int row, Split* pSplit )
 {
-	const GUID* guid;
-	GUID split_guid;
+    const GUID* guid;
+    GUID split_guid;
 
-	guid = gnc_gda_load_guid( pModel, row );
-	split_guid = *guid;
+    guid = gnc_gda_load_guid( pModel, row );
+    split_guid = *guid;
 
-	if( pSplit == NULL ) {
-		pSplit = xaccSplitLookup( &split_guid, be->primary_book );
-		if( pSplit == NULL ) {
-			pSplit = xaccMallocSplit( be->primary_book );
-		}
-	}
+    if( pSplit == NULL ) {
+        pSplit = xaccSplitLookup( &split_guid, be->primary_book );
+        if( pSplit == NULL ) {
+            pSplit = xaccMallocSplit( be->primary_book );
+        }
+    }
 
-	/* If the split is dirty, don't overwrite it */
-	if( qof_instance_is_dirty( QOF_INSTANCE(pSplit) ) ) {
-		return pSplit;
-	}
+    /* If the split is dirty, don't overwrite it */
+    if( qof_instance_is_dirty( QOF_INSTANCE(pSplit) ) ) {
+        return pSplit;
+    }
 
-	gnc_gda_load_object( pModel, row, GNC_ID_SPLIT, pSplit, split_col_table );
-	gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
-							qof_instance_get_slots( QOF_INSTANCE(pSplit) ) );
+    gnc_gda_load_object( pModel, row, GNC_ID_SPLIT, pSplit, split_col_table );
+    gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
+                            qof_instance_get_slots( QOF_INSTANCE(pSplit) ) );
 
-	g_assert( pSplit == xaccSplitLookup( &split_guid, be->primary_book ) );
+    g_assert( pSplit == xaccSplitLookup( &split_guid, be->primary_book ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pSplit) );
+    qof_instance_mark_clean( QOF_INSTANCE(pSplit) );
 
-	return pSplit;
+    return pSplit;
 }
 
 static void
 load_splits( GncGdaBackend* be, const GUID* guid )
 {
-	GdaObject* ret;
-	gchar guid_buf[GUID_ENCODING_LENGTH+1];
-	GdaQuery* query;
-	GdaQueryCondition* cond;
-	GValue value;
+    GdaObject* ret;
+    gchar guid_buf[GUID_ENCODING_LENGTH+1];
+    GdaQuery* query;
+    GdaQueryCondition* cond;
+    GValue value;
 
-	guid_to_string_buff( guid, guid_buf );
-	memset( &value, 0, sizeof( GValue ) );
-	g_value_init( &value, G_TYPE_STRING );
-	g_value_set_string( &value, guid_buf );
-	query = gnc_gda_create_select_query( be, SPLIT_TABLE );
-	cond = gnc_gda_create_condition_from_field( query, "tx_guid", &value );
-	gda_query_set_condition( query, cond );
-	g_object_unref( G_OBJECT(cond) );
+    guid_to_string_buff( guid, guid_buf );
+    memset( &value, 0, sizeof( GValue ) );
+    g_value_init( &value, G_TYPE_STRING );
+    g_value_set_string( &value, guid_buf );
+    query = gnc_gda_create_select_query( be, SPLIT_TABLE );
+    cond = gnc_gda_create_condition_from_field( query, "tx_guid", &value );
+    gda_query_set_condition( query, cond );
+    g_object_unref( G_OBJECT(cond) );
 
-	ret = gnc_gda_execute_query( be, query );
-	g_object_unref( G_OBJECT(query) );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
+    ret = gnc_gda_execute_query( be, query );
+    g_object_unref( G_OBJECT(query) );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
 
-		for( r = 0; r < numRows; r++ ) {
-			load_split( be, pModel, r, NULL );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            load_split( be, pModel, r, NULL );
+        }
+    }
 }
 
 static Transaction*
 load_tx( GncGdaBackend* be, GdaDataModel* pModel, int row, Transaction* pTx )
 {
-	const GUID* guid;
-	GUID tx_guid;
+    const GUID* guid;
+    GUID tx_guid;
 
-	guid = gnc_gda_load_guid( pModel, row );
-	tx_guid = *guid;
+    guid = gnc_gda_load_guid( pModel, row );
+    tx_guid = *guid;
 
-	if( pTx == NULL ) {
-		pTx = xaccTransLookup( &tx_guid, be->primary_book );
-		if( pTx == NULL ) {
-			pTx = xaccMallocTransaction( be->primary_book );
-		}
-	}
-	xaccTransBeginEdit( pTx );
-	gnc_gda_load_object( pModel, row, GNC_ID_TRANS, pTx, tx_col_table );
-	gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pTx) ),
-							qof_instance_get_slots( QOF_INSTANCE(pTx) ) );
-	load_splits( be, qof_instance_get_guid( QOF_INSTANCE(pTx) ) );
+    if( pTx == NULL ) {
+        pTx = xaccTransLookup( &tx_guid, be->primary_book );
+        if( pTx == NULL ) {
+            pTx = xaccMallocTransaction( be->primary_book );
+        }
+    }
+    xaccTransBeginEdit( pTx );
+    gnc_gda_load_object( pModel, row, GNC_ID_TRANS, pTx, tx_col_table );
+    gnc_gda_slots_load( be, qof_instance_get_guid( QOF_INSTANCE(pTx) ),
+                            qof_instance_get_slots( QOF_INSTANCE(pTx) ) );
+    load_splits( be, qof_instance_get_guid( QOF_INSTANCE(pTx) ) );
 
-	qof_instance_mark_clean( QOF_INSTANCE(pTx) );
-	xaccTransCommitEdit( pTx );
+    qof_instance_mark_clean( QOF_INSTANCE(pTx) );
+    xaccTransCommitEdit( pTx );
 
-	g_assert( pTx == xaccTransLookup( &tx_guid, be->primary_book ) );
+    g_assert( pTx == xaccTransLookup( &tx_guid, be->primary_book ) );
 
-	return pTx;
+    return pTx;
 }
 
 static void
 query_transactions( GncGdaBackend* be, GdaQuery* query )
 {
-	GdaObject* ret;
+    GdaObject* ret;
 
-	ret = gnc_gda_execute_query( be, query );
-	if( GDA_IS_DATA_MODEL( ret ) ) {
-		GdaDataModel* pModel = GDA_DATA_MODEL(ret);
-		int numRows = gda_data_model_get_n_rows( pModel );
-		int r;
+    ret = gnc_gda_execute_query( be, query );
+    if( GDA_IS_DATA_MODEL( ret ) ) {
+        GdaDataModel* pModel = GDA_DATA_MODEL(ret);
+        int numRows = gda_data_model_get_n_rows( pModel );
+        int r;
 
-		for( r = 0; r < numRows; r++ ) {
-			load_tx( be, pModel, r, NULL );
-		}
-	}
+        for( r = 0; r < numRows; r++ ) {
+            load_tx( be, pModel, r, NULL );
+        }
+    }
 }
 
 /* ================================================================= */
 static void
 create_transaction_tables( GncGdaBackend* be )
 {
-	gnc_gda_create_table_if_needed( be, TRANSACTION_TABLE, tx_col_table );
-	gnc_gda_create_table_if_needed( be, SPLIT_TABLE, split_col_table );
+    gnc_gda_create_table_if_needed( be, TRANSACTION_TABLE, tx_col_table );
+    gnc_gda_create_table_if_needed( be, SPLIT_TABLE, split_col_table );
 }
 /* ================================================================= */
 static void
 delete_split_slots_cb( gpointer data, gpointer user_data )
 {
-	split_info_t* split_info = (split_info_t*)user_data;
-	Split* pSplit = GNC_SPLIT(data);
+    split_info_t* split_info = (split_info_t*)user_data;
+    Split* pSplit = GNC_SPLIT(data);
 
-	gnc_gda_slots_delete( split_info->be,
-					qof_instance_get_guid( QOF_INSTANCE(pSplit) ) );
+    gnc_gda_slots_delete( split_info->be,
+                    qof_instance_get_guid( QOF_INSTANCE(pSplit) ) );
 }
 
 static void
 delete_splits( GncGdaBackend* be, Transaction* pTx )
 {
-	split_info_t split_info;
+    split_info_t split_info;
 
-	(void)gnc_gda_do_db_operation( be, OP_DB_DELETE, SPLIT_TABLE,
-								SPLIT_TABLE, pTx, guid_col_table );
-	split_info.be = be;
+    (void)gnc_gda_do_db_operation( be, OP_DB_DELETE, SPLIT_TABLE,
+                                SPLIT_TABLE, pTx, guid_col_table );
+    split_info.be = be;
 
-	g_list_foreach( xaccTransGetSplitList( pTx ), delete_split_slots_cb, &split_info );
+    g_list_foreach( xaccTransGetSplitList( pTx ), delete_split_slots_cb, &split_info );
 }
 
 static void
 commit_split( GncGdaBackend* be, QofInstance* inst )
 {
-	Split* pSplit = GNC_SPLIT(inst);
+    Split* pSplit = GNC_SPLIT(inst);
 
-	(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						SPLIT_TABLE,
-						GNC_ID_SPLIT, pSplit,
-						split_col_table );
-	gnc_gda_slots_save( be,
-						qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
-						qof_instance_get_slots( QOF_INSTANCE(pSplit) ) );
+    (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        SPLIT_TABLE,
+                        GNC_ID_SPLIT, pSplit,
+                        split_col_table );
+    gnc_gda_slots_save( be,
+                        qof_instance_get_guid( QOF_INSTANCE(pSplit) ),
+                        qof_instance_get_slots( QOF_INSTANCE(pSplit) ) );
 }
 
 static void
 save_split_cb( gpointer data, gpointer user_data )
 {
-	split_info_t* split_info = (split_info_t*)user_data;
-	Split* pSplit = GNC_SPLIT(data);
+    split_info_t* split_info = (split_info_t*)user_data;
+    Split* pSplit = GNC_SPLIT(data);
 
-	commit_split( split_info->be, QOF_INSTANCE(pSplit) );
+    commit_split( split_info->be, QOF_INSTANCE(pSplit) );
 }
 
 static void
 save_splits( GncGdaBackend* be, const GUID* tx_guid, SplitList* pSplitList )
 {
-	split_info_t split_info;
+    split_info_t split_info;
 
-	split_info.be = be;
-	split_info.guid = tx_guid;
-	g_list_foreach( pSplitList, save_split_cb, &split_info );
+    split_info.be = be;
+    split_info.guid = tx_guid;
+    g_list_foreach( pSplitList, save_split_cb, &split_info );
 }
 
 static void
 commit_transaction( GncGdaBackend* be, QofInstance* inst )
 {
-	Transaction* pTx = GNC_TRANS(inst);
-	const GUID* guid;
+    Transaction* pTx = GNC_TRANS(inst);
+    const GUID* guid;
 
-	// Ensure the commodity is in the db
-	gnc_gda_save_commodity( be, xaccTransGetCurrency( pTx ) );
+    // Ensure the commodity is in the db
+    gnc_gda_save_commodity( be, xaccTransGetCurrency( pTx ) );
 
-	(void)gnc_gda_do_db_operation( be,
-						(inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
-						TRANSACTION_TABLE,
-						GNC_ID_TRANS, pTx,
-						tx_col_table );
+    (void)gnc_gda_do_db_operation( be,
+                        (inst->do_free ? OP_DB_DELETE : OP_DB_ADD_OR_UPDATE ),
+                        TRANSACTION_TABLE,
+                        GNC_ID_TRANS, pTx,
+                        tx_col_table );
 
-	guid = qof_instance_get_guid( inst );
+    guid = qof_instance_get_guid( inst );
 
-	// Delete any old slots and splits for this transaction
-	delete_splits( be, pTx );
+    // Delete any old slots and splits for this transaction
+    delete_splits( be, pTx );
 
-	if( !inst->do_free ) {
-		SplitList* splits;
+    if( !inst->do_free ) {
+        SplitList* splits;
 
-		// Now, commit any slots and splits
-		gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
-		splits = xaccTransGetSplitList( pTx );
-		save_splits( be, guid, splits );
+        // Now, commit any slots and splits
+        gnc_gda_slots_save( be, guid, qof_instance_get_slots( inst ) );
+        splits = xaccTransGetSplitList( pTx );
+        save_splits( be, guid, splits );
 
-		/* Mark the splits as clean */
-		splits = xaccTransGetSplitList( pTx );
-		for( ; splits != NULL; splits = splits->next ) {
-			QofInstance* inst = QOF_INSTANCE(splits->data);
+        /* Mark the splits as clean */
+        splits = xaccTransGetSplitList( pTx );
+        for( ; splits != NULL; splits = splits->next ) {
+            QofInstance* inst = QOF_INSTANCE(splits->data);
 
-			inst->dirty = FALSE;
-		}
-	} else {
-		gnc_gda_slots_delete( be, guid );
-	}
+            inst->dirty = FALSE;
+        }
+    } else {
+        gnc_gda_slots_delete( be, guid );
+    }
 }
 
 void gnc_gda_transaction_commit_splits( GncGdaBackend* be, Transaction* pTx )
 {
-	SplitList* splits;
-	Split* s;
-	QofBackend* qbe = (QofBackend*)be;
-	
-	splits = xaccTransGetSplitList( pTx );
-	for( ; splits != NULL; splits = splits->next ) {
-		s = GNC_SPLIT(splits->data);
+    SplitList* splits;
+    Split* s;
+    QofBackend* qbe = (QofBackend*)be;
+    
+    splits = xaccTransGetSplitList( pTx );
+    for( ; splits != NULL; splits = splits->next ) {
+        s = GNC_SPLIT(splits->data);
 
-		qbe->commit( qbe, QOF_INSTANCE(s) );
-	}
+        qbe->commit( qbe, QOF_INSTANCE(s) );
+    }
 }
 
 /* ================================================================= */
 static const GUID*
 get_guid_from_query( QofQuery* pQuery )
 {
-	GList* pOrTerms = qof_query_get_terms( pQuery );
-	GList* pAndTerms;
-	GList* andTerm;
-	QofQueryTerm* pTerm;
-	QofQueryPredData* pPredData;
-	GSList* pParamPath;
+    GList* pOrTerms = qof_query_get_terms( pQuery );
+    GList* pAndTerms;
+    GList* andTerm;
+    QofQueryTerm* pTerm;
+    QofQueryPredData* pPredData;
+    GSList* pParamPath;
 
-	pAndTerms = (GList*)pOrTerms->data;
-	andTerm = pAndTerms->next;
-	pTerm = (QofQueryTerm*)andTerm->data;
+    pAndTerms = (GList*)pOrTerms->data;
+    andTerm = pAndTerms->next;
+    pTerm = (QofQueryTerm*)andTerm->data;
 
-	pPredData = qof_query_term_get_pred_data( pTerm );
-	pParamPath = qof_query_term_get_param_path( pTerm );
+    pPredData = qof_query_term_get_pred_data( pTerm );
+    pParamPath = qof_query_term_get_param_path( pTerm );
 
-	if( strcmp( pPredData->type_name, "guid" ) == 0 ) {
-		query_guid_t pData = (query_guid_t)pPredData;
-		return pData->guids->data;
-	} else {
-		return NULL;
-	}
+    if( strcmp( pPredData->type_name, "guid" ) == 0 ) {
+        query_guid_t pData = (query_guid_t)pPredData;
+        return pData->guids->data;
+    } else {
+        return NULL;
+    }
 }
 
 static gpointer
 compile_split_query( GncGdaBackend* pBackend, QofQuery* pQuery )
 {
-	gchar* buf;
-	const GUID* acct_guid;
-	gchar guid_buf[GUID_ENCODING_LENGTH+1];
+    gchar* buf;
+    const GUID* acct_guid;
+    gchar guid_buf[GUID_ENCODING_LENGTH+1];
 
 #if 1
-	acct_guid = get_guid_from_query( pQuery );
-	guid_to_string_buff( acct_guid, guid_buf );
-	buf = g_strdup_printf( "SELECT * FROM %s WHERE guid IN (SELECT DISTINCT tx_guid FROM %s WHERE account_guid = '%s')",
-							TRANSACTION_TABLE, SPLIT_TABLE, guid_buf );
-	return buf;
+    acct_guid = get_guid_from_query( pQuery );
+    guid_to_string_buff( acct_guid, guid_buf );
+    buf = g_strdup_printf( "SELECT * FROM %s WHERE guid IN (SELECT DISTINCT tx_guid FROM %s WHERE account_guid = '%s')",
+                            TRANSACTION_TABLE, SPLIT_TABLE, guid_buf );
+    return buf;
 #else
-	GdaQuery* query;
-	GdaQuery* subQuery;
-	GdaQueryTarget* target;
-	GdaQueryField* allFields;
-	GdaQueryField* field;
-	GValue value;
-	GdaQueryCondition* cond;
-	GdaQueryField* key;
-	GdaQueryField* key_value;
+    GdaQuery* query;
+    GdaQuery* subQuery;
+    GdaQueryTarget* target;
+    GdaQueryField* allFields;
+    GdaQueryField* field;
+    GValue value;
+    GdaQueryCondition* cond;
+    GdaQueryField* key;
+    GdaQueryField* key_value;
 
-	acct_guid = get_guid_from_query( pQuery );
-	guid_to_string_buff( acct_guid, guid_buf );
+    acct_guid = get_guid_from_query( pQuery );
+    guid_to_string_buff( acct_guid, guid_buf );
 
-	/* Subquery */
+    /* Subquery */
 
-	/* SELECT */
-	subQuery = gda_query_new( pBackend->pDict );
-	gda_query_set_query_type( subQuery, GDA_QUERY_TYPE_SELECT );
+    /* SELECT */
+    subQuery = gda_query_new( pBackend->pDict );
+    gda_query_set_query_type( subQuery, GDA_QUERY_TYPE_SELECT );
 
-	/* FROM splits */
-	target = gda_query_target_new( subQuery, SPLIT_TABLE );
-	gda_query_add_target( subQuery, target, NULL );
-	g_object_unref( G_OBJECT(target) );
+    /* FROM splits */
+    target = gda_query_target_new( subQuery, SPLIT_TABLE );
+    gda_query_add_target( subQuery, target, NULL );
+    g_object_unref( G_OBJECT(target) );
 
-	/* tx_guid */
-	field = gda_query_field_field_new( subQuery, "tx_guid" );
-	gda_query_field_set_visible( field, TRUE );
-	gda_entity_add_field( GDA_ENTITY(subQuery), GDA_ENTITY_FIELD(field) );
-	g_object_unref( G_OBJECT(field) );
+    /* tx_guid */
+    field = gda_query_field_field_new( subQuery, "tx_guid" );
+    gda_query_field_set_visible( field, TRUE );
+    gda_entity_add_field( GDA_ENTITY(subQuery), GDA_ENTITY_FIELD(field) );
+    g_object_unref( G_OBJECT(field) );
 
-	/* WHERE */
-	memset( &value, 0, sizeof( GValue ) );
-	g_value_init( &value, G_TYPE_STRING );
-	g_value_set_string( &value, guid_buf );
-	cond = gnc_gda_create_condition_from_field( subQuery, "account_guid", &value );
-	gda_query_set_condition( subQuery, cond );
-	g_object_unref( G_OBJECT(cond) );
+    /* WHERE */
+    memset( &value, 0, sizeof( GValue ) );
+    g_value_init( &value, G_TYPE_STRING );
+    g_value_set_string( &value, guid_buf );
+    cond = gnc_gda_create_condition_from_field( subQuery, "account_guid", &value );
+    gda_query_set_condition( subQuery, cond );
+    g_object_unref( G_OBJECT(cond) );
 
-	/* Main query */
+    /* Main query */
 
-	/* SELECT * FROM transactions */
-	query = gnc_gda_create_select_query( pBackend, TRANSACTION_TABLE );
-	gda_query_add_sub_query( query, subQuery );
-	g_object_unref( G_OBJECT(subQuery) );
+    /* SELECT * FROM transactions */
+    query = gnc_gda_create_select_query( pBackend, TRANSACTION_TABLE );
+    gda_query_add_sub_query( query, subQuery );
+    g_object_unref( G_OBJECT(subQuery) );
 
-	/* WHERE */
-	cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_IN );
-	gda_query_set_condition( query, cond );
-	g_object_unref( G_OBJECT(cond) );
+    /* WHERE */
+    cond = gda_query_condition_new( query, GDA_QUERY_CONDITION_LEAF_IN );
+    gda_query_set_condition( query, cond );
+    g_object_unref( G_OBJECT(cond) );
 
-	key = gda_query_field_field_new( query, "account_guid" );
-	gda_query_field_set_visible( key, TRUE );
-	gda_query_condition_leaf_set_operator( cond,
-											GDA_QUERY_CONDITION_OP_LEFT,
-											GDA_QUERY_FIELD(key) );
-	g_object_unref( G_OBJECT(key) );
+    key = gda_query_field_field_new( query, "account_guid" );
+    gda_query_field_set_visible( key, TRUE );
+    gda_query_condition_leaf_set_operator( cond,
+                                            GDA_QUERY_CONDITION_OP_LEFT,
+                                            GDA_QUERY_FIELD(key) );
+    g_object_unref( G_OBJECT(key) );
 
-	key_value = gda_query_field_value_new( query, G_TYPE_STRING );
-	gda_query_field_set_visible( key_value, TRUE );
-	gda_query_field_value_set_is_parameter( GDA_QUERY_FIELD_VALUE(key_value), TRUE );
+    key_value = gda_query_field_value_new( query, G_TYPE_STRING );
+    gda_query_field_set_visible( key_value, TRUE );
+    gda_query_field_value_set_is_parameter( GDA_QUERY_FIELD_VALUE(key_value), TRUE );
 
-	g_object_set( key_value, "value-provider", subQuery, NULL );
-	gda_query_condition_leaf_set_operator( cond, GDA_QUERY_CONDITION_OP_RIGHT,
-												GDA_QUERY_FIELD(key_value) );
+    g_object_set( key_value, "value-provider", subQuery, NULL );
+    gda_query_condition_leaf_set_operator( cond, GDA_QUERY_CONDITION_OP_RIGHT,
+                                                GDA_QUERY_FIELD(key_value) );
 
-	return query;
+    return query;
 #endif
 }
 
 static void
 run_split_query( GncGdaBackend* be, gpointer pQuery )
 {
-	GdaQuery* query;
+    GdaQuery* query;
 #if 1
-	GError* error = NULL;
-	const gchar* sql = (const gchar*)pQuery;
+    GError* error = NULL;
+    const gchar* sql = (const gchar*)pQuery;
 
-	query = gda_query_new_from_sql( be->pDict, sql, &error );
-	if( query == NULL ) {
-		printf( "SQL error: %s\n", error->message );
-		return;
-	}
-	error = NULL;
+    query = gda_query_new_from_sql( be->pDict, sql, &error );
+    if( query == NULL ) {
+        g_critical( "SQL error: %s\n", error->message );
+        return;
+    }
+    error = NULL;
 #else
-	query = GDA_QUERY(pQuery);
+    query = GDA_QUERY(pQuery);
 #endif
-	query_transactions( be, query );
+    query_transactions( be, query );
 }
 
 static void
 free_split_query( GncGdaBackend* pBackend, gpointer pQuery )
 {
 #if 1
-	g_free( pQuery );
+    g_free( pQuery );
 #else
-	g_object_unref( G_OBJECT(pQuery) );
+    g_object_unref( G_OBJECT(pQuery) );
 #endif
 }
 
@@ -712,28 +712,28 @@
 void
 gnc_gda_init_transaction_handler( void )
 {
-	static GncGdaDataType_t be_data_tx =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_TRANS,
-		commit_transaction,			/* commit */
-		NULL,						/* initial_load */
-		create_transaction_tables	/* create tables */
-	};
-	static GncGdaDataType_t be_data_split =
-	{
-		GNC_GDA_BACKEND_VERSION,
-		GNC_ID_SPLIT,
-		commit_split,				/* commit */
-		NULL,						/* initial_load */
-		NULL,						/* create tables */
-		compile_split_query,
-		run_split_query,
-		free_split_query
-	};
+    static GncGdaDataType_t be_data_tx =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_TRANS,
+        commit_transaction,            /* commit */
+        NULL,                        /* initial_load */
+        create_transaction_tables    /* create tables */
+    };
+    static GncGdaDataType_t be_data_split =
+    {
+        GNC_GDA_BACKEND_VERSION,
+        GNC_ID_SPLIT,
+        commit_split,                /* commit */
+        NULL,                        /* initial_load */
+        NULL,                        /* create tables */
+        compile_split_query,
+        run_split_query,
+        free_split_query
+    };
 
-	qof_object_register_backend( GNC_ID_TRANS, GNC_GDA_BACKEND, &be_data_tx );
-	qof_object_register_backend( GNC_ID_SPLIT, GNC_GDA_BACKEND, &be_data_split );
+    qof_object_register_backend( GNC_ID_TRANS, GNC_GDA_BACKEND, &be_data_tx );
+    qof_object_register_backend( GNC_ID_SPLIT, GNC_GDA_BACKEND, &be_data_split );
 }
 
 /* ========================== END OF FILE ===================== */

Modified: gnucash/branches/gda-dev/src/backend/gda/gncmod-backend-gda.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/gda/gncmod-backend-gda.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/gda/gncmod-backend-gda.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,51 +1,42 @@
 /*********************************************************************
  * gncmod-backend-gda.c
  * module definition/initialization for the gda backend module
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include <stdio.h>
-#include <glib.h>
-#include <glib-gobject.h>
+#include <gmodule.h>
+/* #include <glib-gobject.h> */
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
-#include "gnc-backend-gda.h"
-
 /* version of the gnc module system interface we require */
-int libgncmod_backend_gda_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_backend_gda_LTX_gnc_module_current  = 0;
-int libgncmod_backend_gda_LTX_gnc_module_revision = 0;
-int libgncmod_backend_gda_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
 static GNCModule engine;
 
-/* forward references */
-gchar *libgncmod_backend_gda_LTX_gnc_module_path(void);
-gchar *libgncmod_backend_gda_LTX_gnc_module_description(void);
-int libgncmod_backend_gda_LTX_gnc_module_init(int refcount);
-int libgncmod_backend_gda_LTX_gnc_module_end(int refcount);
-
-
 gchar *
-libgncmod_backend_gda_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/backend/gda");
 }
 
-gchar * 
-libgncmod_backend_gda_LTX_gnc_module_description(void) 
+gchar *
+gnc_module_description(void)
 {
   return g_strdup("The GDA/SQL backend for GnuCash");
 }
 
 int
-libgncmod_backend_gda_LTX_gnc_module_init(int refcount) 
-{  
+gnc_module_init(int refcount)
+{
   engine = gnc_module_load("gnucash/engine", 0);
   if(!engine) return FALSE;
 
@@ -58,7 +49,7 @@
 }
 
 int
-libgncmod_backend_gda_LTX_gnc_module_end(int refcount) 
+gnc_module_end(int refcount)
 {
   int unload = TRUE;
 

Modified: gnucash/branches/gda-dev/src/backend/postgres/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -111,3 +111,5 @@
 .sql.c:
 	echo "\"-- DO NOT EDIT THIS FILE. IT IS AUTOGENERATED.\"" > $@
 	cat $< >> $@
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.backend.pg\"

Modified: gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -38,8 +38,6 @@
 #include <libpq-fe.h>  
 
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "gnc-commodity.h"
 #include "gnc-engine.h"
 #include "gnc-pricedb.h"
@@ -510,7 +508,7 @@
    qd.resolve_list = NULL;
 
    ENTER (" ");
-   if (!be) return;
+   if (!be) { LEAVE(""); return; }
 
    if (0 == ncalls) {
       START_CLOCK (9, "starting at level 0");
@@ -656,7 +654,7 @@
    qd.xaction_list = NULL;
 
    REPORT_CLOCK (9, "done gathering at call %d", call_count);
-   if (NULL == acct_list) return;
+   if (NULL == acct_list) { LEAVE(""); return; }
 
    /* OK, at this point, we have a list of accounts, including the 
     * date of the earliest split in that account.  Now, we need to 
@@ -713,7 +711,7 @@
    PGBackend *be = (PGBackend *)bend;
    Query *q = (Query*) q_p;
    const char * sql_query_string;
-   AccountGroup *topgroup;
+   Account *root;
    sqlQuery *sq;
 
    ENTER ("be=%p, qry=%p", be, q);
@@ -728,10 +726,10 @@
    sq = sqlQuery_new();
    sql_query_string = sqlQuery_build (sq, q);
 
-   topgroup = gnc_book_get_group (pgendGetBook(be));
+   root = gnc_book_get_root_account(pgendGetBook(be));
 
    /* stage transactions, save some postgres overhead */
-   xaccGroupBeginStagedTransactionTraversals (topgroup);
+   gnc_account_tree_begin_staged_transaction_traversals (root);
 
    /* We will be doing a bulk insertion of transactions below.
     * We can gain a tremendous performance improvement,
@@ -746,17 +744,13 @@
     * by not very much.
     */
    ncalls = 0;
-   xaccAccountGroupBeginEdit(topgroup);
+   xaccAccountBeginEdit(root);
    pgendFillOutToCheckpoint (be, sql_query_string);
-   xaccAccountGroupCommitEdit(topgroup);
+   xaccAccountCommitEdit(root);
    PINFO ("number of calls to fill out=%d", ncalls);
 
    sql_Query_destroy(sq);
 
-   /* the fill-out will dirty a lot of data. That's irrelevent,
-    * mark it all as having been saved. */
-   xaccGroupMarkSaved (topgroup);
-
    pgendEnable(be);
    qof_event_resume();
 
@@ -793,7 +787,7 @@
 
 
 static void
-pgendGetAllTransactions (PGBackend *be, AccountGroup *grp)
+pgendGetAllTransactions (PGBackend *be, Account *root)
 {
    GList *node, *xaction_list = NULL;
 
@@ -804,14 +798,14 @@
    xaction_list = pgendGetResults (be, get_all_trans_cb, xaction_list);
 
    /* restore the transactions */
-   xaccAccountGroupBeginEdit (grp);
+   xaccAccountBeginEdit (root);
    for (node=xaction_list; node; node=node->next)
    {
       xxxpgendCopyTransactionToEngine (be, (GUID *)node->data);
       guid_free (node->data);
    }
    g_list_free(xaction_list);
-   xaccAccountGroupCommitEdit (grp);
+   xaccAccountCommitEdit (root);
 
    pgendEnable(be);
    qof_event_resume();
@@ -871,9 +865,9 @@
 pgendSync (QofBackend *bend, QofBook *book)
 {
    PGBackend *be = (PGBackend *)bend;
-   AccountGroup *grp = gnc_book_get_group (book);
+   Account *root = gnc_book_get_root_account(book);
 
-   ENTER ("be=%p, grp=%p", be, grp);
+   ENTER ("be=%p, root=%p", be, root);
 
    pgend_set_book (be, book);
    be->version_check = (guint32) time(0);
@@ -894,8 +888,8 @@
    pgendStoreBook (be, book);
 
    /* store the account group hierarchy, and then all transactions */
-   pgendStoreGroup (be, grp);
-   pgendStoreAllTransactions (be, grp);
+   pgendStoreAccountTree (be, root);
+   pgendStoreAllTransactions (be, root);
 
    /* don't send events  to GUI, don't accept callbacks to backend */
    qof_event_suspend();
@@ -907,7 +901,7 @@
        (MODE_SINGLE_UPDATE != be->session_mode))
    {
       Timespec ts = gnc_iso8601_to_timespec_gmt (CK_BEFORE_LAST_DATE);
-      pgendGroupGetAllBalances (be, grp, ts);
+      pgendAccountTreeGetAllBalances (be, root, ts);
    } 
    else
    {
@@ -958,9 +952,9 @@
    char buff[4000];
    char *p;
    PGBackend *be = (PGBackend *)bend;
-   AccountGroup *grp = gnc_book_get_group (book);
+   Account *root = gnc_book_get_root_account(book);
 
-   ENTER ("be=%p, grp=%p", be, grp);
+   ENTER ("be=%p, root=%p", be, root);
 
    pgend_set_book (be, book);
 
@@ -1017,14 +1011,14 @@
    pgendStoreBookNoLock (be, book, TRUE);
 
    /* Store accounts and commodities */
-   xaccClearMarkDownGr (grp, 0);
-   pgendStoreGroupNoLock (be, grp, TRUE, TRUE);
-   xaccClearMarkDownGr (grp, 0);
+   xaccClearMarkDown (root, 0);
+   pgendStoreAccountTreeNoLock (be, root, TRUE, TRUE);
+   xaccClearMarkDown (root, 0);
 
    /* Recursively walk transactions. Start by reseting the write 
     * flags. We use this to avoid infinite recursion */
-   xaccGroupBeginStagedTransactionTraversals(grp);
-   xaccGroupStagedTransactionTraversal (grp, 1, trans_traverse_cb, be);
+   gnc_account_tree_begin_staged_transaction_traversals(root);
+   gnc_account_tree_staged_transaction_traversal (root, 1, trans_traverse_cb, be);
 
    /* hack alert -- In some deranged theory, we should be
     * syncing prices here, as well as syncing any/all other
@@ -1424,7 +1418,7 @@
           * it might be opened in multi-user mode next time. Thus, update
           * the account balance checkpoints just in case. 
           */
-         /* pgendGroupRecomputeAllCheckpoints (be, be->topgroup); */
+         /* pgendAccountTreeRecomputeAllCheckpoints (be, be->root); */
          break;
 
       case MODE_POLL:
@@ -1481,7 +1475,7 @@
 pgend_book_load_poll (QofBackend *bend, QofBook *book)
 {
    Timespec ts = gnc_iso8601_to_timespec_gmt (CK_BEFORE_LAST_DATE);
-   AccountGroup *grp;
+   Account *root;
    PGBackend *be = (PGBackend *)bend;
 
    if (!be) return;
@@ -1508,10 +1502,10 @@
 
    pgendGetAllAccountsInBook (be, book);
 
-   grp = gnc_book_get_group (book);
-   xaccAccountGroupBeginEdit (grp);
-   pgendGroupGetAllBalances (be, grp, ts);
-   xaccAccountGroupCommitEdit (grp);
+   root = gnc_book_get_root_account (book);
+   xaccAccountBeginEdit (root);
+   pgendAccountTreeGetAllBalances (be, root, ts);
+   xaccAccountCommitEdit (root);
 
    /* re-enable events */
    pgendEnable(be);
@@ -2237,8 +2231,6 @@
 
    /* ---------------------------------------------------------------- */
 
-   // DEBUGCMD (PQtrace(be->connection, stderr));
-
    /* set the datestyle to something we can parse */
    p = "SET DATESTYLE='ISO';";
    SEND_QUERY (be,p, );

Modified: gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/PostgresBackend.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -37,7 +37,6 @@
 #include <gmodule.h>
 #include <libpq-fe.h>
 
-#include "Group.h"
 #include "qof.h"
 #include "Transaction.h"
 

Modified: gnucash/branches/gda-dev/src/backend/postgres/account.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,8 +30,6 @@
  
 #include "AccountP.h"
 #include "qof.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "gnc-commodity.h"
 #include "gnc-pricedb.h"
 
@@ -48,7 +46,7 @@
 
 /* ============================================================= */
 /* ============================================================= */
-/*               ACCOUNT AND GROUP STUFF                         */
+/*                    ACCOUNT STUFF                              */
 /*      (UTILITIES FIRST, THEN SETTERS, THEN GETTERS)            */
 /* ============================================================= */
 /* ============================================================= */
@@ -136,8 +134,8 @@
 }
 
 /* ============================================================= */
-/* The pgendStoreGroup() routine stores the account hierarchy to
- * the sql database.  That is, it stores not oonly the top-level
+/* The pgendStoreAccountTree() routine stores the account hierarchy
+ * to the sql database.  That is, it stores not oonly the top-level
  * accounts, but all of thier children too.   It also stores the
  * commodities associated with the accounts.  It does *not* store
  * any of the transactions.
@@ -150,38 +148,30 @@
  */
 
 void
-pgendStoreGroupNoLock (PGBackend *be, AccountGroup *grp, 
+pgendStoreAccountTreeNoLock (PGBackend *be, Account *root, 
                        gboolean do_mark, gboolean do_check_version)
 {
-   GList *start, *node;
+   GList *descendants, *node;
 
-   if (!be || !grp) return;
-   ENTER("grp=%p mark=%d", grp, do_mark);
+   if (!be || !root) return;
+   ENTER("root=%p mark=%d", root, do_mark);
 
    /* walk the account tree, and store subaccounts */
-   start = xaccGroupGetAccountList (grp);
-   for (node=start; node; node=node->next) 
-   {
-      AccountGroup *subgrp;
-      Account *acc = node->data;
-
-      pgendStoreAccountNoLock (be, acc, do_mark, do_check_version);
-
-      /* recursively walk to child accounts */
-      subgrp = xaccAccountGetChildren (acc);
-      if (subgrp) pgendStoreGroupNoLock(be, subgrp, do_mark,
-                                        do_check_version);
-   }
+   pgendStoreAccountNoLock (be, root, do_mark, do_check_version);
+   descendants = gnc_account_get_descendants (root);
+   for (node=descendants; node; node=node->next) 
+      pgendStoreAccountNoLock (be, node->data, do_mark, do_check_version);
+   g_list_free(descendants);
    LEAVE(" ");
 }
 
 
 void
-pgendStoreGroup (PGBackend *be, AccountGroup *grp)
+pgendStoreAccountTree (PGBackend *be, Account *root)
 {
    char *p;
-   ENTER ("be=%p, grp=%p", be, grp);
-   if (!be || !grp) return;
+   ENTER ("be=%p, root=%p", be, root);
+   if (!be || !root) return;
 
    /* lock it up so that we store atomically */
    p = "BEGIN;\n"
@@ -192,12 +182,12 @@
 
    /* Clear the account marks; this is used to avoid visiting
     * the same account more than once. */
-   xaccClearMarkDownGr (grp, 0);
+   xaccClearMarkDown (root, 0);
 
-   pgendStoreGroupNoLock (be, grp, TRUE, TRUE);
+   pgendStoreAccountTreeNoLock (be, root, TRUE, TRUE);
 
    /* reset the write flags again */
-   xaccClearMarkDownGr (grp, 0);
+   xaccClearMarkDown (root, 0);
 
    p = "COMMIT;\n"
        "NOTIFY gncAccount;";
@@ -211,23 +201,23 @@
 /* ============================================================= */
 
 /* ============================================================= */
-/* This routine walks the account group, gets all KVP values */
+/* This routine walks the account tree, gets all KVP values */
 
-static gpointer
+static void
 restore_cb (Account *acc, void * cb_data)
 {
    PGBackend *be = (PGBackend *) cb_data;
-   if (0 == acc->idata) return NULL;
+   if (0 == acc->idata) return;
    acc->inst.kvp_data = pgendKVPFetch (be, acc->idata, acc->inst.kvp_data);
-   return NULL;
 }
 
 static void 
-pgendGetAllAccountKVP (PGBackend *be, AccountGroup *grp)
+pgendGetAllAccountKVP (PGBackend *be, Account *root)
 {
-   if (!grp) return;
+   if (!root) return;
 
-   xaccGroupForEachAccount (grp, restore_cb, be, TRUE);
+   restore_cb(root, NULL);
+   gnc_account_foreach_descendant(root, restore_cb, be);
 }
 
 /* ============================================================= */
@@ -319,8 +309,8 @@
    if (guid_equal(guid_null(), &acct_guid)) 
    {
       /* if the parent guid is null, then this
-       * account belongs in the top group */
-      xaccGroupInsertAccount (gnc_book_get_group(book), acc);
+       * account belongs in the top level */
+      gnc_account_append_child (gnc_book_get_root_account(book), acc);
    }
    else
    {
@@ -338,7 +328,7 @@
       else
       {
          xaccAccountBeginEdit(parent);
-         xaccAccountInsertSubAccount(parent, acc);
+         gnc_account_append_child(parent, acc);
          xaccAccountCommitEdit(parent);
       }
    }
@@ -375,7 +365,7 @@
 
       pgendGetCommodity (be, ri->commodity_string);
       commodity = gnc_string_to_commodity (ri->commodity_string,
-                                           xaccAccountGetBook (ri->account));
+                                           gnc_account_get_book(ri->account));
 
       if (commodity)
       {
@@ -403,7 +393,7 @@
       if (parent)
       {
         xaccAccountBeginEdit(parent);
-        xaccAccountInsertSubAccount(parent, ri->account);
+        gnc_account_append_child(parent, ri->account);
         xaccAccountCommitEdit(parent);
       }
       else
@@ -441,13 +431,8 @@
    for (node=be->blist; node; node=node->next)
    {
       QofBook *book = node->data;
-      AccountGroup *topgrp = gnc_book_get_group (book);
-      pgendGetAllAccountKVP (be, topgrp);
-
-      /* Mark the newly read group as saved, since the act of putting
-       * it together will have caused it to be marked up as not-saved.
-       */
-      xaccGroupMarkSaved (topgrp);
+      Account *root = gnc_book_get_root_account(book);
+      pgendGetAllAccountKVP (be, root);
    }
 
    LEAVE (" ");
@@ -457,7 +442,7 @@
 pgendGetAllAccountsInBook (PGBackend *be, QofBook *book)
 {
    char *p, buff[400];
-   AccountGroup *topgrp;
+   Account *root;
 
    ENTER ("be=%p", be);
    if (!be || !book) return;
@@ -474,14 +459,9 @@
    SEND_QUERY (be, buff, );
    pgendGetAccounts (be, book);
 
-   topgrp = gnc_book_get_group (book);
-   pgendGetAllAccountKVP (be, topgrp);
+   root = gnc_book_get_root_account(book);
+   pgendGetAllAccountKVP (be, root);
 
-   /* Mark the newly read group as saved, since the act of putting
-    * it together will have caused it to be marked up as not-saved.
-    */
-   xaccGroupMarkSaved (topgrp);
-
    LEAVE (" ");
 }
 
@@ -568,7 +548,6 @@
 pgend_account_commit_edit (QofBackend * bend, 
                            Account * acct)
 {
-   AccountGroup *parent;
    char *p;
    QofBackendError err;
    PGBackend *be = (PGBackend *)bend;
@@ -578,8 +557,6 @@
 
    if (FALSE == acct->inst.dirty)
    {
-      parent = xaccAccountGetParent(acct);
-      if (parent) parent->saved = 1;
       LEAVE ("account not written because not dirty");
       return;
    }
@@ -641,13 +618,6 @@
    SEND_QUERY (be,p,);
    FINISH_QUERY(be->connection);
 
-   /* Mark this up so that we don't get that annoying gui dialog
-    * about having to save to file.  unfortunately,however, this
-    * is too liberal, and could screw up synchronization if we've lost
-    * contact with the back end at some point.  So hack alert -- fix 
-    * this. */
-   parent = xaccAccountGetParent(acct);
-   if (parent) parent->saved = 1;
    LEAVE ("commited");
    return;
 }

Modified: gnucash/branches/gda-dev/src/backend/postgres/account.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -24,7 +24,7 @@
 #ifndef POSTGRES_ACCOUNT_H
 #define POSTGRES_ACCOUNT_H
 
-#include "Group.h"
+#include "Account.h"
 #include "qof.h"
 
 #include "PostgresBackend.h"
@@ -33,8 +33,8 @@
 
 void pgendGetAllAccounts (PGBackend *be);
 
-void pgendStoreGroup (PGBackend *be, AccountGroup *grp);
-void pgendStoreGroupNoLock (PGBackend *be, AccountGroup *grp,
+void pgendStoreAccountTree (PGBackend *be, Account *root);
+void pgendStoreAccountTreeNoLock (PGBackend *be, Account *root,
                        gboolean do_mark, gboolean do_check_version);
 Account * pgendCopyAccountToEngine (PGBackend *be, const GUID *acct_guid);
 

Modified: gnucash/branches/gda-dev/src/backend/postgres/checkpoint.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/checkpoint.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/checkpoint.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -45,7 +45,6 @@
 #include "Account.h"
 #include "AccountP.h"
 #include "qof.h"
-#include "Group.h"
 #include "gnc-commodity.h"
 
 #include "builder.h"
@@ -235,11 +234,13 @@
 /* recompute fresh balance checkpoints for every account */
 
 void
-pgendGroupRecomputeAllCheckpoints (PGBackend *be, AccountGroup *grp)
+pgendAccountTreeRecomputeAllCheckpoints (PGBackend *be, Account *parent)
 {
    GList *acclist, *node;
 
-   acclist = xaccGroupGetSubAccounts(grp);
+   pgendAccountRecomputeAllCheckpoints (be, xaccAccountGetGUID(parent));
+
+   acclist = gnc_account_get_descendants(parent);
    for (node = acclist; node; node=node->next)
    {
       Account *acc = (Account *) node->data;
@@ -456,9 +457,9 @@
    com = xaccAccountGetCommodity(acc);
    if (!com)
    {
-     PERR ("account %s has no commodity",
-           guid_to_string (xaccAccountGetGUID (acc)));
-     return;
+        PERR("account %s has no commodity",
+             guid_to_string (xaccAccountGetGUID (acc)));
+        return;
    }
 
    chk.commodity = gnc_commodity_get_unique_name(com);
@@ -475,13 +476,13 @@
    rec_b = chk.reconciled_balance;
    deno = gnc_commodity_get_fraction (com);
 
-   DEBUGCMD({
+   {
       char buf[80];
       gnc_timespec_to_iso8601_buff (chk.date_start, buf);
-      PINFO("%s balance to %s baln=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " clr=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " rcn=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT, 
-        xaccAccountGetDescription (acc), buf,
-        b, deno, cl_b, deno, rec_b, deno);
-     });
+      DEBUG("%s balance to %s baln=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " clr=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " rcn=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT, 
+            xaccAccountGetDescription (acc), buf,
+            b, deno, cl_b, deno, rec_b, deno);
+   }
 
    /* add up loose entries since the checkpoint */
    pgendAccountGetPartialBalance (be, &chk);
@@ -497,29 +498,29 @@
 
    xaccAccountSetStartingBalance (acc, baln, cleared_baln, reconciled_baln);
 
-   DEBUGCMD ({
-      char buf[80];
-      gnc_timespec_to_iso8601_buff (as_of_date, buf);
-      LEAVE("be=%p %s %s baln=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " clr=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " rcn=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT, be, 
-        xaccAccountGetDescription (acc), buf,
-        b, deno, cl_b, deno, rec_b, deno);
-     });
+   {
+        char buf[80];
+        gnc_timespec_to_iso8601_buff (as_of_date, buf);
+        LEAVE("be=%p %s %s baln=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " clr=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT " rcn=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT, be, 
+              xaccAccountGetDescription (acc), buf,
+              b, deno, cl_b, deno, rec_b, deno);
+   }
 }
 
 /* ============================================================= */
 /* get checkpoint value for all accounts */
 
 void
-pgendGroupGetAllBalances (PGBackend *be, AccountGroup *grp, 
+pgendAccountTreeGetAllBalances (PGBackend *be, Account *root, 
                           Timespec as_of_date)
 {
    GList *acclist, *node;
 
-   if (!be || !grp) return;
+   if (!be || !root) return;
    ENTER("be=%p", be);
 
    /* loop over all accounts */
-   acclist = xaccGroupGetSubAccounts (grp);
+   acclist = gnc_account_get_descendants (root);
    for (node=acclist; node; node=node->next)
    {
       Account *acc = (Account *) node->data;

Modified: gnucash/branches/gda-dev/src/backend/postgres/checkpoint.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/checkpoint.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/checkpoint.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,7 +35,6 @@
 #define CHECKPOINT_H
 
 #include "Account.h"
-#include "Group.h"
 #include "qof.h"
 #include "Transaction.h"
 
@@ -79,8 +78,8 @@
 
 void pgendTransactionRecomputeCheckpoints (PGBackend *be, Transaction *trans);
 void pgendAccountRecomputeOneCheckpoint (PGBackend *be, Account *acc, Timespec ts);
-void pgendGroupRecomputeAllCheckpoints (PGBackend *, AccountGroup *);
-void pgendGroupGetAllBalances (PGBackend *, AccountGroup *, Timespec as_of_date);
+void pgendAccountTreeRecomputeAllCheckpoints (PGBackend *, Account *);
+void pgendAccountTreeGetAllBalances (PGBackend *, Account *, Timespec as_of_date);
 
 /* The pgendAccountGetBalance() routine goes to the sql database and finds the
  *    balance as of the 'as_of_date' argument. It sets the starting balance for 

Modified: gnucash/branches/gda-dev/src/backend/postgres/events.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/events.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/events.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,4 +1,4 @@
-/********************************************************************\
+/********************************************************************	\
  * events.c -- implements event handling for postgres backend       *
  * Copyright (c) 2001 Linas Vepstas <linas at linas.org>               *
  *                                                                  *
@@ -290,16 +290,13 @@
 
                /* if the remote user created an account, mirror it here */
                acc = pgendCopyAccountToEngine (be, &(ev->guid));
-               xaccGroupMarkSaved (xaccAccountGetRoot(acc));
                ent = (QofEntity*)acc;
                break;
             }
             case QOF_EVENT_DESTROY: {
                Account * acc = pgendAccountLookup (be, &(ev->guid));
-               AccountGroup *topgrp = xaccAccountGetRoot(acc);
                xaccAccountBeginEdit (acc);
                xaccAccountDestroy (acc);
-               xaccGroupMarkSaved (topgrp);
                ent = (QofEntity*)acc;
                break;
             }

Modified: gnucash/branches/gda-dev/src/backend/postgres/table.m4
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/table.m4	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/table.m4	2007-04-07 16:05:40 UTC (rev 15847)
@@ -13,8 +13,8 @@
        commodity,      , char *, gnc_commodity_get_unique_name(xaccAccountGetCommodity(ptr)),
        version,        , int32,  xaccAccountGetVersion(ptr),
        iguid,          , int32,  ptr->idata,
-       bookGUID,       , GUID *, qof_entity_get_guid((QofEntity*)xaccAccountGetBook(ptr)),
-       parentGUID,     , GUID *, xaccAccountGetGUID(xaccAccountGetParentAccount(ptr)),
+       bookGUID,       , GUID *, qof_entity_get_guid((QofEntity*)gnc_account_get_book(ptr)),
+       parentGUID,     , GUID *, xaccAccountGetGUID(gnc_account_get_parent(ptr)),
        accountGUID, KEY, GUID *, xaccAccountGetGUID(ptr),
        ')
 

Modified: gnucash/branches/gda-dev/src/backend/postgres/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,19 +14,18 @@
   TEST_DB_SOCKET_DIR=`pwd`/gnc_test_db_sock \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-load-backend \
   test-db \
   test-escape \
   test-period
 
 LDADD = ${top_builddir}/src/test-core/libgncmod-test.la \
-        ${top_builddir}/src/gnc-module/libgncmodule.la \
+        ${top_builddir}/src/gnc-module/libgnc-module.la \
         ${top_builddir}/src/engine/libgncmod-engine.la \
         ${top_builddir}/src/engine/libgncmod-engine.la \
         ${top_builddir}/src/engine/test-core/libgncmod-test-engine.la \
-        -lltdl \
-	-lpq
+        -lpq
 
 test_db_SOURCES = \
   ${top_srcdir}/src/backend/postgres/PostgresBackend.c \
@@ -77,3 +76,5 @@
 EXTRA_DIST = \
   db-control.sh \
   run-tests.sh
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.backend.pg\"

Modified: gnucash/branches/gda-dev/src/backend/postgres/test/test-db.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/test/test-db.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/test/test-db.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -251,14 +251,12 @@
     return TRUE;
 }
 
-static gpointer
+static void
 mark_account_commodities(Account * a, gpointer data)
 {
     GHashTable *hash = data;
 
     g_hash_table_insert(hash, xaccAccountGetCommodity(a), hash);
-
-    return NULL;
 }
 
 static int
@@ -311,10 +309,10 @@
 
     book = qof_session_get_book(session);
 
-    xaccGroupForEachAccount(gnc_book_get_group(book),
-                            mark_account_commodities, cdi.hash, TRUE);
+    gnc_account_foreach_descendant(gnc_book_get_root_account(book),
+                            mark_account_commodities, cdi.hash);
 
-    xaccGroupForEachTransaction(gnc_book_get_group(book),
+    xaccAccountTreeForEachTransaction(gnc_book_get_root_account(book),
                                 mark_transaction_commodities, cdi.hash);
 
     gnc_pricedb_foreach_price(gnc_book_get_pricedb(book),
@@ -473,16 +471,16 @@
 static int
 session_num_trans(QofSession * session)
 {
-    AccountGroup *group;
+    Account *root;
     QofBook *book;
     int num = 0;
 
     g_return_val_if_fail(session, 0);
 
     book = qof_session_get_book(session);
-    group = gnc_book_get_group(book);
+    root = gnc_book_get_root_account(book);
 
-    xaccGroupForEachTransaction(group, num_trans_helper, &num);
+    xaccAccountTreeForEachTransaction(root, num_trans_helper, &num);
 
     return num;
 }
@@ -509,7 +507,7 @@
     book = qof_session_get_book(session);
     be = (PGBackend *) qof_book_get_backend(book);
 
-    if (qof_log_check(log_module, QOF_LOG_DETAIL))
+    if (qof_log_check(log_module, QOF_LOG_DEBUG))
         qof_query_print(qn);
 
     sq = sqlQuery_new();
@@ -626,7 +624,7 @@
 
     ok = TRUE;
 
-    list = xaccGroupGetSubAccounts(gnc_book_get_group(book_1));
+    list = gnc_account_get_descendants(gnc_book_get_root_account(book_1));
     for (node = list; node; node = node->next) {
         Account *account_1 = node->data;
         Account *account_2;
@@ -677,21 +675,21 @@
 test_queries(QofSession * session_base, DbInfo *dbinfo)
 {
     QueryTestData qtd;
-    AccountGroup *group;
+    Account *root;
     QofBook *book;
     gboolean ok;
 
     g_return_val_if_fail(dbinfo->dbname && dbinfo->mode, FALSE);
 
     book = qof_session_get_book(session_base);
-    group = gnc_book_get_group(book);
+    root = gnc_book_get_root_account(book);
 
     qtd.session_base = session_base;
     qtd.dbinfo = dbinfo;
     qtd.loaded = 0;
     qtd.total = 0;
 
-    ok = xaccGroupForEachTransaction(group, test_trans_query, &qtd);
+    ok = xaccAccountTreeForEachTransaction(root, test_trans_query, &qtd);
 
 #if 0
     g_warning("average percentage loaded = %3.2f%%",
@@ -708,8 +706,8 @@
     QofBook *book_1;
     QofBook *book_2;
 
-    AccountGroup *group_1;
-    AccountGroup *group_2;
+    Account *root_1;
+    Account *root_2;
 
     GList *accounts_1;
     GList *accounts_2;
@@ -834,8 +832,8 @@
 
     td.session_1 = session_base;
     td.book_1 = qof_session_get_book(session_base);
-    td.group_1 = gnc_book_get_group(td.book_1);
-    td.accounts_1 = xaccGroupGetSubAccounts(td.group_1);
+    td.root_1 = gnc_book_get_root_account(td.book_1);
+    td.accounts_1 = gnc_account_get_descendants(td.root_1);
 
     td.session_2 = qof_session_new();
 
@@ -845,12 +843,12 @@
     multi_user_get_everything(td.session_2, NULL);
 
     td.book_2 = qof_session_get_book(td.session_2);
-    td.group_2 = gnc_book_get_group(td.book_2);
-    td.accounts_2 = xaccGroupGetSubAccounts(td.group_2);
+    td.root_2 = gnc_book_get_root_account(td.book_2);
+    td.accounts_2 = gnc_account_get_descendants(td.root_2);
 
     ok = TRUE;
     transes = NULL;
-    xaccGroupForEachTransaction(td.group_1, add_trans_helper, &transes);
+    xaccAccountTreeForEachTransaction(td.root_1, add_trans_helper, &transes);
     for (node = transes; node; node = node->next) {
         ok = test_trans_update(node->data, &td);
         if (!ok)
@@ -891,8 +889,8 @@
 
         xaccAccountBeginEdit(account);
         xaccAccountBeginEdit(child);
-        xaccGroupInsertAccount(td.group_1, account);
-        xaccAccountInsertSubAccount(account, child);
+        gnc_account_append_child(td.root_1, account);
+        gnc_account_append_child(account, child);
         xaccAccountCommitEdit(child);
         xaccAccountCommitEdit(account);
 
@@ -1128,8 +1126,8 @@
     set_max_kvp_depth(3);
     set_max_kvp_frame_elements(3);
 
-    set_max_group_depth(3);
-    set_max_group_accounts(3);
+    set_max_account_tree_depth(3);
+    set_max_accounts_per_level(3);
 
     random_timespec_zero_nsec(TRUE);
 

Modified: gnucash/branches/gda-dev/src/backend/postgres/test/test-period.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/test/test-period.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/test/test-period.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,6 @@
 #include <time.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "Period.h"
 #include "qof.h"
 #include "test-stuff.h"
@@ -43,9 +42,8 @@
   QofBackendError io_err;
   QofSession *session;
   QofBook *openbook, *closedbook;
-  AccountGroup *grp;
-  AccountList *acclist, *anode;
-  Account * acc = NULL;
+  GList *acclist, *anode;
+  Account *root, *acc = NULL;
   SplitList *splist;
   Split *sfirst, *slast;
   Transaction *tfirst, *tlast;
@@ -72,9 +70,9 @@
 
   add_random_transactions_to_book (openbook, 12);
 
-  grp = gnc_book_get_group (openbook);
+  root = gnc_book_get_root_account(openbook);
 
-  acclist = xaccGroupGetSubAccounts (grp);
+  acclist = gnc_account_get_descendants (root);
   for (anode=acclist; anode; anode=anode->next)
   {
     int ns;
@@ -83,6 +81,7 @@
     if (2 <= ns) break;
     acc = NULL;
   }
+  g_list_free(acclist);
 
   if(!acc)
   {
@@ -131,7 +130,8 @@
   g_return_if_fail (io_err == ERR_BACKEND_NO_ERR);
 
   qof_log_set_file (stdout);
-  qof_log_set_level_registered (QOF_LOG_INFO);
+  qof_log_set_level("gnc", G_LOG_LEVEL_INFO);
+
   closedbook = gnc_book_close_period (openbook, tsmiddle, 
                   NULL, "this is opening balance dude");
 

Modified: gnucash/branches/gda-dev/src/backend/postgres/txn.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/txn.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/txn.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,8 +31,6 @@
  
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "gnc-commodity.h"
 #include "gnc-engine.h"
 #include "gnc-pricedb.h"
@@ -350,11 +348,11 @@
 
 
 void
-pgendStoreAllTransactions (PGBackend *be, AccountGroup *grp)
+pgendStoreAllTransactions (PGBackend *be, Account *root)
 {
    char *p;
-   ENTER ("be=%p, grp=%p", be, grp);
-   if (!be || !grp) return;
+   ENTER ("be=%p, root=%p", be, root);
+   if (!be || !root) return;
 
    /* lock it up so that we store atomically */
    p = "BEGIN;\n"
@@ -365,8 +363,8 @@
 
    /* Recursively walk transactions. Start by reseting the write 
     * flags. We use this to avoid infinite recursion */
-   xaccGroupBeginStagedTransactionTraversals(grp);
-   xaccGroupStagedTransactionTraversal (grp, 1, trans_traverse_cb, be);
+   gnc_account_tree_begin_staged_transaction_traversals(root);
+   gnc_account_tree_staged_transaction_traversal (root, 1, trans_traverse_cb, be);
 
    p = "COMMIT;\n"
        "NOTIFY gncTransaction;";
@@ -378,7 +376,7 @@
    if ((MODE_POLL == be->session_mode) ||
        (MODE_EVENT == be->session_mode))
    {
-      pgendGroupRecomputeAllCheckpoints(be, grp);
+      pgendAccountTreeRecomputeAllCheckpoints(be, root);
    }
    LEAVE(" ");
 }
@@ -503,8 +501,6 @@
 
             if (acc)
             {
-              int save_state;
-
               if (acc != previous_acc)
               {
                 xaccAccountCommitEdit (previous_acc);
@@ -512,15 +508,7 @@
                 previous_acc = acc;
               }
 
-              if (acc->parent)
-                save_state = acc->parent->saved;
-              else
-                save_state = 1;
-
               xaccAccountInsertSplit(acc, s);
-
-              if (acc->parent)
-                acc->parent->saved = save_state;
             }
 
             /* It's ok to set value without an account, since
@@ -570,21 +558,12 @@
      if (account)
      {
        gnc_numeric amount;
-       int save_state;
        int acct_frac;
 
-       if (account->parent)
-         save_state = account->parent->saved;
-       else
-         save_state = 1;
-
        xaccAccountBeginEdit (account);
        xaccAccountInsertSplit (account, sri->split);
        xaccAccountCommitEdit (account);
 
-       if (account->parent)
-         account->parent->saved = save_state;
-
        acct_frac = xaccAccountGetCommoditySCU (account);
        amount = gnc_numeric_create (sri->amount, acct_frac);
        xaccSplitSetAmount (sri->split, amount);
@@ -1053,19 +1032,6 @@
       pgendTransactionRecomputeCheckpoints (be, trans);
    }
 
-   /* hack alert -- the following code will get rid of that annoying
-    * message from the GUI about saving one's data. However, it doesn't
-    * do the right thing if the connection to the backend was ever lost.
-    * what should happen is the user should get a chance to
-    * resynchronize their data with the backend, before quiting out.
-    */
-   {
-      Split * s = xaccTransGetSplit (trans, 0);
-      Account *acc = xaccSplitGetAccount (s);
-      AccountGroup *top = xaccAccountGetRoot (acc);
-      xaccGroupMarkSaved (top);
-   }
-
    LEAVE ("commited");
    return;
 }

Modified: gnucash/branches/gda-dev/src/backend/postgres/txn.h
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/txn.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/txn.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,7 +36,6 @@
 
 #include <glib.h>
 
-#include "Group.h"
 #include "qof.h"
 #include "Transaction.h"
 
@@ -45,7 +44,7 @@
 int pgendCopyTransactionToEngine (PGBackend *be, const GUID *trans_guid); 
 void pgendCopySplitsToEngine (PGBackend *be, Transaction *trans);
 
-void pgendStoreAllTransactions (PGBackend *be, AccountGroup *grp);
+void pgendStoreAllTransactions (PGBackend *be, Account *root);
 void pgendStoreTransactionNoLock (PGBackend *be, Transaction *trans, gboolean do_check_version);
 
 void pgend_trans_commit_edit (QofBackend * bend, Transaction * trans, Transaction * oldtrans);

Modified: gnucash/branches/gda-dev/src/backend/postgres/txnmass.c
===================================================================
--- gnucash/branches/gda-dev/src/backend/postgres/txnmass.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/backend/postgres/txnmass.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,8 +31,6 @@
 
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "gnc-commodity.h"
 #include "gnc-engine.h"
 #include "Transaction.h"
@@ -215,7 +213,7 @@
 {
    char *p, buff[900];
    GList *node, *xaction_list = NULL;
-   AccountGroup *grp;
+   Account *root;
 
    qof_event_suspend();
    pgendDisable(be);
@@ -233,8 +231,8 @@
    SEND_QUERY (be, buff, );
 
    /* restore the transactions */
-   grp = gnc_book_get_group (book);
-   xaccAccountGroupBeginEdit (grp);
+   root = gnc_book_get_root_account (book);
+   xaccAccountBeginEdit (root);
 
    be->tmp_return = NULL;
    pgendGetResults (be, get_mass_trans_cb, book);
@@ -280,7 +278,7 @@
    }
    g_list_free(xaction_list);
 
-   xaccAccountGroupCommitEdit (grp);
+   xaccAccountCommitEdit (root);
 
    pgendEnable(be);
    qof_event_resume();

Modified: gnucash/branches/gda-dev/src/base-typemaps.i
===================================================================
--- gnucash/branches/gda-dev/src/base-typemaps.i	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/base-typemaps.i	2007-04-07 16:05:40 UTC (rev 15847)
@@ -20,11 +20,17 @@
 typedef int gint;
 typedef int time_t;
 typedef unsigned int guint;
+typedef double gdouble;
 typedef char * URLType;
 typedef char gchar;
 
 %typemap(newfree) gchar * "g_free($1);"
-
+%typemap (out) char * {
+  $result = scm_makfrom0str((const char *)$1);
+  if (!SCM_NFALSEP($result)) {
+    $result = scm_makstr(0, 0);
+  }
+}
 %typemap(in) GNCPrintAmountInfo "$1 = gnc_scm2printinfo($input);"
 %typemap(out) GNCPrintAmountInfo "$result = gnc_printinfo2scm($1);"
 

Modified: gnucash/branches/gda-dev/src/bin/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/bin/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -8,6 +8,7 @@
   -DPKGDATADIR=\"${GNC_SHAREDIR}\" \
   -DGNC_HELPDIR=\"${GNC_HELPDIR}\" \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/core-utils \
   -I${top_srcdir}/src/app-utils \
   -I${top_srcdir}/src/gnome-utils \
@@ -21,11 +22,11 @@
 gnucash_bin_LDADD = ${GUILE_LIBS} ${GLIB_LIBS} ${GNOME_LIBS} ${GTK_LIBS} \
 ${QOF_LIBS} \
 ${top_builddir}/src/engine/libgncmod-engine.la \
-${top_builddir}/src/gnome/libgncgnome.la \
+${top_builddir}/src/gnome/libgnc-gnome.la \
 ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
 ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
-${top_builddir}/src/core-utils/libcore-utils.la \
-${top_builddir}/src/gnc-module/libgncmodule.la
+${top_builddir}/src/core-utils/libgnc-core-utils.la \
+${top_builddir}/src/gnc-module/libgnc-module.la
 
 gnucash: gnucash.in ${top_builddir}/config.status Makefile
 	rm -f $@.tmp
@@ -35,8 +36,7 @@
 	    -e 's#@-GNC_SCM_INSTALL_DIR-@#${GNC_SCM_INSTALL_DIR}#g' \
             -e 's#@-GNC_LIB_INSTALLDIR-@#${libdir}#' \
             -e 's#@-GNC_PKGLIB_INSTALLDIR-@#${pkglibdir}#g' \
-	    -e 's#@-PATH_SEPARATOR-@#${PATH_SEPARATOR}#g' \
-	    -e 's#@-GNC_MODULE_DIR-@#${GNC_MODULE_DIR}#g'
+	    -e 's#@-PATH_SEPARATOR-@#${PATH_SEPARATOR}#g'
 	mv $@.tmp $@
 	chmod u+x $@
 
@@ -48,7 +48,6 @@
 	    -e 's#@-GNC_SCM_INSTALL_DIR-@#${GNC_SCM_INSTALL_DIR}#g' \
             -e 's#@-GNC_LIB_INSTALLDIR-@#${libdir}#' \
             -e 's#@-GNC_PKGLIB_INSTALLDIR-@#${pkglibdir}#g' \
-	    -e 's#@-GNC_MODULE_DIR-@#${GNC_MODULE_DIR}#g' \
 	    -e "s#@-TOP_SRC_DIR-@#`pwd`/${top_srcdir}#g"
 	mv $@.tmp $@
 	chmod u+x $@
@@ -110,3 +109,5 @@
 	    -e 's#@-GCONF_SCHEMA_FILE_DIR-@#${GCONF_SCHEMA_FILE_DIR}#g'
 	mv $@.tmp $@
 	chmod +x $@
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.bin\"

Modified: gnucash/branches/gda-dev/src/bin/gnucash-bin.c
===================================================================
--- gnucash/branches/gda-dev/src/bin/gnucash-bin.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/gnucash-bin.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -20,7 +20,6 @@
  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
  * Boston, MA  02110-1301,  USA       gnu at gnu.org
  */
-
 #include "config.h"
 
 #include <stdlib.h>
@@ -59,6 +58,8 @@
 #  include <locale.h>
 #endif
 
+#define APP_GNUCASH "/apps/gnucash"
+
 /* GNUCASH_SVN is defined whenever we're building from an SVN tree */
 #ifdef GNUCASH_SVN
 static int is_development_version = TRUE;
@@ -67,11 +68,12 @@
 #endif
 
 /* Command-line option variables */
-static int gnucash_show_version;
-static const char *add_quotes_file;
-static int nofile;
-static const char *file_to_load;
-static int loglevel;
+static int gnucash_show_version = 0;
+static const char *add_quotes_file = NULL;
+static int nofile = 0;
+static const char *file_to_load = NULL;
+static gchar **log_flags = NULL;
+static gchar *log_to_filename = NULL;
 
 static void
 gnc_print_unstable_message(void)
@@ -82,7 +84,7 @@
 	    _("This is a development version. It may or may not work.\n"),
 	    _("Report bugs and other problems to gnucash-devel at gnucash.org.\n"),
 	    _("You can also lookup and file bug reports at http://bugzilla.gnome.org\n"),
-	    _("The last stable version was "), "GnuCash 2.0.2",
+	    _("The last stable version was "), "GnuCash 2.0.5",
 	    _("The next stable version will be "), "GnuCash 2.2");
 }
 
@@ -92,18 +94,21 @@
 static char *config_path = PKGSYSCONFDIR;
 static char *share_path = PKGDATADIR;
 static char *help_path = GNC_HELPDIR;
+static char *gconf_path = APP_GNUCASH;
 
 static void
-envt_override()
+environment_override()
 {
-    char *path;
+    const char *path;
     
-    if ((path = getenv("GNC_CONFIG_PATH")))
-        config_path = path;
-    if ((path = getenv("GNC_SHARE_PATH")))
-        share_path = path;
-    if ((path = getenv("GNC_DOC_PATH")))
-        help_path = path;
+    if ((path = g_getenv("GNC_CONFIG_PATH")))
+        config_path = g_strdup(path);
+    if ((path = g_getenv("GNC_SHARE_PATH")))
+        share_path = g_strdup(path);
+    if ((path = g_getenv("GNC_DOC_PATH")))
+        help_path = g_strdup(path);
+    if ((path = g_getenv("GNC_GCONF_PATH")))
+        gconf_path = g_strdup(path);
 }
 
 static gboolean
@@ -195,79 +200,46 @@
 gnucash_command_line(int *argc, char **argv)
 {
     char *p;
-    int debugging = 0;
+    int debugging = 0, extra = 0;
     char *namespace_regexp = NULL;
-#ifndef HAVE_GTK26
-    poptContext pc;
-    int rc;
-    struct poptOption options[] = {
-        POPT_AUTOHELP
-        {"version", 'v', POPT_ARG_NONE, &gnucash_show_version, 1, 
-         _("Show GnuCash version"), NULL},
-        {"debug", '\0', POPT_ARG_NONE, &debugging, 0,
-         _("Enable debugging mode"), NULL},
-        {"loglevel", '\0', POPT_ARG_INT, &loglevel, 0,
-	 /* Translators: This is the command line option autohelp
-	    text; see popt(3) */
-         _("Set the logging level from 0 (least) to 6 (most)"), 
-	 /* Translators: Argument description for autohelp; see popt(3) */
-         _("LOGLEVEL")},
-        {"nofile", '\0', POPT_ARG_NONE, &nofile, 0,
-         _("Do not load the last file opened"), NULL},
-        {"config-path", '\0', POPT_ARG_STRING, &config_path, 0,
-         _("Set configuration path"),
-	 /* Translators: Argument description for autohelp; see popt(3) */
-	 _("CONFIGPATH")},
-        {"share-path", '\0', POPT_ARG_STRING, &share_path, 0,
-         _("Set shared data file search path"),
-	 /* Translators: Argument description for autohelp; see popt(3) */
-	 _("SHAREPATH")},
-        {"doc-path", '\0', POPT_ARG_STRING, &help_path, 0,
-         _("Set the search path for documentation files"),
-	 /* Translators: Argument description for autohelp; see popt(3) */
-	 _("DOCPATH")},
-        {"add-price-quotes", '\0', POPT_ARG_STRING, &add_quotes_file, 0,
-         _("Add price quotes to given GnuCash datafile"),
-	 /* Translators: Argument description for autohelp; see popt(3) */
-	 _("FILE")},
-        {"namespace", '\0', POPT_ARG_STRING, &namespace_regexp, 0, 
-         _("Regular expression determining which namespace commodities will be retrieved"), 
-	 /* Translators: Argument description for autohelp; see popt(3) */
-         _("REGEXP")},
-        POPT_TABLEEND
-    };
-    
-    /* Pretend that argv[0] is "gnucash" */
-    if ((p = strstr(argv[0], "-bin"))) *p = '\0';
-
-    pc = poptGetContext(NULL, *argc, (const char **)argv, options, 0);
-    poptSetOtherOptionHelp(pc, "[OPTIONS...] [datafile]");
-    
-    while ((rc = poptGetNextOpt(pc)) > 0);
-    file_to_load = poptGetArg(pc);
-    poptFreeContext(pc);
-#else
     GError *error = NULL;
     GOptionContext *context;
     GOptionEntry options[] = {
         {"version", 'v', 0, G_OPTION_ARG_NONE, &gnucash_show_version,
          _("Show GnuCash version"), NULL},
+
         {"debug", '\0', 0, G_OPTION_ARG_NONE, &debugging,
-         _("Enable debugging mode"), NULL},
+         _("Enable debugging mode: increasing logging to provide deep detail."), NULL},
+
+        {"extra", '\0', 0, G_OPTION_ARG_NONE, &extra,
+         _("Enable extra/development/debugging features."), NULL},
+
+        {"log", '\0', 0, G_OPTION_ARG_STRING_ARRAY, &log_flags,
+         _("Log level overrides, of the form \"log.ger.path={debug,info,warn,crit,error}\""),
+         NULL},
+
+        {"logto", '\0', 0, G_OPTION_ARG_STRING, &log_to_filename,
+         _("File to log into; defaults to \"/tmp/gnucash.trace\"; can be \"stderr\" or \"stdout\"."),
+         NULL},
+
+#if 0
         {"loglevel", '\0', 0, G_OPTION_ARG_INT, &loglevel,
-	 /* Translators: This is the command line option autohelp
-	    text; see popt(3) */
-         _("Set the logging level from 0 (least) to 6 (most)"), 
+	 /* Translators: This is the command line option autohelp text; see popt(3) */
+        _("Set the logging level from 0 (least) to 6 (most)"), 
 	 /* Translators: Argument description for autohelp; see
 	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
          _("LOGLEVEL")},
+#endif // 0
+
         {"nofile", '\0', 0, G_OPTION_ARG_NONE, &nofile,
          _("Do not load the last file opened"), NULL},
+
         {"config-path", '\0', 0, G_OPTION_ARG_STRING, &config_path,
          _("Set configuration path"),
-	 /* Translators: Argument description for autohelp; see
-	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
-	 _("CONFIGPATH")},
+         /* Translators: Argument description for autohelp; see
+            http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+         _("CONFIGPATH")},
+
         {"share-path", '\0', 0, G_OPTION_ARG_STRING, &share_path,
          _("Set shared data file search path"),
 	 /* Translators: Argument description for autohelp; see
@@ -278,6 +250,11 @@
 	 /* Translators: Argument description for autohelp; see
 	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
 	 _("DOCPATH")},
+        {"gconf-path", '\0', 0, G_OPTION_ARG_STRING, &gconf_path,
+         _("Set the prefix path for gconf queries"),
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+	 _("GCONFPATH")},
         {"add-price-quotes", '\0', 0, G_OPTION_ARG_STRING, &add_quotes_file,
          _("Add price quotes to given GnuCash datafile"),
 	 /* Translators: Argument description for autohelp; see
@@ -297,29 +274,40 @@
     context = g_option_context_new (" [datafile]");
     g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE);
     g_option_context_add_group (context, gtk_get_option_group (FALSE));
-    g_option_context_parse (context, argc, &argv, &error);
+    if (!g_option_context_parse (context, argc, &argv, &error))
+    {
+         g_error("Error parsing command line arguments: [%s]; try `gnucash --help` for available options.", error->message);
+    }
     g_option_context_free (context);
+    if (error)
+         g_error_free(error);
 
     if (*argc > 0)
-      file_to_load = argv[1];
-#endif
+         file_to_load = argv[1];
 
     if (gnucash_show_version) {
         if (is_development_version)
-	  /* Translators: %s is the version number */
-	  g_print(_("GnuCash %s development version"), VERSION);
-	else
-	  /* Translators: %s is the version number */
-	  g_print(_("GnuCash %s"), VERSION);
-	g_print("\n");
-	/* Translators: 1st %s is the build date; 2nd %s is the SVN
-	   revision number */
+        {
+             /* Translators: %s is the version number */
+             g_print(_("GnuCash %s development version"), VERSION);
+        }
+        else
+        {
+             /* Translators: %s is the version number */
+             g_print(_("GnuCash %s"), VERSION);
+        }
+        g_print("\n");
+        /* Translators: 1st %s is the build date; 2nd %s is the SVN
+           revision number */
         g_print(_("Built %s from r%s"), GNUCASH_BUILD_DATE, GNUCASH_SVN_REV);
-	g_print("\n");
+        g_print("\n");
         exit(0);
     }
 
+    gnc_set_extra(extra);
+    gnc_set_gconf_path(gconf_path);
     gnc_set_debugging(debugging);
+
     if (namespace_regexp)
         gnc_main_set_namespace_regexp(namespace_regexp);
 }
@@ -361,14 +349,12 @@
             gnc_module_load(modules[i].name, modules[i].version);
     }
     if (!gnc_engine_is_initialized()) {
-#ifdef G_OS_WIN32
-        g_warning("GnuCash engine indicates it hasn't been initialized correctly. On Windows this mechanism is know not to work. Ignoring for now.\n");
-        /* See more detailed discussion here
-	   https://lists.gnucash.org/pipermail/gnucash-devel/2006-September/018529.html */
-#else
+        /* On Windows this check used to fail anyway, see
+	   https://lists.gnucash.org/pipermail/gnucash-devel/2006-September/018529.html
+	   but more recently it seems to work as expected
+	   again. 2006-12-20, cstim. */
         g_error("GnuCash engine failed to initialize.  Exiting.\n");
         exit(0);
-#endif
     }
 }
 
@@ -439,7 +425,7 @@
     SCM main_mod;
     char* fn;
     GError *error = NULL;
- 
+
     main_mod = scm_c_resolve_module("gnucash main");
     scm_set_current_module(main_mod);
 
@@ -460,10 +446,6 @@
        before booting guile.  */
     gnc_main_gui_init();
 
-    /* set a log level before trying to change it globally */
-    gnc_log_default();
-    qof_log_set_level_registered(loglevel);
-
     gnc_hook_add_dangler(HOOK_UI_SHUTDOWN, (GFunc)gnc_file_quit, NULL);
 
     scm_c_eval_string("(gnc:main)");
@@ -481,8 +463,9 @@
         gnc_file_open_file(fn);
         g_free(fn);
     } 
-    else if (gnc_gconf_get_bool("dialogs/new_user", "first_startup", &error) &&
-             !error) {
+    else if (gnc_gconf_get_bool("dialogs/new_user", "first_startup", &error)
+             && !error)
+    {
         gnc_destroy_splash_screen();
         gnc_ui_new_user_dialog();
     }
@@ -497,11 +480,80 @@
     return;
 }
 
-int main(int argc, char ** argv)
+static void
+gnc_log_init()
 {
+     if (log_to_filename != NULL)
+     {
+          qof_log_init_filename_special(log_to_filename);
+     }
+     else
+     {
+          /* initialize logging to our file. */
+          gchar *tracefilename;
+          tracefilename = g_build_filename(g_get_tmp_dir(), "gnucash.trace",
+                                           (gchar *)NULL);
+          qof_log_init_filename(tracefilename);
+          g_free(tracefilename);
+     }
+
+     // set a reasonable default.
+     qof_log_set_default(QOF_LOG_WARNING);
+
+     gnc_log_default();
+
+     if (gnc_is_debugging())
+     {
+          qof_log_set_level("", QOF_LOG_INFO);
+          qof_log_set_level("qof", QOF_LOG_INFO);
+          qof_log_set_level("gnc", QOF_LOG_INFO);
+     }
+
+     if (log_flags != NULL)
+     {
+          int i = 0;
+          for (; log_flags[i] != NULL; i++)
+          {
+               QofLogLevel level;
+               gchar **parts = NULL;
+               gchar *logger_name = NULL;
+
+               gchar *log_opt = log_flags[i];
+               parts = g_strsplit(log_opt, "=", 2);
+               if (parts == NULL || parts[0] == NULL || parts[1] == NULL)
+               {
+                    g_warning("string [%s] not parseable", log_opt);
+                    continue;
+               }
+
+               logger_name = g_strdup(parts[0]);
+               level = qof_log_level_from_string(parts[1]);
+
+               qof_log_set_level(logger_name, level);
+               g_strfreev(parts);
+          }
+     }
+
+     {
+          gchar *log_config_filename;
+          log_config_filename = gnc_build_dotgnucash_path("log.conf");
+          if (g_file_test(log_config_filename, G_FILE_TEST_EXISTS))
+               qof_log_parse_log_config(log_config_filename);
+          g_free(log_config_filename);
+     }
+ }
+
+int
+main(int argc, char ** argv)
+{
     gchar *localedir;
     GError *binreloc_error = NULL;
 
+#if !defined(G_THREADS_ENABLED) || defined(G_THREADS_IMPL_NONE)
+#    error "No GLib thread implementation available!"
+#endif
+    g_thread_init(NULL);
+
     /* Init binreloc */
     if (!gbr_init (&binreloc_error) ) {
       printf("main: Error on gbr_init: %s\n", binreloc_error->message);
@@ -516,16 +568,21 @@
 #endif
     g_free (localedir);
 
-    gnc_module_system_init();
-    envt_override();
+    qof_log_init();
+    qof_log_set_default(QOF_LOG_INFO);
+ 
+    environment_override();
     gnucash_command_line(&argc, argv);
     gnc_print_unstable_message();
+    gnc_log_init();
 
+    gnc_module_system_init();
+
     if (add_quotes_file) {
         gchar *prefix = gnc_path_get_prefix ();
-	gchar *pkgsysconfdir = gnc_path_get_pkgsysconfdir ();
-	gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
-	gchar *pkglibdir = gnc_path_get_pkglibdir ();
+        gchar *pkgsysconfdir = gnc_path_get_pkgsysconfdir ();
+        gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
+        gchar *pkglibdir = gnc_path_get_pkglibdir ();
         /* This option needs to run without a display, so we can't
            initialize any GUI libraries.  */
         gnome_program_init(
@@ -536,10 +593,10 @@
 	    GNOME_PARAM_APP_DATADIR, pkgdatadir,
 	    GNOME_PARAM_APP_LIBDIR, pkglibdir,
 	    GNOME_PARAM_NONE);
-	g_free (prefix);
-	g_free (pkgsysconfdir);
-	g_free (pkgdatadir);
-	g_free (pkglibdir);
+        g_free (prefix);
+        g_free (pkgsysconfdir);
+        g_free (pkgdatadir);
+        g_free (pkglibdir);
         scm_boot_guile(argc, argv, inner_main_add_price_quotes, 0);
         exit(0);  /* never reached */
     }

Added: gnucash/branches/gda-dev/src/bin/gnucash-strip-svn-datafile.sh
===================================================================
--- gnucash/branches/gda-dev/src/bin/gnucash-strip-svn-datafile.sh	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/gnucash-strip-svn-datafile.sh	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+# This script strips data elements from a gnucash data file that have
+# been introduced in the SVN-trunk version of gnucash, but are not
+# backwards-compatible to older versions of gnucash.
+
+ORIGFILE=$1
+ORIGTMPFILE="${ORIGFILE}.gunzip"
+BKUPFILE="${ORIGFILE}.svn.gz"
+TMPFILE="${ORIGFILE}.tmp"
+
+if [ -f ${ORIGFILE} ] ; then
+
+    # Detect compression
+    in_gzip_format=yes
+    gzip -ql ${ORIGFILE} > /dev/null 2> /dev/null || in_gzip_format=no
+
+    # Uncompress the file
+    if [ "$in_gzip_format" = "yes" ] ; then
+	gunzip -cd ${ORIGFILE} > ${ORIGTMPFILE}
+    else
+	cat ${ORIGFILE} > ${ORIGTMPFILE}
+    fi
+
+    # Remove the elements that are not backwards-compatible
+    grep -v '<sx:enabled>.</sx:enabled>' ${ORIGTMPFILE} > ${TMPFILE}
+
+    # Print result of element removal
+    echo "Removed the following elements:"
+    diff -u ${ORIGTMPFILE} ${TMPFILE}
+    echo "Keeping old data file as \"${BKUPFILE}\""
+
+    # Compress the result again
+    if [ "$in_gzip_format" = "yes" ] ; then
+	gzip -c ${ORIGTMPFILE} > ${BKUPFILE}
+	gzip -c ${TMPFILE} > ${ORIGFILE}
+    else
+	cat ${ORIGTMPFILE} > ${BKUPFILE}
+	cat ${TMPFILE} > ${ORIGFILE}
+    fi
+
+    # Remove temporary files
+    rm ${ORIGTMPFILE}
+    rm ${TMPFILE}
+
+else
+    echo "$0: File $1 not found."
+fi


Property changes on: gnucash/branches/gda-dev/src/bin/gnucash-strip-svn-datafile.sh
___________________________________________________________________
Name: svn:executable
   + *

Modified: gnucash/branches/gda-dev/src/bin/gnucash-valgrind.in
===================================================================
--- gnucash/branches/gda-dev/src/bin/gnucash-valgrind.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/gnucash-valgrind.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,16 +14,14 @@
 
 EXTRA_LIBS="${GNC_MODULE_PATH}"
 EXTRA_LIBS="${EXTRA_LIBS}:@-GNC_LIB_INSTALLDIR-@"
-EXTRA_LIBS="${EXTRA_LIBS}:@-GNC_MODULE_DIR-@"
+EXTRA_LIBS="${EXTRA_LIBS}:@-GNC_PKGLIB_INSTALLDIR-@"
 
 LD_LIBRARY_PATH="${EXTRA_LIBS}:${LD_LIBRARY_PATH}"
-LTDL_LIBRARY_PATH="${EXTRA_LIBS}:${LTDL_LIBRARY_PATH}"
 TOP_SRC_DIR="@-TOP_SRC_DIR-@"
 
 export GNC_MODULE_PATH
 export GUILE_LOAD_PATH
 export LD_LIBRARY_PATH
-export LTDL_LIBRARY_PATH
 
 #
 # Other potentially useful options, particularly for valgrind-2.x:

Modified: gnucash/branches/gda-dev/src/bin/gnucash.in
===================================================================
--- gnucash/branches/gda-dev/src/bin/gnucash.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/gnucash.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,14 +14,14 @@
 
 EXTRA_LIBS="${GNC_MODULE_PATH}"
 EXTRA_LIBS="${EXTRA_LIBS}@-PATH_SEPARATOR-@@-GNC_LIB_INSTALLDIR-@"
-EXTRA_LIBS="${EXTRA_LIBS}@-PATH_SEPARATOR-@@-GNC_MODULE_DIR-@"
+EXTRA_LIBS="${EXTRA_LIBS}@-PATH_SEPARATOR-@@-GNC_PKGLIB_INSTALLDIR-@"
 
 LD_LIBRARY_PATH="${EXTRA_LIBS}@-PATH_SEPARATOR-@${LD_LIBRARY_PATH}"
-LTDL_LIBRARY_PATH="${EXTRA_LIBS}@-PATH_SEPARATOR-@${LTDL_LIBRARY_PATH}"
+DYLD_LIBRARY_PATH="${EXTRA_LIBS}@-PATH_SEPARATOR-@${DYLD_LIBRARY_PATH}"
 
 export GNC_MODULE_PATH
 export GUILE_LOAD_PATH
 export LD_LIBRARY_PATH
-export LTDL_LIBRARY_PATH
+export DYLD_LIBRARY_PATH
 
 exec gnucash-bin "$@"

Modified: gnucash/branches/gda-dev/src/bin/overrides/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/bin/overrides/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/overrides/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,7 +35,6 @@
 	    -e 's#@-GNC_SCM_INSTALL_DIR-@#${GNC_SCM_INSTALL_DIR}#g' \
             -e 's#@-GNC_LIB_INSTALLDIR-@#${libdir}#' \
             -e 's#@-GNC_PKGLIB_INSTALLDIR-@#${pkglibdir}#g' \
-	    -e 's#@-GNC_MODULE_DIR-@#${GNC_MODULE_DIR}#g' \
             -e 's#@-GNC_SCRIPT_OVERRIDE_DIR-@#${gncoverridedir}#g'
 	mv $@.tmp $@
 	chmod u+x $@

Modified: gnucash/branches/gda-dev/src/bin/overrides/gnucash-build-env.in
===================================================================
--- gnucash/branches/gda-dev/src/bin/overrides/gnucash-build-env.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/overrides/gnucash-build-env.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,45 +30,52 @@
 fi
 
 eval `@-GNC_SRCDIR-@/src/gnc-test-env @-GNC_TEST_SRFI_LOAD_CMD-@ \
-  --library-dir ${top_builddir}/src/gnome \
-  --guile-load-dir ${top_builddir}/src/scm \
-  --guile-load-dir ${top_builddir}/lib/guile-www \
-  --guile-load-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
+  --gnc-module-dir ${top_builddir}/src/engine \
+  --gnc-module-dir ${top_builddir}/src/backend/file \
+  --gnc-module-dir ${top_builddir}/src/network-utils \
+  --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/tax/us \
-  --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/app-utils \
+  --gnc-module-dir ${top_builddir}/src/gnome-utils \
   --gnc-module-dir ${top_builddir}/src/gnome-search \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_builddir}/src/app-file \
-  --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/report/stylesheets \
-  --gnc-module-dir ${top_builddir}/src/report/report-gnome \
   --gnc-module-dir ${top_builddir}/src/report/report-system \
+  --gnc-module-dir ${top_builddir}/src/report/standard-reports \
   --gnc-module-dir ${top_builddir}/src/report/utility-reports \
-  --gnc-module-dir ${top_builddir}/src/report/standard-reports \
   --gnc-module-dir ${top_builddir}/src/report/locale-specific/us \
   --gnc-module-dir ${top_builddir}/src/report/report-gnome \
-  --gnc-module-dir ${top_builddir}/src/backend/rpc \
-  --gnc-module-dir ${top_builddir}/src/backend/file \
-  --gnc-module-dir ${top_builddir}/src/backend/postgres \
+  --gnc-module-dir ${top_builddir}/src/report/stylesheets \
+  --gnc-module-dir ${top_builddir}/src/register/register-core \
+  --gnc-module-dir ${top_builddir}/src/register/register-gnome \
+  --gnc-module-dir ${top_builddir}/src/register/ledger-core \
+  --gnc-module-dir ${top_builddir}/src/import-export \
+  --gnc-module-dir ${top_builddir}/src/import-export/qif-import \
+  --gnc-module-dir ${top_builddir}/src/import-export/ofx \
+  --gnc-module-dir ${top_builddir}/src/import-export/hbci \
+  --gnc-module-dir ${top_builddir}/src/import-export/log-replay \
   --gnc-module-dir ${top_builddir}/src/business/business-core \
   --gnc-module-dir ${top_builddir}/src/business/business-core/file \
+  --gnc-module-dir ${top_builddir}/src/business/business-utils \
   --gnc-module-dir ${top_builddir}/src/business/dialog-tax-table \
-  --gnc-module-dir ${top_builddir}/src/business/business-utils \
   --gnc-module-dir ${top_builddir}/src/business/business-ledger \
   --gnc-module-dir ${top_builddir}/src/business/business-gnome \
+  --guile-load-dir ${top_builddir}/src/core-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
+  --guile-load-dir ${top_builddir}/src/scm \
+  --guile-load-dir ${top_builddir}/src/tax/us \
+  --guile-load-dir ${top_builddir}/src/app-utils \
+  --guile-load-dir ${top_builddir}/src/gnome-utils \
+  --guile-load-dir ${top_builddir}/src/report/report-system \
+  --guile-load-dir ${top_builddir}/src/report/standard-reports \
+  --guile-load-dir ${top_builddir}/src/report/utility-reports \
+  --guile-load-dir ${top_builddir}/src/report/locale-specific/us \
+  --guile-load-dir ${top_builddir}/src/report/report-gnome \
+  --guile-load-dir ${top_builddir}/src/report/stylesheets \
+  --guile-load-dir ${top_builddir}/src/import-export/qif-import \
+  --guile-load-dir ${top_builddir}/src/business/business-core \
+  --guile-load-dir ${top_builddir}/src/business/business-utils \
+  --guile-load-dir ${top_builddir}/src/business/dialog-tax-table \
+  --guile-load-dir ${top_builddir}/src/business/business-gnome \
   --guile-load-dir ${top_builddir}/src/business/business-reports \
-  --gnc-module-dir ${top_builddir}/src/import-export \
-  --gnc-module-dir ${top_builddir}/src/import-export/qif-io-core \
-  --gnc-module-dir ${top_builddir}/src/import-export/qif-import \
-  --gnc-module-dir ${top_builddir}/src/import-export/binary-import \
-  --gnc-module-dir ${top_builddir}/src/import-export/ofx \
-  --gnc-module-dir ${top_builddir}/src/import-export/hbci \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/register/ledger-core \
-  --gnc-module-dir ${top_builddir}/src/register/register-gnome \
-  --gnc-module-dir ${top_builddir}/src/register/register-core \
   `
 exec "$@"

Modified: gnucash/branches/gda-dev/src/bin/overrides/gnucash-env.in
===================================================================
--- gnucash/branches/gda-dev/src/bin/overrides/gnucash-env.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/overrides/gnucash-env.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -13,14 +13,14 @@
 
 EXTRA_LIBS="${GNC_MODULE_PATH}"
 EXTRA_LIBS="${EXTRA_LIBS}:@-GNC_LIB_INSTALLDIR-@"
-EXTRA_LIBS="${EXTRA_LIBS}:@-GNC_MODULE_DIR-@"
+EXTRA_LIBS="${EXTRA_LIBS}:@-GNC_PKGLIB_INSTALLDIR-@"
 
 LD_LIBRARY_PATH="${EXTRA_LIBS}:${LD_LIBRARY_PATH}"
-LTDL_LIBRARY_PATH="${EXTRA_LIBS}:${LTDL_LIBRARY_PATH}"
+DYLD_LIBRARY_PATH="${EXTRA_LIBS}:${DYLD_LIBRARY_PATH}"
 
 export GNC_MODULE_PATH
 export GUILE_LOAD_PATH
 export LD_LIBRARY_PATH
-export LTDL_LIBRARY_PATH
+export DYLD_LIBRARY_PATH
 
 exec "$@"

Modified: gnucash/branches/gda-dev/src/bin/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/bin/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/bin/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,6 +2,6 @@
 TESTS = test-version
 
 TESTS_ENVIRONMENT := \
-	PATH="..:${PATH}" LD_LIBRARY_PATH="${top_builddir}/lib/libqof/qof/.libs:${LD_LIBRARY_PATH}"
+	PATH="..:${PATH}"
 
 EXTRA_DIST = test-version

Modified: gnucash/branches/gda-dev/src/business/business-core/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,10 +1,10 @@
 SUBDIRS = . test file
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-business-core.la
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/engine \
   -I${top_srcdir}/src/gnc-module \
   ${GUILE_INCS} \
@@ -14,7 +14,7 @@
 libgncmod_business_core_la_SOURCES = \
   swig-business-core.c \
   gncBusGuile.c \
-  businessmod-core.c \
+  gncmod-business-core.c \
   gncAddress.c \
   gncBillTerm.c \
   gncBusiness.c \
@@ -55,8 +55,10 @@
   gncVendor.h \
   gncVendorP.h
 
+libgncmod_business_core_la_LDFLAGS = -avoid-version
+
 libgncmod_business_core_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${QOF_LIBS} \
   ${GUILE_LIBS} \
@@ -66,7 +68,8 @@
 # business-core-helpers.c
 
 if BUILDING_FROM_SVN
-swig-business-core.c: business-core.i ${noinst_HEADERS}
+swig-business-core.c: business-core.i ${noinst_HEADERS} \
+                      ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -95,3 +98,5 @@
 noinst_DATA = .scm-links
 CLEANFILES = gnucash .scm-links ${SCM_FILE_LINKS}
 MAINTAINERCLEANFILES = swig-business-core.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.business.core\"

Modified: gnucash/branches/gda-dev/src/business/business-core/business-core.scm
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/business-core.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/business-core.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,7 +16,7 @@
        (let ((e (gncOwnerGetEmployee owner)))
 	 (gncEmployeeGetAddr e)))
       ((eqv? type GNC-OWNER-JOB)
-       (gnc:owner-get-address (gnc:job-get-owner
+       (gnc:owner-get-address (gncJobGetOwner
 			       (gncOwnerGetJob owner))))
       (else '()))))
 
@@ -38,7 +38,7 @@
   (let ((type (gncOwnerGetType owner)))
     (cond
       ((eqv? type GNC-OWNER-JOB)
-       (gnc:owner-get-name-dep (gnc:job-get-owner
+       (gnc:owner-get-name-dep (gncJobGetOwner
 				(gncOwnerGetJob owner))))
       (else (just-name (gncOwnerGetName owner))))))
 
@@ -102,7 +102,7 @@
 		       (lot (xaccSplitGetLot split)))
 		  (if (not (null? lot))
 		      (let* ((invoice (gncInvoiceGetInvoiceFromLot lot))
-			     (owner? (gnc:owner-get-owner-from-lot
+			     (owner? (gncOwnerGetOwnerFromLot
 				      lot temp-owner)))
 			(if (not (null? invoice))
 			    (set! owner (gncInvoiceGetOwner invoice))

Deleted: gnucash/branches/gda-dev/src/business/business-core/businessmod-core.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/businessmod-core.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/businessmod-core.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,108 +0,0 @@
-/*********************************************************************
- * businessmod-core.c
- * module definition/initialization for the core Business module
- * 
- * Copyright (c) 2001 Derek Atkins <warlord at MIT.EDU>
- *
- * 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
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- *
- *********************************************************************/
-
-#include "config.h"
-#include <stdio.h>
-#include <glib.h>
-#include <libguile.h>
-
-#include "gnc-module.h"
-#include "gnc-module-api.h"
-
-#include "gncAddressP.h"
-#include "gncBillTermP.h"
-#include "gncCustomerP.h"
-#include "gncEmployeeP.h"
-#include "gncEntryP.h"
-#include "gncInvoiceP.h"
-#include "gncJobP.h"
-#include "gncOrderP.h"
-#include "gncOwnerP.h"
-#include "gncTaxTableP.h"
-#include "gncVendorP.h"
-
-extern SCM scm_init_sw_business_core_module (void);
-
-/* version of the gnc module system interface we require */
-int libgncmod_business_core_LTX_gnc_module_system_interface = 0;
-
-/* module versioning uses libtool semantics. */
-int libgncmod_business_core_LTX_gnc_module_current  = 0;
-int libgncmod_business_core_LTX_gnc_module_revision = 0;
-int libgncmod_business_core_LTX_gnc_module_age      = 0;
-
-/* forward references */
-char *libgncmod_business_core_LTX_gnc_module_path(void);
-char *libgncmod_business_core_LTX_gnc_module_description(void);
-int libgncmod_business_core_LTX_gnc_module_init(int refcount);
-int libgncmod_business_core_LTX_gnc_module_end(int refcount);
-
-char *
-libgncmod_business_core_LTX_gnc_module_path(void) 
-{
-  return g_strdup("gnucash/business-core");
-}
-
-char * 
-libgncmod_business_core_LTX_gnc_module_description(void) 
-{
-  return g_strdup("The GnuCash business core");
-}
-
-int
-libgncmod_business_core_LTX_gnc_module_init(int refcount) 
-{
-  /* load the engine (we depend on it) */
-  if(!gnc_module_load("gnucash/engine", 0)) {
-    return FALSE;
-  }
-
-  if(refcount == 0) 
-  {
-    /* initialize known types */
-    gncInvoiceRegister ();
-    gncJobRegister ();
-    gncBillTermRegister ();
-    gncCustomerRegister ();
-    gncAddressRegister ();
-    gncEmployeeRegister ();
-    gncEntryRegister ();
-    gncOrderRegister ();
-    gncOwnerRegister ();
-    gncTaxTableRegister ();
-    gncVendorRegister ();
-  }
-  
-  scm_init_sw_business_core_module();
-  scm_c_eval_string("(use-modules (sw_business_core))");
-  scm_c_eval_string("(use-modules (gnucash business-core))");
-
-  return TRUE;
-}
-
-int
-libgncmod_business_core_LTX_gnc_module_end(int refcount) {
-  return TRUE;
-}

Modified: gnucash/branches/gda-dev/src/business/business-core/file/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/file/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/file/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,13 +41,13 @@
   gnc-vendor-xml-v2.h \
   xml-helpers.h
 
-libgncmod_business_backend_file_la_LDFLAGS = -module
+libgncmod_business_backend_file_la_LDFLAGS = -module -avoid-version
 
 libgncmod_business_backend_file_la_LIBADD = \
   ${top_builddir}/src/business/business-core/libgncmod-business-core.la \
   ${top_builddir}/src/backend/file/libgnc-backend-file-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${LIBXML2_LIBS} \
   ${QOF_LIBS} \
   ${GLIB_LIBS}

Modified: gnucash/branches/gda-dev/src/business/business-core/file/gnc-invoice-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/file/gnc-invoice-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/file/gnc-invoice-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -191,7 +191,7 @@
   return TRUE;
 }
 
-static inline gboolean
+static gboolean
 invoice_guid_handler (xmlNodePtr node, gpointer invoice_pdata)
 {
     struct invoice_pdata *pdata = invoice_pdata;

Modified: gnucash/branches/gda-dev/src/business/business-core/file/gnc-order-xml-v2.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/file/gnc-order-xml-v2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/file/gnc-order-xml-v2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -137,7 +137,7 @@
   return TRUE;
 }
 
-static inline gboolean
+static gboolean
 order_guid_handler (xmlNodePtr node, gpointer order_pdata)
 {
     struct order_pdata *pdata = order_pdata;

Modified: gnucash/branches/gda-dev/src/business/business-core/file/gncmod-business-backend-file.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/file/gncmod-business-backend-file.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/file/gncmod-business-backend-file.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 /*********************************************************************
  * gncmod-business-backend-file.c
  * module definition/initialization for the file backend module
- * 
+ *
  * Copyright (c) 2002 Derek Atkins <warlord at MIT.EDU>
  *
  * This program is free software; you can redistribute it and/or
@@ -24,8 +24,7 @@
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
@@ -45,38 +44,32 @@
 #include "gnc-vendor-xml-v2.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_business_backend_file_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_business_backend_file_LTX_gnc_module_current  = 0;
-int libgncmod_business_backend_file_LTX_gnc_module_revision = 0;
-int libgncmod_business_backend_file_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
 static GNCModule bus_core;
 static GNCModule file;
 
-/* forward references */
-char *libgncmod_business_backend_file_LTX_gnc_module_path(void);
-char *libgncmod_business_backend_file_LTX_gnc_module_description(void);
-int libgncmod_business_backend_file_LTX_gnc_module_init(int refcount);
-int libgncmod_business_backend_file_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_business_backend_file_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/business-core-file");
 }
 
-char * 
-libgncmod_business_backend_file_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("The XML (v2) parsers for GnuCash business objects");
 }
 
 int
-libgncmod_business_backend_file_LTX_gnc_module_init(int refcount) 
-{  
+gnc_module_init(int refcount)
+{
   if(!gnc_engine_is_initialized()) { return FALSE; }
 
   bus_core = gnc_module_load("gnucash/business-core", 0);
@@ -101,7 +94,7 @@
 }
 
 int
-libgncmod_business_backend_file_LTX_gnc_module_end(int refcount) 
+gnc_module_end(int refcount)
 {
   int unload = TRUE;
 

Modified: gnucash/branches/gda-dev/src/business/business-core/gncAddress.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncAddress.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncAddress.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -254,14 +254,14 @@
   qof_begin_edit (&addr->inst);
 }
 
-static inline void gncAddressOnError (QofInstance *inst, QofBackendError errcode)
+static void gncAddressOnError (QofInstance *inst, QofBackendError errcode)
 {
   PERR("Address QofBackend Failure: %d", errcode);
 }
   
-static inline void gncAddressOnDone (QofInstance *addr) { }
+static void gncAddressOnDone (QofInstance *addr) { }
 
-static inline void address_free (QofInstance *inst)
+static void address_free (QofInstance *inst)
 {
   GncAddress *addr = (GncAddress *) inst;
   gncAddressFree (addr);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncBillTerm.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncBillTerm.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncBillTerm.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -406,13 +406,13 @@
   PERR("BillTerm QofBackend Failure: %d", errcode);
 }
 
-static inline void bill_free (QofInstance *inst)
+static void bill_free (QofInstance *inst)
 {
   GncBillTerm *term = (GncBillTerm *) inst;
   gncBillTermFree(term);
 }
 
-static inline void on_done (QofInstance *inst) {}
+static void on_done (QofInstance *inst) {}
 
 void gncBillTermCommitEdit (GncBillTerm *term)
 {

Modified: gnucash/branches/gda-dev/src/business/business-core/gncCustomer.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncCustomer.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncCustomer.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -365,19 +365,19 @@
   qof_begin_edit (&cust->inst);
 }
 
-static inline void gncCustomerOnError (QofInstance *inst, QofBackendError errcode)
+static void gncCustomerOnError (QofInstance *inst, QofBackendError errcode)
 {
   PERR("Customer QofBackend Failure: %d", errcode);
 }
 
-static inline void gncCustomerOnDone (QofInstance *inst)
+static void gncCustomerOnDone (QofInstance *inst)
 {
   GncCustomer *cust = (GncCustomer *) inst;
   gncAddressClearDirty (cust->addr);
   gncAddressClearDirty (cust->shipaddr);
 }
 
-static inline void cust_free (QofInstance *inst)
+static void cust_free (QofInstance *inst)
 {
   GncCustomer *cust = (GncCustomer *) inst;
   gncCustomerFree (cust);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncEmployee.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncEmployee.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncEmployee.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -344,18 +344,18 @@
   QOF_BEGIN_EDIT (&employee->inst);
 }
 
-static inline void gncEmployeeOnError (QofInstance *employee, QofBackendError errcode)
+static void gncEmployeeOnError (QofInstance *employee, QofBackendError errcode)
 {
   PERR("Employee QofBackend Failure: %d", errcode);
 }
 
-static inline void gncEmployeeOnDone (QofInstance *inst)
+static void gncEmployeeOnDone (QofInstance *inst)
 {
   GncEmployee *employee = (GncEmployee *) inst;
   gncAddressClearDirty (employee->addr);
 }
 
-static inline void emp_free (QofInstance *inst)
+static void emp_free (QofInstance *inst)
 {
   GncEmployee *employee = (GncEmployee *) inst;
   gncEmployeeFree (employee);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncEntry.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncEntry.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncEntry.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1169,14 +1169,14 @@
   QOF_BEGIN_EDIT (&entry->inst);
 }
 
-static inline void gncEntryOnError (QofInstance *entry, QofBackendError errcode)
+static void gncEntryOnError (QofInstance *entry, QofBackendError errcode)
 {
   PERR("Entry QofBackend Failure: %d", errcode);
 }
 
-static inline void gncEntryOnDone (QofInstance *inst) {}
+static void gncEntryOnDone (QofInstance *inst) {}
 
-static inline void entry_free (QofInstance *inst)
+static void entry_free (QofInstance *inst)
 {
   GncEntry *entry = (GncEntry *)inst;
   gncEntryFree (entry);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncInvoice.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncInvoice.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncInvoice.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1262,7 +1262,7 @@
   g_return_val_if_fail (owner->owner.undefined != NULL, NULL);
 
   /* Compute the ancillary data */
-  book = xaccAccountGetBook (posted_acc);
+  book = gnc_account_get_book (posted_acc);
   name = gncOwnerGetName (gncOwnerGetEndOwner (owner));
   commodity = gncOwnerGetCurrency (owner);
   reverse = (gncOwnerGetType (owner) == GNC_OWNER_CUSTOMER);
@@ -1445,14 +1445,14 @@
   QOF_BEGIN_EDIT (&invoice->inst);
 }
 
-static inline void gncInvoiceOnError (QofInstance *inst, QofBackendError errcode)
+static void gncInvoiceOnError (QofInstance *inst, QofBackendError errcode)
 {
   PERR("Invoice QofBackend Failure: %d", errcode);
 }
 
-static inline void gncInvoiceOnDone (QofInstance *invoice) { }
+static void gncInvoiceOnDone (QofInstance *invoice) { }
 
-static inline void invoice_free (QofInstance *inst)
+static void invoice_free (QofInstance *inst)
 {
   GncInvoice *invoice = (GncInvoice *) inst;
   gncInvoiceFree (invoice);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncJob.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncJob.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncJob.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -267,13 +267,13 @@
   PERR("Job QofBackend Failure: %d", errcode);
 }
 
-static inline void job_free (QofInstance *inst)
+static void job_free (QofInstance *inst)
 {
   GncJob *job = (GncJob *)inst;
   gncJobFree (job);
 }
 
-static inline void gncJobOnDone (QofInstance *qof) { }
+static void gncJobOnDone (QofInstance *qof) { }
 
 void gncJobCommitEdit (GncJob *job)
 {

Modified: gnucash/branches/gda-dev/src/business/business-core/gncOrder.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncOrder.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncOrder.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -336,14 +336,14 @@
   qof_begin_edit(&order->inst);
 }
 
-static inline void gncOrderOnError (QofInstance *order, QofBackendError errcode)
+static void gncOrderOnError (QofInstance *order, QofBackendError errcode)
 {
   PERR("Order QofBackend Failure: %d", errcode);
 }
 
-static inline void gncOrderOnDone (QofInstance *order) {}
+static void gncOrderOnDone (QofInstance *order) {}
 
-static inline void order_free (QofInstance *inst)
+static void order_free (QofInstance *inst)
 {
   GncOrder *order = (GncOrder *) inst;
   gncOrderFree (order);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncTaxTable.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncTaxTable.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncTaxTable.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -508,14 +508,14 @@
   QOF_BEGIN_EDIT (&table->inst);
 }
 
-static inline void gncTaxTableOnError (QofInstance *inst, QofBackendError errcode)
+static void gncTaxTableOnError (QofInstance *inst, QofBackendError errcode)
 {
   PERR("TaxTable QofBackend Failure: %d", errcode);
 }
 
-static inline void gncTaxTableOnDone (QofInstance *inst) {}
+static void gncTaxTableOnDone (QofInstance *inst) {}
 
-static inline void table_free (QofInstance *inst)
+static void table_free (QofInstance *inst)
 {
   GncTaxTable *table = (GncTaxTable *) inst;
   gncTaxTableFree (table);

Modified: gnucash/branches/gda-dev/src/business/business-core/gncVendor.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/gncVendor.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/gncVendor.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -422,18 +422,18 @@
   QOF_BEGIN_EDIT (&vendor->inst);
 }
 
-static inline void gncVendorOnError (QofInstance *vendor, QofBackendError errcode)
+static void gncVendorOnError (QofInstance *vendor, QofBackendError errcode)
 {
   PERR("Vendor QofBackend Failure: %d", errcode);
 }
 
-static inline void gncVendorOnDone (QofInstance *inst)
+static void gncVendorOnDone (QofInstance *inst)
 {
   GncVendor *vendor = (GncVendor *) inst;
   gncAddressClearDirty (vendor->addr);
 }
 
-static inline void vendor_free (QofInstance *inst)
+static void vendor_free (QofInstance *inst)
 {
   GncVendor *vendor = (GncVendor *) inst;
   gncVendorFree (vendor);

Copied: gnucash/branches/gda-dev/src/business/business-core/gncmod-business-core.c (from rev 15827, gnucash/branches/gda-dev/src/business/business-core/businessmod-core.c)
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/businessmod-core.c	2007-04-05 03:10:26 UTC (rev 15827)
+++ gnucash/branches/gda-dev/src/business/business-core/gncmod-business-core.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,102 @@
+/*********************************************************************
+ * businessmod-core.c
+ * module definition/initialization for the core Business module
+ *
+ * Copyright (c) 2001 Derek Atkins <warlord at MIT.EDU>
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ *
+ *********************************************************************/
+
+#include "config.h"
+#include <gmodule.h>
+#include <libguile.h>
+
+#include "gnc-module.h"
+#include "gnc-module-api.h"
+
+#include "gncAddressP.h"
+#include "gncBillTermP.h"
+#include "gncCustomerP.h"
+#include "gncEmployeeP.h"
+#include "gncEntryP.h"
+#include "gncInvoiceP.h"
+#include "gncJobP.h"
+#include "gncOrderP.h"
+#include "gncOwnerP.h"
+#include "gncTaxTableP.h"
+#include "gncVendorP.h"
+
+extern SCM scm_init_sw_business_core_module (void);
+
+/* version of the gnc module system interface we require */
+int gnc_module_system_interface = 0;
+
+/* module versioning uses libtool semantics. */
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
+
+
+char *
+gnc_module_path(void)
+{
+  return g_strdup("gnucash/business-core");
+}
+
+char *
+gnc_module_description(void)
+{
+  return g_strdup("The GnuCash business core");
+}
+
+int
+gnc_module_init(int refcount)
+{
+  /* load the engine (we depend on it) */
+  if(!gnc_module_load("gnucash/engine", 0)) {
+    return FALSE;
+  }
+
+  if(refcount == 0)
+  {
+    /* initialize known types */
+    gncInvoiceRegister ();
+    gncJobRegister ();
+    gncBillTermRegister ();
+    gncCustomerRegister ();
+    gncAddressRegister ();
+    gncEmployeeRegister ();
+    gncEntryRegister ();
+    gncOrderRegister ();
+    gncOwnerRegister ();
+    gncTaxTableRegister ();
+    gncVendorRegister ();
+  }
+
+  scm_init_sw_business_core_module();
+  scm_c_eval_string("(use-modules (sw_business_core))");
+  scm_c_eval_string("(use-modules (gnucash business-core))");
+
+  return TRUE;
+}
+
+int
+gnc_module_end(int refcount) {
+  return TRUE;
+}

Modified: gnucash/branches/gda-dev/src/business/business-core/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -10,13 +10,12 @@
   ${GLIB_CFLAGS} 
 
 LDADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/test-core/libgncmod-test.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ../libgncmod-business-core.la \
   ${GLIB_LIBS} \
-  ${QOF_LIBS} \
-  -lltdl
+  ${QOF_LIBS}
 
 TESTS = \
   test-load-module \
@@ -28,18 +27,21 @@
   test-vendor
 
 GNC_TEST_DEPS := \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
   --gnc-module-dir ${top_builddir}/src/business/business-core \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
+  --guile-load-dir ${top_builddir}/src/business/business-core \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --gnc-module-dir ${top_srcdir}/src/engine
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/business/business-core
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-load-module \
   test-business \
   test-address \

Modified: gnucash/branches/gda-dev/src/business/business-core/test/test-customer.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/test/test-customer.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/test/test-customer.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -208,6 +208,7 @@
 int
 main (int argc, char **argv)
 {
+  qof_log_init();
   guid_init ();
   qof_query_init ();
   qof_object_initialize ();

Modified: gnucash/branches/gda-dev/src/business/business-core/test/test-employee.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/test/test-employee.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/test/test-employee.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -217,7 +217,8 @@
 
 int
 main (int argc, char **argv)
-{
+{ 
+  qof_log_init();
   guid_init ();
   qof_query_init ();
   qof_object_initialize ();

Modified: gnucash/branches/gda-dev/src/business/business-core/test/test-job.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/test/test-job.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/test/test-job.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -235,6 +235,7 @@
 int
 main (int argc, char **argv)
 {
+  qof_log_init();
   guid_init ();
   qof_query_init ();
   qof_object_initialize ();

Modified: gnucash/branches/gda-dev/src/business/business-core/test/test-vendor.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-core/test/test-vendor.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-core/test/test-vendor.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -216,6 +216,7 @@
 int
 main (int argc, char **argv)
 {
+  qof_log_init();
   guid_init ();
   qof_query_init ();
   qof_object_initialize ();

Modified: gnucash/branches/gda-dev/src/business/business-gnome/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,10 +1,10 @@
 SUBDIRS = . glade schemas ui
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-business-gnome.la
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/core-utils \
   -I${top_srcdir}/src/engine \
   -I${top_srcdir}/src/gnc-module \
@@ -16,7 +16,6 @@
   -I${top_srcdir}/src/business/business-core \
   -I${top_srcdir}/src/business/business-ledger \
   -I${top_srcdir}/src/business/dialog-tax-table \
-  ${GNOME_PRINT_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${GLADE_CFLAGS} \
   ${GTKHTML_CFLAGS} \
@@ -29,7 +28,6 @@
   -I${top_srcdir}/src/register/ledger-core
 
 libgncmod_business_gnome_la_SOURCES = \
-  businessmod-gnome.c \
   business-options-gnome.c \
   business-urls.c \
   business-gnome-utils.c \
@@ -45,6 +43,7 @@
   dialog-vendor.c \
   gnc-plugin-business.c \
   gnc-plugin-page-invoice.c \
+  gncmod-business-gnome.c \
   search-owner.c
 
 noinst_HEADERS = \
@@ -65,6 +64,8 @@
   gnc-plugin-page-invoice.h \
   search-owner.h
 
+libgncmod_business_gnome_la_LDFLAGS = -avoid-version
+
 libgncmod_business_gnome_la_LIBADD = \
   ${top_builddir}/src/business/business-core/libgncmod-business-core.la \
   ${top_builddir}/src/business/business-ledger/libgnc-business-ledger.la \
@@ -76,8 +77,8 @@
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GLADE_LIBS} \
   ${GNOME_LIBS} \
   ${GUILE_LIBS} \
@@ -115,3 +116,5 @@
 
 noinst_DATA = .scm-links
 CLEANFILES = $(BUILT_SOURCES) gnucash .scm-links ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.business.gnome\"

Modified: gnucash/branches/gda-dev/src/business/business-gnome/business-gnome-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/business-gnome-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/business-gnome-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,6 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 
-#include "Group.h"
 #include "Account.h"
 #include "gnc-ui-util.h"
 #include "qof.h"
@@ -318,7 +317,7 @@
   /* Figure out if anything is set in the combo */
   text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(combo));
 
-  list = xaccGroupGetSubAccounts (gnc_book_get_group (book));
+  list = gnc_account_get_descendants (gnc_book_get_root_account (book));
 
   /* Clear the existing list */
   entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(combo)));

Deleted: gnucash/branches/gda-dev/src/business/business-gnome/businessmod-gnome.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/businessmod-gnome.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/businessmod-gnome.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,149 +0,0 @@
-/*********************************************************************
- * businessmod-core.c
- * module definition/initialization for the Business GNOME UI module
- * 
- * Copyright (c) 2001 Derek Atkins <warlord at MIT.EDU>
- *
- * 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
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
- * Boston, MA  02110-1301,  USA       gnu at gnu.org
- *
- *********************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
-#include <stdio.h>
-#include <libguile.h>
-
-#include "gnc-hooks.h"
-#include "gnc-module.h"
-#include "gnc-module-api.h"
-
-#include "search-core-type.h"
-#include "search-owner.h"
-#include "gncOwner.h"
-#include "business-options-gnome.h"
-#include "business-urls.h"
-
-#include "gnc-plugin-manager.h"
-#include "gnc-plugin-business.h"
-
-#include "gnc-hooks.h"
-#include "dialog-invoice.h"
-#include "dialog-preferences.h"
-
-/* version of the gnc module system interface we require */
-int libgncmod_business_gnome_LTX_gnc_module_system_interface = 0;
-
-/* module versioning uses libtool semantics. */
-int libgncmod_business_gnome_LTX_gnc_module_current  = 0;
-int libgncmod_business_gnome_LTX_gnc_module_revision = 0;
-int libgncmod_business_gnome_LTX_gnc_module_age      = 0;
-
-/* forward references */
-char *libgncmod_business_gnome_LTX_gnc_module_path(void);
-char *libgncmod_business_gnome_LTX_gnc_module_description(void);
-int libgncmod_business_gnome_LTX_gnc_module_init(int refcount);
-int libgncmod_business_gnome_LTX_gnc_module_end(int refcount);
-
-
-char *
-libgncmod_business_gnome_LTX_gnc_module_path(void) 
-{
-  return g_strdup("gnucash/business-gnome");
-}
-
-char * 
-libgncmod_business_gnome_LTX_gnc_module_description(void) 
-{
-  return g_strdup("The GnuCash business module GNOME UI");
-}
-
-int
-libgncmod_business_gnome_LTX_gnc_module_init(int refcount) 
-{
-  /* load business-core: we depend on it -- and it depends on the engine */
-  if (!gnc_module_load ("gnucash/business-core", 0)) {
-    return FALSE;
-  }
-  /* We also depend on app-utils, gnome-utils, and gnome-search modules */
-  if (!gnc_module_load ("gnucash/app-utils", 0)) {
-    return FALSE;
-  }
-  if (!gnc_module_load ("gnucash/gnome-utils", 0)) {
-    return FALSE;
-  }
-  if (!gnc_module_load ("gnucash/gnome-search", 0)) {
-    return FALSE;
-  }
-  if (!gnc_module_load ("gnucash/report/report-gnome", 0)) {
-    return FALSE;
-  }
-  //  if (!gnc_module_load ("gnucash/report/standard-reports", 0)) {
-  //    return FALSE;
-  //  }
-
-  scm_c_eval_string("(use-modules (gnucash business-gnome))");
-  scm_c_eval_string("(use-modules (gnucash report business-reports))");
-
-  // temp code until gnc:url-type is wrapped
-  /*
-  {
-      SCM wct_gnc_url_type = scm_c_eval_string("<gnc:url-type>");
-      SCM tmp;
-
-      tmp = gw_wcp_assimilate_ptr(GNC_CUSTOMER_MODULE_NAME, wct_gnc_url_type);
-      scm_c_define("gnc:url-type-customer", tmp);
-      tmp = gw_wcp_assimilate_ptr(GNC_VENDOR_MODULE_NAME, wct_gnc_url_type);
-      scm_c_define("gnc:url-type-vendor", tmp);
-      tmp = gw_wcp_assimilate_ptr(GNC_EMPLOYEE_MODULE_NAME, wct_gnc_url_type);
-      scm_c_define("gnc:url-type-employee", tmp);
-      tmp = gw_wcp_assimilate_ptr(GNC_INVOICE_MODULE_NAME, wct_gnc_url_type);
-      scm_c_define("gnc:url-type-invoice", tmp);
-      tmp = gw_wcp_assimilate_ptr(URL_TYPE_OWNERREPORT, wct_gnc_url_type);
-      scm_c_define("gnc:url-type-ownerreport", tmp);
-  }
-  */
-
-  if (refcount == 0) {
-    /* Register the Owner search type */
-    gnc_search_core_register_type (GNC_OWNER_MODULE_NAME,
-				   (GNCSearchCoreNew) gnc_search_owner_new);
-    gnc_business_urls_initialize ();
-    gnc_business_options_gnome_initialize ();
-
-    gnc_plugin_manager_add_plugin (gnc_plugin_manager_get (),
-				   gnc_plugin_business_new ());
-
-    gnc_hook_add_dangler(HOOK_BOOK_OPENED,
-			 (GFunc)gnc_invoice_remind_bills_due_cb, NULL);
-
-    gnc_preferences_add_page("businessprefs.glade", "business_prefs",
-			     _("Business"));
-  }
-
-  return TRUE;
-}
-
-int
-libgncmod_business_gnome_LTX_gnc_module_end(int refcount) {
-  return TRUE;
-}
-

Modified: gnucash/branches/gda-dev/src/business/business-gnome/dialog-invoice.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/dialog-invoice.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/dialog-invoice.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -53,10 +53,6 @@
 
 #include "gncEntryLedger.h"
 
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
-
 #include "gnc-plugin-page.h"
 #include "gnc-general-search.h"
 #include "dialog-date-close.h"
@@ -1680,10 +1676,10 @@
   return iw;
 }
 
-#define KEY_INVOICE_TYPE	"Invoice Type"
-#define KEY_INVOICE_GUID	"Invoice GUID"
-#define KEY_OWNER_TYPE		"Owner Type"
-#define KEY_OWNER_GUID		"Owner GUID"
+#define KEY_INVOICE_TYPE        "InvoiceType"
+#define KEY_INVOICE_GUID        "InvoiceGUID"
+#define KEY_OWNER_TYPE          "OwnerType"
+#define KEY_OWNER_GUID          "OwnerGUID"
 
 GncPluginPage *
 gnc_invoice_recreate_page (GKeyFile *key_file,
@@ -2279,7 +2275,7 @@
   }
   if (emp_params == NULL) {
     emp_params = gnc_search_param_prepend (emp_params,
-					   _("Voucher Owner"), type,
+					   _("Voucher Owner"), NULL, type,
 					   INVOICE_OWNER, NULL);
     emp_params = gnc_search_param_prepend (emp_params,
 					   _("Voucher Notes"), NULL, type,

Modified: gnucash/branches/gda-dev/src/business/business-gnome/dialog-payment.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/dialog-payment.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/dialog-payment.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -255,7 +255,7 @@
     return;
   }
 
-  post = xaccGetAccountFromFullName (gnc_book_get_group (pw->book), text);
+  post = gnc_account_lookup_by_full_name (gnc_book_get_root_account (pw->book), text);
 
   if (!post) {
     char *msg = g_strdup_printf (

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/billterms.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/billterms.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/billterms.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="billterms_window_destroy_cb" last_modification_time="Mon, 08 Sep 2003 02:00:27 GMT"/>
 
@@ -78,6 +79,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -115,6 +120,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">True</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -217,6 +224,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -267,6 +278,10 @@
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
 			      <property name="mnemonic_widget">desc_entry</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">0</property>
@@ -291,6 +306,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">0</property>
@@ -338,6 +357,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -441,6 +464,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -576,6 +600,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -600,6 +628,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -624,6 +656,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -661,6 +697,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">name_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -700,6 +740,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">desc_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -739,6 +783,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">type_combobox</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -757,6 +805,7 @@
 	      <property name="visible">True</property>
 	      <property name="items" translatable="yes">Days
 Proximo</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	      <signal name="changed" handler="billterms_type_combobox_changed" last_modification_time="Tue, 06 Jun 2006 01:17:37 GMT"/>
 	    </widget>
@@ -793,6 +842,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -864,6 +914,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -901,6 +955,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">desc_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -963,6 +1021,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">type_combobox</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -981,6 +1043,7 @@
 	      <property name="visible">True</property>
 	      <property name="items" translatable="yes">Days
 Proximo</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	      <signal name="changed" handler="billterms_type_combobox_changed" last_modification_time="Tue, 06 Jun 2006 01:17:37 GMT"/>
 	    </widget>
@@ -1035,6 +1098,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkNotebook" id="term_notebook">
@@ -1076,6 +1140,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1097,6 +1165,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1118,6 +1190,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1232,6 +1308,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="type">tab</property>
@@ -1269,6 +1349,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1290,6 +1374,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1311,6 +1399,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1332,6 +1424,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1466,6 +1562,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="type">tab</property>
@@ -1489,6 +1589,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/businessprefs.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/businessprefs.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/businessprefs.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkTable" id="business_prefs">
@@ -40,6 +41,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -64,6 +69,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -136,6 +145,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">gconf/dialogs/business/bill/days_in_advance</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">2</property>
@@ -184,6 +197,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -208,6 +225,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -281,6 +302,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">gconf/dialogs/business/invoice/number_of_rows</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">2</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/choose-owner.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/choose-owner.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/choose-owner.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -72,7 +73,7 @@
 	  <child>
 	    <widget class="GtkLabel" id="title_label">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="no">(docs)</property>
+	      <property name="label">(docs)</property>
 	      <property name="use_underline">False</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -82,6 +83,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -126,6 +131,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -137,7 +146,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="owner_label">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="no">(owner)</property>
+		      <property name="label">(owner)</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -147,6 +156,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -171,7 +184,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="desc_label">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="no">(desc)</property>
+		      <property name="label">(desc)</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -181,6 +194,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/customer.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/customer.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/customer.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_customer_window_destroy_cb" last_modification_time="Sat, 19 Jul 2003 22:41:20 GMT"/>
 
@@ -131,6 +132,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -152,6 +157,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -202,7 +211,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			      <signal name="changed" handler="gnc_customer_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:39:38 GMT"/>
 			    </widget>
@@ -223,7 +232,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			      <signal name="changed" handler="gnc_customer_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:39:57 GMT"/>
 			    </widget>
@@ -247,6 +256,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -277,6 +290,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -324,6 +341,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -345,6 +366,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -366,6 +391,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -387,6 +416,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -408,6 +441,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -429,6 +466,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -450,6 +491,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -471,6 +516,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -502,7 +551,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -521,7 +570,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -540,7 +589,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -559,7 +608,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -578,7 +627,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -597,7 +646,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -616,7 +665,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -635,7 +684,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -667,6 +716,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -732,6 +785,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -764,6 +821,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -809,6 +870,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -830,6 +895,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -851,6 +920,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -872,6 +945,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -893,6 +970,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -914,6 +995,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -966,7 +1051,7 @@
 				  <child>
 				    <widget class="GtkMenuItem" id="convertwidget4">
 				      <property name="visible">True</property>
-				      <property name="label" translatable="no">(terms)</property>
+				      <property name="label">(terms)</property>
 				      <property name="use_underline">True</property>
 				    </widget>
 				  </child>
@@ -1027,7 +1112,7 @@
 				  <child>
 				    <widget class="GtkMenuItem" id="convertwidget6">
 				      <property name="visible">True</property>
-				      <property name="label" translatable="no">(taxincluded)</property>
+				      <property name="label">(taxincluded)</property>
 				      <property name="use_underline">True</property>
 				    </widget>
 				  </child>
@@ -1082,7 +1167,7 @@
 				      <child>
 					<widget class="GtkMenuItem" id="convertwidget8">
 					  <property name="visible">True</property>
-					  <property name="label" translatable="no">(taxtables)</property>
+					  <property name="label">(taxtables)</property>
 					  <property name="use_underline">True</property>
 					</widget>
 				      </child>
@@ -1125,6 +1210,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -1161,6 +1250,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1207,6 +1300,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1228,6 +1325,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1249,6 +1350,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1270,6 +1375,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1291,6 +1400,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1312,6 +1425,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1333,6 +1450,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1354,6 +1475,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1385,7 +1510,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1404,7 +1529,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1423,7 +1548,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1442,7 +1567,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1461,7 +1586,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1480,7 +1605,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1499,7 +1624,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1518,7 +1643,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -1550,6 +1675,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -1590,6 +1719,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/date-close.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/date-close.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/date-close.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -110,6 +111,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -131,6 +136,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">3</property>
@@ -169,6 +178,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -207,6 +220,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -300,6 +314,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -327,6 +345,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -348,6 +370,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -369,6 +395,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -390,6 +420,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -411,6 +445,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -475,7 +513,7 @@
 		      <property name="max_length">0</property>
 		      <property name="text" translatable="yes"></property>
 		      <property name="has_frame">True</property>
-		      <property name="invisible_char" translatable="yes">*</property>
+		      <property name="invisible_char">*</property>
 		      <property name="activates_default">False</property>
 		    </widget>
 		    <packing>
@@ -541,6 +579,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/employee.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/employee.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/employee.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_employee_window_destroy_cb" last_modification_time="Sat, 19 Jul 2003 22:48:49 GMT"/>
 
@@ -131,6 +132,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -152,6 +157,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -202,7 +211,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			      <signal name="changed" handler="gnc_employee_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:49:16 GMT"/>
 			    </widget>
@@ -223,7 +232,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			      <signal name="changed" handler="gnc_employee_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:49:28 GMT"/>
 			    </widget>
@@ -247,6 +256,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -277,6 +290,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -324,6 +341,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -345,6 +366,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -366,6 +391,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -387,6 +416,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -408,6 +441,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -429,6 +466,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -450,6 +491,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -471,6 +516,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -502,7 +551,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -521,7 +570,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -540,7 +589,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -559,7 +608,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -578,7 +627,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -597,7 +646,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -616,7 +665,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -635,7 +684,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -667,6 +716,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -714,6 +767,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -731,7 +788,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -763,6 +820,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -810,6 +871,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -861,6 +926,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -912,6 +981,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -963,6 +1036,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1030,6 +1107,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -1062,6 +1143,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1107,6 +1192,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -1139,6 +1228,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/invoice.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/invoice.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/invoice.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_invoice_window_destroy_cb" last_modification_time="Sat, 19 Jul 2003 22:55:50 GMT"/>
 
@@ -120,6 +121,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -141,6 +146,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -174,7 +183,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">True</property>
 			  <signal name="changed" handler="gnc_invoice_id_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:56:07 GMT"/>
 			</widget>
@@ -224,6 +233,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -261,7 +274,7 @@
 		      <child>
 			<widget class="GtkLabel" id="owner_label">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="no">(owner)</property>
+			  <property name="label">(owner)</property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_RIGHT</property>
@@ -271,6 +284,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -292,6 +309,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -313,6 +334,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -334,6 +359,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -399,7 +428,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -422,7 +451,7 @@
 			      <child>
 				<widget class="GtkMenuItem" id="convertwidget2">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="no">(terms)</property>
+				  <property name="label">(terms)</property>
 				  <property name="use_underline">True</property>
 				</widget>
 			      </child>
@@ -458,6 +487,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -505,6 +538,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -526,6 +563,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -604,6 +645,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -669,6 +714,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -705,6 +754,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="invoice_entry_vbox">
@@ -750,6 +800,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -771,6 +825,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -792,6 +850,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -813,6 +875,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -834,6 +900,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -855,6 +925,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -885,7 +959,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -938,7 +1012,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -981,6 +1055,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1011,6 +1089,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -1056,6 +1138,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1077,6 +1163,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1098,6 +1188,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1119,6 +1213,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1140,6 +1238,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1204,7 +1306,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -1228,7 +1330,7 @@
 			      <child>
 				<widget class="GtkMenuItem" id="convertwidget8">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="no">(terms)</property>
+				  <property name="label">(terms)</property>
 				  <property name="use_underline">True</property>
 				</widget>
 			      </child>
@@ -1255,6 +1357,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1285,6 +1391,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -1349,6 +1459,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -1396,6 +1510,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1434,6 +1552,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1474,6 +1596,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">label_item</property>
@@ -1513,6 +1639,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1553,6 +1683,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">label_item</property>
@@ -1590,6 +1724,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">label_item</property>
@@ -1619,6 +1757,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1707,6 +1846,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">5</property>
@@ -1792,6 +1935,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/job.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/job.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/job.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_job_window_destroy_cb" last_modification_time="Sat, 19 Jul 2003 23:00:18 GMT"/>
 
@@ -121,6 +122,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -142,6 +147,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -174,7 +183,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">True</property>
 			  <signal name="changed" handler="gnc_job_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:58:48 GMT"/>
 			</widget>
@@ -195,7 +204,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">True</property>
 			  <signal name="changed" handler="gnc_job_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 22:58:36 GMT"/>
 			</widget>
@@ -228,6 +237,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -266,7 +279,7 @@
 		      <child>
 			<widget class="GtkLabel" id="owner_label">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="no">(owner)</property>
+			  <property name="label">(owner)</property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_RIGHT</property>
@@ -276,6 +289,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -297,6 +314,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -345,7 +366,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -377,6 +398,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -425,6 +450,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/order.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/order.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/order.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_order_window_destroy_cb" last_modification_time="Mon, 08 Sep 2003 01:36:38 GMT"/>
 
@@ -142,6 +143,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -163,6 +168,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -184,6 +193,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -205,6 +218,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -236,7 +253,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -316,6 +333,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -353,7 +374,7 @@
 			  <child>
 			    <widget class="GtkLabel" id="owner_label">
 			      <property name="visible">True</property>
-			      <property name="label" translatable="no">(owner)</property>
+			      <property name="label">(owner)</property>
 			      <property name="use_underline">False</property>
 			      <property name="use_markup">False</property>
 			      <property name="justify">GTK_JUSTIFY_RIGHT</property>
@@ -363,6 +384,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -384,6 +409,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -405,6 +434,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -426,6 +459,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -474,7 +511,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">False</property>
 			    </widget>
 			    <packing>
@@ -497,6 +534,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -518,6 +559,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -548,6 +593,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -612,6 +661,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -669,6 +722,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -705,6 +762,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_order_window_destroy_cb" last_modification_time="Sat, 19 Jul 2003 23:05:37 GMT"/>
 
@@ -810,6 +868,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -831,6 +893,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -863,7 +929,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">True</property>
 			</widget>
 			<packing>
@@ -909,6 +975,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -956,6 +1026,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -977,6 +1051,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1025,7 +1103,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="invisible_char">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -1057,6 +1135,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -1122,6 +1204,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/payment.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/payment.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/payment.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_payment_window_destroy_cb" last_modification_time="Mon, 08 Sep 2003 02:39:12 GMT"/>
 
@@ -105,6 +106,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -126,6 +131,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -147,6 +156,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -168,6 +181,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -189,6 +206,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -210,6 +231,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -360,6 +385,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -368,8 +397,8 @@
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
 	    </packing>
 	  </child>
 
@@ -384,6 +413,7 @@
 		<widget class="GtkComboBoxEntry" id="post_combo">
 		  <property name="visible">True</property>
 		  <property name="items">Dummy Entry</property>
+		  <property name="add_tearoffs">False</property>
 		  <property name="has_frame">True</property>
 		  <property name="focus_on_click">True</property>
 		</widget>
@@ -402,6 +432,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -410,8 +444,8 @@
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
 	    </packing>
 	  </child>
 
@@ -450,6 +484,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/glade/vendor.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/glade/vendor.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/glade/vendor.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="gnc_vendor_window_destroy_cb" last_modification_time="Sat, 19 Jul 2003 23:15:46 GMT"/>
 
@@ -132,6 +133,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -153,6 +158,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -203,7 +212,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			      <signal name="changed" handler="gnc_vendor_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 23:16:23 GMT"/>
 			    </widget>
@@ -224,7 +233,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			      <signal name="changed" handler="gnc_vendor_name_changed_cb" last_modification_time="Sat, 19 Jul 2003 23:16:07 GMT"/>
 			    </widget>
@@ -248,6 +257,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -278,6 +291,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -325,6 +342,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -346,6 +367,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -367,6 +392,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -388,6 +417,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -409,6 +442,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -430,6 +467,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -451,6 +492,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -472,6 +517,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -503,7 +552,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -522,7 +571,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -541,7 +590,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -560,7 +609,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -579,7 +628,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -598,7 +647,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -617,7 +666,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -636,7 +685,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="invisible_char">*</property>
 			      <property name="activates_default">True</property>
 			    </widget>
 			    <packing>
@@ -668,6 +717,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -733,6 +786,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -765,6 +822,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -810,6 +871,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -831,6 +896,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -852,6 +921,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -873,6 +946,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -925,7 +1002,7 @@
 				  <child>
 				    <widget class="GtkMenuItem" id="convertwidget4">
 				      <property name="visible">True</property>
-				      <property name="label" translatable="no">(terms)</property>
+				      <property name="label">(terms)</property>
 				      <property name="use_underline">True</property>
 				    </widget>
 				  </child>
@@ -952,7 +1029,7 @@
 				  <child>
 				    <widget class="GtkMenuItem" id="convertwidget6">
 				      <property name="visible">True</property>
-				      <property name="label" translatable="no">(taxincluded)</property>
+				      <property name="label">(taxincluded)</property>
 				      <property name="use_underline">True</property>
 				    </widget>
 				  </child>
@@ -1007,7 +1084,7 @@
 				      <child>
 					<widget class="GtkMenuItem" id="convertwidget8">
 					  <property name="visible">True</property>
-					  <property name="label" translatable="no">(taxtables)</property>
+					  <property name="label">(taxtables)</property>
 					  <property name="use_underline">True</property>
 					</widget>
 				      </child>
@@ -1050,6 +1127,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -1086,6 +1167,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-business.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-business.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-business.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -722,7 +722,7 @@
 	chart_session = qof_session_new();
 	success = FALSE;
 	filename = gnc_file_dialog(_("Export Invoices to XML"), NULL, 
-			"/tmp/qsf-invoices.xml", GNC_FILE_DIALOG_EXPORT);
+			NULL, GNC_FILE_DIALOG_EXPORT);
 	if (filename)
 	{
 		qof_session_begin(chart_session, filename, TRUE, TRUE);
@@ -757,7 +757,7 @@
 	chart_session = qof_session_new();
 	success = FALSE;
 	filename = gnc_file_dialog(_("Export Customers to XML"), NULL, 
-			"/tmp/qsf-customers.xml", GNC_FILE_DIALOG_EXPORT);
+			NULL, GNC_FILE_DIALOG_EXPORT);
 	if (filename)
 	{
 		qof_session_begin(chart_session, filename, TRUE, TRUE);
@@ -789,7 +789,7 @@
 	chart_session = qof_session_new();
 	success = FALSE;
 	filename = gnc_file_dialog(_("Export Vendors to XML"), NULL, 
-			"/tmp/qsf-vendors.xml", GNC_FILE_DIALOG_EXPORT);
+			NULL, GNC_FILE_DIALOG_EXPORT);
 	if (filename)
 	{
 		qof_session_begin(chart_session, filename, TRUE, TRUE);
@@ -821,7 +821,7 @@
 	chart_session = qof_session_new();
 	success = FALSE;
 	filename = gnc_file_dialog(_("Export Employees to XML"), NULL, 
-			"/tmp/qsf-employee.xml", GNC_FILE_DIALOG_EXPORT);
+			NULL, GNC_FILE_DIALOG_EXPORT);
 	if (filename)
 	{
 		qof_session_begin(chart_session, filename, TRUE, TRUE);
@@ -886,7 +886,7 @@
 	GncInvoice *invoice	= gncInvoiceCreate(book);
 	GncOwner *owner		= gncOwnerCreate();
 	GncJob *job		= gncJobCreate(book);
-	AccountGroup *group	= xaccGetAccountGroup(book);
+	Account *root		= gnc_book_get_root_account(book);
 	Account *inc_acct	= xaccMallocAccount(book);
 	Account *bank_acct	= xaccMallocAccount(book);
 	Account *tax_acct	= xaccMallocAccount(book);
@@ -925,25 +925,25 @@
 	xaccAccountSetType(ar_acct, ACCT_TYPE_RECEIVABLE);
 	xaccAccountSetName(ar_acct, "A/R");
 	xaccAccountSetCommodity(ar_acct, gnc_default_currency());
-	xaccGroupInsertAccount(group, ar_acct);
+	gnc_account_append_child(root, ar_acct);
 
 	// Create the Income account
 	xaccAccountSetType(inc_acct, ACCT_TYPE_INCOME);
 	xaccAccountSetName(inc_acct, "Income");
 	xaccAccountSetCommodity(inc_acct, gnc_default_currency());
-	xaccGroupInsertAccount(group, inc_acct);
+	gnc_account_append_child(root, inc_acct);
 
 	// Create the Bank account
 	xaccAccountSetType(bank_acct, ACCT_TYPE_BANK);
 	xaccAccountSetName(bank_acct, "Bank");
 	xaccAccountSetCommodity(bank_acct, gnc_default_currency());
-	xaccGroupInsertAccount(group, bank_acct);
+	gnc_account_append_child(root, bank_acct);
 
 	// Create the Tax account
 	xaccAccountSetType(tax_acct, ACCT_TYPE_LIABILITY);
 	xaccAccountSetName(tax_acct, "Tax-Holding");
 	xaccAccountSetCommodity(tax_acct, gnc_default_currency());
-	xaccGroupInsertAccount(group, tax_acct);
+	gnc_account_append_child(root, tax_acct);
 
 	// Launch the invoice editor
 	gnc_ui_invoice_edit(invoice);

Modified: gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-page-invoice.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-page-invoice.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/gnc-plugin-page-invoice.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -384,7 +384,10 @@
 	page = GNC_PLUGIN_PAGE_INVOICE (plugin_page);
 	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
 	if (priv->widget != NULL)
+    {
+        LEAVE("");
 		return priv->widget;
+    }
 
 	priv->widget = gtk_vbox_new (FALSE, 0);
 	gtk_widget_show (priv->widget);
@@ -407,6 +410,7 @@
 				     gnc_plugin_page_invoice_refresh_cb,
 				     NULL, page);
 
+    LEAVE("");
 	return priv->widget;
 }
 
@@ -421,7 +425,10 @@
 	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
 
 	if (priv->widget == NULL)
+    {
+        LEAVE("");
 		return;
+    }
 
 	if (priv->component_manager_id) {
 	  gnc_unregister_gui_component(priv->component_manager_id);
@@ -431,6 +438,7 @@
 	gtk_widget_hide(priv->widget);
 	gnc_invoice_window_destroy_cb(priv->widget, priv->iw);
 	priv->widget = NULL;
+    LEAVE("");
 }
 
 /** Save enough information about this invoice page that it can be
@@ -460,7 +468,7 @@
 	invoice = GNC_PLUGIN_PAGE_INVOICE(plugin_page);
 	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(invoice);
 
-        gnc_invoice_save_page(priv->iw, key_file, group_name);
+    gnc_invoice_save_page(priv->iw, key_file, group_name);
 	LEAVE(" ");
 }
 
@@ -487,7 +495,7 @@
 	ENTER("key_file %p, group_name %s", key_file, group_name);
 
 	/* Create the new page. */
-        page = gnc_invoice_recreate_page(key_file, group_name);
+    page = gnc_invoice_recreate_page(key_file, group_name);
 
 	LEAVE(" ");
 	return page;
@@ -534,7 +542,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_ui_new_account_window (NULL);
+  gnc_ui_new_account_window (gnc_get_current_book(), NULL);
   LEAVE(" ");
 }
 
@@ -645,12 +653,15 @@
   invoice_sort_type_t value;
 
   ENTER("(action %p, radio action %p, plugin_page %p)",
-	action, current, plugin_page);
+        action, current, plugin_page);
+  LEAVE("g_return testing...");
 
   g_return_if_fail(GTK_IS_ACTION(action));
   g_return_if_fail(GTK_IS_RADIO_ACTION(current));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
+  ENTER("...passed (action %p, radio action %p, plugin_page %p)",
+        action, current, plugin_page);
   priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   value = gtk_radio_action_get_current_value(current);
   gnc_invoice_window_sort (priv->iw, value);

Copied: gnucash/branches/gda-dev/src/business/business-gnome/gncmod-business-gnome.c (from rev 15827, gnucash/branches/gda-dev/src/business/business-gnome/businessmod-gnome.c)
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/businessmod-gnome.c	2007-04-05 03:10:26 UTC (rev 15827)
+++ gnucash/branches/gda-dev/src/business/business-gnome/gncmod-business-gnome.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,142 @@
+/*********************************************************************
+ * businessmod-core.c
+ * module definition/initialization for the Business GNOME UI module
+ *
+ * Copyright (c) 2001 Derek Atkins <warlord at MIT.EDU>
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ *
+ *********************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <gmodule.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+#include <libguile.h>
+
+#include "gnc-hooks.h"
+#include "gnc-module.h"
+#include "gnc-module-api.h"
+
+#include "search-core-type.h"
+#include "search-owner.h"
+#include "gncOwner.h"
+#include "business-options-gnome.h"
+#include "business-urls.h"
+
+#include "gnc-plugin-manager.h"
+#include "gnc-plugin-business.h"
+
+#include "gnc-hooks.h"
+#include "dialog-invoice.h"
+#include "dialog-preferences.h"
+
+/* version of the gnc module system interface we require */
+int gnc_module_system_interface = 0;
+
+/* module versioning uses libtool semantics. */
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
+
+
+char *
+gnc_module_path(void)
+{
+  return g_strdup("gnucash/business-gnome");
+}
+
+char *
+gnc_module_description(void)
+{
+  return g_strdup("The GnuCash business module GNOME UI");
+}
+
+int
+gnc_module_init(int refcount)
+{
+  /* load business-core: we depend on it -- and it depends on the engine */
+  if (!gnc_module_load ("gnucash/business-core", 0)) {
+    return FALSE;
+  }
+  /* We also depend on app-utils, gnome-utils, and gnome-search modules */
+  if (!gnc_module_load ("gnucash/app-utils", 0)) {
+    return FALSE;
+  }
+  if (!gnc_module_load ("gnucash/gnome-utils", 0)) {
+    return FALSE;
+  }
+  if (!gnc_module_load ("gnucash/gnome-search", 0)) {
+    return FALSE;
+  }
+  if (!gnc_module_load ("gnucash/report/report-gnome", 0)) {
+    return FALSE;
+  }
+  //  if (!gnc_module_load ("gnucash/report/standard-reports", 0)) {
+  //    return FALSE;
+  //  }
+
+  scm_c_eval_string("(use-modules (gnucash business-gnome))");
+  scm_c_eval_string("(use-modules (gnucash report business-reports))");
+
+  // temp code until gnc:url-type is wrapped
+  /*
+  {
+      SCM wct_gnc_url_type = scm_c_eval_string("<gnc:url-type>");
+      SCM tmp;
+
+      tmp = gw_wcp_assimilate_ptr(GNC_CUSTOMER_MODULE_NAME, wct_gnc_url_type);
+      scm_c_define("gnc:url-type-customer", tmp);
+      tmp = gw_wcp_assimilate_ptr(GNC_VENDOR_MODULE_NAME, wct_gnc_url_type);
+      scm_c_define("gnc:url-type-vendor", tmp);
+      tmp = gw_wcp_assimilate_ptr(GNC_EMPLOYEE_MODULE_NAME, wct_gnc_url_type);
+      scm_c_define("gnc:url-type-employee", tmp);
+      tmp = gw_wcp_assimilate_ptr(GNC_INVOICE_MODULE_NAME, wct_gnc_url_type);
+      scm_c_define("gnc:url-type-invoice", tmp);
+      tmp = gw_wcp_assimilate_ptr(URL_TYPE_OWNERREPORT, wct_gnc_url_type);
+      scm_c_define("gnc:url-type-ownerreport", tmp);
+  }
+  */
+
+  if (refcount == 0) {
+    /* Register the Owner search type */
+    gnc_search_core_register_type (GNC_OWNER_MODULE_NAME,
+				   (GNCSearchCoreNew) gnc_search_owner_new);
+    gnc_business_urls_initialize ();
+    gnc_business_options_gnome_initialize ();
+
+    gnc_plugin_manager_add_plugin (gnc_plugin_manager_get (),
+				   gnc_plugin_business_new ());
+
+    gnc_hook_add_dangler(HOOK_BOOK_OPENED,
+			 (GFunc)gnc_invoice_remind_bills_due_cb, NULL);
+
+    gnc_preferences_add_page("businessprefs.glade", "business_prefs",
+			     _("Business"));
+  }
+
+  return TRUE;
+}
+
+int
+gnc_module_end(int refcount) {
+  return TRUE;
+}

Modified: gnucash/branches/gda-dev/src/business/business-gnome/search-owner.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/search-owner.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/search-owner.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -68,10 +68,10 @@
 static guint signals[LAST_SIGNAL] = { 0 };
 #endif
 
-guint
+GType
 gnc_search_owner_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/business/business-gnome/search-owner.h
===================================================================
--- gnucash/branches/gda-dev/src/business/business-gnome/search-owner.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-gnome/search-owner.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -46,7 +46,7 @@
   /* signals */
 };
 
-guint		gnc_search_owner_get_type	(void);
+GType		gnc_search_owner_get_type	(void);
 GNCSearchOwner	*gnc_search_owner_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/business/business-ledger/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-ledger/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-ledger/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 SUBDIRS = .
 
-pkglib_LTLIBRARIES = libgnc-business-ledger.la
+lib_LTLIBRARIES = libgnc-business-ledger.la
 
 libgnc_business_ledger_la_SOURCES = \
   gncEntryLedger.c \
@@ -26,7 +26,7 @@
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${GTK_LIBS} \
   ${GUILE_LIBS} \
   ${QOF_LIBS} \
@@ -48,3 +48,5 @@
   ${QOF_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${GLIB_CFLAGS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.business.ledger\"

Modified: gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedger.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedger.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedger.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -86,7 +86,7 @@
   Account *account;
 
   /* Find the account */
-  account = xaccGetAccountFromFullName (gnc_get_current_group (), name);
+  account = gnc_account_lookup_by_full_name (gnc_get_current_root_account (), name);
 
   if (!account) {
     /* Ask if they want to create a new one. */

Modified: gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerLoad.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerLoad.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerLoad.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -180,13 +180,13 @@
 static void 
 load_xfer_type_cells (GncEntryLedger *ledger)
 {
-  AccountGroup *group;
+  Account *root;
   ComboCell *cell;
   QuickFill *qf=NULL;
   GtkListStore *store = NULL;
 
-  group = gnc_book_get_group (ledger->book);
-  if (group == NULL) return;
+  root = gnc_book_get_root_account (ledger->book);
+  if (root == NULL) return;
 
   /* Use a common, shared quickfill.  For the ORDER or INVOICE, 
    * ledgers, we don't want expense-type accounts in the menu.
@@ -198,9 +198,9 @@
     case GNCENTRY_ORDER_VIEWER:
     case GNCENTRY_INVOICE_ENTRY:
     case GNCENTRY_INVOICE_VIEWER:
-      qf = gnc_get_shared_account_name_quickfill (group, IKEY, 
+      qf = gnc_get_shared_account_name_quickfill (root, IKEY, 
                                       skip_expense_acct_cb, NULL);
-      store = gnc_get_shared_account_name_list_store (group, IKEY,
+      store = gnc_get_shared_account_name_list_store (root, IKEY,
 						      skip_expense_acct_cb, NULL);
       break;
 
@@ -209,9 +209,9 @@
     case GNCENTRY_EXPVOUCHER_ENTRY:
     case GNCENTRY_EXPVOUCHER_VIEWER:
     case GNCENTRY_NUM_REGISTER_TYPES:
-      qf = gnc_get_shared_account_name_quickfill (group, EKEY, 
+      qf = gnc_get_shared_account_name_quickfill (root, EKEY, 
                                       skip_income_acct_cb, NULL);
-      store = gnc_get_shared_account_name_list_store (group, EKEY,
+      store = gnc_get_shared_account_name_list_store (root, EKEY,
 						      skip_income_acct_cb, NULL);
       break;
   }

Modified: gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerModel.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerModel.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-ledger/gncEntryLedgerModel.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -562,7 +562,7 @@
   gnc_date_cell_get_date ((DateCell *) cell, &ts);
   tt = ts.tv_sec;
   tm = localtime (&tt);
-  strftime (string, sizeof(string), "%A %d %B %Y", tm);
+  qof_strftime (string, sizeof(string), "%A %d %B %Y", tm);
 
   return g_strdup (string);
 }

Modified: gnucash/branches/gda-dev/src/business/business-reports/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-reports/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-reports/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,3 +35,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.business.reports\"

Modified: gnucash/branches/gda-dev/src/business/business-reports/aging.scm
===================================================================
--- gnucash/branches/gda-dev/src/business/business-reports/aging.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-reports/aging.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,7 +31,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'hash-table)
-(require 'record)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 (gnc:module-load "gnucash/business-core" 0)
@@ -183,8 +182,7 @@
 	   (temp-owner (gncOwnerCreate))
 	   (owner (gnc:owner-from-split split temp-owner)))
 
-      (if
-       owner
+      (if (not (null? owner))
        (let* ((guid (gncOwnerReturnGUID owner))
 	      (this-currency (xaccTransGetCurrency transaction))
 	      (this-date (gnc-transaction-get-date-posted transaction))

Modified: gnucash/branches/gda-dev/src/business/business-reports/easy-invoice.scm
===================================================================
--- gnucash/branches/gda-dev/src/business/business-reports/easy-invoice.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-reports/easy-invoice.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,7 +35,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'hash-table)
-(require 'record)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 (gnc:module-load "gnucash/business-utils" 0)

Modified: gnucash/branches/gda-dev/src/business/business-reports/fancy-invoice.scm
===================================================================
--- gnucash/branches/gda-dev/src/business/business-reports/fancy-invoice.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-reports/fancy-invoice.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -53,7 +53,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'hash-table)
-(require 'record)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 (gnc:module-load "gnucash/business-utils" 0)

Modified: gnucash/branches/gda-dev/src/business/business-reports/invoice.scm
===================================================================
--- gnucash/branches/gda-dev/src/business/business-reports/invoice.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-reports/invoice.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,7 +29,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'hash-table)
-(require 'record)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 (gnc:module-load "gnucash/business-utils" 0)
@@ -437,7 +436,7 @@
 		(add-subtotal-row table used-columns tax-collector
 				  "grand-total" (_ "Tax")))
 
-	    (if (and show-payments lot)
+	    (if (and show-payments (not (null? lot)))
 		(let ((splits (sort-list!
 			       (gnc-lot-get-split-list lot)
 			       (lambda (s1 s2)
@@ -488,7 +487,7 @@
 			     (gnc:gnc-monetary-amount (cdr entry-values)))
 
 	    (let ((order (gncEntryGetOrder current)))
-	      (if order (add-order order)))
+	      (if (not (null? order)) (add-order order)))
 
 	    (do-rows-with-subtotals rest
 				    table

Modified: gnucash/branches/gda-dev/src/business/business-reports/owner-report.scm
===================================================================
--- gnucash/branches/gda-dev/src/business/business-reports/owner-report.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-reports/owner-report.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -201,14 +201,14 @@
 	 (currency (xaccTransGetCurrency txn))
 	 (type-str
 	  (cond
-	   ((equal? type gnc:transaction-type-invoice)
+	   ((equal? type TXN-TYPE-INVOICE)
 	    (if (not (null? invoice))
 		(gnc:make-html-text
 		 (gnc:html-markup-anchor
 		  (gnc:invoice-anchor-text invoice)
 		  inv-str))
 		inv-str))
-	   ((equal? type gnc:transaction-type-payment) (_ "Payment, thank you"))
+	   ((equal? type TXN-TYPE-PAYMENT) (_ "Payment, thank you"))
 	   (else (_ "Unknown"))))
 	 )
 
@@ -296,8 +296,8 @@
        (lambda (txn)
 	 (let ((type (xaccTransGetTxnType txn)))
 	   (if
-	    (or (equal? type gnc:transaction-type-invoice)
-		(equal? type gnc:transaction-type-payment))
+	    (or (equal? type TXN-TYPE-INVOICE)
+		(equal? type TXN-TYPE-PAYMENT))
 	    (let ((result (add-txn-row table txn acc used-columns odd-row? printed?
 				       inv-str reverse? start-date total)))
 
@@ -626,20 +626,19 @@
     document))
 
 (define (find-first-account type)
-  (define (find-first group num index)
+  (define (find-first account num index)
     (if (>= index num)
 	'()
-	(let* ((this-account (xaccGroupGetAccount group index))
-	       (account-type (xaccAccountGetType this-account)))
+	(let* ((this-child (gnc-account-nth-child account index))
+	       (account-type (xaccAccountGetType this-child)))
 	  (if (eq? account-type type)
-	      this-account
-	      (find-first group num (+ index 1))))))
+	      this-child
+	      (find-first account num (+ index 1))))))
 
-  (let* ((current-group (gnc-get-current-group))
-	 (num-accounts (xaccGroupGetNumAccounts
-			current-group)))
+  (let* ((current-root (gnc-get-current-root-account))
+	 (num-accounts (gnc-account-n-children current-root)))
     (if (> num-accounts 0)
-	(find-first current-group num-accounts 0)
+	(find-first current-root num-accounts 0)
 	'())))
 
 (define (find-first-account-for-owner owner)

Modified: gnucash/branches/gda-dev/src/business/business-utils/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/business-utils/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-utils/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,6 +2,7 @@
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/engine \
   -I${top_srcdir}/src/gnc-module \
   -I${top_srcdir}/src/app-utils \
@@ -18,8 +19,10 @@
 noinst_HEADERS = \
   business-options.h
 
+libgncmod_business_utils_la_LDFLAGS = -avoid-version
+
 libgncmod_business_utils_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${GUILE_LIBS} \
   ${GLIB_LIBS} \
@@ -63,3 +66,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.business.utils\"

Modified: gnucash/branches/gda-dev/src/business/business-utils/gncmod-business-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/business/business-utils/gncmod-business-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/business-utils/gncmod-business-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 /*********************************************************************
  * gncmod-business-utils.c
  * module definition/initialization for the Business Utilitizes module
- * 
+ *
  * Copyright (c) 2003 Derek Atkins <warlord at MIT.EDU>
  *
  * This program is free software; you can redistribute it and/or
@@ -23,41 +23,35 @@
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
-#include <glib.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_business_utils_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_business_utils_LTX_gnc_module_current  = 0;
-int libgncmod_business_utils_LTX_gnc_module_revision = 0;
-int libgncmod_business_utils_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_business_utils_LTX_gnc_module_path(void);
-char *libgncmod_business_utils_LTX_gnc_module_description(void);
-int libgncmod_business_utils_LTX_gnc_module_init(int refcount);
-int libgncmod_business_utils_LTX_gnc_module_end(int refcount);
 
 char *
-libgncmod_business_utils_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/business-utils");
 }
 
-char * 
-libgncmod_business_utils_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("The GnuCash business utilities module");
 }
 
 int
-libgncmod_business_utils_LTX_gnc_module_init(int refcount) 
+gnc_module_init(int refcount)
 {
   /* load the business-core (we depend on it) */
   if (!gnc_module_load("gnucash/business-core", 0)) {
@@ -69,17 +63,17 @@
     return FALSE;
   }
 
-  if(refcount == 0) 
+  if(refcount == 0)
   {
     /* initialize known types */
   }
-  
+
   scm_c_eval_string("(use-modules (gnucash business-utils))");
 
   return TRUE;
 }
 
 int
-libgncmod_business_utils_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/business/dialog-tax-table/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/business/dialog-tax-table/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/dialog-tax-table/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,3 @@
-PWD := $(shell pwd)
-
 pkglib_LTLIBRARIES = libgncmod-dialog-tax-table.la
 
 AM_CFLAGS = \
@@ -10,7 +8,6 @@
   -I${top_srcdir}/src/gnome-utils \
   -I${top_srcdir}/src/app-utils \
   -I${top_srcdir}/src/business/business-core \
-  ${GNOME_PRINT_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${GLADE_CFLAGS} \
   ${GTKHTML_CFLAGS} \
@@ -27,12 +24,14 @@
 noinst_HEADERS = \
   dialog-tax-table.h
 
+libgncmod_dialog_tax_table_la_LDFLAGS = -avoid-version
+
 libgncmod_dialog_tax_table_la_LIBADD = \
   ${top_builddir}/src/business/business-core/libgncmod-business-core.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GLADE_LIBS} \
   ${GUILE_LIBS} \
   ${GNOME_LIBS} \
@@ -41,7 +40,7 @@
   ${EFENCE_LIBS}
 
 if BUILDING_FROM_SVN
-swig-dialog-tax-table.c: dialog-tax-table.i
+swig-dialog-tax-table.c: dialog-tax-table.i ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -77,3 +76,5 @@
 noinst_DATA = .scm-links
 CLEANFILES = gnucash .scm-links ${SCM_FILE_LINKS}
 MAINTAINERCLEANFILES = swig-dialog-tax-table.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.business.tax\"

Modified: gnucash/branches/gda-dev/src/business/dialog-tax-table/gncmod-dialog-tax-table.c
===================================================================
--- gnucash/branches/gda-dev/src/business/dialog-tax-table/gncmod-dialog-tax-table.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/dialog-tax-table/gncmod-dialog-tax-table.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 /*********************************************************************
  * gncmod-dialog-tax-table.c
  * module definition/initialization for the Business Tax Table Dialog module
- * 
+ *
  * Copyright (c) 2002 Derek Atkins <warlord at MIT.EDU>
  *
  * This program is free software; you can redistribute it and/or
@@ -23,43 +23,36 @@
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
-#include <glib.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 extern SCM scm_init_sw_dialog_tax_table_module(void);
 /* version of the gnc module system interface we require */
-int libgncmod_dialog_tax_table_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_dialog_tax_table_LTX_gnc_module_current  = 0;
-int libgncmod_dialog_tax_table_LTX_gnc_module_revision = 0;
-int libgncmod_dialog_tax_table_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_dialog_tax_table_LTX_gnc_module_path(void);
-char *libgncmod_dialog_tax_table_LTX_gnc_module_description(void);
-int libgncmod_dialog_tax_table_LTX_gnc_module_init(int refcount);
-int libgncmod_dialog_tax_table_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_dialog_tax_table_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/dialog-tax-table");
 }
 
-char * 
-libgncmod_dialog_tax_table_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("The GnuCash tax-table GNOME UI module");
 }
 
 int
-libgncmod_dialog_tax_table_LTX_gnc_module_init(int refcount) 
+gnc_module_init(int refcount)
 {
   /* load business-core: we depend on it -- and it depends on the engine */
   if (!gnc_module_load ("gnucash/business-core", 0)) {
@@ -80,7 +73,6 @@
 }
 
 int
-libgncmod_dialog_tax_table_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }
-

Modified: gnucash/branches/gda-dev/src/business/dialog-tax-table/tax-tables.glade
===================================================================
--- gnucash/branches/gda-dev/src/business/dialog-tax-table/tax-tables.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/business/dialog-tax-table/tax-tables.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="destroy" handler="tax_table_window_destroy_cb" last_modification_time="Mon, 08 Sep 2003 03:25:07 GMT"/>
 
@@ -78,6 +79,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -115,6 +120,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">True</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -205,6 +212,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -242,6 +253,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">True</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -347,6 +360,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -438,6 +452,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -462,6 +480,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -486,6 +508,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -522,6 +548,10 @@
 		  <property name="yalign">0</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -560,6 +590,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -599,6 +633,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">type_combobox</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -677,6 +715,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">name_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -695,6 +737,7 @@
 	      <property name="visible">True</property>
 	      <property name="items" translatable="yes">Value $
 Percent %</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	    </widget>
 	    <packing>

Modified: gnucash/branches/gda-dev/src/calculation/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/calculation/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/calculation/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,6 +2,8 @@
 
 pkglib_LTLIBRARIES = libgncmod-calculation.la
 
+libgncmod_calculation_la_LDFLAGS = -avoid-version
+
 libgncmod_calculation_la_LIBADD = \
   ${GLIB_LIBS} ${GUILE_LIBS} \
   ${QOF_LIBS}
@@ -27,6 +29,7 @@
   numeric_ops.h
 
 AM_CFLAGS = \
+  -I${top_srcdir}/lib/libc \
   -I${top_srcdir}/src \
   -I${top_srcdir}/src/gnc-module \
   ${GUILE_INCS} \

Modified: gnucash/branches/gda-dev/src/calculation/amort_opt.c
===================================================================
--- gnucash/branches/gda-dev/src/calculation/amort_opt.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/calculation/amort_opt.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -60,9 +60,9 @@
     times_I->tm_yday = amortsched->yday_I;
 
     printf("\n******************************");
-    strftime(buffer,(size_t)50,"%c",times_E);
+    qof_strftime(buffer,(size_t)50,"%c",times_E);
     printf("\nEffective       Date: %s\n",buffer);
-    strftime(buffer,(size_t)50,"%c",times_I);
+    qof_strftime(buffer,(size_t)50,"%c",times_I);
     printf("Initial Payment Date: %s\n",buffer);
     free(times_E);
     free(times_I);

Modified: gnucash/branches/gda-dev/src/calculation/amort_prt.c
===================================================================
--- gnucash/branches/gda-dev/src/calculation/amort_prt.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/calculation/amort_prt.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -65,9 +65,9 @@
     times_I->tm_yday = amortsched->yday_I;
 
     fprintf(ofile,"Amortization Table\n");
-    strftime(datel,(size_t)100,"%c",times_E);
+    qof_strftime(datel,(size_t)100,"%c",times_E);
     fprintf(ofile,"Effective       Date: %s\n",datel);
-    strftime(datel,(size_t)100,"%c",times_I);
+    qof_strftime(datel,(size_t)100,"%c",times_I);
     fprintf(ofile,"Initial Payment Date: %s\n",datel);
     fprintf(ofile,"Compounding Frequency per year: %u\n",amortsched->CF);
     fprintf(ofile,"Payment     Frequency per year: %u\n",amortsched->PF);

Modified: gnucash/branches/gda-dev/src/calculation/fin.c
===================================================================
--- gnucash/branches/gda-dev/src/calculation/fin.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/calculation/fin.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1196,10 +1196,13 @@
 
 #include <time.h>
 #include <stdio.h>
+#include <glib.h>
 #include <math.h>
+#ifdef G_OS_WIN32
+#include <pow.h>
+#endif
 #include <string.h>
 #include <stdlib.h>
-#include <glib.h>
 
 #define FIN_STATICS
 #include "finvar.h"

Modified: gnucash/branches/gda-dev/src/calculation/gncmod-calculation.c
===================================================================
--- gnucash/branches/gda-dev/src/calculation/gncmod-calculation.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/calculation/gncmod-calculation.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,47 +1,41 @@
 /*********************************************************************
  * gncmod-calculation.c
- * module definition/initialization for the calculation module 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the calculation module
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_calculation_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_calculation_LTX_gnc_module_current  = 0;
-int libgncmod_calculation_LTX_gnc_module_revision = 0;
-int libgncmod_calculation_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_calculation_LTX_gnc_module_path(void);
-char *libgncmod_calculation_LTX_gnc_module_description(void);
-int libgncmod_calculation_LTX_gnc_module_init(int refcount);
-int libgncmod_calculation_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_calculation_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/calculation");
 }
 
-char * 
-libgncmod_calculation_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("GnuCash calculation module");
 }
 
 int
-libgncmod_calculation_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   return TRUE;
 }
 
 int
-libgncmod_calculation_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/calculation/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/calculation/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/calculation/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 TESTS=test-link
 
-noinst_PROGRAMS=test-link
+check_PROGRAMS=test-link
 
 test_link_SOURCES=test-link.c
 test_link_LDADD= \

Modified: gnucash/branches/gda-dev/src/core-utils/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
-lib_LTLIBRARIES = libcore-utils.la
+lib_LTLIBRARIES = libgnc-core-utils.la
 
-libcore_utils_la_SOURCES = \
+libgnc_core_utils_la_SOURCES = \
   gnc-main.c \
   gnc-gconf-utils.c \
   gnc-gdate-utils.c \
@@ -10,7 +10,7 @@
   swig-core-utils.c \
   gnc-gtk-utils.c
 
-libcore_utils_la_LIBADD = \
+libgnc_core_utils_la_LIBADD = \
   ${GUILE_LIBS} \
   ${GLIB_LIBS} \
   ${GCONF_LIBS} \
@@ -26,7 +26,7 @@
   gnc-gtk-utils.h
 
 if BUILDING_FROM_SVN
-swig-core-utils.c: core-utils.i
+swig-core-utils.c: core-utils.i ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -61,3 +61,5 @@
 EXTRA_DIST = $(gncmod_DATA) core-utils.i
 CLEANFILES = gnucash .scm-links
 MAINTAINERCLEANFILES = swig-core-utils.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.core-utils\"

Modified: gnucash/branches/gda-dev/src/core-utils/core-utils.i
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/core-utils.i	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/core-utils.i	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,6 +14,11 @@
 
 gboolean gnc_is_debugging(void);
 
+void gnc_scm_log_warn(const gchar *);
+void gnc_scm_log_error(const gchar *);
+void gnc_scm_log_msg(const gchar *);
+void gnc_scm_log_debug(const gchar *);
+
 /* Special treatment because the string changes in place. */
 %typemap(in) gchar * " $1 = SCM_STRING_CHARS($input); "
 %typemap(freearg) gchar * ""

Modified: gnucash/branches/gda-dev/src/core-utils/core-utils.scm
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/core-utils.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/core-utils.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -6,9 +6,13 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define-module (gnucash core-utils))
-(load-extension "libcore-utils" "scm_init_sw_core_utils_module")
+(load-extension "libgnc-core-utils" "scm_init_sw_core_utils_module")
 (use-modules (sw_core_utils))
 
 (re-export gnc-is-debugging)
 (re-export g-find-program-in-path)
 (re-export gnc-utf8-strip-invalid)
+(re-export gnc-scm-log-warn)
+(re-export gnc-scm-log-error)
+(re-export gnc-scm-log-msg)
+(re-export gnc-scm-log-debug)

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-gconf-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-gconf-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-gconf-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,9 +26,9 @@
 
 #include <stdio.h>
 #include <string.h>
+#include "gnc-main.h"
 #include "gnc-gconf-utils.h"
 
-#define APP_GNUCASH "/apps/gnucash"
 #define CLIENT_TAG  "%s-%s-client"
 #define NOTIFY_TAG  "%s-%s-notify_id"
 
@@ -255,7 +255,7 @@
 {
   if (name == NULL) {
     /* Need to return a newly allocated string */
-    return g_strdup(APP_GNUCASH);
+    return g_strdup(gnc_get_gconf_path());
   }
   if (*name == '/') {
     /* Need to return a newly allocated string */
@@ -268,7 +268,7 @@
    * order to keep this file completely "gnome-free" this approach was
    * used.
    */
-  return g_strjoin("/", APP_GNUCASH, name, NULL);
+  return g_strjoin("/", gnc_get_gconf_path(), name, NULL);
 }
 
 char *
@@ -285,7 +285,7 @@
    * order to keep this file completely "gnome-free" this approach was
    * used.
    */
-  return g_strconcat("/schemas", APP_GNUCASH, "/", name, NULL);
+  return g_strconcat("/schemas", gnc_get_gconf_path(), "/", name, NULL);
 }
 
 static gchar *

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -37,7 +37,8 @@
 #include "config.h"
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
 #include <string.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -45,10 +46,227 @@
 
 #include "gnc-gkeyfile-utils.h"
 
+#ifndef HAVE_GLIB_2_12
+/**********************************************************************
+ *
+ * The following functions are copied verbatim from the GLIB 2.12
+ * source code.  If more glib 2.12 functions are included into
+ * gnucash,then they should all be consolidated in a lib/glib212
+ * directory.
+ *
+ **********************************************************************/
+static gchar *
+_g_utf8_make_valid (const gchar *name)
+{
+  GString *string;
+  const gchar *remainder, *invalid;
+  gint remaining_bytes, valid_bytes;
+  
+  string = NULL;
+  remainder = name;
+  remaining_bytes = strlen (name);
+  
+  while (remaining_bytes != 0) 
+    {
+      if (g_utf8_validate (remainder, remaining_bytes, &invalid)) 
+	break;
+      valid_bytes = invalid - remainder;
+    
+      if (string == NULL) 
+	string = g_string_sized_new (remaining_bytes);
+
+      g_string_append_len (string, remainder, valid_bytes);
+      /* append U+FFFD REPLACEMENT CHARACTER */
+      g_string_append (string, "\357\277\275");
+      
+      remaining_bytes -= valid_bytes + 1;
+      remainder = invalid + 1;
+    }
+  
+  if (string == NULL)
+    return g_strdup (name);
+  
+  g_string_append (string, remainder);
+
+  g_assert (g_utf8_validate (string->str, -1, NULL));
+  
+  return g_string_free (string, FALSE);
+}
+
+static gdouble
+g_key_file_parse_value_as_double  (GKeyFile     *key_file,
+                                   const gchar  *value,
+                                   GError      **error)
+{
+  gchar *end_of_valid_d;
+  gdouble double_value = 0;
+
+  double_value = g_ascii_strtod (value, &end_of_valid_d);
+
+  if (*end_of_valid_d != '\0' || end_of_valid_d == value)
+    {
+      gchar *value_utf8 = _g_utf8_make_valid (value);
+      g_set_error (error, G_KEY_FILE_ERROR,
+		   G_KEY_FILE_ERROR_INVALID_VALUE,
+		   _("Value '%s' cannot be interpreted "
+		     "as a float number."), 
+		   value_utf8);
+      g_free (value_utf8);
+    }
+
+  return double_value;
+}
+
+gdouble
+g_key_file_get_double (GKeyFile *key_file, const gchar *group_name,
+                       const gchar *key, GError **error)
+{
+  GError *key_file_error;
+  gchar *value;
+  gdouble double_value;
+
+  g_return_val_if_fail (key_file != NULL, -1);
+  g_return_val_if_fail (group_name != NULL, -1);
+  g_return_val_if_fail (key != NULL, -1);
+
+  key_file_error = NULL;
+
+  value = g_key_file_get_value (key_file, group_name, key, &key_file_error);
+
+  if (key_file_error)
+    {
+      g_propagate_error (error, key_file_error);
+      return 0;
+    }
+
+  double_value = g_key_file_parse_value_as_double (key_file, value,
+                                                  &key_file_error);
+  g_free (value);
+
+  if (key_file_error)
+    {
+      if (g_error_matches (key_file_error,
+                           G_KEY_FILE_ERROR,
+                           G_KEY_FILE_ERROR_INVALID_VALUE))
+        {
+          g_set_error (error, G_KEY_FILE_ERROR,
+                       G_KEY_FILE_ERROR_INVALID_VALUE,
+                       _("Key file contains key '%s' in group '%s' "
+                         "which has value that cannot be interpreted."), key,
+                       group_name);
+          g_error_free (key_file_error);
+        }
+      else
+        g_propagate_error (error, key_file_error);
+    }
+
+  return double_value;
+}
+
+void
+g_key_file_set_double  (GKeyFile    *key_file,
+                        const gchar *group_name,
+                        const gchar *key,
+                        gdouble      value)
+{
+  gchar result[G_ASCII_DTOSTR_BUF_SIZE];
+
+  g_return_if_fail (key_file != NULL);
+
+  g_ascii_dtostr (result, sizeof (result), value);
+  g_key_file_set_value (key_file, group_name, key, result);
+}
+
+gdouble*
+g_key_file_get_double_list (GKeyFile *key_file,
+                            const gchar *group_name,
+                            const gchar *key,
+                            gsize *length,
+                            GError **error)
+{
+  GError *key_file_error = NULL;
+  gchar **values;
+  gdouble *double_values;
+  gsize i, num_doubles;
+
+  g_return_val_if_fail (key_file != NULL, NULL);
+  g_return_val_if_fail (group_name != NULL, NULL);
+  g_return_val_if_fail (key != NULL, NULL);
+
+  values = g_key_file_get_string_list (key_file, group_name, key,
+                                       &num_doubles, &key_file_error);
+
+  if (key_file_error)
+    g_propagate_error (error, key_file_error);
+
+  if (!values)
+    return NULL;
+
+  double_values = g_new0 (gdouble, num_doubles);
+
+  for (i = 0; i < num_doubles; i++)
+    {
+      double_values[i] = g_key_file_parse_value_as_double (key_file,
+							   values[i],
+							   &key_file_error);
+
+      if (key_file_error)
+        {
+          g_propagate_error (error, key_file_error);
+          g_strfreev (values);
+          g_free (double_values);
+
+          return NULL;
+        }
+    }
+  g_strfreev (values);
+
+  if (length)
+    *length = num_doubles;
+
+  return double_values;
+}
+
+void
+g_key_file_set_double_list (GKeyFile     *key_file,
+			    const gchar  *group_name,
+			    const gchar  *key,
+			    gdouble       list[],
+			    gsize         length)
+{
+  GString *values;
+  gsize i;
+
+  g_return_if_fail (key_file != NULL);
+  g_return_if_fail (list != NULL);
+
+  values = g_string_sized_new (length * 16);
+  for (i = 0; i < length; i++)
+    {
+      gchar result[G_ASCII_DTOSTR_BUF_SIZE];
+
+      g_ascii_dtostr( result, sizeof (result), list[i] );
+
+      g_string_append (values, result);
+      g_string_append_c (values, ';');
+    }
+
+  g_key_file_set_value (key_file, group_name, key, values->str);
+  g_string_free (values, TRUE);
+}
+/**********************************************************************
+ *
+ *                     End of copied functions.
+ *
+ **********************************************************************/
+#endif
+
+
 GKeyFile *
 gnc_key_file_load_from_file (const gchar *filename,
 			     gboolean ignore_error,
-			     gboolean return_empty_struct)
+			     gboolean return_empty_struct,
+			     GError **caller_error)
 {
   GKeyFile *key_file;
   GError *error = NULL;
@@ -73,7 +291,7 @@
 
   if (!ignore_error)
     g_warning("Unable to read file %s: %s\n", filename, error->message);
-  g_error_free(error);
+  g_propagate_error(caller_error, error);
   return key_file;
 }
 
@@ -97,7 +315,7 @@
 
   contents = g_key_file_to_data(key_file, NULL, NULL);
   length = strlen(contents);
-  fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+  fd = g_open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
   if (fd == -1) {
     if (error) {
       *error = g_error_new(G_FILE_ERROR, g_file_error_from_errno(errno), 

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-gkeyfile-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -37,8 +37,21 @@
 #ifndef GNC_GKEYFILE_UTILS_H
 #define GNC_GKEYFILE_UTILS_H
 
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
+
+#ifndef HAVE_GLIB_2_12
+gdouble
+g_key_file_get_double (GKeyFile *key_file, const gchar *group_name,
+                       const gchar *key, GError **error);
+
+void
+g_key_file_set_double  (GKeyFile *key_file, const gchar *group_name,
+                        const gchar *key, gdouble value);
+gdouble*
+g_key_file_get_double_list (GKeyFile *key_file, const gchar *group_name,
+                            const gchar *key, gsize *length, GError **error);
+void
+g_key_file_set_double_list (GKeyFile *key_file, const gchar *group_name, 
+                            const gchar *key, gdouble list[], gsize length);
 #endif
 
 
@@ -58,7 +71,8 @@
  */
 GKeyFile *gnc_key_file_load_from_file (const gchar *file,
 				       gboolean ignore_error,
-				       gboolean return_empty_struct);
+				       gboolean return_empty_struct,
+				       GError **caller_error);
 
 
 /** Write a key/value file from memory to disk.  If there is no data

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -22,12 +22,18 @@
 \********************************************************************/
 
 #include "config.h"
+#include <errno.h>
 #include <stdio.h>
+#include <signal.h>
 #include <string.h>
 
 #include "gnc-glib-utils.h"
 
-int 
+#ifdef G_OS_WIN32
+#include <windows.h>
+#endif
+
+int
 safe_utf8_collate (const char * da, const char * db)
 {
   if (da && !(*da))
@@ -222,3 +228,69 @@
   gnc_utf8_strip_invalid (result);
   return result;
 }
+
+GList*
+gnc_g_list_map(GList* list, GncGMapFunc fn, gpointer user_data)
+{
+  GList *rtn = NULL;
+  for (; list != NULL; list = list->next)
+  {
+    rtn = g_list_append(rtn, (*fn)(list->data, user_data));
+  }
+  return rtn;
+}
+
+void
+gnc_g_list_cut(GList **list, GList *cut_point)
+{
+  if (list == NULL || *list == NULL)
+    return;
+
+  // if it's the first element.
+  if (cut_point->prev == NULL)
+  {
+    *list = NULL;
+    return;
+  }
+
+  cut_point->prev->next = NULL;
+  cut_point->prev = NULL;
+}
+
+void
+gnc_scm_log_warn(const gchar *msg)
+{
+    g_log("gnc.scm", G_LOG_LEVEL_WARNING, msg);
+}
+
+void
+gnc_scm_log_error(const gchar *msg)
+{
+    g_log("gnc.scm", G_LOG_LEVEL_CRITICAL, msg);
+}
+
+void
+gnc_scm_log_msg(const gchar *msg)
+{
+    g_log("gnc.scm", G_LOG_LEVEL_MESSAGE, msg);
+}
+
+void
+gnc_scm_log_debug(const gchar *msg)
+{
+    g_log("gnc.scm", G_LOG_LEVEL_DEBUG, msg);
+}
+
+void gnc_gpid_kill(GPid pid)
+{
+#ifdef G_OS_WIN32
+    if (!TerminateProcess((HANDLE) pid, 0)) {
+        gchar *msg = g_win32_error_message(GetLastError());
+        g_warning("Could not kill child process: %s", msg ? msg : "(null)");
+    }
+#else /* !G_OS_WIN32 */
+    if (kill(pid, SIGKILL)) {
+        g_warning("Could not kill child process: %s", g_strerror(errno));
+    }
+#endif /* G_OS_WIN32 */
+}

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-glib-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -81,7 +81,30 @@
  * caller. */
 gchar *gnc_utf8_strip_invalid_strdup (const gchar* str);
 
+typedef gpointer (*GncGMapFunc)(gpointer data, gpointer user_data);
 
+/**
+ * @return Caller-owned GList* of results of apply @a fn to @a list in order.
+ **/
+GList* gnc_g_list_map(GList* list, GncGMapFunc fn, gpointer user_data);
+
+/**
+ * Cut a GList into two parts; the @a cut_point is the beginning of the
+ * new list; @a list may need to be modified, but will be the list
+ * before the @a cut_point.
+ **/
+void gnc_g_list_cut(GList **list, GList *cut_point);
+
+void gnc_scm_log_warn(const gchar *msg);
+void gnc_scm_log_error(const gchar *msg);
+void gnc_scm_log_msg(const gchar *msg);
+void gnc_scm_log_debug(const gchar *msg);
+
+/** Kill a process.  On UNIX send a SIGKILL, on Windows call TerminateProcess.
+ *
+ *  @param pid The process ID. */
+void gnc_gpid_kill(GPid pid);
+
 /** @} */
 
 #endif /* GNC_GLIB_UTILS_H */

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-gobject-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-gobject-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-gobject-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,7 +39,7 @@
 
 /** Get a pointer to the hash table used by the tracking database.  If
  *  the hash table doesn't exist, it will be created.  If gnucash was
- *  compiled iwh --enable-ref-count-dumps, this funtion is also the
+ *  compiled with --enable-ref-count-dumps, this funtion is also the
  *  point where the gnc_gobject_tracking_dump() function is registered
  *  to be called the GTK exits.
  *

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,25 +29,6 @@
 #define CHANGED_ID "changed_id"
 
 
-#ifndef HAVE_GTK26
-/* Backwards compatability support for function introduced in gtk
- * 2.6. */
-gchar *
-gtk_combo_box_get_active_text (GtkComboBox *combo_box)
-{
-  GtkTreeModel *model;
-  GtkTreeIter iter;
-  gchar *text;
-
-  if (!gtk_combo_box_get_active_iter(combo_box, &iter))
-    return NULL;
-  model = gtk_combo_box_get_model(combo_box);
-  gtk_tree_model_get(model, &iter, 0, &text, -1);
-  return text;
-}
-#endif
-
-
 /** Find an entry in the GtkComboBoxEntry by its text value, and set
  *  the widget to that value.  This function also records the index of
  *  that text value for use when the user leaves the widget.
@@ -190,9 +171,7 @@
   model = gtk_combo_box_get_model(GTK_COMBO_BOX(cbe));
   gtk_entry_completion_set_model(completion, model);
   gtk_entry_completion_set_text_column(completion, 0);
-#ifdef HAVE_GTK26
   gtk_entry_completion_set_inline_completion(completion, TRUE);
-#endif
   gtk_entry_set_completion(entry, completion);
   g_object_unref(completion);
 }

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-gtk-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,16 +39,6 @@
 
 #include <gtk/gtk.h>
 
-/** @name gtk Backwards Compatability Functions
- @{ 
-*/
-#ifndef HAVE_GTK26
-gchar *gtk_combo_box_get_active_text   (GtkComboBox *combo_box);
-#endif
-
-/** @} */
-
-
 /** @name gtk Miscellaneous Functions
  @{ 
 */

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-main.c
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-main.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-main.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,9 @@
 #include "gnc-main.h"
 
 static gchar *namespace_regexp = NULL;
-static gboolean is_debugging;
+static gboolean is_debugging = 0;
+static gboolean extras_enabled = 0;
+static const gchar *gconf_path;
 
 void 
 gnc_main_set_namespace_regexp(const gchar *str)
@@ -54,3 +56,27 @@
 {
     is_debugging = d;
 }
+
+gboolean
+gnc_is_extra_enabled(void)
+{
+    return extras_enabled;
+}
+
+void
+gnc_set_extra(gboolean enabled)
+{
+    extras_enabled = enabled;
+}
+
+void
+gnc_set_gconf_path (const gchar *path)
+{
+    gconf_path = path;
+}
+
+const gchar *
+gnc_get_gconf_path (void)
+{
+    return gconf_path;
+}

Modified: gnucash/branches/gda-dev/src/core-utils/gnc-main.h
===================================================================
--- gnucash/branches/gda-dev/src/core-utils/gnc-main.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/core-utils/gnc-main.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,4 +32,10 @@
 gboolean gnc_is_debugging(void);
 void gnc_set_debugging(gboolean d);
 
+gboolean gnc_is_extra_enabled(void);
+void gnc_set_extra(gboolean enabled);
+
+void gnc_set_gconf_path(const gchar *prefix);
+const gchar *gnc_get_gconf_path(void);
+
 #endif /* GNC_MAIN_H */

Modified: gnucash/branches/gda-dev/src/doc/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/doc/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/doc/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,7 +36,7 @@
 all:
 
 doc: doxygen.cfg
-	echo "doc: " && pwd && 	echo "distdir: " && echo $(distdir)
+	@echo "doc: " $$(pwd) && echo "distdir: " $$(echo $(distdir))
 	rm -rf html refman.pdf
 	$(DOXYGEN) doxygen.cfg
 #	$(MAKE) -C latex/ 

Modified: gnucash/branches/gda-dev/src/doc/loans.txt
===================================================================
--- gnucash/branches/gda-dev/src/doc/loans.txt	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/doc/loans.txt	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,7 @@
 /** \page loanhandling Handling loan repayment in GnuCash::Scheduled Transactions
+\sa The original email thread at <http://lists.gnucash.org/pipermail/gnucash-devel/2002-July/006438.html>.
 
-July, 2002 - jsled at asychronous.org
+July, 2002 - jsled at asynchronous.org
 
 API: \ref SchedXaction
 

Added: gnucash/branches/gda-dev/src/doc/sx.rst
===================================================================
--- gnucash/branches/gda-dev/src/doc/sx.rst	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/doc/sx.rst	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,355 @@
+-*- mode: rst; buffer-file-coding-system: utf-8 -*-
+
+Scheduled Transactions
+===============================================================
+
+TODO
+----------
+
+- meta
+  - [ ] GncSxListTreeModelAdapter: s/real/adapted/
+  - [ ] generic tree model adapter setup code
+  - [ ] move documentation into doxygen comments, here and in sources.
+  - [x] move files around
+  - [x] printf -> logging
+
+- core
+! - [ ] @fixme-s
+! - [ ] after updating/merging new instances, ensure sx-instance-state consistency
+  - [x] sx list -> qof collection
+  - [x] sx engine events
+    - [x] sx list collection add/remove -- sx-list GNC_EVENT_ITEM_ADDED, _REMOVED
+    - [x] sx modified -- QOF_EVENT_MODIFY
+  - [x] sx upcoming instance model
+!   - [x] implement sort model
+  - [x] rename, re-home gnc-sx-instance-model:sxsl_get_sx_vars
+  - [x] rename, re-home gnc-sx-instance-model:parse_vars_from_formula
+
+- unit testing
+  - [ ] model updating in the face of change
+    - [ ] insert sx
+    - [ ] remove sx
+    - [ ] update sx
+      - [ ] add instances
+      - [ ] remove instances
+      - [ ] make "weird"
+    - [ ] ± disabled flag
+  - [x] ensure state consistency model is upheld
+  - [ ] check variables-unbound logic
+  - [ ] verify summary counts
+  - [ ] check "since last run" states
+    - [ ] specious datafile dirty-ing
+    - [ ] -autocreate[, ±notify]
+    - [ ] +autocreate, -notify
+    - [ ] +autocreate, +notify
+    - [ ] +autocreate, -notify, w/postponed
+    - [ ] +autocreate, +notify, w/postponed
+  - [ ] bugs
+    - [?] Expired scheduled transactions never run - <http://bugzilla.gnome.org/show_bug.cgi?id=375892>
+  - remove
+    - [x] display-using src/gnome-utils/test/test-sx.c
+
+- bugs
+
+! - [x] with SLR open (with instances), add variables to SX; only newly-created instances will have appropriate variable tables.
+
+! - [x] parse from 1.8 file doesn't setup start date correctly;
+    daily-auto-yes-notify.xac has start date of 2006-09-26, but new TXN is
+    for $today.
+
+    - [x] this causes phantom "SX has been changed, confirm cancel?" problems.
+
+  - [x] created/review txns disappear, eventual crash [ve20070303]_
+
+! - [x] auto-create (+notify) txns not in review list. [ve20070209]_
+
+  - [x] sx-from-trans: "unknown get.type [3]" [dh20070120]_
+
+! - [x] crash with two sx lists open and SX mutation
+    - I'm pretty sure this is due to SX lists not getting cleaned up on page close, somehow.
+
+  - [x] no way to clear a variable entry [ve20070209]_
+
+.. _[dh20070120]: http://lists.gnucash.org/pipermail/gnucash-devel/2007-January/019667.html
+.. _[ve20070209]: http://lists.gnucash.org/pipermail/gnucash-devel/2007-February/019834.html
+.. _[ve20070303]: http://lists.gnucash.org/pipermail/gnucash-devel/2007-March/020069.html
+
+- sx list page
+  - [/] make into split panel
+    - [ ] fix default slider position
+    - [ ] conf-save slider position
+! - [x] use gnc-tree-view
+! - [x] save/restore state
+
+- sx editor
+  - [/] clean up source formatting
+  - [ ] re-layout dialog
+    - tabs: "overview", "frequency", "template transaction" [, "estimation"]
+  - [ ] model-ize
+    - (check_consistent, especially...)
+
+- gnc_dense_cal
+  - [x] {0, 1, 2, 3, 4, 6, 12} month selection for dense calendar
+    - [x] conf-save value
+  - [ ] code cleanup
+    - [ ] min-size
+  - [ ] start-of-week := {sun,mon} (via locale)
+  - [ ] change number-of-month properties to display-named properties (width, length)
+  - [ ] gconf setting for dense-cal font-size reduction
+  - [?] better transient/floating window
+  - [/] (re-format file)
+! - [x] font handling: gdk -> pango
+  - [x] set_model(GncTemporalInstancesModel *mdl)
+    - [x] new interface creation.
+    - [x] register callbacks for signals
+  - [x] remove clist usage
+
+- sx-from-trans
+  - [?] convert to GObject
+  - [x] hookup destroy/finalize
+
+- FreqSpec
+  - [#] type+ui-type -> type
+
+- use Recurrence instead of FreqSpec
+! - [x] load druid
+! - [x] sx-from-trans, <http://bugzilla.gnome.org/show_bug.cgi?id=412633>
+! - [x] XML migration, handling
+    - xml:freqSpec -> obj:Recurrence
+      - [x] none (Recurrence doesn't support)
+      - [x] once
+        - [x] if once, fix Recurrence date to be SX start date. :p
+      - [x] daily
+      - [x] daily [m-f] (composite)
+      - [x] weekly, single
+      - [x] weekly, multiple (composite)
+      - [x] monthly (+quarterly, tri-anually, semi-annually, yearly)
+      - [x] semi-monthly (composite)
+    - [x] write Recurrences into new-version SX
+  - gnc-frequency
+!   - [x] Support Recurrence
+      - [x] in
+      - [x] out
+!   - [x] Support 'last-day-of-month'
+    - [x] simplify
+      - [x] remove daily [m-f] (-> weekly)
+      - [x] remove biweekly page (-> weekly)
+      - [x] remove > monthly pages (-> monthly)
+    - [x] clean up, reformat source
+  - gnc-plugin-page-sx-list
+    - [x] gnc_plugin_page_sx_list_cmd_new
+  - dialog-sx-editor
+    - [x] gnc_sxed_check_changed
+    - [x] gnc_sxed_check_consistent
+    - [x] gnc_sxed_update_cal
+    - [x] gnc_sxed_save_sx
+  - sx list
+    - [x] recurrence_cmp(...)
+    - [x] More compact recurrenceListToString(...).
+  - [ ] remove FreqSpec code
+    - [ ] SX code
+      - [ ] engine
+      - [ ] backend
+      - [ ] gnc-frequency
+      - [ ] gnc-dense-cal-store
+    - [x] src/gnome/druid-acct-period.c
+
+- gnc_frequency
+  - [ ] support nth-weekday Recurrence period.
+
+- since-last-run
+  - [ ] "reminder" instances show number of days until due
+  - [ ] "Find unfinished" button; count; sensitize Ok as function of unfinished.
+! - [x] save/restore dialog window size
+  - [x] remove split pane
+  - [x] "auto" scrollbars
+! - [x] rewrite adapter (re-)population logic
+  - [x] move "effect_change" up to app-utils/, test.
+  - [x] move state-change up to app-utils
+  - [x] move variable-setting up to app-utils
+  - [x] move summarization up to app-utils
+  - [x] add reminders, postponed to SxInstanceModel
+  - [x] add mutation support to sx instance model
+    - [x] state machine
+  - [x] add variable state to sx instance model
+    - [x] handle (hidden/system not for editing) variables.
+  - [x] add sx_upcoming_instance_model()
+      - [x] add effect_auto_create()
+  - [x] add some sort of "ready to go" flag and api
+    - [x] variable setting, primarily
+  - [x] some sort of commit_changes()
+  - [x] add variable table to instances
+  - [x] ui: add 'review created transactions' checkbox to SLR dialog
+        using txn search.
+
+- destroy/cleanup, notes:
+  - dispose: break references; callable multiple times
+  - finalize: complete destruction; just before free; only called once
+
+Pedantic Todo
+----------------------
+
+- s/SchedXaction/Scheduled/
+- s/temporal_state/instance_sequence_context/
+- change instance variable from 'i' to '__i' or something
+
+============================================================
+
+(eventually real documentation... (?))
+
+Since Last Run
+----------------------
+
++------------------+------------------+------------------+
+|      Thing       |      State       |      Value       |
++------------------+------------------+------------------+
+| - Foo            |                  |                  |
++------------------+------------------+------------------+
+|   - 2006-08-27   |  [Postponed|v]   |                  |
++------------------+------------------+------------------+
+|     - variable-a |                  |        42        |
++------------------+------------------+------------------+
+|     - variable-b |                  |        75        |
++------------------+------------------+------------------+
+|   - 2006-08-27   |  [To-Create|v]   |                  |
++------------------+------------------+------------------+
+|     - variable-a |                  |        31        |
++------------------+------------------+------------------+
+|     - variable-b |                  |  (value needed)  |
++------------------+------------------+------------------+
+
+
+The since-last-run dialog is a key user interface.  More frequently than the
+SX list or editor, the user will be in the process of creating transaction
+instances through this interface.
+
+The old SLR dialog has the following stages:
+
+- Reminders
+  - can be promoted to "to-create"
+- Auto-created, with notification
+- To-Create
+  - postponed, to-create
+  - ignore state.
+- Created review
+- Obsolete SX cleanup
+
+The new SLR dialog will have the following:
+
+- Creation
+  (treemodel consisting of)
+  - auto-created
+  - reminder
+  - postponed
+  - to-create
+  - [obsolete SX]?
+
+There is no separate to-review page, however the user may (optionally) want
+to see the created transactions.  This is done using the transaction-search
+functionality over the created transactions by ID.
+
+Upcoming instance states
+---------------------------------------
+
+    reminder  -> to-create
+    postponed -> to-create
+    to-create -> postponed
+    to-create -> ignore
+    to-create -> created [terminal]
+
+Definitions:
+
+    reminder: a transient upcoming transaction that will not be created.
+    postponed: a historical to-create transaction that the user has
+        explicitly deferred.
+    to-create: an upcoming SX instance that should be created.
+    ignore: a scheduled instance the user has explicitly prevented the
+        instantiation of.
+    created: the instance has been created in this interaction cycle.
+
+Formula Parsing
+------------------------
+
+A SXes formula is parsed in the context of:
+- the template transaction
+  - the accounts of the splits
+- the sequence number
+- the date of the transaction
+- a variable-binding table.
+
+Testing Notes
+---------------------
+
+- auto-create
+  - auto-create with postponed instances shouldn't destroy postponed
+    instances
+
+- basic sequence stuff
+
+dialog-sxsincelast.c:  ~L1241:
+"Handle an interesting corner case of postponing or
+ignoring the first instance. We only want to increment the
+counters for newly-discovered-as-to-be-created SXes."
+
+- auto-create 
+  - auto-create transactions can be created w/o user interaction
+    - their state is transitioned to 'created', which is not modifiable
+  
+  - auto-create (+notify) transactions should be displayed, even if they are
+    the only transactions created.
+  
+  - auto-create (-notify) transactions should not be displayed, unless there
+    are other transactions.
+  
+  - Scenarios
+    - only auto-create (-notify): no SLR, info dialog w/count (***)
+    - only auto-create (+notify): SLR dialog, already created
+    - others, auto-create (-notify): SLR dialog, incl. created 
+    - others, auto-create (+notify): SLR dialog, incl. created
+
+------------------------------------------------------------
+
+Release Notes
+=============
+
+Major overhaul
+--------------
+
+The core application-side SX code was overhauled for clarity, modularity, correctness, testability, &c.
+
+SXList Plugin Page
+-------------------
+
+The SX list and upcoming-instances calendar moved from a top-level window to being a plugin page in the normal application container.
+
+Since Last Run
+--------------
+
+The Since Last Run (SLR) dialog received a functional overhaul as well.  The previous druid-based approach led to a huge bookkeeping headache, as transitioning between pages required partially-processed SXes to be maintained and transactions to be created and destroyed.  As well, the multi-stage dialog approach was just too involved and ill-suited to the task at hand, especially as some stages were conditional on the state of the data.  It made me sad.
+
+The new Since Last Run dialog is a single treeview of upcoming instances and variable bindings.  There's a checkbox to have all created transactions presented after they are.
+
+It's easier to describe via screenshot: <http://asynchronous.org/tmp/sx-cleanup-eg.png>.
+
+Updating/signaling
+------------------
+
+Part of the overhaul is a better use of QOF and GObject signaling for updates.  The SX list and SLR update in response to changes in each other; for instance, you can change the frequency or start-range of an SX while the SLR dialog is open, and it will update in place.
+
+Known Issues
+------------
+
+(as of 2007-01-14)
+- The SX List plugin page doesn't save/restore its state.
+- Updating the variables in a formula with the SLR dialog open isn't consistent.
+- Closing an sx list plugin page leads to corrupted state.
+
+Licensing
+---------
+
+In new files (and old files related to this code that I hold copyright on), I've removed the "or any later version" clause.  I have problems licensing under a license that I haven't read, or that can change in ways I disagree with.  At some point I'll make this change for all source files I hold copyright on, and I intend to not use the clause on sources I (re)write in the future.
+
+Testing
+-------
+
+The key areas I think need testing are the new plugin page and the SLR dialog.  It, at least, shouldn't do anything worse than the 1.8/2.0 SX code. :)

Modified: gnucash/branches/gda-dev/src/doc/xml/gnucash-v2.rnc
===================================================================
--- gnucash/branches/gda-dev/src/doc/xml/gnucash-v2.rnc	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/doc/xml/gnucash-v2.rnc	2007-04-07 16:05:40 UTC (rev 15847)
@@ -336,6 +336,7 @@
   attribute version { "1.0.0" },
   element sx:id { attribute type { "guid" }, xsd:string { pattern = "[0-9a-f]{32}" }},
   element sx:name { text },
+  element sx:enabled { "y" | "n" },
   element sx:autoCreate { "y" | "n" },
   element sx:autoCreateNotify { "y" | "n" },
   element sx:advanceCreateDays { xsd:int },

Modified: gnucash/branches/gda-dev/src/engine/Account.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,8 +30,8 @@
 #include <string.h>
 
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
+#include "Split.h"
+#include "Transaction.h"
 #include "TransactionP.h"
 #include "gnc-event.h"
 #include "gnc-glib-utils.h"
@@ -40,6 +40,8 @@
 #include "gnc-pricedb.h"
 #include "policy.h"
 
+#define GNC_ID_ROOT_ACCOUNT        "RootAccount"
+
 static QofLogModule log_module = GNC_MOD_ACCOUNT;
 
 /* The Canonical Account Separator.  Pre-Initialized. */
@@ -100,7 +102,6 @@
 void
 mark_account (Account *acc)
 {
-  if (acc->parent) acc->parent->saved = FALSE;
   qof_instance_set_dirty(&acc->inst);
 }
 
@@ -148,10 +149,82 @@
   LEAVE ("account=%p\n", acc);
 }
 
+QofBook *
+gnc_account_get_book(const Account *account)
+{
+  return qof_instance_get_book(QOF_INSTANCE(account));
+}
+
 /********************************************************************\
 \********************************************************************/
 
+static Account * 
+gnc_coll_get_root_account (QofCollection *col)
+{
+  if (!col) return NULL;
+  return qof_collection_get_data (col);
+}
+
+static void
+gnc_coll_set_root_account (QofCollection *col, Account *root)
+{
+  Account *old_root;
+  if (!col) return;
+
+  old_root = gnc_coll_get_root_account (col);
+  if (old_root == root) return;
+
+  /* If the new root is already linked into the tree somewhere, then
+   * remove it from its current position before adding it at the
+   * top. */
+  if (root->parent) {
+    xaccAccountBeginEdit(root);
+    gnc_account_remove_child(root->parent, root);
+    xaccAccountCommitEdit(root);
+  }
+    
+  qof_collection_set_data (col, root);
+
+  if (old_root) {
+    xaccAccountBeginEdit (old_root);
+    xaccAccountDestroy (old_root);
+  }
+}
+
 Account *
+gnc_book_get_root_account (QofBook *book)
+{
+  QofCollection *col;
+  Account *root;
+
+  if (!book) return NULL;
+  col = qof_book_get_collection (book, GNC_ID_ROOT_ACCOUNT);
+  root = gnc_coll_get_root_account (col);
+  if (root == NULL)
+    root = gnc_account_create_root(book);
+  return root;
+}
+
+void
+gnc_book_set_root_account (QofBook *book, Account *root)
+{
+  QofCollection *col;
+  if (!book) return;
+
+  if (root && gnc_account_get_book(root) != book)
+  {
+     PERR ("cannot mix and match books freely!");
+     return;
+  }
+
+  col = qof_book_get_collection (book, GNC_ID_ROOT_ACCOUNT);
+  gnc_coll_set_root_account (col, root);
+}
+
+/********************************************************************\
+\********************************************************************/
+
+Account *
 xaccMallocAccount (QofBook *book)
 {
   Account *acc;
@@ -165,6 +238,20 @@
   return acc;
 }
 
+Account *
+gnc_account_create_root (QofBook *book)
+{
+  Account *root;
+
+  root = xaccMallocAccount(book);
+  xaccAccountBeginEdit(root);
+  root->type = ACCT_TYPE_ROOT;
+  CACHE_REPLACE(root->accountName, _("Root Account"));
+  xaccAccountCommitEdit(root);
+  gnc_book_set_root_account(book, root);
+  return root;
+}
+
 static Account *
 xaccCloneAccountCommon(const Account *from, QofBook *book)
 {
@@ -222,6 +309,32 @@
 /********************************************************************\
 \********************************************************************/
 
+static void
+xaccFreeOneChildAccount (Account *acc, gpointer dummy)
+{
+    /* FIXME: this code is kind of hacky.  actually, all this code
+     * seems to assume that the account edit levels are all 1. */
+    if (acc->inst.editlevel == 0)
+      xaccAccountBeginEdit(acc);
+    xaccAccountDestroy(acc);
+}
+
+static void
+xaccFreeAccountChildren (Account *acc)
+{
+  GList *children;
+
+  /* Copy the list since it will be modified */
+  children = g_list_copy(acc->children);
+  g_list_foreach(children, (GFunc)xaccFreeOneChildAccount, NULL);
+  g_list_free(children);
+
+  /* The foreach should have removed all the children already. */
+  if (acc->children)
+    g_list_free(acc->children);
+  acc->children = NULL;
+}
+
 void
 xaccFreeAccount (Account *acc)
 {
@@ -237,8 +350,7 @@
           " xaccAccountBeginEdit(); xaccAccountDestroy(); \n");
 
     /* First, recursively free children */
-    xaccFreeAccountGroup (acc->children);
-    acc->children = NULL;
+    xaccFreeAccountChildren(acc);
   }
 
   /* remove lots -- although these should be gone by now. */
@@ -315,21 +427,23 @@
 	qof_begin_edit(&acc->inst);
 }
 
-static inline void on_done(QofInstance *inst) 
+static void on_done(QofInstance *inst) 
 {
     /* old event style */
     qof_event_gen (&inst->entity, QOF_EVENT_MODIFY, NULL);
 }
 
-static inline void on_err (QofInstance *inst, QofBackendError errcode)
+static void on_err (QofInstance *inst, QofBackendError errcode)
 {
   PERR("commit error: %d", errcode);
 }
 
-static inline void acc_free (QofInstance *inst)
+static void acc_free (QofInstance *inst)
 {
   Account *acc = (Account *) inst;
-  xaccGroupRemoveAccount(acc->parent, acc);
+
+  if (acc->parent)
+    gnc_account_remove_child(acc->parent, acc);
   xaccFreeAccount(acc);
 }
 
@@ -360,8 +474,7 @@
     acc->inst.editlevel++;
 
     /* First, recursively free children */
-    xaccFreeAccountGroup (acc->children);
-    acc->children = NULL;
+    xaccFreeAccountChildren(acc);
 
     PINFO ("freeing splits for account %p (%s)",
            acc, acc->accountName ? acc->accountName : "(null)");
@@ -432,6 +545,48 @@
 /********************************************************************\
 \********************************************************************/
 
+static gboolean
+xaccAcctChildrenEqual(const GList *na,
+		      const GList *nb,
+		      gboolean check_guids)
+{
+  if ((!na && nb) || (na && !nb))
+  {
+    PWARN ("only one has accounts");
+    return(FALSE);
+  }
+
+  while (na && nb)
+  {
+    Account *aa = na->data;
+    Account *ab = nb->data;
+
+    if (!xaccAccountEqual(aa, ab, check_guids))
+    {
+      char sa[GUID_ENCODING_LENGTH + 1];
+      char sb[GUID_ENCODING_LENGTH + 1];
+
+      guid_to_string_buff (xaccAccountGetGUID (aa), sa);
+      guid_to_string_buff (xaccAccountGetGUID (ab), sb);
+
+      PWARN ("accounts %s and %s differ", sa, sb);
+
+      return(FALSE);
+    }
+
+    na = na->next;
+    nb = nb->next;
+  }
+
+  if (na || nb)
+  {
+    PWARN ("different numbers of accounts");
+    return(FALSE);
+  }
+
+  return(TRUE);
+}
+
 gboolean
 xaccAccountEqual(const Account *aa, const Account *ab, gboolean check_guids)
 {
@@ -633,7 +788,7 @@
     }
   }
 
-  if (!xaccGroupEqual(aa->children, ab->children, check_guids))
+  if (!xaccAcctChildrenEqual(aa->children, ab->children, check_guids))
   {
     PWARN ("children differ");
     return FALSE;
@@ -712,72 +867,26 @@
 void
 xaccClearMark (Account *acc, short val)
 {
-  AccountGroup *topgrp;
+  Account *root;
 
   if (!acc) return;
-  topgrp = xaccAccountGetRoot (acc);
-
-  if (topgrp)
-  {
-    GList *list;
-    GList *node;
-
-    list = xaccGroupGetAccountList (topgrp);
-
-    for (node = list; node; node = node->next)
-    {
-      Account *account = node->data;
-
-      xaccClearMarkDown (account, val);
-    }
-  }
-  else
-    xaccClearMarkDown (acc, val);
+  root = gnc_account_get_root (acc);
+  xaccClearMarkDown (root ? root : acc, val);
 }
 
 void
 xaccClearMarkDown (Account *acc, short val)
 {
-  AccountGroup *children;
+  GList *node;
 
   if (!acc) return;
   acc->mark = val;
 
-  children = acc->children;
-  if (children)
-  {
-    GList *list;
-    GList *node;
-
-    list = xaccGroupGetAccountList (children);
-
-    for (node = list; node; node = node->next)
-    {
-      Account *account = node->data;
-
-      xaccClearMarkDown (account, val);
-    }
+  for (node = acc->children; node; node = node->next) {
+    xaccClearMarkDown (node->data, val);
   }
 }
 
-void
-xaccClearMarkDownGr (AccountGroup *grp, short val)
-{
-  GList *list;
-  GList *node;
-
-  if (!grp) return;
-
-  list = xaccGroupGetAccountList (grp);
-
-  for (node = list; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccClearMarkDown (account, val);
-  }
-}
-
 /********************************************************************\
 \********************************************************************/
 
@@ -996,20 +1105,20 @@
 
 
 int
-xaccAccountOrder (const Account **aa, const Account **ab) 
+xaccAccountOrder (const Account *aa, const Account *ab) 
 {
   char *da, *db;
   char *endptr = NULL;
   int ta, tb, result;
   long la, lb;
 
-  if ( (*aa) && !(*ab) ) return -1;
-  if ( !(*aa) && (*ab) ) return +1;
-  if ( !(*aa) && !(*ab) ) return 0;
+  if ( aa && !ab ) return -1;
+  if ( !aa && ab ) return +1;
+  if ( !aa && !ab ) return 0;
 
   /* sort on accountCode strings */
-  da = (*aa)->accountCode;
-  db = (*ab)->accountCode;
+  da = aa->accountCode;
+  db = ab->accountCode;
 
   /* If accountCodes are both base 36 integers do an integer sort */
   la = strtoul (da, &endptr, 36);
@@ -1036,24 +1145,30 @@
   }
 
   /* otherwise, sort on account type */
-  ta = (*aa)->type;
-  tb = (*ab)->type;
+  ta = aa->type;
+  tb = ab->type;
   ta = revorder[ta];
   tb = revorder[tb];
   if (ta < tb) return -1;
   if (ta > tb) return +1;
 
   /* otherwise, sort on accountName strings */
-  da = (*aa)->accountName;
-  db = (*ab)->accountName;
+  da = aa->accountName;
+  db = ab->accountName;
   result = safe_utf8_collate(da, db);
   if (result)
     return result;
 
   /* guarantee a stable sort */
-  return guid_compare (&((*aa)->inst.entity.guid), &((*ab)->inst.entity.guid));
+  return guid_compare (&(aa->inst.entity.guid), &(ab->inst.entity.guid));
 }
 
+static int
+qof_xaccAccountOrder (const Account **aa, const Account **ab)
+{
+  return xaccAccountOrder(*aa, *ab);
+}
+
 /********************************************************************\
 \********************************************************************/
 
@@ -1115,7 +1230,7 @@
 	parent_acc = (Account*)parent;
 	xaccAccountBeginEdit(acc);
 	xaccAccountBeginEdit(parent_acc);
-	xaccAccountInsertSubAccount(parent_acc, acc);
+	gnc_account_append_child(parent_acc, acc);
 	mark_account (parent_acc);
 	mark_account (acc);
 	xaccAccountCommitEdit(acc);
@@ -1260,30 +1375,400 @@
 /********************************************************************\
 \********************************************************************/
 
-AccountGroup *
-xaccAccountGetChildren (const Account *acc)
+void
+gnc_account_append_child (Account *new_parent, Account *child)
 {
-   return acc ? acc->children : NULL;
+  Account *old_parent;
+  QofCollection *col;
+
+  g_assert(new_parent);
+  g_assert(child);
+
+  old_parent = child->parent;
+  if (old_parent == new_parent)
+    return;
+
+  //  xaccAccountBeginEdit(new_parent);
+  xaccAccountBeginEdit(child);
+  if (old_parent) {
+    gnc_account_remove_child(old_parent, child);
+
+    if (old_parent->inst.book != new_parent->inst.book) {
+      /* hack alert -- this implementation is not exactly correct.
+       * If the entity tables are not identical, then the 'from' book 
+       * may have a different backend than the 'to' book.  This means
+       * that we should get the 'from' backend to destroy this account,
+       * and the 'to' backend to save it.  Right now, this is broken.
+       *  
+       * A 'correct' implementation similar to this is in Period.c
+       * except its for transactions ...
+       *
+       * Note also, we need to reparent the children to the new book as well.
+       */
+      PWARN ("reparenting accounts across books is not correctly supported\n");
+
+      qof_event_gen (&child->inst.entity, QOF_EVENT_DESTROY, NULL);
+      col = qof_book_get_collection (new_parent->inst.book, GNC_ID_ACCOUNT);
+      qof_collection_insert_entity (col, &child->inst.entity);
+      qof_event_gen (&child->inst.entity, QOF_EVENT_CREATE, NULL);
+    }
+  }
+  child->parent = new_parent;
+  new_parent->children = g_list_append(new_parent->children, child);
+  qof_instance_set_dirty(&new_parent->inst);
+  qof_instance_set_dirty(&child->inst);
+
+  /* Send events data. Warning: The call to commit_edit is also gpoing
+   * to send a MODIFY event. If the gtktreemodelfilter code gets the
+   * MODIFY before it gets the ADD, it gets very confused and thinks
+   * that two nodes have been added. */
+  qof_event_gen (&child->inst.entity, QOF_EVENT_ADD, NULL);
+  // qof_event_gen (&new_parent->inst.entity, QOF_EVENT_MODIFY, NULL);
+
+  xaccAccountCommitEdit (child);
+  //  xaccAccountCommitEdit(new_parent);
 }
 
-AccountGroup *
-xaccAccountGetParent (const Account *acc)
+void
+gnc_account_remove_child (Account *parent, Account *child)
 {
+  GncEventData ed;
+
+  if (!child) return;
+
+  /* Note this routine might be called on accounts which 
+   * are not yet parented. */
+  if (!parent) return;
+
+  if (child->parent != parent)
+  {
+    PERR ("account not a child of parent");
+    return;
+  }
+
+  /* Gather event data */
+  ed.node = parent;
+  ed.idx = g_list_index(parent->children, child);
+
+  parent->children = g_list_remove (parent->children, child);
+
+  /* Now send the event. */
+  qof_event_gen(&child->inst.entity, QOF_EVENT_REMOVE, &ed);
+
+  /* clear the account's parent pointer after REMOVE event generation. */
+  child->parent = NULL;
+
+  qof_event_gen (&parent->inst.entity, QOF_EVENT_MODIFY, NULL);
+}
+
+Account *
+gnc_account_get_parent (const Account *acc)
+{
    return acc ? acc->parent : NULL;
 }
 
 Account *
-xaccAccountGetParentAccount (const Account * acc)
+gnc_account_get_root (Account *acc)
 {
-  return acc ? xaccGroupGetParentAccount(acc->parent) : NULL;
+  if (!acc)
+    return NULL;
+
+  while (acc->parent) {
+    acc = acc->parent;
+  }
+
+  return acc;
 }
 
+gboolean
+gnc_account_is_root (const Account *account)
+{
+  return (account && account->parent == NULL);
+}
+
 GList *
-xaccAccountGetDescendants (const Account *acc)
+gnc_account_get_children (const Account *account)
 {
-   return acc ? xaccGroupGetSubAccounts(acc->children) : NULL;
+  return account ? g_list_copy(account->children) : NULL;
 }
 
+GList *
+gnc_account_get_children_sorted (const Account *account)
+{
+  if (!account || !account->children)
+    return NULL;
+  return g_list_sort(g_list_copy(account->children), (GCompareFunc)xaccAccountOrder);
+}
+
+gint
+gnc_account_n_children (const Account *account)
+{
+  return account ? g_list_length(account->children) : 0;
+}
+
+gint
+gnc_account_child_index (const Account *parent, const Account *child)
+{
+  return parent ? g_list_index(parent->children, child) : -1;
+}
+
+Account *
+gnc_account_nth_child (const Account *parent, gint num)
+{
+  return parent ? g_list_nth_data(parent->children, num) : NULL;
+}
+
+gint
+gnc_account_n_descendants (const Account *account)
+{
+  GList *node;
+  gint count = 0;
+
+  if (!account)
+    return 0;
+
+  for (node = account->children; node; node = g_list_next(node)) {
+    count += gnc_account_n_descendants(node->data) + 1;
+  }
+  return count;
+}
+
+gint
+gnc_account_get_current_depth (const Account *account)
+{
+  int depth = 0;
+
+  if (!account)
+    return 0;
+
+  while (account->parent && (account->type != ACCT_TYPE_ROOT)) {
+    account = account->parent;
+    depth++;
+  }
+
+  return depth;
+}
+
+gint
+gnc_account_get_tree_depth (const Account *account)
+{
+  GList *node;
+  gint depth = 0, child_depth;
+
+  if (!account)
+    return 0;
+  if (!account->children)
+    return 1;
+
+  for (node = account->children; node; node = g_list_next(node)) {
+    child_depth = gnc_account_get_tree_depth(node->data);
+    depth = MAX(depth, child_depth);
+  }
+  return depth + 1;
+}
+
+GList *
+gnc_account_get_descendants (const Account *account)
+{
+  GList *child, *descendants;
+
+  if (!account || !account->children)
+    return NULL;
+
+  descendants = NULL;
+  for (child = account->children; child; child = g_list_next(child)) {
+    descendants = g_list_append(descendants, child->data);
+    descendants = g_list_concat(descendants,
+				gnc_account_get_descendants(child->data));
+  }
+  return descendants;
+}
+
+GList *
+gnc_account_get_descendants_sorted (const Account *account)
+{
+  GList *child, *children, *descendants;
+
+  if (!account || !account->children)
+    return NULL;
+
+  descendants = NULL;
+  children = g_list_sort(g_list_copy(account->children), (GCompareFunc)xaccAccountOrder);
+  for (child = children; child; child = g_list_next(child)) {
+    descendants = g_list_append(descendants, child->data);
+    descendants = g_list_concat(descendants,
+				gnc_account_get_descendants(child->data));
+  }
+  g_list_free(children);
+  return descendants;
+}
+
+Account *
+gnc_account_lookup_by_name (const Account *parent, const char * name)
+{
+  Account *child, *result;
+  GList *node;
+
+  if (!parent) return NULL;
+  if (!name) return NULL;
+
+  /* first, look for accounts hanging off the current node */
+  for (node = parent->children; node; node = node->next)
+  {
+    child = node->data;
+    if (safe_strcmp(child->accountName, name) == 0)
+      return child;
+  }
+
+  /* if we are still here, then we haven't found the account yet.
+   * Recursively search each of the child accounts next */
+  for (node = parent->children; node; node = node->next)
+  {
+    child = node->data;
+    result = gnc_account_lookup_by_name (child, name);
+    if (result)
+      return result;
+  }
+
+  return NULL;
+}
+
+/********************************************************************\
+ * Fetch an account, given its full name                            *
+\********************************************************************/
+
+static Account *
+gnc_account_lookup_by_full_name_helper (const Account *parent,
+					gchar **names)
+{
+  Account *found;
+  GList *node;
+
+  g_return_val_if_fail(parent, NULL);
+  g_return_val_if_fail(names, NULL);
+
+  /* Look for the first name in the children. */
+  for (node = parent->children; node; node = node->next) {
+    Account *account = node->data;
+
+    if (safe_strcmp(account->accountName, names[0]) == 0) {
+      /* We found an account.  If the next entry is NULL, there is
+       * nothing left in the name, so just return the account. */
+      if (names[1] == NULL)
+	return account;
+
+      /* No children?  We're done. */
+      if (!account->children)
+	return NULL;
+
+      /* There's stuff left to search for.  Search recursively. */
+      found = gnc_account_lookup_by_full_name_helper(account, &names[1]);
+      if (found != NULL) {
+	return found;
+      }
+    }
+  }
+
+  return NULL;
+}
+
+
+Account *
+gnc_account_lookup_by_full_name (const Account *any_acc,
+				 const gchar *name)
+{
+  const Account *root;
+  Account *found;
+  gchar **names;
+
+  if (!any_acc) return NULL;
+  if (!name) return NULL;
+
+  root = any_acc;
+  while (root->parent)
+    root = root->parent;
+  names = g_strsplit(name, gnc_get_account_separator_string(), -1);
+  found = gnc_account_lookup_by_full_name_helper(root, names);
+  g_strfreev(names);
+  return found;
+}
+
+void
+gnc_account_foreach_child (const Account *acc,
+			   AccountCb thunk,
+			   gpointer user_data)
+{
+  GList *node;
+
+  if (!acc || !thunk) return;
+
+  for (node = acc->children; node; node = node->next) {
+    thunk (node->data, user_data);
+  }
+}
+
+gpointer
+gnc_account_foreach_child_until (const Account *acc,
+				 AccountCb2 thunk,
+				 gpointer user_data)
+{
+  GList *node;
+  gpointer result;
+
+  if (!acc || !thunk) return(NULL);
+
+  for (node = acc->children; node; node = node->next) {
+    result = thunk (node->data, user_data);
+    if (result)
+      return(result);
+  }
+
+  return(NULL);
+}
+
+void
+gnc_account_foreach_descendant (const Account *acc,
+				AccountCb thunk,
+				gpointer user_data)
+{
+  GList *node;
+  Account *child;
+
+  if (!acc || !thunk) return;
+
+  for (node = acc->children; node; node = node->next) {
+    child = node->data;
+    thunk(child, user_data);
+    gnc_account_foreach_descendant(child, thunk, user_data);
+  }
+}
+
+gpointer
+gnc_account_foreach_descendant_until (const Account *acc,
+				      AccountCb2 thunk,
+				      gpointer user_data)
+{
+  GList *node;
+  Account *child;
+  gpointer result;
+
+  if (!acc || !thunk) return(NULL);
+
+  for (node = acc->children; node; node = node->next) {
+    child = node->data;
+    result = thunk(child, user_data);
+    if (result)
+      return(result);
+
+    result = gnc_account_foreach_descendant_until(child, thunk, user_data);
+    if (result)
+      return(result);
+  }
+
+  return(NULL);
+}
+
+
 GNCAccountType
 xaccAccountGetType (const Account *acc)
 {
@@ -1316,23 +1801,25 @@
   gchar **names;
   int level;
 
-  if (account == NULL)
+  if (!account || !account->parent)
     return g_strdup("");
 
-  /* Figure out how much space is needed */
+  /* Figure out how much space is needed by counting the nodes up to
+   * the root. */
   level = 0;
-  for (a = account; a; a = xaccAccountGetParentAccount(a)) {
+  for (a = account; a; a = a->parent) {
     level++;
   }
 
-  /* Get all the pointers in the right order. */
-  names = g_malloc((level+1) * sizeof(gchar *));
-  names[level] = NULL;
-  for (a = account; a; a = xaccAccountGetParentAccount(a)) {
+  /* Get all the pointers in the right order. The root node "entry"
+   * becomes the terminating NULL pointer for the array of strings. */
+  names = g_malloc(level * sizeof(gchar *));
+  names[--level] = NULL;
+  for (a = account; level > 0; a = a->parent) {
     names[--level] = a->accountName;
   }
 
-  /* Build it */
+  /* Build the full name */
   fullname =  g_strjoinv(account_separator, names);
   g_free(names);
 
@@ -1553,7 +2040,7 @@
       gnc_commodity_equiv (balance_currency, new_currency))
     return balance;
 
-  book = xaccGroupGetBook (xaccAccountGetRoot (acc));
+  book = gnc_account_get_book (acc);
   pdb = gnc_pricedb_get_db (book);
 
   balance = gnc_pricedb_convert_balance_latest_price(
@@ -1581,7 +2068,7 @@
       gnc_commodity_equiv (balance_currency, new_currency))
     return balance;
 
-  book = xaccGroupGetBook (xaccAccountGetRoot (acc));
+  book = gnc_account_get_book (acc);
   pdb = gnc_book_get_pricedb (book);
 
   ts.tv_sec = date;
@@ -1641,34 +2128,33 @@
  * tree.  This function is called once per account, and sums up the
  * values of all these accounts.
  */
-static gpointer
+static void
 xaccAccountBalanceHelper (Account *acc, gpointer data)
 {
   CurrencyBalance *cb = data;
   gnc_numeric balance;
 
   if (!cb->fn || !cb->currency)
-    return NULL;
+    return;
   balance = xaccAccountGetXxxBalanceInCurrency (acc, cb->fn, cb->currency);
   cb->balance = gnc_numeric_add (cb->balance, balance,
                                  gnc_commodity_get_fraction (cb->currency),
                                  GNC_HOW_RND_ROUND);
-  return NULL;
 }
-static gpointer
+
+static void
 xaccAccountBalanceAsOfDateHelper (Account *acc, gpointer data)
 {
     CurrencyBalance *cb = data;
     gnc_numeric balance;
 
-    g_return_val_if_fail (cb->asOfDateFn && cb->currency, NULL);
+    g_return_if_fail (cb->asOfDateFn && cb->currency);
 
     balance = xaccAccountGetXxxBalanceAsOfDateInCurrency (
         acc, cb->date, cb->asOfDateFn, cb->currency);
     cb->balance = gnc_numeric_add (cb->balance, balance,
                                    gnc_commodity_get_fraction (cb->currency),
                                    GNC_HOW_RND_ROUND);
-    return NULL;
 }
 
 
@@ -1702,8 +2188,7 @@
   if (include_children) {
     CurrencyBalance cb = { report_commodity, balance, fn, NULL, 0 };
 
-    xaccGroupForEachAccount (acc->children, xaccAccountBalanceHelper,
-                             &cb, TRUE);
+    gnc_account_foreach_descendant (acc, xaccAccountBalanceHelper, &cb);
     balance = cb.balance;
   }
 
@@ -1729,8 +2214,7 @@
   if (include_children) {
     CurrencyBalance cb = { report_commodity, balance, NULL, fn, date };
 
-    xaccGroupForEachAccount (acc->children,
-                             xaccAccountBalanceAsOfDateHelper, &cb, TRUE);
+    gnc_account_foreach_descendant (acc, xaccAccountBalanceAsOfDateHelper, &cb);
     balance = cb.balance;
   }
 
@@ -1976,7 +2460,7 @@
   if (!acc) return PLACEHOLDER_NONE;
   if (xaccAccountGetPlaceholder(acc)) return PLACEHOLDER_THIS;
 
-  descendants = xaccGroupGetSubAccounts(acc->children);
+  descendants = gnc_account_get_descendants(acc);
   for (node = descendants; node; node = node->next) 
       if (xaccAccountGetPlaceholder((Account *) node->data)) {
           ret = PLACEHOLDER_CHILD;
@@ -2020,7 +2504,7 @@
   if (xaccAccountGetHidden(acc))
     return TRUE;
 
-  while ((acc = xaccAccountGetParentAccount(acc)) != NULL) {
+  while ((acc = acc->parent) != NULL) {
     if (xaccAccountGetHidden(acc))
       return TRUE;
   }
@@ -2038,7 +2522,7 @@
   if (!acc || !ancestor) return FALSE;
 
   while (parent && parent != ancestor)
-      parent = xaccAccountGetParentAccount(parent);
+      parent = parent->parent;
 
   return (parent == ancestor);
 }
@@ -2070,6 +2554,7 @@
     GNC_RETURN_ENUM_AS_STRING(EQUITY);
     GNC_RETURN_ENUM_AS_STRING(RECEIVABLE);
     GNC_RETURN_ENUM_AS_STRING(PAYABLE);
+    GNC_RETURN_ENUM_AS_STRING(ROOT);
     GNC_RETURN_ENUM_AS_STRING(CHECKING);
     GNC_RETURN_ENUM_AS_STRING(SAVINGS);
     GNC_RETURN_ENUM_AS_STRING(MONEYMRKT);
@@ -2104,6 +2589,7 @@
   GNC_RETURN_ON_MATCH(EQUITY);
   GNC_RETURN_ON_MATCH(RECEIVABLE);
   GNC_RETURN_ON_MATCH(PAYABLE);
+  GNC_RETURN_ON_MATCH(ROOT);
   GNC_RETURN_ON_MATCH(CHECKING);
   GNC_RETURN_ON_MATCH(SAVINGS);
   GNC_RETURN_ON_MATCH(MONEYMRKT);
@@ -2582,18 +3068,6 @@
 /********************************************************************\
 \********************************************************************/
 
-gint
-xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
-                              void *data) 
-{
-  if (!acc || !proc) return 0;
-  xaccAccountBeginStagedTransactionTraversals (acc);
-  return xaccAccountStagedTransactionTraversal(acc, 42, proc, data);
-}
-
-/********************************************************************\
-\********************************************************************/
-
 /* The caller of this function can get back one or both of the
  * matching split and transaction pointers, depending on whether
  * a valid pointer to the location to store those pointers is
@@ -2654,6 +3128,288 @@
 }
 
 /* ================================================================ */
+/* Concatenation, Mergeing functions                                */
+
+void
+gnc_account_join_children (Account *to_parent, Account *from_parent)
+{
+  GList *children, *node;
+
+  if (!to_parent || !from_parent) return;
+  if (!from_parent->children) return;
+
+  ENTER (" ");
+  children = g_list_copy(from_parent->children);
+  for (node = children; node; node = g_list_next(node))
+    gnc_account_append_child(to_parent, node->data);
+  g_list_free(children);
+  LEAVE (" ");
+}
+
+void
+gnc_account_copy_children (Account *to, Account *from)
+{
+   GList *node;
+   QofBook *to_book;
+
+   if (!to || !from) return;
+   if (!from->children) return;
+   to_book = gnc_account_get_book(to);
+   if (!to_book) return;
+
+   ENTER (" ");
+   xaccAccountBeginEdit(to);
+   xaccAccountBeginEdit(from);
+   for (node = from->children; node; node=node->next)
+   {
+      Account *to_acc, *from_acc = node->data;
+
+      /* This will copy the basic data and the KVP.  It will
+       * not copy any splits/transactions. It will gemini. */
+      to_acc = xaccCloneAccount (from_acc, to_book);
+
+      xaccAccountBeginEdit (to_acc);
+      to->children = g_list_append (to->children, to_acc);
+
+      to_acc->parent = to;
+      qof_instance_set_dirty(&to_acc->inst);
+
+      /* Copy child accounts too. */
+      if (from_acc->children)
+      {
+	gnc_account_copy_children(to_acc, from_acc);
+      }
+      xaccAccountCommitEdit (to_acc);
+      qof_event_gen (&to_acc->inst.entity, QOF_EVENT_CREATE, NULL);
+      /* DRH - Should this send ADD/REMOVE events */
+   }
+   xaccAccountCommitEdit(from);
+   xaccAccountCommitEdit(to);
+   LEAVE (" ");
+}
+
+/********************************************************************\
+\********************************************************************/
+
+void 
+gnc_account_merge_children (Account *parent)
+{
+  GList *node_a, *node_b, *work, *worker;
+
+  if (!parent) return;
+
+  for (node_a = parent->children; node_a; node_a = node_a->next)
+  {
+    Account *acc_a = node_a->data;
+
+    for (node_b = node_a->next; node_b; node_b = g_list_next(node_b))
+    {
+      Account *acc_b = node_b->data;
+
+      if (0 != safe_strcmp(acc_a->accountName, acc_b->accountName))
+	continue;
+      if (0 != safe_strcmp(acc_a->accountCode, acc_b->accountCode))
+	continue;
+      if (0 != safe_strcmp(acc_a->description, acc_b->description))
+	continue;
+      if (!gnc_commodity_equiv(acc_a->commodity, acc_b->commodity))
+	continue;
+      if (0 != safe_strcmp(xaccAccountGetNotes(acc_a),
+			   xaccAccountGetNotes(acc_b)))
+	continue;
+      if (acc_a->type != acc_b->type)
+	continue;
+
+      /* consolidate children */
+      if (acc_b->children) {
+	work = g_list_copy(acc_b->children);
+	for (worker = work; worker; worker = g_list_next(worker))
+	  gnc_account_append_child (acc_a, (Account *)worker->data);
+	g_list_free(work);
+
+	qof_event_gen (&acc_a->inst.entity, QOF_EVENT_MODIFY, NULL);
+	qof_event_gen (&acc_b->inst.entity, QOF_EVENT_MODIFY, NULL);
+      }
+
+      /* recurse to do the children's children */
+      gnc_account_merge_children (acc_a);
+
+      /* consolidate transactions */
+      while (acc_b->splits)
+	xaccSplitSetAccount (acc_b->splits->data, acc_a);
+
+      /* move back one before removal. next iteration around the loop
+       * will get the node after node_b */
+      node_b = g_list_previous(node_b);
+
+      /* The destroy function will remove from list -- node_a is ok,
+       * it's before node_b */
+      xaccAccountBeginEdit (acc_b);
+      xaccAccountDestroy (acc_b);
+    }
+  }
+}
+
+/* ================================================================ */
+/* Transaction Traversal functions                                  */
+
+
+void
+xaccSplitsBeginStagedTransactionTraversals (GList *splits)
+{
+  GList *lp;
+
+  for (lp = splits; lp; lp = lp->next)
+  {
+    Split *s = lp->data;
+    Transaction *trans = s->parent;
+
+    if (trans)
+      trans->marker = 0;
+  }
+}
+
+/* original function */
+void
+xaccAccountBeginStagedTransactionTraversals (const Account *account)
+{
+  if (account)
+      xaccSplitsBeginStagedTransactionTraversals (account->splits);
+}
+
+gboolean
+xaccTransactionTraverse (Transaction *trans, int stage)
+{
+  if (trans == NULL) return FALSE;
+
+  if (trans->marker < stage)
+  {
+    trans->marker = stage;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+gboolean
+xaccSplitTransactionTraverse (Split *split, int stage)
+{
+  if (split == NULL) return FALSE;
+
+  return xaccTransactionTraverse (split->parent, stage);
+}
+
+static void do_one_split (Split *s, gpointer data)
+{
+  Transaction *trans = s->parent;
+  trans->marker = 0;
+}
+
+static void do_one_account (Account *account, gpointer data)
+{
+  g_list_foreach(account->splits, (GFunc)do_one_split, NULL);
+}
+
+/* Replacement for xaccGroupBeginStagedTransactionTraversals */
+void
+gnc_account_tree_begin_staged_transaction_traversals (Account *account)
+{
+  GList *descendants;
+
+  descendants = gnc_account_get_descendants(account);
+  g_list_foreach(descendants, (GFunc)do_one_account, NULL);
+  g_list_free(descendants);
+}
+
+int
+xaccAccountStagedTransactionTraversal (const Account *acc,
+                                       unsigned int stage,
+                                       TransactionCallback thunk,
+                                       void *cb_data)
+{
+  GList *split_p;
+  Transaction *trans;
+  Split *s;
+  int retval;
+
+  if (!acc) return 0;
+
+  for(split_p = acc->splits; split_p; split_p = g_list_next(split_p)) {
+    s = split_p->data;
+    trans = s->parent;   
+    if (trans && (trans->marker < stage)) {
+      trans->marker = stage;
+      if (thunk) {
+        retval = thunk(trans, cb_data);
+        if (retval) return retval;
+      }
+    }
+  }
+
+  return 0;
+}
+
+int
+gnc_account_tree_staged_transaction_traversal (const Account *acc,
+					       unsigned int stage,
+					       TransactionCallback thunk,
+					       void *cb_data)
+{
+  GList *acc_p, *split_p;
+  Transaction *trans;
+  Split *s;
+  int retval;
+
+  if (!acc) return 0;
+
+  /* depth first traversal */
+  for (acc_p = acc->children; acc_p; acc_p = g_list_next(acc_p)) {
+    retval = gnc_account_tree_staged_transaction_traversal(acc_p->data, stage,
+						   thunk, cb_data);
+    if (retval) return retval;
+  }
+
+  /* Now this account */
+  for(split_p = acc->splits; split_p; split_p = g_list_next(split_p)) {
+    s = split_p->data;
+    trans = s->parent;   
+    if (trans && (trans->marker < stage)) {
+      trans->marker = stage;
+      if (thunk) {
+        retval = thunk(trans, cb_data);
+        if (retval) return retval;
+      }
+    }
+  }
+
+  return 0;
+}
+
+/********************************************************************\
+\********************************************************************/
+
+int
+xaccAccountTreeForEachTransaction (Account *acc,
+				   int (*proc)(Transaction *t, void *data),
+				   void *data)
+{
+  if (!acc || !proc) return 0;
+
+  gnc_account_tree_begin_staged_transaction_traversals (acc);
+  return gnc_account_tree_staged_transaction_traversal (acc, 42, proc, data);
+}
+
+
+gint
+xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
+                              void *data) 
+{
+  if (!acc || !proc) return 0;
+  xaccAccountBeginStagedTransactionTraversals (acc);
+  return xaccAccountStagedTransactionTraversal(acc, 42, proc, data);
+}
+
+/* ================================================================ */
 /* QofObject function implementation and registration */
 
 static QofObject account_object_def = {
@@ -2708,7 +3464,7 @@
       (QofAccessFunc) xaccAccountGetNonStdSCU, 
       (QofSetterFunc) xaccAccountSetNonStdSCU },
     { ACCOUNT_PARENT, GNC_ID_ACCOUNT,
-      (QofAccessFunc) xaccAccountGetParentAccount, 
+      (QofAccessFunc) gnc_account_get_parent, 
       (QofSetterFunc) qofAccountSetParent },
     { QOF_PARAM_BOOK, QOF_ID_BOOK, 
       (QofAccessFunc) qof_instance_get_book, NULL },
@@ -2719,7 +3475,7 @@
     { NULL },
   };
 
-  qof_class_register (GNC_ID_ACCOUNT, (QofSortFunc) xaccAccountOrder, params);
+  qof_class_register (GNC_ID_ACCOUNT, (QofSortFunc) qof_xaccAccountOrder, params);
 
   return qof_object_register (&account_object_def);
 }

Modified: gnucash/branches/gda-dev/src/engine/Account.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/Account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,8 +32,7 @@
     (e.g. "IBM", "McDonald's"), a currency (e.g. "USD", "GBP"), or
     anything added to the commodity table.
 
-    Accounts can be arranged in a hierarchical tree. The nodes of the tree
-    are called "Account Groups" (@pxref{Account Groups}). By accounting
+    Accounts can be arranged in a hierarchical tree.  By accounting
     convention, the value of an Account is equal to the value of all of its
     Splits plus the value of all of its sub-Accounts.
     @{ */
@@ -57,6 +56,9 @@
 typedef gnc_numeric (*xaccGetBalanceAsOfDateFn) (
     Account *account, time_t date);
 
+typedef void (*AccountCb)(Account *a, gpointer data);
+typedef gpointer (*AccountCb2)(Account *a, gpointer data);
+
 #define GNC_IS_ACCOUNT(obj)  (QOF_CHECK_TYPE((obj), GNC_ID_ACCOUNT))
 #define GNC_ACCOUNT(obj)     (QOF_CHECK_CAST((obj), GNC_ID_ACCOUNT, Account))
 
@@ -121,17 +123,19 @@
 
   ACCT_TYPE_PAYABLE = 12,  /**< A/P account type */
 
-  NUM_ACCOUNT_TYPES = 13,  /**< stop here; the following types
+  ACCT_TYPE_ROOT = 13, /**< The hidden root account of an account tree. */
+
+  NUM_ACCOUNT_TYPES = 14,  /**< stop here; the following types
 			    * just aren't ready for prime time */
   
   /* bank account types */
-  ACCT_TYPE_CHECKING = 13, /**< bank account type -- don't use this
+  ACCT_TYPE_CHECKING = 14, /**< bank account type -- don't use this
 			    *   for now, see NUM_ACCOUNT_TYPES  */
-  ACCT_TYPE_SAVINGS = 14, /**< bank account type -- don't use this for
+  ACCT_TYPE_SAVINGS = 15, /**< bank account type -- don't use this for
 			   *   now, see NUM_ACCOUNT_TYPES  */
-  ACCT_TYPE_MONEYMRKT = 15, /**< bank account type -- don't use this
+  ACCT_TYPE_MONEYMRKT = 16, /**< bank account type -- don't use this
 			     *   for now, see NUM_ACCOUNT_TYPES  */
-  ACCT_TYPE_CREDITLINE = 16, /**< line of credit -- don't use this for
+  ACCT_TYPE_CREDITLINE = 17, /**< line of credit -- don't use this for
 			      *   now, see NUM_ACCOUNT_TYPES  */
 } GNCAccountType;
 
@@ -143,6 +147,9 @@
 /** Constructor */
 Account * xaccMallocAccount (QofBook *book);
 
+/** Create a new root level account.  */
+Account * gnc_account_create_root (QofBook *book);
+
 /** The xaccCloneAccount() does the same as xaccCloneAccountSimple(), 
  *    except that it also also places a pair of GUID-pointers
  *    of each account to the other, in the other's kvp slot.
@@ -188,7 +195,7 @@
  *    the account codes are compared, and if these are equal, then 
  *    account types, and, if these are equal, the account names.
  */
-int xaccAccountOrder (const Account **account_1, const Account **account_2);
+int xaccAccountOrder (const Account *account_1, const Account *account_2);
 
 /** @} */
 
@@ -205,8 +212,10 @@
 gunichar gnc_get_account_separator (void);
 void gnc_set_account_separator (const gchar *separator);
 
+Account *gnc_book_get_root_account(QofBook *book);
+void gnc_book_set_root_account(QofBook *book, Account *root);
+
 /** @deprecated */
-#define xaccAccountGetBook(X)     qof_instance_get_book(QOF_INSTANCE(X))
 #define xaccAccountGetGUID(X)     qof_entity_get_guid(QOF_ENTITY(X))
 #define xaccAccountReturnGUID(X) (X ? *(qof_entity_get_guid(QOF_ENTITY(X))) : *(guid_null()))
 
@@ -223,6 +232,7 @@
 /** @name Account general setters/getters 
  @{ */
 
+QofBook *gnc_account_get_book(const Account *account);
 /** Set the account's type */
 void xaccAccountSetType (Account *account, GNCAccountType);
 /** Set the account's name */
@@ -445,33 +455,279 @@
  @{
 */
 
-/** This routine returns the group holding the set of subaccounts 
- * for this account.  */
-AccountGroup * xaccAccountGetChildren (const Account *account);
+/** This function will remove from the child account any pre-existing
+ *  parent relationship, and will then add the account as a child of
+ *  the new parent.  The exception to this is when the old and new
+ *  parent accounts are the same, in which case this function does
+ *  nothing.
+ *
+ *  If the child account belongs to a different book than the
+ *  specified new parent account, the child will be removed from the
+ *  other book (and thus, the other book's entity tables, generating a
+ *  destroy event), and will be added to the new book (generating a
+ *  create event).
+ *
+ *  @param new_parent The new parent account to which the child should
+ *  be attached.
+ *
+ *  @param child The account to attach.
+ */
+void gnc_account_append_child (Account *new_parent, Account *child);
 
-/** This routine returns the group which contains this account.
+/** This function will remove the speified child account from the
+ *  specified parent account. It will NOT free the associated memory
+ *  or otherwise alter the account: the account can now be reparented
+ *  to a new location.  Note, however, that it will mark the old
+ *  parents as having been modified.
+ *
+ *  @param parent The parent account from which the child should be
+ *  removed.
+ *
+ *  @param child The child account to remove. */
+void gnc_account_remove_child (Account *parent, Account *child);
+
+/** This routine returns a pointer to the parent of the specified
+ *  account.  If the account has no parent, i.e it is either the root
+ *  node or is a disconnected account, then its parent will be NULL.
+ *
+ *  @param account A pointer to any exiting account.
+ *
+ *  @return A pointer to the parent account node, or NULL if there is
+ *  no parent account. */
+Account * gnc_account_get_parent (const Account *account);
+
+/** This routine returns the root account of the account tree that the
+ *  specified account belongs to.  It is the equivalent of repeatedly
+ *  calling the gnc_account_get_parent() routine until that routine
+ *  returns NULL.
+ *
+ *  @param account A pointer to any existing account.
+ *
+ *  @return The root node of the account tree to which this account
+ *  belongs.  NULL if the account is not part of any account tree. */
+Account * gnc_account_get_root (Account *account);
+
+/** This routine indicates whether the spcified account is the root
+ *  node of an account tree.
+ *
+ *  @param account A pointer to any account.
+ *
+ *  @return TRUE if this account is of type ROOT.  FALSE otherwise. */
+gboolean gnc_account_is_root (const Account *account);
+
+/** This routine returns a GList of all children of the specified
+ *  account.  This function only returns the immediate children of the
+ *  specified account.  For a list of all descendant accounts, use the
+ *  gnc_account_get_descendants() function.
+ *
+ *  @param account The account whose children should be returned.
+ *
+ *  @return A GList of account pointers, or NULL if there are no
+ *  children. It is the callers responsibility to free any returned
+ *  list with the g_list_free() function. */
+GList *gnc_account_get_children (const Account *account);
+GList *gnc_account_get_children_sorted (const Account *account);
+
+/** Return the number of children of the specified account.  The
+ *  returned number does not include the account itself.
+ *
+ *  @param account The account to query.
+ *
+ *  @return The number of children of the specified account. */
+gint gnc_account_n_children (const Account *account);
+
+/** Return the index of the specified child within the list of the
+ *  parent's children.  The first child index is 0.  This function
+ *  returns -1 if the parent account is NULL of if the specified child
+ *  does not belong to the parent account.
+ *
+ *  @param parent The parent account to check.
+ *
+ *  @param child The child account to find.
+ *
+ *  @return The index of the child account within the specified
+ *  parent, or -1. */
+gint gnc_account_child_index (const Account *parent, const Account *child);
+
+/** Return the n'th child account of the specified parent account.  If
+ *  the parent account is not specified or the child index number is
+ *  invalid, this function returns NULL.
+ *
+ *  @param parent The parent account to check.
+ *
+ *  @param num The index number of the child account that should be
+ *  returned.
+ *
+ *  @return A pointer to the specified child account, or NULL */
+Account *gnc_account_nth_child (const Account *parent, gint num);
+
+/** This routine returns a flat list of all of the accounts that are
+ *  descendants of the specified account.  This includes not only the
+ *  the children, but the children of the children, etc. For a list of
+ *  only the immediate child accounts, use the
+ *  gnc_account_get_children() function.  Within each set of child
+ *  accounts, the accounts returned by this function are unordered.
+ *  For a list of descendants where each set of children is sorted via
+ *  the standard account sort function, use the
+ *  gnc_account_get_descendants_sorted() function.
+ *
+ *  @param account The account whose descendants should be returned.
+ *
+ *  @return A GList of account pointers, or NULL if there are no
+ *  descendants. It is the callers responsibility to free any returned
+ *  list with the g_list_free() function. */
+GList * gnc_account_get_descendants (const Account *account);
+
+/** This function returns a GList containing all the descendants of
+ *  the specified account, sorted at each level.  This includes not
+ *  only the the children, but the children of the children, etc.
+ *  Within each set of child accounts, the accounts returned by this
+ *  function are ordered via the standard account sort function.  For
+ *  a list of descendants where each set of children is unordered, use
+ *  the gnc_account_get_descendants() function.
+ *
+ *  Note: Use this function where the results are intended for display
+ *  to the user.  If the results are internal to GnuCash or will be
+ *  resorted at som later point in time you should use the
+ *  gnc_account_get_descendants() function.
+ *
+ *  @param account The account whose descendants should be returned.
+ *
+ *  @return A GList of account pointers, or NULL if there are no
+ *  descendants. It is the callers responsibility to free any returned
+ *  list with the g_list_free() function. */
+GList *gnc_account_get_descendants_sorted (const Account *account);
+
+/** Return the number of descendants of the specified account.  The
+ *  returned number does not include the account itself.
+ *
+ *  @param account The account to query.
+ *
+ *  @return The number of descendants of the specified account. */
+gint gnc_account_n_descendants (const Account *account);
+
+/** Return the number of levels of this account below the root
+ *  account.
+ *
+ *  @param account The account to query.
+ *
+ *  @return The number of levels below the root. */
+gint gnc_account_get_current_depth (const Account *account);
+
+/** Return the number of levels of descendants accounts below the
+ *  specified account.  The returned number does not include the
+ *  specifed account itself.
+ *
+ *  @param account The account to query.
+ *
+ *  @return The number of levels of descendants. */
+gint gnc_account_get_tree_depth (const Account *account);
+
+/** @name ForEach
+ @{
+*/
+
+/** This method will traverse the immediate children of this accounts,
+ *  calling 'func' on each account.  This function traverses all
+ *  children nodes.  To traverse only a subset of the child nodes use
+ *  the gnc_account_foreach_child_until() function.
+ *
+ *  @param account A pointer to the account on whose children the
+ *  function should be called.
+ *
+ *  @param func A function taking two arguments, an Account and a
+ *  gpointer.
+ *
+ *  @param user_data This data will be passed to each call of func. */
+void gnc_account_foreach_child (const Account *account,
+				AccountCb func, gpointer user_data);
+
+/** This method will traverse the immediate children of this accounts,
+ *  calling 'func' on each account.  Traversal will stop when func
+ *  returns a non-null value, and the routine will return with that
+ *  value.  Therefore, this function will return null iff func returns
+ *  null for every account.  For a simpler function that always
+ *  traverses all children nodes, use the gnc_account_foreach_child()
+ *  function.
+ *
+ *  @param account A pointer to the account on whose children the
+ *  function should be called.
+ *
+ *  @param func A function taking two arguments, an Account and a
+ *  gpointer.
+ *
+ *  @param user_data This data will be passed to each call of func. */
+gpointer gnc_account_foreach_child_until (const Account *account,
+					  AccountCb2 func, gpointer user_data);
+
+
+/** This method will traverse all children of this accounts and their
+ *  descendants, calling 'func' on each account.  This function
+ *  traverses all descendant nodes.  To traverse only a subset of the
+ *  descendant nodes use the gnc_account_foreach_descendant_until()
+ *  function.
+ *
+ *  @param account A pointer to the account on whose descendants the
+ *  function should be called.
+ *
+ *  @param func A function taking two arguments, an Account and a
+ *  gpointer.
+ *
+ *  @param user_data This data will be passed to each call of func. */
+void gnc_account_foreach_descendant (const Account *account,
+				     AccountCb func, gpointer user_data);
+
+/** This method will traverse all children of this accounts and their
+ *  descendants, calling 'func' on each account.  Traversal will stop
+ *  when func returns a non-null value, and the routine will return
+ *  with that value.  Therefore, this function will return null iff
+ *  func returns null for every account.  For a simpler function that
+ *  always traverses all children nodes, use the
+ *  gnc_account_foreach_descendant() function.
+ *
+ *  @param account A pointer to the account on whose descendants the
+ *  function should be called.
+ *
+ *  @param func A function taking two arguments, an Account and a
+ *  gpointer.
+ *
+ *  @param user_data This data will be passed to each call of func. */
+gpointer gnc_account_foreach_descendant_until (const Account *account,
+					       AccountCb2 func, gpointer user_data);
+
+
+/** @} */
+
+/** @name Concatenation, Merging
+ @{
+*/
+
+/** The gnc_account_join_children() subroutine will move (reparent)
+ *  all child accounts from the from_parent account to the to_parent
+ *  account, preserving the account heirarchy.  It will also take care
+ *  that the moved accounts will have the to_parent's book parent
+ *  as well.
  */
-AccountGroup * xaccAccountGetParent (const Account *account);
+void gnc_account_join_children (Account *to_parent, Account *from_parent);
 
-/** This routine returns the parent of the group that is the parent
- * of this account.  It is equivalent to the nested call
- * xaccGroupGetParentAccount (xaccAccountGetParent ())
- * Note that if the account is in the root group node, then its
- * parent will be NULL.
+/** The gnc_account_copy_children() subroutine will copy all child
+ *  accounts from the "src" account to the "dest" account, preserving
+ *  the account heirarchy.  It will also take care that the moved
+ *  accounts will have the "dest" account's book parent as well.  This
+ *  routine will *NOT* copy any splits/transactions.  It will copy the
+ *  KVP trees in each account.
  */
-Account * xaccAccountGetParentAccount (const Account *account);
+void gnc_account_copy_children (Account *dest, Account *src);
 
-/** This routine returns a flat list of all of the accounts
- * that are descendents of this account.  This includes not
- * only the the children, but the children of the children, etc.
- * This routine is equivalent to the nested calls
- * xaccGroupGetSubAccounts (xaccAccountGetChildren())
- *
- * The returned list should be freed with g_list_free() when 
- * no longer needed.
+/** The gnc_account_merge_children() subroutine will go through an
+ *  account, merging all child accounts that have the same name and
+ *  description.  This function is useful when importing Quicken(TM)
+ *  files.
  */
-GList * xaccAccountGetDescendants (const Account *account);
+void gnc_account_merge_children (Account *parent);
 
+/** @} */
+
 /** DOCUMENT ME! */
 void xaccAccountSetReconcileChildrenStatus(Account *account, gboolean status);
 
@@ -489,7 +745,29 @@
 
 /** @} */
 
+/** @name Getting Accounts and Subaccounts by Name
+ @{
+*/
+/** The gnc_account_lookup_by_name() subroutine fetches the account by
+ *  name from the descendants of the specified account.  The immediate
+ *  children are searched first.  If there is no match,, then a
+ *  recursive search of all descendants is performed looking for a
+ *  match.
+ *
+ *  @return A pointer to the account with the specified name, or NULL
+ *  if the account was not found.
+ */
+Account *gnc_account_lookup_by_name (const Account *parent, const char *name);
 
+/** The gnc_account_lookup_full_name() subroutine works like
+ *  gnc_account_lookup_by_name, but uses fully-qualified names using the
+ *  given separator.
+ */
+Account *gnc_account_lookup_by_full_name (const Account *any_account,
+					  const gchar *name);
+
+/** @} */
+
 /* ------------------ */
 
 /** @name GNCAccountType conversion/checking
@@ -694,7 +972,7 @@
 /** Get the "placeholder" flag for an account.  If this flag is set
  *  then the account may not be modified by the user.
  *
- *  @param acc The account whose flag should be retrieved.
+ *  @param account The account whose flag should be retrieved.
  *
  *  @return The current state of the account's "placeholder" flag. */
 gboolean xaccAccountGetPlaceholder (const Account *account);
@@ -702,13 +980,13 @@
 /** Set the "placeholder" flag for an account.  If this flag is set
  *  then the account may not be modified by the user.
  *
- *  @param acc The account whose flag should be retrieved.
+ *  @param account The account whose flag should be retrieved.
  *
  *  @param val The new state for the account's "placeholder" flag. */
-void xaccAccountSetPlaceholder (Account *account, gboolean option);
+void xaccAccountSetPlaceholder (Account *account, gboolean val);
 
 /** Returns PLACEHOLDER_NONE if account is NULL or neither account nor
- *  any descendent of account is a placeholder.  If account is a
+ *  any descendant of account is a placeholder.  If account is a
  *  placeholder, returns PLACEHOLDER_THIS.  Otherwise, if any
  *  descendant of account is a placeholder, return PLACEHOLDER_CHILD.
  */
@@ -782,18 +1060,152 @@
 /** Get the mark set by xaccAccountSetMark */
 short xaccAccountGetMark (const Account *account);
 
-/** The xaccClearMark will find the topmost group, and clear the mark in
- * the entire group tree.  */
+/** The xaccClearMark will find the root account, and clear the mark in
+ * the entire account tree.  */
 void xaccClearMark (Account *account, short val);
 
 /** The xaccClearMarkDown will clear the mark only in this and in
  * sub-accounts.*/
 void xaccClearMarkDown (Account *account, short val);
-/** Will clear the mark for all the accounts of the AccountGroup .*/
-void xaccClearMarkDownGr (AccountGroup *group, short val);
 /** @} */
 
+/** @name Staged Traversal
 
+ * The following functions provide support for "staged traversals"
+ * over all of the transactions in an account or group.  The idea
+ * is to be able to perform a sequence of traversals ("stages"),
+ * and perform an operation on each transaction exactly once 
+ * for that stage.  
+ *
+ * Only transactions whose current "stage" is less than the
+ * stage of the current traversal will be affected, and they will
+ * be "brought up" to the current stage when they are processed.
+ *
+ * For example, you could perform a stage 1 traversal of all the
+ * transactions in an account, and then perform a stage 1 traversal of
+ * the transactions in a second account.  Presuming the traversal of
+ * the first account didn't abort prematurely, any transactions shared
+ * by both accounts would be ignored during the traversal of the
+ * second account since they had been processed while traversing the
+ * first account.
+ *
+ * However, if you had traversed the second account using a stage 
+ * of 2, then all the transactions in the second account would have 
+ * been processed.
+ *
+ * Traversal can be aborted by having the callback function return
+ * a non-zero value.  The traversal is aborted immediately, and the 
+ * non-zero value is returned.  Note that an aborted traversal can 
+ * be restarted; no information is lost due to an abort.
+ *
+ * The initial impetus for this particular approach came from
+ * generalizing a mark/sweep practice that was already being
+ * used in FileIO.c.
+ *
+ * Note that currently, there is a hard limit of 256 stages, which
+ * can be changed by enlarging "marker" in the transaction struct.
+ *
+ @{
+*/
+/** gnc_account_tree_begin_staged_transaction_traversals()
+ *  resets the traversal marker inside every transactions of every
+ *  account in the account tree originating with the specified node.
+ *  This is done so that a new sequence of staged traversals can
+ *  begin.
+ */
+void gnc_account_tree_begin_staged_transaction_traversals(Account *acc);
+
+/** xaccSplitsBeginStagedTransactionTraversals() resets the traversal
+ *    marker for each transaction which is a parent of one of the
+ *    splits in the list.
+ */
+void xaccSplitsBeginStagedTransactionTraversals(SplitList *splits);
+
+/** xaccAccountBeginStagedTransactionTraversals() resets the traversal
+ *    marker for each transaction which is a parent of one of the
+ *    splits in the account.
+ */
+void xaccAccountBeginStagedTransactionTraversals(const Account *account);
+
+/** xaccTransactionTraverse() checks the stage of the given transaction.
+ *    If the transaction hasn't reached the given stage, the transaction
+ *    is updated to that stage and the function returns TRUE. Otherwise
+ *    no change is made and the function returns FALSE.
+ */
+gboolean xaccTransactionTraverse(Transaction *trans, int stage);
+
+/** xaccSplitTransactionTraverse() behaves as above using the parent of
+ *    the given split.
+ */
+gboolean xaccSplitTransactionTraverse(Split *split, int stage);
+
+/** xaccAccountStagedTransactionTraversal() calls thunk on each
+ *    transaction in the account whose current marker is less than the
+ *    given `stage' and updates each transaction's marker to be `stage'.
+ *    The traversal will stop if thunk() returns a non-zero value.
+ *    xaccAccountStagedTransactionTraversal() function will return zero
+ *    or the non-zero value returned by thunk().
+ *    This API does not handle handle recursive traversals.
+ *
+ *    Currently the result of adding or removing transactions during
+ *    a traversal is undefined, so don't do that. 
+ */
+
+int xaccAccountStagedTransactionTraversal(const Account *a,
+                                          unsigned int stage,
+                                          TransactionCallback thunk,
+                                          void *data);
+
+/** gnc_account_tree_staged_transaction_traversal() calls thunk on each
+ *    transaction in the group whose current marker is less than the
+ *    given `stage' and updates each transaction's marker to be `stage'.
+ *    The traversal will stop if thunk() returns a non-zero value.
+ *    gnc_account_tree_staged_transaction_traversal() function will return zero 
+ *    or the non-zero value returned by thunk().  This
+ *    API does not handle handle recursive traversals.
+ *
+ *    Currently the result of adding or removing transactions during
+ *    a traversal is undefined, so don't do that.
+ */
+
+int gnc_account_tree_staged_transaction_traversal(const Account *account,
+						  unsigned int stage,
+						  TransactionCallback thunk,
+						  void *data);
+
+/** Traverse all of the transactions in the given account group.
+   Continue processing IFF proc returns 0. This function
+   will descend recursively to traverse transactions in the
+   children of the accounts in the group.
+
+   Proc will be called exactly once for each transaction that is
+   pointed to by at least one split in any account in the hierarchy
+   topped by the root Account acc.
+
+   The result of this function will be 0 IFF every relevant
+   transaction was traversed exactly once; otherwise, the return
+   value is the last non-zero value returned by the callback.
+
+   Note that the traversal occurs only over the transactions that
+   are locally cached in the local gnucash engine.  If the gnucash
+   engine is attached to a remote database, the database may contain
+   (many) transactions that are not mirrored in the local cache.
+   This routine will not cause an SQL database query to be performed;
+   it will not traverse transactions present only in the remote
+   database.
+
+   Note that this routine is just a trivial wrapper for 
+   
+   gnc_account_tree_begin_staged_transaction_traversals(g);
+   gnc_account_tree_staged_transaction_traversal(g, 42, proc, data);
+ */
+
+int xaccAccountTreeForEachTransaction(Account *acc, 
+				      TransactionCallback proc, void *data);
+
+/** @} */
+
+
 /** @name Deprecated Routines. 
  @{ 
 */

Modified: gnucash/branches/gda-dev/src/engine/AccountP.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/AccountP.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/AccountP.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -98,8 +98,8 @@
   /* The parent and children pointers are used to implement an account
    * hierarchy, of accounts that have sub-accounts ("detail accounts").
    */
-  AccountGroup *parent;    /* back-pointer to parent */
-  AccountGroup *children;  /* pointer to sub-accounts */
+  Account *parent;    /* back-pointer to parent */
+  GList *children;    /* list of sub-accounts */
 
   /* protected data, cached parameters */
   gnc_numeric starting_balance;

Modified: gnucash/branches/gda-dev/src/engine/FreqSpec.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/FreqSpec.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/FreqSpec.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -87,11 +87,12 @@
 
 #include "FreqSpecP.h"
 
-static QofLogModule log_module = GNC_MOD_SX;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.engine.freqspec"
+
 /* 
  *  FIXME: should be in a header file
  */
-
 #ifdef HAVE_LANGINFO_D_FMT
 #  define GNC_D_FMT (nl_langinfo (D_FMT))
 #else
@@ -130,7 +131,7 @@
   struct tm t;
   memset( &t, 0, sizeof( t ) );
   t.tm_wday = day;
-  strftime(wday_name, WDAY_NAME_WIDTH, "%A", &t);
+  qof_strftime(wday_name, WDAY_NAME_WIDTH, "%A", &t);
   return wday_name;
 }
  
@@ -141,7 +142,7 @@
   static gchar month_name[WDAY_BUF_WIDTH];
   struct tm t;
   t.tm_mon = month;
-  strftime(month_name, WDAY_NAME_WIDTH, "%B", &t);
+  qof_strftime(month_name, WDAY_NAME_WIDTH, "%B", &t);
   return month_name;
 }
 #endif
@@ -153,7 +154,7 @@
   struct tm t;
   memset( &t, 0, sizeof( t ) );
   t.tm_mon = month;
-  strftime(month_name, WDAY_NAME_WIDTH, "%b", &t);
+  qof_strftime(month_name, WDAY_NAME_WIDTH, "%b", &t);
   return month_name;
 }
 
@@ -753,10 +754,10 @@
    { 
       FreqSpec *subFS;
       if ( g_list_length( fs->s.composites.subSpecs ) != 5 ) {
-         PERR( "Invalid Daily[M-F] structure." );
-         snprintf( freqStrBuf, MAX_FREQ_STR_SIZE,
-              "Daily[M-F]: error" );
-         return;
+        g_critical("Invalid Daily[M-F] structure");
+        snprintf( freqStrBuf, MAX_FREQ_STR_SIZE,
+                  "Daily[M-F]: error" );
+        return;
       }
       /* We assume that all of the weekly FreqSpecs that make up
          the Daily[M-F] FreqSpec have the same interval. */
@@ -925,9 +926,9 @@
    case UIFREQ_SEMI_YEARLY:
       if ( fs->s.monthly.interval_months != 6 ) {
          if ( (fs->s.monthly.interval_months % 6) != 0 ) {
-            PERR( "ERROR: FreqSpec Semi-Yearly month-interval "
-                  "is not a multiple of 6 [%d]",
-                  fs->s.monthly.interval_months );
+              g_critical( "FreqSpec Semi-Yearly month-interval "
+                          "is not a multiple of 6 [%d]",
+                          fs->s.monthly.interval_months );
          }
          snprintf( freqStrBuf, MAX_FREQ_STR_SIZE,
               /* %u is the number of intervals; %u
@@ -948,9 +949,9 @@
    case UIFREQ_YEARLY:
       if ( fs->s.monthly.interval_months != 12 ) {
          if ( (fs->s.monthly.interval_months % 12) != 0 ) {
-            PERR( "ERROR: \"Yearly\" FreqSpec month-interval "
-                  "is not a multiple of 12 [%d]",
-                  fs->s.monthly.interval_months );
+              g_critical( "Yearly FreqSpec month-interval "
+                          "is not a multiple of 12 [%d]",
+                          fs->s.monthly.interval_months );
          }
 
          snprintf( freqStrBuf, MAX_FREQ_STR_SIZE,
@@ -1096,18 +1097,15 @@
             b->s.monthly.day_of_month );
       break;
    case MONTH_RELATIVE:
-      DEBUG( "MONTH-RELATIVE dates not supported." );
-      g_assert( FALSE );
+      g_error( "MONTH-RELATIVE dates not supported." );
       break;
    case COMPOSITE:
       /* We shouldn't see a composite after doing the
        * composite-reduction above. */
-      DEBUG( "This code should not be reached." );
-      g_assert( FALSE );
+      g_error( "This code should not be reached." );
       break;
    default:
-      DEBUG( "Unknown freqspec type %d", fta );
-      g_assert( FALSE );
+      g_error( "Unknown freqspec type %d", fta );
       break;
    }
    return 0;

Deleted: gnucash/branches/gda-dev/src/engine/Group.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Group.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Group.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,1322 +0,0 @@
-/********************************************************************\
- * Group.c -- chart of accounts (hierarchical tree of accounts)     *
- * Copyright (C) 1997 Robin D. Clark                                *
- * Copyright (C) 1997-2001,2003 Linas Vepstas <linas at linas.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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-
-#include "config.h"
-
-#include <glib.h>
-#include <string.h>
-
-#include "Account.h"
-#include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
-#include "TransactionP.h"
-#include "gnc-event.h"
-
-static QofLogModule log_module = GNC_MOD_ENGINE;
-
-/********************************************************************\
- * Because I can't use C++ for this project, doesn't mean that I    *
- * can't pretend to!  These functions perform actions on the        *
- * AccountGroup data structure, in order to encapsulate the         *
- * knowledge of the internals of the AccountGroup in one file.      *
-\********************************************************************/
-
-/********************************************************************\
-\********************************************************************/
-
-static void
-xaccInitializeAccountGroup (AccountGroup *grp, QofBook *book)
-{
-  grp->saved       = 1;
-
-  grp->parent      = NULL;
-  grp->accounts    = NULL;
-
-  grp->book        = book;
-  grp->editlevel   = 0;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-AccountGroup *
-xaccMallocAccountGroup (QofBook *book)
-{
-  AccountGroup *grp;
-  g_return_val_if_fail (book, NULL);
-
-  grp = g_new (AccountGroup, 1);
-  xaccInitializeAccountGroup (grp, book);
-
-  return grp;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-AccountGroup * 
-xaccCollGetAccountGroup (const QofCollection *col)
-{
-  if (!col) return NULL;
-  return qof_collection_get_data (col);
-}
-
-void
-xaccCollSetAccountGroup (QofCollection *col, AccountGroup *grp)
-{
-  AccountGroup *old_grp;
-  if (!col) return;
-
-  old_grp = xaccCollGetAccountGroup (col);
-  if (old_grp == grp) return;
-
-  qof_collection_set_data (col, grp);
-
-  xaccAccountGroupBeginEdit (old_grp);
-  xaccAccountGroupDestroy (old_grp);
-}
-
-AccountGroup * 
-xaccGetAccountGroup (QofBook *book)
-{
-  QofCollection *col;
-  if (!book) return NULL;
-  col = qof_book_get_collection (book, GNC_ID_GROUP);
-  return xaccCollGetAccountGroup (col);
-}
-
-void
-xaccSetAccountGroup (QofBook *book, AccountGroup *grp)
-{
-  QofCollection *col;
-  if (!book) return;
-
-  if (grp && grp->book != book)
-  {
-     PERR ("cannot mix and match books freely!");
-     return;
-  }
-
-  col = qof_book_get_collection (book, GNC_ID_GROUP);
-  xaccCollSetAccountGroup (col, grp);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-gboolean
-xaccGroupEqual(const AccountGroup *ga,
-               const AccountGroup *gb,
-               gboolean check_guids)
-{
-  GList *na;
-  GList *nb;
-
-  if (!ga && !gb) return(TRUE);
-
-  if (!ga || !gb)
-  {
-    PWARN ("one is NULL");
-    return(FALSE);
-  }
-
-  na = ga->accounts;
-  nb = gb->accounts;
-
-  if ((!na && nb) || (na && !nb))
-  {
-    PWARN ("only one has accounts");
-    return(FALSE);
-  }
-
-  while (na && nb)
-  {
-    Account *aa = na->data;
-    Account *ab = nb->data;
-
-    if (!xaccAccountEqual(aa, ab, check_guids))
-    {
-      char sa[GUID_ENCODING_LENGTH + 1];
-      char sb[GUID_ENCODING_LENGTH + 1];
-
-      guid_to_string_buff (xaccAccountGetGUID (aa), sa);
-      guid_to_string_buff (xaccAccountGetGUID (ab), sb);
-
-      PWARN ("accounts %s and %s differ", sa, sb);
-
-      return(FALSE);
-    }
-
-    na = na->next;
-    nb = nb->next;
-  }
-
-  if (na || nb)
-  {
-    PWARN ("different numbers of accounts");
-    return(FALSE);
-  }
-
-  return(TRUE);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccAccountGroupBeginEdit (AccountGroup *grp)
-{
-  GList *node;
-
-  if (!grp) return;
-  grp->editlevel++;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccAccountBeginEdit (account);
-    xaccAccountGroupBeginEdit (account->children);
-  }
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccAccountGroupCommitEdit (AccountGroup *grp)
-{
-  GList *node;
-
-  if (!grp) return;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccAccountGroupCommitEdit (account->children);
-    xaccAccountCommitEdit (account);
-  }
-  grp->editlevel--;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-static void
-xaccGroupMarkDoFree (AccountGroup *grp)
-{
-  GList *node;
-
-  if (!grp) return;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-    account->inst.do_free = TRUE;
-    xaccGroupMarkDoFree (account->children); 
-  }
-}
-
-void
-xaccAccountGroupDestroy (AccountGroup *grp)
-{
-   xaccGroupMarkDoFree (grp);
-   xaccFreeAccountGroup (grp);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-QofBook *
-xaccGroupGetBook (const AccountGroup *group)
-{
-  if (!group) return NULL;
-  return group->book;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccFreeAccountGroup (AccountGroup *grp)
-{
-  gboolean root_grp;
-
-  if (!grp) return;
-
-  root_grp = grp->parent == NULL;
-
-  if (grp->accounts)
-  {
-    Account *account;
-    /* This is a weird iterator & needs some explanation.
-     * xaccAccountDestroy() will rip the account out of the list, thus
-     * iterating while grp->accounts is non-null is enough to iterate
-     * the loop.  But when it deletes the last account, then it will
-     * also delete the group, unless it's the root group, making the
-     * grp pointer invalid. So we have to be careful with the last
-     * deletion: in particular, g_free(grp) would be freeing that
-     * memory a second time, so don't do it. */
-    while (grp->accounts->next)
-    {
-      account = grp->accounts->next->data;
-
-      /* FIXME: this and the same code below is kind of hacky.
-       *        actually, all this code seems to assume that
-       *        the account edit levels are all 1. */
-      if (account->inst.editlevel == 0)
-        xaccAccountBeginEdit (account);
-
-      xaccAccountDestroy (account);
-    }
-    account = grp->accounts->data;
-    if (account->inst.editlevel == 0) 
-      xaccAccountBeginEdit (account);
-    xaccAccountDestroy (account);
-
-    if (!root_grp) return;
-  }
-
-  if (grp->parent) grp->parent->children = NULL;
-
-  grp->parent   = NULL;
-
-  g_free (grp);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccGroupMarkSaved (AccountGroup *grp)
-{
-  GList *node;
-
-  if (!grp) return;
-
-  grp->saved = 1;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccGroupMarkSaved (account->children); 
-  }
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccGroupMarkNotSaved (AccountGroup *grp)
-{
-  if (!grp) return;
-
-  grp->saved = 0;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-gboolean
-xaccGroupNotSaved (const AccountGroup *grp)
-{
-  GList *node;
-
-  if (!grp) return FALSE;
-
-  if (grp->saved == 0) return TRUE;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    if (xaccGroupNotSaved (account->children))
-      return TRUE;
-  }
-
-  return FALSE;
-}
-
-/********************************************************************\
- * Get the number of accounts, including subaccounts                *
-\********************************************************************/
-
-int
-xaccGroupGetNumSubAccounts (const AccountGroup *grp)
-{
-  GList *node;
-  int num_acc;
-
-  if (!grp) return 0;
-
-  num_acc = g_list_length (grp->accounts);
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    num_acc += xaccGroupGetNumSubAccounts (account->children);
-  }
-
-  return num_acc;
-}
-
-/********************************************************************\
- * Recursively get all of the accounts, including subaccounts       *
-\********************************************************************/
-
-static void
-xaccPrependAccounts (const AccountGroup *grp, GList **accounts_p)
-{
-  GList *node;
-
-  if (!grp || !accounts_p) return;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    *accounts_p = g_list_prepend (*accounts_p, account);
-
-    xaccPrependAccounts (account->children, accounts_p);
-  }
-}
-
-AccountList *
-xaccGroupGetSubAccounts (const AccountGroup *grp)
-{
-  GList *accounts = NULL;
-
-  if (!grp) return NULL;
-
-  xaccPrependAccounts (grp, &accounts);
-
-  return g_list_reverse (accounts);
-}
-
-static int
-group_sort_helper (gconstpointer a, gconstpointer b)
-{
-  const Account *aa = (const Account *) a;
-  const Account *bb = (const Account *) b;
-
-  /* xaccAccountOrder returns > 1 if aa should come after bb.
-   * This funciton is building a reversed list. */
-  return xaccAccountOrder (&aa, &bb);
-}
-
-static void
-xaccPrependAccountsSorted (const AccountGroup *grp, GList **accounts_p)
-{
-  GList *node, *tmp_list;
-
-  if (!grp || !accounts_p) return;
-
-  tmp_list = g_list_copy(grp->accounts);
-  tmp_list = g_list_sort(tmp_list, group_sort_helper);
-
-  for (node = tmp_list; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    *accounts_p = g_list_prepend (*accounts_p, account);
-
-    xaccPrependAccountsSorted (account->children, accounts_p);
-  }
-  g_list_free(tmp_list);
-}
-
-AccountList *
-xaccGroupGetSubAccountsSorted (const AccountGroup *grp)
-{
-  GList *accounts = NULL;
-
-  if (!grp) return NULL;
-
-  xaccPrependAccountsSorted (grp, &accounts);
-
-  return g_list_reverse (accounts);
-}
-
-AccountList *
-xaccGroupGetAccountList (const AccountGroup *grp)
-{
-  if (!grp) return NULL;
-
-  return grp->accounts;
-}
-
-AccountList *
-xaccGroupGetAccountListSorted (const AccountGroup *grp)
-{
-  if (!grp) return NULL;
-
-  return g_list_sort(g_list_copy(grp->accounts), group_sort_helper);
-
-}
-
-/********************************************************************\
- * Fetch the root of the tree                                       *
-\********************************************************************/
-
-AccountGroup *
-xaccGroupGetRoot (const AccountGroup * grp) 
-{
-  const AccountGroup * root = NULL;
-
-  /* find the root of the account group structure */
-  while (grp)
-  {
-    Account *parent_acc;
-
-    root = grp;
-    parent_acc = grp->parent;
-
-    if (parent_acc)
-      grp = parent_acc->parent;
-    else
-      grp = NULL;
-  }
-
-  return (AccountGroup*)root;
-}
-
-AccountGroup *
-xaccAccountGetRoot (const Account * acc) 
-{
-  return acc ? xaccGroupGetRoot (acc->parent) : NULL;
-}
-
-/********************************************************************\
- * Fetch an account, given its name                                *
-\********************************************************************/
-
-Account *
-xaccGetAccountFromName (const AccountGroup *grp, const char * name)
-{
-  GList *node;
-
-  if (!grp) return NULL;
-  if (!name) return NULL;
-
-  /* first, look for accounts hanging off the root */
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    if (safe_strcmp(xaccAccountGetName (account), name) == 0)
-      return account;
-  }
-
-  /* if we are still here, then we haven't found the account yet.
-   * Recursively search the subgroups next */
-  /* first, look for accounts hanging off the root */
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-    Account *acc;
-
-    acc = xaccGetAccountFromName (account->children, name);
-    if (acc)
-      return acc;
-  }
-
-  return NULL;
-}
-
-/********************************************************************\
- * Fetch an account, given its full name                            *
-\********************************************************************/
-
-static Account *
-xaccGetAccountFromFullNameHelper (const AccountGroup *grp,
-				  gchar **names)
-{
-  Account *found = NULL;
-  GList *node;
-  gchar *name_str, *temp_str;
-  const gchar *separator;
-  gboolean str_alloced = FALSE;
-
-  g_return_val_if_fail(grp, NULL);
-  g_return_val_if_fail(names, NULL);
-
-  separator = gnc_get_account_separator_string();
-  /* start with the first name in the list */
-  name_str = names[0];
-
-  /* Make sure we actually HAVE a string! */
-  if (name_str == NULL)
-    return NULL;
-
-  while (1)
-  {
-    /* Look for the first name in the children. */
-    for (node = grp->accounts; node; node = node->next) {
-      Account *account = node->data;
-
-      if (safe_strcmp(xaccAccountGetName (account), name_str) == 0) {
-	/* We found an account.  If the next entry is NULL, there is
-	 * nothing left in the name, so just return the account. */
-	if (names[1] == NULL) {
-	  found = account;
-	  goto done;
-	}
-
-	/* No children?  We're done. */
-	if (!account->children) {
-	  found = NULL;
-	  goto done;
-	}
-
-	/* There's stuff left to search for.  Search recursively. */
-	found = xaccGetAccountFromFullNameHelper(account->children, &names[1]);
-	if (found != NULL) {
-	  goto done;
-	}
-      }
-    }
-
-    /* If we got here then we didn't find a match based on name_str
-     * so build a new name_str using the next token and try again.
-     */
-
-    /* If there's no more names then we're done.  We didn't find anything */
-    if (names[1] == NULL) {
-      found = NULL;
-      break;
-    }
-
-    /* If we are here, we didn't find anything and there
-     * must be more separators. So, continue looking with
-     * a longer name, in case there is a name with the
-     * separator character in it. */ 
-
-    /* Build the new name string */
-    temp_str = g_strconcat(name_str, separator, names[1], NULL);
-    if (str_alloced)
-      g_free(name_str);
-    str_alloced = TRUE;
-    names++;
-    name_str = temp_str;    
-  }
-
-done:
-  if (str_alloced)
-    g_free(name_str);
-  return found;
-}
-
-
-Account *
-xaccGetAccountFromFullName (const AccountGroup *grp,
-			    const char *name)
-{
-  Account *found;
-  gchar **names;
-
-  if (!grp) return NULL;
-  if (!name) return NULL;
-
-  names = g_strsplit(name, gnc_get_account_separator_string(), -1);
-  found = xaccGetAccountFromFullNameHelper(grp, names);
-  g_strfreev(names);
-  return found;
-}
-
-/********************************************************************\
- * Fetch an account, given its name                                *
-\********************************************************************/
-
-Account *
-xaccGetPeerAccountFromName (const Account *acc, const char * name)
-{
-  AccountGroup * root;
-  Account *peer_acc;
-
-  if (!acc) return NULL;
-  if (!name) return NULL;
-
-  /* first, find the root of the account group structure */
-  root = xaccAccountGetRoot (acc);
-
-  /* now search all accounts hanging off the root */
-  peer_acc = xaccGetAccountFromName (root, name);
-
-  return peer_acc;
-}
-
-/********************************************************************\
- * Fetch an account, given its full name                            *
-\********************************************************************/
-
-Account *
-xaccGetPeerAccountFromFullName (const Account *acc, const char * name)
-{
-  AccountGroup * root;
-  Account *peer_acc;
-
-  if (!acc) return NULL;
-  if (!name) return NULL;
-
-  /* first, find the root of the account group structure */
-  root = xaccAccountGetRoot (acc);
-
-  /* now search all acounts hanging off the root */
-  peer_acc = xaccGetAccountFromFullName (root, name);
-
-  return peer_acc;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccAccountRemoveGroup (Account *acc)
-{
-  AccountGroup *grp;
-
-  /* if this group has no parent, it must be the topgroup */
-  if (!acc) return;
-
-  grp = acc->children;
-
-  if (grp) grp->parent = NULL;
-  acc->children = NULL;
-
-  /* make sure that the parent of the group is marked 
-   * as having been modified. */
-  grp = acc->parent;
-  if (!grp) return;
-
-  grp->saved = 0;
-
-  qof_event_gen (&acc->inst.entity, QOF_EVENT_MODIFY, NULL);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccGroupRemoveAccount (AccountGroup *grp, Account *acc)
-{
-  GncEventData ed;
-
-  if (!acc) return;
-
-  /* Note this routine might be called on accounts which 
-   * are not yet parented. */
-  if (!grp) return;
-
-  if (acc->parent != grp)
-  {
-    PERR ("account not in group");
-    return;
-  }
-
-  /* Gather event data */
-  ed.node = grp->parent;
-  ed.idx = g_list_index(grp->accounts, acc);
-
-  grp->accounts = g_list_remove (grp->accounts, acc);
-
-  /* Now send the event. */
-  qof_event_gen(&acc->inst.entity, QOF_EVENT_REMOVE, &ed);
-
-  /* clear the account's group pointer after REMOVE event generation. */
-  acc->parent = NULL;
-
-  grp->saved = 0;
-
-  /* if this was the last account in a group, delete
-   * the group as well (unless its a root group) */
-  if ((grp->accounts == NULL) && (grp->parent))
-  {
-    xaccAccountRemoveGroup (grp->parent);
-    xaccFreeAccountGroup (grp);
-  }
-
-  qof_event_gen (&acc->inst.entity, QOF_EVENT_MODIFY, NULL);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccAccountInsertSubAccount (Account *adult, Account *child)
-{
-  if (!adult) return;
-
-  /* if a container for the children doesn't yet exist, add it */
-  if (adult->children == NULL)
-    adult->children = xaccMallocAccountGroup (adult->inst.book);
-
-  /* set back-pointer to parent */
-  adult->children->parent = adult;
-
-  /* allow side-effect of creating a child-less account group */
-  if (!child) return;
-
-  xaccGroupInsertAccount (adult->children, child);
-
-  qof_event_gen (&adult->inst.entity, QOF_EVENT_MODIFY, NULL);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void
-xaccGroupInsertAccount (AccountGroup *grp, Account *acc)
-{
-  if (!grp || !grp->book) return;
-  if (!acc) return;
-
-  ENTER("group %p, account %p named %s", grp, acc, xaccAccountGetName(acc));
-  /* If the account is currently in another group, remove it there
-   * first. Basically, we can't have accounts being in two places at
-   * once. If old and new parents are the same, reinsertion causes
-   * the sort order to be checked. */
-  if (acc->parent != grp)
-  {
-    xaccAccountBeginEdit (acc);
-
-    if (acc->parent) 
-    {
-      xaccGroupRemoveAccount (acc->parent, acc);
-
-      /* switch over between books, if needed */
-      if (grp->book != acc->inst.book)
-      {
-         QofCollection *col;
-// xxxxxxxxxxxxxxxxxxxxxxx
-         /* hack alert -- this implementation is not exactly correct.
-          * If the entity tables are not identical, then the 'from' book 
-          * may have a different backend than the 'to' book.  This means
-          * that we should get the 'from' backend to destroy this account,
-          * and the 'to' backend to save it.  Right now, this is broken.
-          *  
-          * A 'correct' implementation similar to this is in Period.c
-          * except its for transactions ...
-          *
-          * Note also, we need to reparent the children to the new book as well.
-          */
-         PWARN ("reparenting accounts across books is not correctly supported\n");
-
-         qof_event_gen (&acc->inst.entity, QOF_EVENT_DESTROY, NULL);
-         col = qof_book_get_collection (grp->book, GNC_ID_ACCOUNT);
-         qof_collection_insert_entity (col, &acc->inst.entity);
-         qof_event_gen (&acc->inst.entity, QOF_EVENT_CREATE, NULL);
-      }
-    }
-
-    /* set back-pointer to the account's parent */
-    acc->parent = grp;
-
-    grp->accounts = g_list_append (grp->accounts, acc);
-
-    /* Gather event data */
-    qof_event_gen (&acc->inst.entity, QOF_EVENT_ADD, NULL);
-
-    qof_instance_set_dirty(&acc->inst);
-    xaccAccountCommitEdit (acc);
-  }
-
-  grp->saved = 0;
-
-  qof_event_gen (&acc->inst.entity, QOF_EVENT_MODIFY, NULL);
-  LEAVE(" ");
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void 
-xaccGroupConcatGroup (AccountGroup *togrp, AccountGroup *fromgrp)
-{
-  if (!togrp) return;
-  if (!fromgrp) return;
-
-  /* The act of inserting the account into togrp also causes it to
-   * automatically be deleted from fromgrp.  This causes linked 
-   * lists to be re-written, and so a cursor traversal is not safe.
-   * Be careful! */
-
-  while (TRUE)
-  {
-    Account *account;
-    GList *accounts;
-    GList *next;
-
-    accounts = fromgrp->accounts;
-    if (!accounts) return;
-
-    next = accounts->next;
-
-    account = accounts->data;
-
-    xaccGroupInsertAccount (togrp, account);
-
-    if (!next) return;
-  }
-}
-
-void
-xaccGroupCopyGroup (AccountGroup *to, AccountGroup *from)
-{
-   int i;
-   GList *node;
-   if (!to || !from) return;
-   if (!from->accounts || !to->book) return;
-
-   ENTER (" ");
-   xaccAccountGroupBeginEdit(to);
-   xaccAccountGroupBeginEdit(from);
-   for (node = from->accounts; node; node=node->next)
-   {
-      Account *to_acc, *from_acc = node->data;
-
-      /* This will copy the basic data and the KVP.  It will
-       * not copy any splits/transactions. It will gemini. */
-      to_acc = xaccCloneAccount (from_acc, to->book);
-
-      xaccAccountBeginEdit (to_acc);
-      to->accounts = g_list_append (to->accounts, to_acc);
-
-      to_acc->parent = to;
-      qof_instance_set_dirty(&to_acc->inst);
-
-      /* Copy child accounts too. */
-      if (from_acc->children)
-      {
-         to_acc->children = xaccMallocAccountGroup (to->book);
-         to_acc->children->parent = to_acc;
-         xaccGroupCopyGroup (to_acc->children, from_acc->children);
-      }
-      xaccAccountCommitEdit (to_acc);
-      qof_event_gen (&to_acc->inst.entity, QOF_EVENT_CREATE, NULL);
-
-      /* make sure that we have a symmetric, uniform number of 
-       * begin-edits, so that subsequent GroupCommitEdit's 
-       * balance out. */
-      for (i=0; i<to->editlevel; i++)
-      {
-         xaccAccountBeginEdit (to_acc);
-         xaccAccountGroupBeginEdit (to_acc->children);
-      }
-   }
-   xaccAccountGroupCommitEdit(from);
-   xaccAccountGroupCommitEdit(to);
-   LEAVE (" ");
-}
-
-/********************************************************************\
-\********************************************************************/
-
-void 
-xaccGroupMergeAccounts (AccountGroup *grp)
-{
-  GList *node_a;
-  GList *node_b;
-
-  if (!grp) return;
-
-  for (node_a = grp->accounts; node_a; node_a = node_a->next)
-  {
-    Account *acc_a = node_a->data;
-
-    for (node_b = node_a->next; node_b; node_b = node_b->next)
-    {
-      Account *acc_b = node_b->data;
-
-      if ((0 == safe_strcmp(xaccAccountGetName(acc_a),
-                            xaccAccountGetName(acc_b))) &&
-          (0 == safe_strcmp(xaccAccountGetCode(acc_a),
-                            xaccAccountGetCode(acc_b))) &&
-          (0 == safe_strcmp(xaccAccountGetDescription(acc_a),
-                            xaccAccountGetDescription(acc_b))) &&
-          (gnc_commodity_equiv(xaccAccountGetCommodity(acc_a),
-                               xaccAccountGetCommodity(acc_b))) &&
-          (0 == safe_strcmp(xaccAccountGetNotes(acc_a),
-                            xaccAccountGetNotes(acc_b))) &&
-          (xaccAccountGetType(acc_a) == xaccAccountGetType(acc_b)))
-      {
-        AccountGroup *ga, *gb;
-
-        /* consolidate children */
-        ga = (AccountGroup *) acc_a->children;
-        gb = (AccountGroup *) acc_b->children;
-
-        if (gb)
-        {
-          if (!ga)
-          {
-            acc_a->children = gb;
-            gb->parent = acc_a;
-            acc_b->children = NULL;
-
-            qof_event_gen (&acc_a->inst.entity, QOF_EVENT_MODIFY, NULL);
-            qof_event_gen (&acc_b->inst.entity, QOF_EVENT_MODIFY, NULL);
-          }
-          else
-          {
-            xaccGroupConcatGroup (ga, gb);
-            acc_b->children = NULL;
-            qof_event_gen (&acc_b->inst.entity, QOF_EVENT_MODIFY, NULL);
-          }
-        }
-
-        /* recurse to do the children's children */
-        xaccGroupMergeAccounts (ga);
-
-        /* consolidate transactions */
-        while (acc_b->splits)
-          xaccSplitSetAccount (acc_b->splits->data, acc_a);
-
-        /* move back one before removal */
-        node_b = node_b->prev;
-
-        /* The destroy function will remove from list -- node_a is ok,
-	 * it's before node_b */
-        xaccAccountBeginEdit (acc_b);
-        xaccAccountDestroy (acc_b);
-        break;
-      }
-    }
-  }
-}
-
-/********************************************************************\
-\********************************************************************/
-
-int     
-xaccGroupGetNumAccounts (const AccountGroup *grp)
-{
-   if (!grp) return 0;
-
-   return g_list_length (grp->accounts);
-}
-
-Account *
-xaccGroupGetAccount (const AccountGroup *grp, int i)
-{
-   if (!grp) return NULL;
-
-   return g_list_nth_data (grp->accounts, i);
-}
-
-Account *
-xaccGroupGetParentAccount (const AccountGroup * grp)
-{
-  if (!grp) return NULL;
-
-  return grp->parent;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-int     
-xaccGroupGetDepth (const AccountGroup *grp)
-{
-  GList *node;
-  int depth = 0;
-  int maxdepth = 0;
-
-  if (!grp) return 0;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    depth = xaccGroupGetDepth (account->children);
-
-    if (depth > maxdepth)
-      maxdepth = depth;
-  }
-
-  maxdepth++;
-
-  return maxdepth;
-}
-
-/********************************************************************\
-\********************************************************************/
-void
-xaccSplitsBeginStagedTransactionTraversals (GList *splits)
-{
-  GList *lp;
-
-  for (lp = splits; lp; lp = lp->next)
-  {
-    Split *s = lp->data;
-    Transaction *trans = s->parent;
-
-    if (trans)
-      trans->marker = 0;
-  }
-}
-
-void
-xaccAccountBeginStagedTransactionTraversals (const Account *account)
-{
-  if (account)
-      xaccSplitsBeginStagedTransactionTraversals (account->splits);
-}
-
-gboolean
-xaccTransactionTraverse (Transaction *trans, int stage)
-{
-  if (trans == NULL) return FALSE;
-
-  if (trans->marker < stage)
-  {
-    trans->marker = stage;
-    return TRUE;
-  }
-
-  return FALSE;
-}
-
-gboolean
-xaccSplitTransactionTraverse (Split *split, int stage)
-{
-  if (split == NULL) return FALSE;
-
-  return xaccTransactionTraverse (split->parent, stage);
-}
-
-void
-xaccGroupBeginStagedTransactionTraversals (AccountGroup *grp) 
-{
-  GList *node;
-
-  if (!grp) return;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-    GList *lp;
-
-    /* recursively do sub-accounts */
-    xaccGroupBeginStagedTransactionTraversals (account->children);
-
-    for (lp = account->splits; lp; lp = lp->next)
-    {
-      Split *s = lp->data;
-      Transaction *trans = s->parent;
-      trans->marker = 0;
-    }
-  }
-}
-
-int
-xaccAccountStagedTransactionTraversal (const Account *acc,
-                                       unsigned int stage,
-                                       int (*callback)(Transaction *t,
-                                                       void *cb_data),
-                                       void *cb_data)
-{
-  GList *lp;
-  if (!acc) return 0;
-
-  for(lp = acc->splits; lp; lp = lp->next)
-  {
-    Split *s = (Split *) lp->data;
-    Transaction *trans = s->parent;   
-    if (trans && (trans->marker < stage))
-    {
-      trans->marker = stage;
-      if (callback)
-      {
-        int retval;
-        retval = callback(trans, cb_data);
-        if (retval) return retval;
-      }
-    }
-  }
-
-  return 0;
-}
-
-int
-xaccGroupStagedTransactionTraversal (AccountGroup *grp,
-                                     unsigned int stage,
-                                     int (*callback)(Transaction *t,
-                                                     void *cb_data),
-                                     void *cb_data)
-{
-  GList *node;
-
-  if (!grp) return 0;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-    int retval;
-
-    /* recursively do sub-accounts */
-    retval = xaccGroupStagedTransactionTraversal (account->children, stage,
-                                                  callback, cb_data);
-    if (retval) return retval;
-
-    retval = xaccAccountStagedTransactionTraversal (account, stage,
-                                                    callback, cb_data);
-    if (retval) return retval;
-  }
-
-  return 0;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-int
-xaccGroupForEachTransaction (AccountGroup *g,
-                             int (*proc)(Transaction *t, void *data),
-                             void *data)
-{
-  if (!g || !proc) return 0;
-
-  xaccGroupBeginStagedTransactionTraversals (g);
-  return xaccGroupStagedTransactionTraversal (g, 42, proc, data);
-}
-
-/********************************************************************\
-\********************************************************************/
-
-AccountList *
-xaccGroupMapAccounts (AccountGroup *grp,
-                      gpointer (*thunk)(Account *a, gpointer data),
-                      gpointer data)
-{
-  GList *result = NULL;
-  GList *node;
-
-  if (!grp || !thunk) return NULL;
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-    gpointer thunk_result = thunk (account, data);
-
-    if (thunk_result)
-    {
-      result = g_list_append (result, thunk_result);
-    }
-  }
-
-  return (result);
-}
-
-gpointer
-xaccGroupForEachAccount (AccountGroup *grp,
-                         gpointer (*thunk)(Account *a, gpointer data),
-                         gpointer data,
-                         gboolean deeply)
-{
-  GList *node;
-
-  if (!grp || !thunk) return(NULL);
-
-  for (node = grp->accounts; node; node = node->next)
-  {
-    Account *account = node->data;
-    gpointer result = thunk (account, data);
-
-    if (result)
-      return(result);
-
-    if(deeply)
-        result = xaccGroupForEachAccount (account->children,
-                                          thunk, data, TRUE);
-
-    if (result)
-      return(result);
-  }
-
-  return(NULL);
-}
-
-/* ============================================================== */
-
-QofBackend *
-xaccGroupGetBackend (const AccountGroup *grp)
-{
-  grp = xaccGroupGetRoot (grp);
-  if (!grp || !grp->book) return NULL;
-  return qof_book_get_backend(grp->book);
-}
-
-/* ============================================================== */
-/* gncObject function implementation and registration */
-
-static void 
-group_book_begin (QofBook *book)
-{
-  xaccSetAccountGroup (book, xaccMallocAccountGroup(book));
-}
-
-static void 
-group_book_end (QofBook *book)
-{
-  xaccSetAccountGroup (book, NULL);
-}
-
-static gboolean
-group_is_dirty (const QofCollection *col)
-{
-  return xaccGroupNotSaved(xaccCollGetAccountGroup(col));
-}
-
-static void
-group_mark_clean(QofCollection *col)
-{
-  xaccGroupMarkSaved(xaccCollGetAccountGroup(col));
-}
-
-static QofObject group_object_def = 
-{
-  interface_version: QOF_OBJECT_VERSION,
-  e_type:            GNC_ID_GROUP,
-  type_label:        "AccountGroup",
-  create:            (gpointer)xaccMallocAccountGroup,
-  book_begin:        group_book_begin,
-  book_end:          group_book_end,
-  is_dirty:          group_is_dirty,
-  mark_clean:        group_mark_clean,
-  foreach:           NULL,
-  printable:         NULL,
-  version_cmp:       NULL,
-};
-
-gboolean 
-xaccGroupRegister (void)
-{
-  return qof_object_register (&group_object_def);
-}
-
-/* ========================= END OF FILE ======================== */

Deleted: gnucash/branches/gda-dev/src/engine/Group.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/Group.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Group.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,439 +0,0 @@
-/********************************************************************\
- * Group.h -- chart of accounts (hierarchical tree of accounts)     *
- *                                                                  *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-/** @addtogroup Engine
-    @{ */
-/** @addtogroup Group Account Heirarchy Tree
-    Accounts are organized into a heirarchical tree.  The account
-    group is the parent node that holds accounts.
-    @{ */
-/** @file Group.h
-    @brief Account handling public routines
-    @author Copyright (C) 1997 Robin D. Clark
-    @author Copyright (C) 1997-2000,2003 Linas Vepstas <linas at linas.org>
-*/
-
-
-#ifndef XACC_ACCOUNT_GROUP_H
-#define XACC_ACCOUNT_GROUP_H
-
-#include <glib.h>
-#include "qof.h"
-#include "Account.h"
-
-/* PROTOTYPES ******************************************************/
-/** @name Constructors, Destructors 
- @{
-*/
-/**
- * The xaccMallocAccountGroup() routine will create a new account group.
- *    This is an internal-use function, you almost certainly want to
- *    be using the xaccGetAccountGroup() routine instead.
- */
-AccountGroup *xaccMallocAccountGroup (QofBook *book);
-
-/**
- * The xaccGetAccountGroup() routine will return the top-most
- * account group associated with the indicated book.
- */
-AccountGroup * xaccGetAccountGroup (QofBook *book);
-
-/** 
- * The xaccCollAccountGroup() routine will return the top-most
- * account group associated with the indicated collection.
- */
-AccountGroup * xaccCollGetAccountGroup (const QofCollection *col);
-
-/** The xaccAccountDestroy() routine will destroy and free all 
- *    the data associated with this account group.  The group
- *    must have been opened for editing with 
- *    xaccAccountGroupBeginEdit() first, before the Destroy is called.
- */
-void          xaccAccountGroupDestroy (AccountGroup *grp);
-
-/* @deprecated XXX backwards-compat define, remove at later convenience */
-#define gnc_book_get_group xaccGetAccountGroup
-
-/** Return the book to which this account belongs */
-QofBook * xaccGroupGetBook (const AccountGroup *group);
-
-/** Compare two account groups
-
-warns if one is NULL, if one has no accounts or if the two
-groups have different numbers of accounts.
-
- at return TRUE if the two account groups are equal, FALSE otherwise.
-*/
-gboolean xaccGroupEqual(const AccountGroup *a, const AccountGroup *b,
-                        gboolean check_guids);
-
-/** @} */
-
-/** @name Editing
- @{
-*/
-/** Start of begine/commit sequence.  All changes to an account 
- *  group should be bracketed by calls to begin-edit/commit-edit
- */
-void          xaccAccountGroupBeginEdit (AccountGroup *grp);
-
-/** End of begine/commit sequence.  All changes to an account 
- *  group should be bracketed by calls to begin-edit/commit-edit
- */
-void          xaccAccountGroupCommitEdit (AccountGroup *grp);
-
-/** The xaccGroupNotSaved() subroutine will return TRUE
- *    if any account in the group or in any subgroup
- *    hasn't been saved.
- XXX this should be moved to private header file, this is not a public routine!
- */
-gboolean xaccGroupNotSaved  (const AccountGroup *grp);
-
-/** The xaccGroupMarkSaved() subroutine will mark
- *    the entire group as having been saved, including 
- *    all of the child accounts.
-
- XXX this should be moved to private header file, this is not a public routine!
- */
-void     xaccGroupMarkSaved (AccountGroup *grp);
-
-/** The xaccGroupMarkNotSaved() subroutine will mark
- *    the given group as not having been saved.
- XXX this should be moved to private header file, this is not a public routine!
- */
-void     xaccGroupMarkNotSaved (AccountGroup *grp);
-/** @} */
-
-/** @name Concatenation, Merging
- @{
-*/
-/**
- * The xaccGroupConcatGroup() subroutine will move (reparent) 
- *    all accounts from the "src" group to the "dest" group,
- *    preserving the account heirarchy.  It will also take care 
- *    that the moved accounts will have the "dest" group's book
- *    parent as well.
- */
-void    xaccGroupConcatGroup (AccountGroup *dest, AccountGroup *src);
-
-/** The xaccGroupCopyGroup() subroutine will copy all accounts
- *    from the "src" group to the "dest" group, preserving the 
- *    account heirarchy.  It will also take care that the moved 
- *    accounts will have the "dest" group's book parent as well.
- *    This routine will *NOT* copy any splits/transactions.
- *    It will copy the KVP trees in each account.
- */
-void    xaccGroupCopyGroup (AccountGroup *dest, AccountGroup *src);
-
-/** The xaccGroupMergeAccounts() subroutine will go through a group,
- *    merging all accounts that have the same name and description.
- *    This function is useful when importing Quicken(TM) files.
- */
-void    xaccGroupMergeAccounts (AccountGroup *grp);
-
-/** The xaccGroupInsertAccount() subroutine will insert the indicated
- *    account into the indicated group.  If it already is the child 
- *    of another group, it will be removed there first.  If the
- *    account belongs to a different book than the the group, it
- *    will be removed from the other book (and thus, the other book's
- *    entity tables, generating destroy & create events).  If the 
- *    account is removed from and inserted into the same group, the 
- *    overall account sort order will be recomputed.  
- */
-void    xaccGroupInsertAccount (AccountGroup *grp, Account *acc);
-
-/** The xaccAccountInsertSubAccount() does the same, except that
- *    the parent is specified as an account.
- */
-void    xaccAccountInsertSubAccount (Account *parent, Account *child);
-/** @} */
-
-/** @name Counting the Size and Depth of the Account Tree
- @{
-*/
-/** The xaccGroupGetNumSubAccounts() subroutine returns the number
- *    of accounts, including subaccounts, in the account group
- */
-int     xaccGroupGetNumSubAccounts (const AccountGroup *grp);
-
-/** The xaccGroupGetNumAccounts() subroutine returns the number
- *    of accounts in the indicated group only (children not counted).
- */
-int     xaccGroupGetNumAccounts (const AccountGroup *grp);
-
-/** The xaccGroupGetDepth() subroutine returns the length of the 
- *    longest tree branch.  Each link between an account and its
- *    (non-null) children counts as one unit of length.
- */
-int     xaccGroupGetDepth (const AccountGroup *grp);
-/** @} */
-
-/** @name Getting Accounts and Subaccounts
- @{
-*/
-/** DOCUMENT ME! is this routine deprecated? XXX using index is weird! */
-Account * xaccGroupGetAccount (const AccountGroup *group, int index);
-
-/** The xaccGroupGetSubAccounts() subroutine returns an list of the accounts,
- *    including subaccounts, in the account group. The returned list
- *    should be freed with g_list_free() when no longer needed.
- */
-AccountList * xaccGroupGetSubAccounts (const AccountGroup *grp);
-
-/** The xaccGroupGetSubAccounts() subroutine returns a sorted list of
- *    the accounts, including subaccounts, in the account group. The
- *    returned list should be freed with g_list_free() when no longer
- *    needed.
- */
-AccountList * xaccGroupGetSubAccountsSorted (const AccountGroup *grp);
-
-/** The xaccGroupGetAccountList() subroutines returns only the immediate
- *    children of the account group. The returned list should *not*
- *    be freed by the caller.
- */
-AccountList * xaccGroupGetAccountList (const AccountGroup *grp);
-
-/** The xaccGroupGetAccountList() subroutines returns only the
- *    immediate children of the account group.  The returned list
- *    should be freed with g_list_free() when no longer needed.
- */
-AccountList * xaccGroupGetAccountListSorted (const AccountGroup *grp);
-
-/** The xaccGroupGetRoot() subroutine will find the topmost 
- *    (root) group to which this group belongs.
- */
-AccountGroup * xaccGroupGetRoot (const AccountGroup *grp);
-
-/** The xaccGetAccountRoot() subroutine will find the topmost 
- *    (root) group to which this account belongs.
- */
-AccountGroup * xaccAccountGetRoot (const Account *account);
-
-/** The xaccGroupGetParentAccount() subroutine returns the parent
- * account of the group, or NULL.
- */
-Account * xaccGroupGetParentAccount (const AccountGroup *group);
-
-/** @} */
-
-/** @name Getting Accounts and Subaccounts by Name
- @{
-*/
-/** The xaccGetAccountFromName() subroutine fetches the
- *    account by name from the collection of accounts
- *    in the indicated AccountGroup group.  It returns NULL if the
- *    account was not found.
- */
-Account *xaccGetAccountFromName (const AccountGroup *group, const char *name);
-
-/** The xaccGetAccountFromFullName() subroutine works like
- *    xaccGetAccountFromName, but uses fully-qualified names
- *    using the given separator.
- */
-Account *xaccGetAccountFromFullName (const AccountGroup *group,
-                                     const char *name);
-
-/** The xaccGetPeerAccountFromName() subroutine fetches the
- *    account by name from the collection of accounts
- *    in the same AccountGroup anchor group. It returns NULL if the
- *    account was not found.
- */
-Account *xaccGetPeerAccountFromName (const Account *account, const char *name);
-
-/** The xaccGetPeerAccountFromFullName() subroutine works like
- *     xaccGetPeerAccountFromName, but uses fully-qualified
- *     names using the given separator.
- */
-Account *xaccGetPeerAccountFromFullName (const Account *acc,
-                                         const char * name);
-
-/** @} */
-
-/** @name Traversal, ForEach
- @{
-*/
-
-typedef gpointer (*AccountCallback) (Account *a, gpointer data);
-
-/** The xaccGroupMapAccounts() routine will traverse the account 
-      group, returning a list of accounts.  If the callback
-      returns null for a given item, it won't show up in
-      the result list.  You should free the returned list when
-      you are done with it.
-*/
-AccountList *xaccGroupMapAccounts(AccountGroup *grp,
-                                  AccountCallback func,
-                                  gpointer data);
-
-/** The xaccGroupForEachAccount() method will traverse the AccountGroup
- *    tree, calling 'func' on each account.   Traversal will stop when
- *    func returns a non-null value, and the routine will return with that
- *    value.  Therefore, this function will return null iff func returns
- *    null for every account.
- *
- *    If 'deeply' is FALSE, then only the immediate children of
- *    the account will be traversed.  If TRUE, then the whole tree will
- *    be traversed.
- */
-
-gpointer xaccGroupForEachAccount (AccountGroup *grp,
-                                  AccountCallback func,
-                                  gpointer data,
-                                  gboolean deeply);
-
-/** @} */
-
-/** @name Staged Traversal
-
- * The following functions provide support for "staged traversals"
- * over all of the transactions in an account or group.  The idea
- * is to be able to perform a sequence of traversals ("stages"),
- * and perform an operation on each transaction exactly once 
- * for that stage.  
- *
- * Only transactions whose current "stage" is less than the
- * stage of the current traversal will be affected, and they will
- * be "brought up" to the current stage when they are processed.
- *
- * For example, you could perform a stage 1 traversal of all the
- * transactions in an account, and then perform a stage 1 traversal of
- * the transactions in a second account.  Presuming the traversal of
- * the first account didn't abort prematurely, any transactions shared
- * by both accounts would be ignored during the traversal of the
- * second account since they had been processed while traversing the
- * first account.
- *
- * However, if you had traversed the second account using a stage 
- * of 2, then all the transactions in the second account would have 
- * been processed.
- *
- * Traversal can be aborted by having the callback function return
- * a non-zero value.  The traversal is aborted immediately, and the 
- * non-zero value is returned.  Note that an aborted traversal can 
- * be restarted; no information is lost due to an abort.
- *
- * The initial impetus for this particular approach came from
- * generalizing a mark/sweep practice that was already being
- * used in FileIO.c.
- *
- * Note that currently, there is a hard limit of 256 stages, which
- * can be changed by enlarging "marker" in the transaction struct.
- *
- @{
-*/
-/** xaccGroupBeginStagedTransactionTraversals() resets the traversal
- *    marker inside each of all the transactions in the group so that
- *    a new sequence of staged traversals can begin.
- */
-void xaccGroupBeginStagedTransactionTraversals(AccountGroup *grp);
-
-/** xaccSplitsBeginStagedTransactionTraversals() resets the traversal
- *    marker for each transaction which is a parent of one of the
- *    splits in the list.
- */
-void xaccSplitsBeginStagedTransactionTraversals(SplitList *splits);
-
-/** xaccAccountBeginStagedTransactionTraversals() resets the traversal
- *    marker for each transaction which is a parent of one of the
- *    splits in the account.
- */
-void xaccAccountBeginStagedTransactionTraversals(const Account *account);
-
-/** xaccTransactionTraverse() checks the stage of the given transaction.
- *    If the transaction hasn't reached the given stage, the transaction
- *    is updated to that stage and the function returns TRUE. Otherwise
- *    no change is made and the function returns FALSE.
- */
-gboolean xaccTransactionTraverse(Transaction *trans, int stage);
-
-/** xaccSplitTransactionTraverse() behaves as above using the parent of
- *    the given split.
- */
-gboolean xaccSplitTransactionTraverse(Split *split, int stage);
-
-/** xaccGroupStagedTransactionTraversal() calls thunk on each
- *    transaction in the group whose current marker is less than the
- *    given `stage' and updates each transaction's marker to be `stage'.
- *    The traversal will stop if thunk() returns a non-zero value.
- *    xaccGroupStagedTransactionTraversal() function will return zero 
- *    or the non-zero value returned by thunk().  This
- *    API does not handle handle recursive traversals.
- *
- *    Currently the result of adding or removing transactions during
- *    a traversal is undefined, so don't do that.
- */
-
-int xaccGroupStagedTransactionTraversal(AccountGroup *grp,
-                                    unsigned int stage,
-                                    TransactionCallback,
-                                    void *data);
-
-/** xaccAccountStagedTransactionTraversal() calls thunk on each
- *    transaction in the account whose current marker is less than the
- *    given `stage' and updates each transaction's marker to be `stage'.
- *    The traversal will stop if thunk() returns a non-zero value.
- *    xaccAccountStagedTransactionTraversal() function will return zero
- *    or the non-zero value returned by thunk().
- *    This API does not handle handle recursive traversals.
- *
- *    Currently the result of adding or removing transactions during
- *    a traversal is undefined, so don't do that. 
- */
-
-int xaccAccountStagedTransactionTraversal(const Account *a,
-                                          unsigned int stage,
-                                          TransactionCallback thunk,
-                                          void *data);
-
-/** Traverse all of the transactions in the given account group.
-   Continue processing IFF proc returns 0. This function
-   will descend recursively to traverse transactions in the
-   children of the accounts in the group.
-
-   Proc will be called exactly once for each transaction that is
-   pointed to by at least one split in any account in the hierarchy
-   topped by AccountGroup g.
-
-   The result of this function will be 0 IFF every relevant
-   transaction was traversed exactly once; otherwise, the return
-   value is the last non-zero value returned by the callback.
-
-   Note that the traversal occurs only over the transactions that
-   are locally cached in the local gnucash engine.  If the gnucash
-   engine is attached to a remote database, the database may contain
-   (many) transactions that are not mirrored in the local cache.
-   This routine will not cause an SQL database query to be performed;
-   it will not traverse transactions present only in the remote
-   database.
-
-   Note that this routine is just a trivial wrapper for 
-   
-   xaccGroupBeginStagedTransactionTraversals(g);
-   xaccGroupStagedTransactionTraversal(g, 42, proc, data);
- */
-
-int xaccGroupForEachTransaction(AccountGroup *g, 
-                                TransactionCallback proc, void *data);
-
-/** @} */
-#endif /* XACC_ACCOUNT_GROUP_H */
-/** @} */
-/** @} */

Deleted: gnucash/branches/gda-dev/src/engine/GroupP.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/GroupP.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/GroupP.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,102 +0,0 @@
-/********************************************************************\
- * GroupP.h -- private header file for chart of accounts            *
- * Copyright (C) 1997 Robin D. Clark                                *
- * Copyright (C) 1997, 1998, 1999, 2000 Linas Vepstas               *
- *                                                                  *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-
-/*
- * FILE:
- * GroupP.h
- *
- * FUNCTION:
- * This is the *private* account group structure.
- * This header should *not* be included by any code outside of the
- * engine.
- *
- */
-
-#ifndef XACC_GROUP_P_H
-#define XACC_GROUP_P_H
-
-#include "Group.h"
-#include "Transaction.h"
-
-/** STRUCTS *********************************************************/
-struct account_group_s
-{
-  /* The flags: */
-  unsigned int saved : 1;
-
-  Account *parent;         /* back-pointer to parent */
-
-  AccountList *accounts;   /* list of account pointers */
-
-  QofBook *book;           /* The book which this group belongs to */
-
-  /* keep track of nesting level of begin/end edit calls */
-  gint32 editlevel;
-};
-
-/*
- * The xaccAccountRemoveGroup() subroutine will remove the indicated
- *    account group from its parent account. It will NOT free the
- *    associated memory or otherwise alter the account group: the
- *    account group can now be reparented to a new location.
- *    Note, however, that it will mark the old parents as having
- *    been modified.
- *
- * The xaccGroupRemoveAccount() subroutine will remove the indicated
- *    account from its parent account group. It will NOT free the
- *    associated memory or otherwise alter the account: the account
- *    can now be reparented to a new location.
- *    Note, however, that it will mark the old parents as having
- *    been modified.
- *
- * Both of the above routines are private routines, since they are slightly
- * dangerous:  If the removed group/account is not immediately reparented, 
- * it can be lost, i.e. turn into a memory leak.  If the GUI or other engine
- * user needs to move an account or group from here to there, it should use
- * the 'Insert' routines, such as xaccGroupInsertAccount(), to make the move.
- * The 'Insert' routines will automatically remove the account from its
- * previous location.
- */
-
-void    xaccAccountRemoveGroup (Account *acc);
-void    xaccGroupRemoveAccount (AccountGroup *grp, Account *account);
-
-/*
- * The xaccFreeAccountGroup() subroutine will  ...
- */
-void     xaccFreeAccountGroup (AccountGroup *account_group);
-
-/* Set the top-level group in the book */
-void     xaccSetAccountGroup (QofBook *book, AccountGroup *grp);
-void     xaccCollSetAccountGroup (QofCollection *col, AccountGroup *grp);
-
-/*
- * The xaccGroupGetBackend() subroutine will find the
- *    persistent-data storage backend associated with this account group.
- */
-QofBackend * xaccGroupGetBackend (const AccountGroup *group);
-
-gboolean      xaccGroupRegister (void);
-
-#endif

Modified: gnucash/branches/gda-dev/src/engine/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/engine/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,4 @@
 SUBDIRS = . test-core test 
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-engine.la
 
@@ -7,16 +6,16 @@
 	-I${top_srcdir}/lib/libc \
 	-I${top_srcdir}/src/core-utils \
 	-I${top_srcdir}/src \
+	-I${top_builddir}/src \
 	-I${top_srcdir}/src/gnc-module \
-	-I${top_srcdir}/src/business/business-core/ \
 	${QOF_CFLAGS} \
-	${GNUCASH_ENGINE_CFLAGS}
+	${GLIB_CFLAGS} \
+	${GUILE_INCS}
 
 libgncmod_engine_la_SOURCES = \
   Account.c \
   FreqSpec.c \
   Recurrence.c \
-  Group.c \
   Period.c \
   Query.c \
   SchedXaction.c \
@@ -57,7 +56,6 @@
   FreqSpec.h \
   Recurrence.h \
   GNCId.h \
-  Group.h \
   Period.h \
   SchedXaction.h \
   SX-book.h \
@@ -96,9 +94,7 @@
 noinst_HEADERS = \
   AccountP.h \
   FreqSpecP.h \
-  GroupP.h \
   QueryP.h \
-  SchedXactionP.h \
   ScrubP.h \
   SplitP.h \
   SX-book.h \
@@ -112,13 +108,15 @@
 
 noinst_SCRIPTS = iso-currencies-to-c
 
+libgncmod_engine_la_LDFLAGS = -avoid-version
+
 libgncmod_engine_la_LIBADD = \
-  ../gnc-module/libgncmodule.la \
-  ../core-utils/libcore-utils.la \
+  ../gnc-module/libgnc-module.la \
+  ../core-utils/libgnc-core-utils.la \
   ${GUILE_LIBS} \
   ${QOF_LIBS} \
   ${REGEX_LIBS} \
-  ${GNUCASH_ENGINE_BASE_LIBS} \
+  ${GLIB_LIBS} \
   ${BINRELOC_LIBS} \
   ${top_builddir}/lib/libc/libc-missing.la
 
@@ -168,7 +166,8 @@
 noinst_DATA = .scm-links
 
 if BUILDING_FROM_SVN
-swig-engine.c: engine.i ${gncinclude_HEADERS} ${noinst_HEADERS}
+swig-engine.c: engine.i ${top_srcdir}/src/base-typemaps.i \
+               ${gncinclude_HEADERS} ${noinst_HEADERS}
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/lib/libqof/qof -I${top_srcdir}/src -o $@ $<
 endif
@@ -180,11 +179,7 @@
 gncla-dir.h: gncla-dir.h.in ${top_builddir}/config.status Makefile
 	rm -f $@.tmp
 	sed < $< > $@.tmp \
-		-e 's#@-LOCALE_DIR-@#${LOCALE_DIR}#g' \
-		-e 's#@-GNC_ACCOUNTS_DIR-@#${GNC_ACCOUNTS_DIR}#g' \
-		-e 's#@-GNC_GLADE_DIR-@#${GNC_GLADE_DIR}#g' \
-		-e 's#@-GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY-@#${GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY}#g' \
-		-e 's#@-pkglibdir-@#${pkglibdir}#g' \
+		-e 's#@-DATADIRNAME-@#${DATADIRNAME}#g' \
 		-e 's#@-libdir-@#${libdir}#g' \
 		-e 's#@-sysconfdir-@#${sysconfdir}#g' \
 		-e 's#@-datadir-@#${datadir}#g' \
@@ -197,3 +192,5 @@
 CLEANFILES = $(BUILT_SOURCES) gnucash .scm-links gncla-dir.h \
 	${SCM_FILE_LINKS}
 MAINTAINERCLEANFILES = swig-engine.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.engine\"

Modified: gnucash/branches/gda-dev/src/engine/Period.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Period.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Period.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -40,9 +40,8 @@
 #include "gnc-lot-p.h"
 #include "gnc-pricedb.h"
 #include "gnc-pricedb-p.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "Period.h"
+#include "Transaction.h"
 #include "TransactionP.h"
 
 /* This static indicates the debugging module that this .o belongs to.  */
@@ -432,29 +431,19 @@
 /* clear the markers for the above routines */
 
 static void
-clear_markers (AccountGroup *grp)
+clear_markers (Account *account, gpointer dummy)
 {
-   GList *node;
+  GList *lp;
 
-   if (!grp) return;
-                                                                                
-   for (node = grp->accounts; node; node = node->next)
-   {
-      Account *account = node->data;
-      GList *lp;
-                                                                                
-      /* recursively do sub-accounts */
-      clear_markers (account->children);
-                                                                                
-      for (lp = account->splits; lp; lp = lp->next)
-      {
-        Split *s = lp->data;
-        Transaction *trans = s->parent;
-        GNCLot *lot = s->lot;
-        trans->marker = 0;
-        if (lot) lot->marker = 0;
-      }
-   }
+  if (!account) return;
+
+  for (lp = xaccAccountGetSplitList(account); lp; lp = lp->next) {
+    Split *s = lp->data;
+    Transaction *trans = s->parent;
+    GNCLot *lot = s->lot;
+    trans->marker = 0;
+    if (lot) lot->marker = 0;
+  }
 }
 
 /* ================================================================ */
@@ -526,7 +515,7 @@
 gnc_book_partition_txn (QofBook *dest_book, QofBook *src_book, QofQuery *query)
 {
    gnc_commodity_table *src_tbl, *dst_tbl;
-   AccountGroup *src_grp, *dst_grp;
+   Account *src_root, *dst_root;
    time_t now;
    TransList *trans_list, *tnode;
    LotList *lot_list, *lnode;
@@ -552,18 +541,18 @@
    /* hack alert -- FIXME -- this should really be a merge, not a
     * clobber copy, but I am too lazy to write an account-group merge 
     * routine, and it is not needed for the current usage. */
-   src_grp = xaccGetAccountGroup (src_book);
-   dst_grp = xaccGetAccountGroup (dest_book);
-   xaccGroupCopyGroup (dst_grp, src_grp);
+   src_root = gnc_book_get_root_account (src_book);
+   dst_root = gnc_book_get_root_account (dest_book);
+   gnc_account_copy_children (dst_root, src_root);
 
    /* Next, run the query */
-   xaccAccountGroupBeginEdit (dst_grp);
-   xaccAccountGroupBeginEdit (src_grp);
+   xaccAccountBeginEdit (dst_root);
+   xaccAccountBeginEdit (src_root);
    qof_query_set_book (query, src_book);
    trans_list = qof_query_run (query);
 
    /* Preen: remove open lots/ open trnasactions */
-   clear_markers (src_grp);
+   gnc_account_foreach_descendant(src_root, clear_markers, NULL);
    trans_list = trans_list_preen_open_lots (trans_list);
    lot_list = create_lot_list_from_trans_list (trans_list);
    lot_list = lot_list_preen_open_lots (lot_list);
@@ -583,8 +572,8 @@
       gnc_book_insert_trans (dest_book, trans);
    }
 
-   xaccAccountGroupCommitEdit (src_grp);
-   xaccAccountGroupCommitEdit (dst_grp);
+   xaccAccountCommitEdit (src_root);
+   xaccAccountCommitEdit (dst_root);
 
    /* Make note of the sibling books */
    now = time(0);
@@ -603,41 +592,37 @@
 static Account *
 find_nearest_equity_acct (Account *acc)
 {
-   AccountList *acc_list, *node;
-   AccountGroup *parent;
-   Account *next_up, *candidate;
+   QofBook *book;
+   GList *acc_list, *node;
+   Account *parent, *root, *candidate;
 
-   /* See if we can find an equity account that is peered to this account */
-   parent = xaccAccountGetParent (acc);
+   parent = gnc_account_get_parent (acc);
    g_return_val_if_fail (parent, NULL);
 
-   acc_list = xaccGroupGetAccountList (parent);
-   for (node=acc_list; node; node=node->next)
-   {
-      candidate = (Account *) node->data;
-      if ((ACCT_TYPE_EQUITY == xaccAccountGetType (candidate)) &&
-          gnc_commodity_equiv(xaccAccountGetCommodity(acc),
-                              xaccAccountGetCommodity(candidate)))
-      {
+   /* See if we can find an equity account that is peered to this
+    * account. If not, check succssively higher levels. */
+   while (parent != NULL) {
+     acc_list = gnc_account_get_children(parent);
+     for (node=acc_list; node; node=node->next) {
+       candidate = (Account *) node->data;
+       if ((ACCT_TYPE_EQUITY == xaccAccountGetType (candidate)) &&
+	   gnc_commodity_equiv(xaccAccountGetCommodity(acc),
+			       xaccAccountGetCommodity(candidate))) {
          return candidate;
-      }
+       }
+     }
+     g_list_free(acc_list);
+     parent = gnc_account_get_parent (parent);
    }
 
-   /* If we got to here, we did not find a peer equity account. 
-    * So go up one layer, and look there */
-   next_up = xaccGroupGetParentAccount (parent);
-   if (next_up) 
-   {
-      candidate = find_nearest_equity_acct (next_up);
-      if (candidate) return candidate;
-   }
-
-   /* If we got to here, then we are at the top group, and there is no 
+   /* If we got to here, then we are at the root account, and there is no 
     * equity account to be found.  So we need to create one. */
-   
-   candidate = xaccMallocAccount (xaccGroupGetBook(parent));
+
+   book = gnc_account_get_book(acc);
+   root = gnc_book_get_root_account(book);
+   candidate = xaccMallocAccount (book);
    xaccAccountBeginEdit (candidate);
-   xaccGroupInsertAccount (parent, candidate);
+   gnc_account_append_child (root, candidate);
    xaccAccountSetType (candidate, ACCT_TYPE_EQUITY);
    xaccAccountSetName (candidate, xaccAccountGetTypeStr(ACCT_TYPE_EQUITY));
    xaccAccountSetCommodity (candidate, xaccAccountGetCommodity(acc));
@@ -650,28 +635,27 @@
 /* Traverse all accounts, get account balances */
 
 static void
-add_closing_balances (AccountGroup *closed_grp, 
+add_closing_balances (Account *parent, 
                       QofBook *open_book,
                       QofBook *closed_book,
                       Account *equity_account,
                       Timespec *post_date, Timespec *date_entered, 
                       const char *desc)
 {
-   AccountList *acc_list, *node;
+   GList *acc_list, *node;
 
-   if (!closed_grp) return;
+   if (!parent) return;
 
    ENTER (" enter=%s post=%s desc=%s", gnc_print_date(*date_entered),
        gnc_print_date (*post_date), desc);
    xaccAccountBeginEdit (equity_account);
 
    /* Walk accounts in closed book */
-   acc_list = xaccGroupGetAccountList (closed_grp);
+   acc_list = gnc_account_get_children(parent);
    for (node=acc_list; node; node=node->next)
    {
       KvpFrame *cwd;
       Account *twin;
-      AccountGroup *childs;
       Account * candidate = (Account *) node->data;
       GNCAccountType tip = xaccAccountGetType (candidate);
 
@@ -774,16 +758,16 @@
       xaccAccountCommitEdit (twin);
 
       /* Recurse down to the children */
-      childs = xaccAccountGetChildren(candidate);
-      if (childs) 
+      if (gnc_account_n_children(candidate) > 0) 
       {
          PINFO ("add closing baln to subaccts of %s", 
                  candidate->description);
-         add_closing_balances (childs, open_book, closed_book,
+         add_closing_balances (candidate, open_book, closed_book,
                           equity_account,
                           post_date, date_entered, desc);
       }
    }
+   g_list_free(acc_list);
    xaccAccountCommitEdit (equity_account);
    LEAVE (" ");
 }
@@ -884,7 +868,7 @@
 
    /* add in transactions to equity accounts that will
     * hold the colsing balances */
-   add_closing_balances (xaccGetAccountGroup(closing_book), 
+   add_closing_balances (gnc_book_get_root_account(closing_book), 
                         existing_book, closing_book,
                         equity_account,
                         &calve_date, &ts, memo);

Modified: gnucash/branches/gda-dev/src/engine/Recurrence.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Recurrence.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Recurrence.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -21,6 +21,7 @@
 #include "config.h"
 #include <time.h>
 #include <glib.h>
+#include <glib/gi18n.h>
 #include "glib-compat.h"
 #include <string.h>
 #include "Recurrence.h"
@@ -30,7 +31,10 @@
 #include "gnc-gdate-utils.h"
 #include "Account.h"
 
-static QofLogModule log_module = GNC_MOD_ENGINE;
+#define LOG_MOD "gnc.engine.recurrence"
+static QofLogModule log_module = LOG_MOD;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN LOG_MOD
 
 static GDate invalid_gdate;
 
@@ -137,8 +141,10 @@
     const GDate *start;
     guint mult;
 
-    g_return_if_fail(r && ref);
-    g_return_if_fail(g_date_valid(&r->start) && g_date_valid(ref));
+    g_return_if_fail(r);
+    g_return_if_fail(ref);
+    g_return_if_fail(g_date_valid(&r->start));
+    g_return_if_fail(g_date_valid(ref));
 
     /* If the ref date comes before the start date then the next
        occurrence is always the start date, and we're done. */
@@ -316,12 +322,12 @@
 
     str = g_string_new("");
     for(iter = r; iter; iter = iter->next){
+        if (iter != r)
+            g_string_append(str, " + ");
         s = recurrenceToString((Recurrence *)iter->data);
         g_string_append(str, s);
-        g_string_append(str, " + ");
         g_free(s);
     }
-    g_string_truncate(str, str->len - 3); /* kill the last " + " */
     return g_string_free(str, FALSE);
 }
 
@@ -341,3 +347,327 @@
             return i;
     return -1;
 }
+
+gboolean
+recurrenceListIsSemiMonthly(GList *recurrences)
+{
+    if (g_list_length(recurrences) != 2)
+        return FALSE;
+
+    // should be a "semi-monthly":
+    {
+        Recurrence *first = (Recurrence*)g_list_nth_data(recurrences, 0);
+        Recurrence *second = (Recurrence*)g_list_nth_data(recurrences, 1);
+        PeriodType first_period, second_period;
+        first_period = recurrenceGetPeriodType(first);
+        second_period = recurrenceGetPeriodType(second);
+             
+        if (!((first_period == PERIOD_MONTH
+               || first_period == PERIOD_END_OF_MONTH
+               || first_period == PERIOD_LAST_WEEKDAY)
+              && (second_period == PERIOD_MONTH
+                  || second_period == PERIOD_END_OF_MONTH
+                  || second_period == PERIOD_LAST_WEEKDAY)))
+        {
+            /*g_error("unknown 2-recurrence composite with period_types first [%d] second [%d]",
+              first_period, second_periodD);*/
+            return FALSE;
+        }
+    }
+    return TRUE;
+}
+
+gboolean
+recurrenceListIsWeeklyMultiple(GList *recurrences)
+{
+    GList *r_iter;
+   
+    for (r_iter = recurrences; r_iter != NULL; r_iter = r_iter->next)
+    {
+        Recurrence *r = (Recurrence*)r_iter->data;
+        if (recurrenceGetPeriodType(r) != PERIOD_WEEK)
+        {
+            return FALSE;
+        }
+    }
+    return TRUE;
+}
+
+/**
+ * Localized DOW abbrev.
+ * @fixme - ripped from gnc-dense-cal.c; there can be only one. :p
+ * @param dow struct tm semantics: 0=sunday .. 6=saturday
+ **/
+static void
+_dow_abbrev(gchar *buf, int buf_len, int dow)
+{
+    struct tm my_tm;
+    int i;
+    
+    memset(buf, 0, buf_len);
+    memset(&my_tm, 0, sizeof(struct tm));
+    my_tm.tm_wday = dow;
+    i = qof_strftime(buf, buf_len - 1, "%a", &my_tm);
+    buf[i] = 0;
+}
+
+static void
+_weekly_list_to_compact_string(GList *rs, GString *buf)
+{
+    int dow_idx;
+    char dow_present_bits = 0;
+    int multiplier = -1;
+    for (; rs != NULL; rs = rs->next)
+    {
+        Recurrence *r = (Recurrence*)rs->data;
+        GDate date = recurrenceGetDate(r);
+        GDateWeekday dow = g_date_get_weekday(&date);
+        if (dow == G_DATE_BAD_WEEKDAY)
+        {
+            g_critical("bad weekday pretty-printing recurrence");
+            continue;
+        }
+        dow_present_bits |= (1 << (dow % 7));
+        // broken, @fixme.
+        multiplier = recurrenceGetMultiplier(r);
+    }
+    g_string_printf(buf, _("Weekly"));
+    if (multiplier > 1)
+    {
+        /* translators: %u is the recurrence multipler. */
+        g_string_append_printf(buf, _(" (x%u)"), multiplier);
+    }
+    g_string_append_printf(buf, ": ");
+
+    // @@fixme: this is only Sunday-started weeks. :/
+    for (dow_idx = 0; dow_idx < 7; dow_idx++)
+    {
+        if ((dow_present_bits & (1 << dow_idx)) != 0)
+        {
+            gchar dbuf[10];
+            _dow_abbrev(dbuf, 10, dow_idx);
+            g_string_append_printf(buf, "%c", dbuf[0]);
+        }
+        else
+        {
+            g_string_append_printf(buf, "-");
+        }
+    }
+}
+
+static void
+_monthly_append_when(Recurrence *r, GString *buf)
+{
+    GDate date = recurrenceGetDate(r);
+    if (recurrenceGetPeriodType(r) == PERIOD_LAST_WEEKDAY)
+    {
+        gint abbrev_day_name_bufsize = 10;
+        gchar day_name_buf[abbrev_day_name_bufsize];
+                
+        _dow_abbrev(day_name_buf, abbrev_day_name_bufsize, g_date_get_weekday(&date) % 7);
+            
+        /* translators: %s is an already-localized form of the day of the week. */
+        g_string_append_printf(buf, _("last %s"), day_name_buf);
+    }
+    else
+    {
+        /* translators: %u is the day of month */
+        g_string_append_printf(buf, "%u", g_date_get_day(&date));
+    }
+}
+
+gchar*
+recurrenceListToCompactString(GList *rs)
+{
+    GString *buf = g_string_sized_new(16);
+
+    if (g_list_length(rs) == 0)
+    {
+        g_string_printf(buf, _("None"));
+        goto rtn;
+    }
+
+    if (g_list_length(rs) > 1)
+    {
+        if (recurrenceListIsWeeklyMultiple(rs))
+        {
+            _weekly_list_to_compact_string(rs, buf);
+        }
+        else if (recurrenceListIsSemiMonthly(rs))
+        {
+            Recurrence *first, *second;
+            first = (Recurrence*)g_list_nth_data(rs, 0);
+            second = (Recurrence*)g_list_nth_data(rs, 1);
+            if (recurrenceGetMultiplier(first) != recurrenceGetMultiplier(second))
+            {
+                g_warning("lying about non-equal semi-monthly recurrence multiplier: %d vs. %d",
+                          recurrenceGetMultiplier(first), recurrenceGetMultiplier(second));
+            }
+
+            g_string_printf(buf, _("Semi-monthly "));
+            if (recurrenceGetMultiplier(first) > 1)
+            {
+                /* translators: %u is the recurrence multiplier */
+                g_string_append_printf(buf, _(" (x%u)"), recurrenceGetMultiplier(first));
+            }
+            g_string_append_printf(buf, _(": "));
+            _monthly_append_when(first, buf);
+            g_string_append_printf(buf, ", ");
+            _monthly_append_when(second, buf);
+        }
+        else
+        {
+            /* translators: %d is the number of Recurrences in the list. */
+            g_string_printf(buf, _("Unknown, %d-size list."), g_list_length(rs));
+        }
+    }
+    else
+    {
+        Recurrence *r = (Recurrence*)g_list_nth_data(rs, 0);
+        guint multiplier = recurrenceGetMultiplier(r);
+
+        switch (recurrenceGetPeriodType(r))
+        {
+        case PERIOD_ONCE: {
+            g_string_printf(buf, _("Once"));
+        } break;
+        case PERIOD_DAY: {
+            g_string_printf(buf, _("Daily"));
+            if (multiplier > 1)
+            {
+                /* translators: %u is the number of intervals */
+                g_string_append_printf(buf, _(" (x%u)"), multiplier);
+            }
+        } break;
+        case PERIOD_WEEK: {
+            _weekly_list_to_compact_string(rs, buf);
+        } break;
+        case PERIOD_MONTH:
+        case PERIOD_END_OF_MONTH:
+        case PERIOD_LAST_WEEKDAY: {
+            g_string_printf(buf, _("Monthly"));
+            if (multiplier > 1)
+            {
+                /* translators: %u is the recurrence multipler. */
+                g_string_append_printf(buf, _(" (x%u)"), multiplier);
+            }
+            g_string_append_printf(buf, _(": "));
+            _monthly_append_when(r, buf);
+        } break;
+        case PERIOD_NTH_WEEKDAY: {
+            g_warning("nth weekday unhandled");
+            g_string_printf(buf, "@fixme: nth weekday");
+        } break;
+        case PERIOD_YEAR: {
+            g_string_printf(buf, _("Yearly"));
+            if (multiplier > 1)
+            {
+                /* translators: %u is the recurrence multiplier. */
+                g_string_append_printf(buf, _(" (x%u)"), multiplier);
+            }
+        } break;
+        default:
+            g_error("unknown Recurrnce period %d", recurrenceGetPeriodType(r));
+            break;
+        }
+    }
+
+rtn:
+    return g_string_free(buf, FALSE);
+}
+
+/**
+ * The ordering, in increasing degrees of frequent-ness:
+ *
+ *   day < week < {nth-weekday < month < end-month, last_weekday} < year < once
+ *
+ * all the monthly types are basically together, but are broken down
+ * internally cause they have to be ordered somehow.
+ **/
+static int cmp_order_indexes[] =
+{
+    6, // PERIOD_ONCE
+    1, // PERIOD_DAY
+    2, // PERIOD_WEEK
+    // 3, // "semi-monthly" ... Note that this isn't presently used, just the
+    //    // way the code worked out. :(
+    4, // PERIOD_MONTH
+    4, // PERIOD_END_OF_MONTH
+    4, // PERIOD_NTH_WEEKDAY
+    4, // PERIOD_LAST_WEEKDAY
+    5, // PERIOD_YEAR
+};
+
+static int cmp_monthly_order_indexes[] =
+{
+    -1, // PERIOD_ONCE
+    -1, // PERIOD_DAY
+    -1, // PERIOD_WEEK
+    2, // PERIOD_MONTH
+    3, // PERIOD_END_OF_MONTH
+    1, // PERIOD_NTH_WEEKDAY
+    4, // PERIOD_LAST_WEEKDAY
+    -1, // PERIOD_YEAR
+};
+
+int
+recurrenceCmp(Recurrence *a, Recurrence *b)
+{
+    PeriodType period_a, period_b;
+    int a_order_index, b_order_index;
+
+    g_return_val_if_fail(a != NULL && b != NULL, 0);
+    g_return_val_if_fail(a != NULL, 1);
+    g_return_val_if_fail(b != NULL, -1);
+
+    period_a = recurrenceGetPeriodType(a);
+    period_b = recurrenceGetPeriodType(b);
+
+    a_order_index = cmp_order_indexes[period_a];
+    b_order_index = cmp_order_indexes[period_b];
+    if (a_order_index != b_order_index)
+    {
+        return a_order_index - b_order_index;
+    }
+    else if (a_order_index == cmp_order_indexes[PERIOD_MONTH])
+    {
+        // re-order intra-month options:
+        a_order_index = cmp_monthly_order_indexes[period_a];
+        b_order_index = cmp_monthly_order_indexes[period_b];
+        g_assert(a_order_index != -1 && b_order_index != -1);
+        if (a_order_index != b_order_index)
+            return a_order_index - b_order_index;
+    }
+    /* else { the basic periods are equal; compare the multipliers } */
+
+    {
+        int a_mult, b_mult;
+        a_mult = recurrenceGetMultiplier(a);
+        b_mult = recurrenceGetMultiplier(b);
+
+        return a_mult - b_mult;
+    }
+}
+
+int
+recurrenceListCmp(GList *a, GList *b)
+{
+    Recurrence *most_freq_a, *most_freq_b;
+
+    g_return_val_if_fail(g_list_length(a) != 0 && g_list_length(b) != 0, 0);
+    g_return_val_if_fail(g_list_length(a) != 0, -1);
+    g_return_val_if_fail(g_list_length(b) != 0, 1);
+
+    most_freq_a = (Recurrence*)g_list_nth_data(g_list_sort(a, (GCompareFunc)recurrenceCmp), 0);
+    most_freq_b = (Recurrence*)g_list_nth_data(g_list_sort(b, (GCompareFunc)recurrenceCmp), 0);
+
+    return recurrenceCmp(most_freq_a, most_freq_b);
+}
+
+void
+recurrenceListFree(GList **recurrences)
+{
+    g_list_foreach(*recurrences, (GFunc)g_free, NULL);
+    g_list_free(*recurrences);
+    *recurrences = NULL;
+}

Modified: gnucash/branches/gda-dev/src/engine/Recurrence.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/Recurrence.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Recurrence.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -128,12 +128,14 @@
    of the nth instance of the recurrence. Also zero-based. */
 time_t recurrenceGetPeriodTime(const Recurrence *r, guint n, gboolean end);
 
-/* Get the amount that an Account's value changed between the
-   beginning and end of the nth instance of the recurrence. */
+/**
+ * @return the amount that an Account's value changed between the beginning
+ * and end of the nth instance of the Recurrence.
+ **/
 gnc_numeric recurrenceGetAccountPeriodValue(const Recurrence *r, 
                                             Account *acct, guint n);
 
-/* Get the earliest of the next occurances -- a "composite" recurrence */
+/** @return the earliest of the next occurances -- a "composite" recurrence **/
 void recurrenceListNextInstance(const GList *r, const GDate *refDate,
                                 GDate *nextDate);
 
@@ -145,4 +147,29 @@
 gchar *recurrenceToString(const Recurrence *r);
 gchar *recurrenceListToString(const GList *rlist);
 
+/** @return True if the recurrence list is a common "semi-monthly" recurrence. **/
+gboolean recurrenceListIsSemiMonthly(GList *recurrences);
+/** @return True if the recurrence list is a common "weekly" recurrence. **/
+gboolean recurrenceListIsWeeklyMultiple(GList *recurrences);
+
+/**
+ * Pretty-print an intentionally-short summary of the period of a (GList of)
+ * Recurrences, as might be commonly-created by the GncFrequency widget.  In
+ * particular, this routine expects most lists to contain a single
+ * Recurrence, but also anticipates 2 "composite" scenarios:
+ *
+ * @li A list of N PERIOD_WEEK Recurrences.
+ * @li A list of 2 PERIOD_MONTH or PERIOD_LAST_WEEKDAY Recurrences,
+ *   representing a Semi-Monthly period.
+ *
+ * @return A caller-owned string.
+ **/
+gchar *recurrenceListToCompactString(GList *recurrence_list);
+
+/** @return integer representing the relationship between @a a and @a b, with the semantics of qsort. **/
+int recurrenceCmp(Recurrence *a, Recurrence *b);
+int recurrenceListCmp(GList *a, GList *b);
+
+void recurrenceListFree(GList **recurrence);
+
 #endif  /* RECURRENCE_H */

Modified: gnucash/branches/gda-dev/src/engine/SX-book-p.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/SX-book-p.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/SX-book-p.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,23 +35,15 @@
 #define GNC_SX_BOOK_P_H
 
 #include "qof.h"
+#include "SX-book.h"
 
 /* ====================================================================== */
 
-struct xaccSchedXactionsDef {
-	GList *sx_list;
-	gboolean sx_notsaved;
-};
+SchedXactions* gnc_collection_get_schedxactions(const QofCollection *col);
 
-void gnc_book_set_schedxactions( QofBook *book, GList *newList );
-void gnc_collection_set_schedxactions( QofCollection *col, GList *newList );
+/* Associate the given template root account with a book */
+void gnc_book_set_template_root (QofBook *book, Account *templateRoot);
 
-
-/* Associate the given template group with a book */
-void gnc_book_set_template_group (QofBook *book, AccountGroup *templateGroup);
-void gnc_collection_set_template_group (QofCollection *col, AccountGroup *templateGroup);
-
-
 gboolean gnc_sxtt_register (void);
 
 #endif /* GNC_SX_BOOK_P_H */

Modified: gnucash/branches/gda-dev/src/engine/SX-book.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/SX-book.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/SX-book.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,65 +39,69 @@
 #include <glib.h>
 
 #include "gnc-engine.h"
-#include "Group.h"
-#include "GroupP.h"
+#include "Account.h"
+#include "Split.h"
 #include "SchedXaction.h"
 #include "SX-book.h"
 #include "SX-book-p.h"
+#include "gnc-event.h"
 
-static QofLogModule log_module = GNC_MOD_SX;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.engine.sx"
 
 /* XXX this whole file is crufty, it doesn't really use entities
  * in the most efficient/best way */
 
 /* ====================================================================== */
 
-AccountGroup *
-gnc_collection_get_template_group( const QofCollection *col )
+static Account *
+gnc_collection_get_template_root( const QofCollection *col )
 {
   return qof_collection_get_data (col);
 }
 
-AccountGroup *
-gnc_book_get_template_group( QofBook *book )
+Account *
+gnc_book_get_template_root( QofBook *book )
 {
   QofCollection *col;
   if (!book) return NULL;
   col = qof_book_get_collection (book, GNC_ID_SXTG);
-  return gnc_collection_get_template_group (col);
+  return gnc_collection_get_template_root (col);
 }
 
-void
-gnc_collection_set_template_group (QofCollection *col,
-                                   AccountGroup *templateGroup)
+static void
+gnc_collection_set_template_root (QofCollection *col,
+                                  Account *templateRoot)
 {
-  AccountGroup *old_grp;
+  Account *old_root;
   if (!col) return;
 
-  old_grp = gnc_collection_get_template_group (col);
-  if (old_grp == templateGroup) return;
+  old_root = gnc_collection_get_template_root (col);
+  if (old_root == templateRoot) return;
 
-  qof_collection_set_data (col, templateGroup);
+  qof_collection_set_data (col, templateRoot);
 
-  xaccAccountGroupBeginEdit (old_grp);
-  xaccAccountGroupDestroy (old_grp);
+  if (old_root) {
+    xaccAccountBeginEdit (old_root);
+    xaccAccountDestroy (old_root);
+  }
 }
 
 
 void
-gnc_book_set_template_group (QofBook *book, AccountGroup *templateGroup)
+gnc_book_set_template_root (QofBook *book, Account *templateRoot)
 {
   QofCollection *col;
   if (!book) return;
 
-  if (templateGroup && templateGroup->book != book)
+  if (templateRoot && gnc_account_get_book(templateRoot) != book)
   {
-     PERR ("cannot mix and match books freely!");
-     return;
+       g_critical("cannot mix and match books freely!");
+       return;
   }
 
   col = qof_book_get_collection (book, GNC_ID_SXTG);
-  gnc_collection_set_template_group (col, templateGroup);
+  gnc_collection_set_template_root (col, templateRoot);
 }
 
 
@@ -107,26 +111,53 @@
 static void 
 sxtg_book_begin (QofBook *book)
 {
-  gnc_book_set_template_group (book, xaccMallocAccountGroup(book));
+  Account *root;
+
+  root = xaccMallocAccount(book);
+  xaccAccountBeginEdit(root);
+  xaccAccountSetType(root, ACCT_TYPE_ROOT);
+  xaccAccountCommitEdit(root);
+  gnc_book_set_template_root (book, root);
 }
 
 static void 
 sxtg_book_end (QofBook *book)
 {
-  gnc_book_set_template_group (book, NULL);
+  gnc_book_set_template_root (book, NULL);
 }
 
-
 static gboolean
 sxtg_is_dirty(const QofCollection *col)
 {
-  return xaccGroupNotSaved(gnc_collection_get_template_group(col));
+  Account *root;
+  GList *descendants, *node;
+  gboolean dirty = FALSE;
+
+  root = gnc_collection_get_template_root(col);
+  descendants = gnc_account_get_descendants(root);
+  for (node = descendants; node; node = g_list_next(node)) {
+    if (qof_instance_is_dirty(node->data)) {
+      dirty = TRUE;
+      break;
+    }
+  }
+  g_list_free(descendants);
+
+  return dirty;
 }
   
 static void
 sxtg_mark_clean(QofCollection *col)
 {
-  xaccGroupMarkSaved(gnc_collection_get_template_group(col));
+  Account *root;
+  GList *descendants;
+
+  root = gnc_collection_get_template_root(col);
+  qof_collection_mark_clean(col);
+
+  descendants = gnc_account_get_descendants(root);
+  g_list_foreach(descendants, (GFunc)qof_instance_mark_clean, NULL);
+  g_list_free(descendants);
 }
 
 static QofObject sxtg_object_def = 
@@ -144,78 +175,45 @@
 
 /* ====================================================================== */
 
-SchedXactions *
-gnc_collection_get_schedxaction_list(const QofCollection *col)
-{
-  return qof_collection_get_data (col);
-}
-
-GList *
+SchedXactions*
 gnc_collection_get_schedxactions(const QofCollection *col)
 {
-  SchedXactions *list;
-  list = qof_collection_get_data (col);
-  if (list) return list->sx_list;
-  return NULL;
+  SchedXactions *rtn = qof_collection_get_data(col);
+  // @@assert(rtn != null);
+  return rtn;
 }
 
-GList *
+SchedXactions*
 gnc_book_get_schedxactions(QofBook *book)
 {
   QofCollection *col;
-  col = qof_book_get_collection (book, GNC_ID_SXTT);
-  return gnc_collection_get_schedxactions (col);
+  col = qof_book_get_collection(book, GNC_ID_SCHEDXACTION);
+  return gnc_collection_get_schedxactions(col);
 }
 
 void
-gnc_collection_set_schedxactions( QofCollection *col, GList *newList )
+gnc_sxes_add_sx(SchedXactions *sxes, SchedXaction *sx)
 {
-  SchedXactions *old_list, *new_list;
-  if ( col == NULL ) return;
-
-  old_list = qof_collection_get_data (col);
-  if (old_list && old_list->sx_list == newList) 
-  {
-     /* Assume the worst, that any 'set' means the data has 
-      * changed, and needs to be saved. */
-     old_list->sx_notsaved = TRUE;
-     return;
-  }
-  
-  new_list = g_new (SchedXactions, 1);
-  new_list->sx_list = newList;
-  new_list->sx_notsaved = TRUE;
-  if (NULL == newList) new_list->sx_notsaved = FALSE;
-  
-  qof_collection_set_data (col, new_list);
-
-  g_free (old_list);
+  if (g_list_find(sxes->sx_list, sx) != NULL)
+    return;
+  sxes->sx_list = g_list_append(sxes->sx_list, sx);
+  qof_event_gen(&sxes->inst.entity, GNC_EVENT_ITEM_ADDED, (gpointer)sx);
 }
 
 void
-gnc_book_set_schedxactions( QofBook *book, GList *newList )
+gnc_sxes_del_sx(SchedXactions *sxes, SchedXaction *sx)
 {
-  QofCollection *col;
-  if ( book == NULL ) return;
-
-  col = qof_book_get_collection (book, GNC_ID_SXTT);
-  gnc_collection_set_schedxactions (col, newList);
+  GList *to_remove;
+  to_remove = g_list_find(sxes->sx_list, sx);
+  if (to_remove == NULL)
+    return;
+  sxes->sx_list = g_list_delete_link(sxes->sx_list, to_remove);
+  qof_event_gen(&sxes->inst.entity, GNC_EVENT_ITEM_REMOVED, (gpointer)sx);
 }
 
 /* ====================================================================== */
 /* SX-trans stuff */
 
-static void 
-sxtt_book_begin (QofBook *book)
-{
-  gnc_book_set_schedxactions (book, NULL);
-}
-
-static void 
-sxtt_book_end (QofBook *book)
-{
-  gnc_book_set_schedxactions (book, NULL);
-}
 static void
 mark_sx_clean(gpointer data, gpointer user_data)
 {
@@ -224,13 +222,28 @@
 }
 
 static void
+book_sxes_setup(QofBook *book)
+{
+     QofCollection *col;
+     SchedXactions *sxes;
+
+     col = qof_book_get_collection(book, GNC_ID_SCHEDXACTION);
+     sxes = g_new (SchedXactions, 1);
+     qof_instance_init(&sxes->inst, GNC_ID_SXES, book);
+     sxes->sx_list = NULL;
+     sxes->sx_notsaved = TRUE;
+     qof_collection_set_data(col, sxes);
+}
+
+static void
 book_sxns_mark_saved(QofCollection *col)
 {
   SchedXactions *sxl;
-
-  sxl = gnc_collection_get_schedxaction_list (col);
-  if (sxl) sxl->sx_notsaved = FALSE;
-  g_list_foreach(gnc_collection_get_schedxactions(col),
+  sxl = gnc_collection_get_schedxactions(col);
+  if (!sxl)
+       return;
+  sxl->sx_notsaved = FALSE;
+  g_list_foreach(sxl->sx_list,
                  mark_sx_clean, 
                  NULL);
 }
@@ -241,10 +254,11 @@
   GList *sxlist;
   SchedXactions *sxl;
 
-  sxl = gnc_collection_get_schedxaction_list (col);
+  sxl = gnc_collection_get_schedxactions(col);
+  if (!sxl) return FALSE;
   if((sxl && sxl->sx_notsaved)) return TRUE;
  
-  for(sxlist = gnc_collection_get_schedxactions(col);
+  for(sxlist = sxl->sx_list;
       sxlist != NULL;
       sxlist = g_list_next(sxlist))
   {
@@ -256,6 +270,21 @@
 
   return FALSE;
 }
+
+static QofObject sxes_object_def =
+{
+  interface_version: QOF_OBJECT_VERSION,
+  e_type:            GNC_ID_SXES,
+  type_label:        "Scheduled Transactions List",
+  create:            NULL,
+  book_begin:        book_sxes_setup,
+  book_end:          NULL,
+  is_dirty:          book_sxlist_notsaved,
+  mark_clean:        book_sxns_mark_saved,
+  foreach:           NULL,
+  printable:         NULL,
+  version_cmp:       NULL
+};
   
 static QofObject sxtt_object_def = 
 {
@@ -263,10 +292,10 @@
   e_type:            GNC_ID_SXTT,
   type_label:        "Scheduled Transaction Templates",
   create:            NULL,
-  book_begin:        sxtt_book_begin,
-  book_end:          sxtt_book_end,
-  is_dirty:          book_sxlist_notsaved,
-  mark_clean:        book_sxns_mark_saved,
+  book_begin:        NULL,
+  book_end:          NULL,
+  is_dirty:          NULL,
+  mark_clean:        NULL,
   foreach:           NULL,
   printable:         NULL,
   version_cmp:       NULL,
@@ -275,8 +304,11 @@
 gboolean 
 gnc_sxtt_register (void)
 {
-  return qof_object_register (&sxtg_object_def);
-  return qof_object_register (&sxtt_object_def);
+  if (!qof_object_register(&sxes_object_def))
+    return FALSE;
+  if (!qof_object_register(&sxtg_object_def))
+    return FALSE;
+  return qof_object_register(&sxtt_object_def);
 }
 
 GList*
@@ -284,7 +316,7 @@
 {
   GList *rtn = NULL;
   const GUID *acct_guid = xaccAccountGetGUID(acct);
-  GList *sx_list = gnc_book_get_schedxactions(book);
+  GList *sx_list = gnc_book_get_schedxactions(book)->sx_list;
   for (; sx_list != NULL; sx_list = sx_list->next)
   {
     SchedXaction *sx = (SchedXaction*)sx_list->data;

Modified: gnucash/branches/gda-dev/src/engine/SX-book.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/SX-book.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/SX-book.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,6 +30,7 @@
  * @brief Anchor Scheduled Transaction info in a book.
  *        See src/doc/books.txt for design overview.
  * @author Copyright (c) 2003 Linas Vepstas <linas at linas.org>
+ * @author Copyright (c) 2006 Joshua Sled <jsled at asynchronous.org>
  * 
  * XXX currently, this is crufty, it should be modified to use
  * entities a bit more whole-heartedly than it does.
@@ -39,17 +40,27 @@
 #define GNC_SX_BOOK_H
 
 #include <glib.h>
+#include "SchedXaction.h"
 #include "qof.h"
 
 typedef struct xaccSchedXactionsDef SchedXactions;
 
-SchedXactions * gnc_collection_get_schedxaction_list(const QofCollection *col);
-GList * gnc_collection_get_schedxactions(const QofCollection *col);
-GList * gnc_book_get_schedxactions(QofBook *book);
+struct xaccSchedXactionsDef {
+  QofInstance inst;
+  GList* sx_list;
+  gboolean sx_notsaved;
+};
 
+#define GNC_IS_SXES(obj)  (QOF_CHECK_TYPE((obj), GNC_ID_SXES))
+#define GNC_SXES(obj)     (QOF_CHECK_CAST((obj), GNC_ID_SXES, SchedXactions))
+
+SchedXactions* gnc_book_get_schedxactions(QofBook* book);
+
+void gnc_sxes_add_sx(SchedXactions* sxes, SchedXaction* sx);
+void gnc_sxes_del_sx(SchedXactions* sxes, SchedXaction* sx);
+
 /** Returns the template group from the book. **/
-AccountGroup * gnc_book_get_template_group(QofBook *book);
-AccountGroup * gnc_collection_get_template_group(const QofCollection *col);
+Account *gnc_book_get_template_root(QofBook *book);
 
 /** @return The list of SXes which reference the given Account. Caller should free this list. **/
 GList* gnc_sx_get_sxes_referencing_account(QofBook *book, Account *acct);

Modified: gnucash/branches/gda-dev/src/engine/SchedXaction.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/SchedXaction.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/SchedXaction.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 /********************************************************************\
  * SchedXaction.c -- Scheduled Transaction implementation.          *
- * Copyright (C) 2001 Joshua Sled <jsled at asynchronous.org>          *
+ * Copyright (C) 2001,2007 Joshua Sled <jsled at asynchronous.org>     *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
  * modify it under the terms of the GNU General Public License as   *
@@ -32,16 +32,14 @@
 #include "FreqSpec.h"
 #include "Account.h"
 #include "gnc-book.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "SX-book.h"
 #include "SX-ttinfo.h"
 #include "SchedXaction.h"
-#include "SchedXactionP.h"
 #include "Transaction.h"
 #include "gnc-engine.h"
 
-static QofLogModule log_module = GNC_MOD_SX;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.engine.sx"
 
 /* Local Prototypes *****/
 
@@ -50,16 +48,18 @@
 static void
 xaccSchedXactionInit(SchedXaction *sx, QofBook *book)
 {
-   AccountGroup        *ag;
+   Account        *ra;
 
    qof_instance_init (&sx->inst, GNC_ID_SCHEDXACTION, book);
 
+   sx->schedule = NULL;
    sx->freq = xaccFreqSpecMalloc(book);
 
    g_date_clear( &sx->last_date, 1 );
    g_date_clear( &sx->start_date, 1 );
    g_date_clear( &sx->end_date, 1 );
 
+   sx->enabled = 1;
    sx->num_occurances_total = 0;
    sx->autoCreateOption = FALSE;
    sx->autoCreateNotify = FALSE;
@@ -70,19 +70,16 @@
 
    /* create a new template account for our splits */
    sx->template_acct = xaccMallocAccount(book);
-   /* THREAD-UNSAFE */
-   xaccAccountBeginEdit( sx->template_acct );
    xaccAccountSetName( sx->template_acct,
                        guid_to_string( &sx->inst.entity.guid ));
    xaccAccountSetCommodity
      (sx->template_acct,
       gnc_commodity_new( book,
-			 "template", "template",
+                         "template", "template",
                          "template", "template", 1 ) );
    xaccAccountSetType( sx->template_acct, ACCT_TYPE_BANK );
-   ag = gnc_book_get_template_group( book );
-   xaccAccountCommitEdit( sx->template_acct );
-   xaccGroupInsertAccount( ag, sx->template_acct );
+   ra = gnc_book_get_template_root( book );
+   gnc_account_append_child( ra, sx->template_acct );
 }
 
 SchedXaction*
@@ -109,7 +106,6 @@
   return;
 }
 
-
 static void
 delete_template_trans(SchedXaction *sx)
 {
@@ -140,7 +136,21 @@
   
   return;
 }
+
 void
+sx_set_template_account (SchedXaction *sx, Account *account)
+{
+  Account *old;
+
+  old = sx->template_acct;
+  sx->template_acct = account;
+  if (old) {
+    xaccAccountBeginEdit(old);
+    xaccAccountDestroy(old);
+  }
+}
+
+void
 xaccSchedXactionFree( SchedXaction *sx )
 {
   GList *l;
@@ -189,24 +199,29 @@
   qof_begin_edit (&sx->inst);
 }
 
-static inline void commit_err (QofInstance *inst, QofBackendError errcode)
+static void commit_err (QofInstance *inst, QofBackendError errcode)
 {
-  PERR ("Failed to commit: %d", errcode);
+     g_critical("Failed to commit: %d", errcode);
 }
 
-static inline void noop (QofInstance *inst) {}
+static void commit_done(QofInstance *inst)
+{
+  qof_event_gen (&inst->entity, QOF_EVENT_MODIFY, NULL);
+}
 
+static void noop(QofInstance *inst) {}
+
 void
 gnc_sx_commit_edit (SchedXaction *sx)
 {
   if (!qof_commit_edit (QOF_INSTANCE(sx))) return;
-  qof_commit_edit_part2 (&sx->inst, commit_err, noop, noop);
+  qof_commit_edit_part2 (&sx->inst, commit_err, commit_done, noop);
 }
 
 /* ============================================================ */
 
 FreqSpec *
-xaccSchedXactionGetFreqSpec( SchedXaction *sx )
+xaccSchedXactionGetFreqSpec( const SchedXaction *sx )
 {
    return sx->freq;
 }
@@ -223,8 +238,24 @@
    gnc_sx_commit_edit(sx);
 }
 
+GList*
+gnc_sx_get_schedule(const SchedXaction *sx)
+{
+   return sx->schedule;
+}
+
+void
+gnc_sx_set_schedule(SchedXaction *sx, GList *schedule)
+{
+   g_return_if_fail(sx && schedule);
+   gnc_sx_begin_edit(sx);
+   sx->schedule = schedule;
+   qof_instance_set_dirty(&sx->inst);
+   gnc_sx_commit_edit(sx);
+}
+
 gchar *
-xaccSchedXactionGetName( SchedXaction *sx )
+xaccSchedXactionGetName( const SchedXaction *sx )
 {
    return sx->name;
 }
@@ -280,7 +311,7 @@
      * This warning is only human readable - the caller
      * doesn't know the call failed.  This is bad
      */
-    PWARN( "New end date before start date" ); 
+    g_critical("New end date before start date"); 
     return;
   }
 
@@ -306,13 +337,13 @@
 }
 
 gboolean
-xaccSchedXactionHasOccurDef( SchedXaction *sx )
+xaccSchedXactionHasOccurDef( const SchedXaction *sx )
 {
   return ( xaccSchedXactionGetNumOccur( sx ) != 0 );
 }
 
 gint
-xaccSchedXactionGetNumOccur( SchedXaction *sx )
+xaccSchedXactionGetNumOccur( const SchedXaction *sx )
 {
   return sx->num_occurances_total;
 }
@@ -327,7 +358,7 @@
 }
 
 gint
-xaccSchedXactionGetRemOccur( SchedXaction *sx )
+xaccSchedXactionGetRemOccur( const SchedXaction *sx )
 {
   return sx->num_occurances_remain;
 }
@@ -339,7 +370,7 @@
   /* FIXME This condition can be tightened up */
   if ( numRemain > sx->num_occurances_total ) 
   {
-    PWARN("The number remaining is greater than the total occurrences");
+    g_warning("The number remaining is greater than the total occurrences");
   }
   else
   {
@@ -352,7 +383,7 @@
 
 
 KvpValue *
-xaccSchedXactionGetSlot( SchedXaction *sx, const char *slot )
+xaccSchedXactionGetSlot( const SchedXaction *sx, const char *slot )
 {
   if (!sx) return NULL;
 
@@ -372,13 +403,30 @@
   gnc_sx_commit_edit(sx);
 }
 
+gboolean
+xaccSchedXactionGetEnabled( const SchedXaction *sx )
+{
+    return sx->enabled;
+}
+
 void
+xaccSchedXactionSetEnabled( SchedXaction *sx, gboolean newEnabled)
+{
+  gnc_sx_begin_edit(sx);
+  sx->enabled = newEnabled;
+  qof_instance_set_dirty(&sx->inst);
+  gnc_sx_commit_edit(sx);
+}
+
+void
 xaccSchedXactionGetAutoCreate( const SchedXaction *sx,
                                gboolean *outAutoCreate,
                                gboolean *outNotify )
 {
-  *outAutoCreate = sx->autoCreateOption;
-  *outNotify     = sx->autoCreateNotify;
+  if (outAutoCreate != NULL)
+    *outAutoCreate = sx->autoCreateOption;
+  if (outNotify != NULL)
+    *outNotify     = sx->autoCreateNotify;
   return;
 }
 
@@ -397,7 +445,7 @@
 }
 
 gint
-xaccSchedXactionGetAdvanceCreation( SchedXaction *sx )
+xaccSchedXactionGetAdvanceCreation( const SchedXaction *sx )
 {
   return sx->advanceCreateDays;
 }
@@ -412,7 +460,7 @@
 }
 
 gint
-xaccSchedXactionGetAdvanceReminder( SchedXaction *sx )
+xaccSchedXactionGetAdvanceReminder( const SchedXaction *sx )
 {
    return sx->advanceRemindDays;
 }
@@ -464,20 +512,20 @@
       }
    }
 
-   xaccFreqSpecGetNextInstance( sx->freq, &last_occur, &next_occur );
+   recurrenceListNextInstance(sx->schedule, &last_occur, &next_occur);
 
    /* out-of-bounds check */
    if ( xaccSchedXactionHasEndDate( sx ) ) {
       GDate *end_date = xaccSchedXactionGetEndDate( sx );
       if ( g_date_compare( &next_occur, end_date ) > 0 ) {
-         PINFO( "next_occur past end date" );
+         g_debug("next_occur past end date");
          g_date_clear( &next_occur, 1 );
       }
    } else if ( xaccSchedXactionHasOccurDef( sx ) ) {
       if ( stateData ) {
          temporalStateData *tsd = (temporalStateData*)stateData;
          if ( tsd->num_occur_rem == 0 ) {
-            PINFO( "no more occurances remain" );
+            g_debug("no more occurances remain");
             g_date_clear( &next_occur, 1 );
          }
       } else {
@@ -513,7 +561,7 @@
       g_date_subtract_days( &prev_occur, 1 );
    }
 
-   xaccFreqSpecGetNextInstance( sx->freq, &prev_occur, &next_occur );
+   recurrenceListNextInstance(sx->schedule, &prev_occur, &next_occur);
 
    if ( xaccSchedXactionHasEndDate( sx ) ) {
       GDate *end_date;
@@ -538,7 +586,7 @@
 }
 
 gint
-gnc_sx_get_instance_count( SchedXaction *sx, void *stateData )
+gnc_sx_get_instance_count( const SchedXaction *sx, void *stateData )
 {
   gint toRet = -1;
   temporalStateData *tsd;
@@ -561,7 +609,7 @@
 }
 
 GList *
-xaccSchedXactionGetSplits( SchedXaction *sx )
+xaccSchedXactionGetSplits( const SchedXaction *sx )
 {
   g_return_val_if_fail( sx, NULL );
   return xaccAccountGetSplitList(sx->template_acct);

Modified: gnucash/branches/gda-dev/src/engine/SchedXaction.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/SchedXaction.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/SchedXaction.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -40,21 +40,86 @@
 #include <glib.h>
 #include "qof.h"
 #include "FreqSpec.h"
+#include "Recurrence.h"
 #include "gnc-engine.h"
 
+#define GNC_IS_SX(obj)  (QOF_CHECK_TYPE((obj), GNC_ID_SCHEDXACTION))
+#define GNC_SX(obj)     (QOF_CHECK_CAST((obj), GNC_ID_SCHEDXACTION, SchedXaction))
+
+typedef struct _SchedXaction SchedXaction;
+
 /**
- * The SchedXaction data.
-*/
-typedef struct gncp_SchedXaction SchedXaction;
+ * A single scheduled transaction.
+ *
+ * Scheduled transactions have a list of transactions, and a frequency
+ * [and associated date anchors] with which they are scheduled.
+ *
+ * Things that make sense to have in a template transaction:
+ *   [not] Date [though eventually some/multiple template transactions
+ *               might have relative dates].
+ *   Memo
+ *   Account
+ *   Funds In/Out... or an expr involving 'amt' [A, x, y, a?] for
+ *     variable expenses.
+ *
+ * Template transactions are instantiated by:
+ *  . copying the fields of the template
+ *  . setting the date to the calculated "due" date.
+ *
+ * We should be able to use the GeneralLedger [or, yet-another-subtype
+ * of the internal ledger] for this editing.
+ **/
+struct _SchedXaction
+{
+  QofInstance     inst;
+  gchar           *name;
 
-#define GNC_IS_SX(obj)  (QOF_CHECK_TYPE((obj), GNC_SX_ID))
-#define GNC_SX(obj)     (QOF_CHECK_CAST((obj), GNC_SX_ID, SchedXaction))
+  GList           *schedule;
+  FreqSpec        *freq;
+  
+  GDate           last_date;
+  
+  GDate           start_date;
+  /* if end_date is invalid, then no end. */
+  GDate           end_date;
 
+  /* if num_occurances_total == 0, then no limit */
+  gint            num_occurances_total;
+  /* reminaing occurances are as-of the 'last_date'. */
+  gint            num_occurances_remain;
+
+  /* the current instance-count of the SX. */
+  gint            instance_num;
+  
+  gboolean        enabled;
+  gboolean        autoCreateOption;
+  gboolean        autoCreateNotify;
+  gint            advanceCreateDays;
+  gint            advanceRemindDays;
+ 
+  Account        *template_acct;
+  
+  /** The list of deferred SX instances.  This list is of temporalStateData
+   * instances.  */
+  GList /* <temporalStateData*> */ *deferredList;
+};
+
+/** Just the variable temporal bits from the SX structure. */
+typedef struct _temporalStateData {
+  GDate last_date;
+  gint num_occur_rem;
+  gint num_inst;
+} temporalStateData;
+
+#define xaccSchedXactionSetGUID(X,G) qof_entity_set_guid(QOF_ENTITY(X),(G))
+
 /**
  * Creates and initializes a scheduled transaction.
 */
 SchedXaction *xaccSchedXactionMalloc(QofBook *book);
 
+void sx_set_template_account (SchedXaction *sx, Account *account);
+
 /**
  * Cleans up and frees a SchedXaction and it's associated data.
 */
@@ -63,14 +128,19 @@
 void gnc_sx_begin_edit (SchedXaction *sx);
 void gnc_sx_commit_edit (SchedXaction *sx);
 
-FreqSpec *xaccSchedXactionGetFreqSpec( SchedXaction *sx );
+/** @return GList<Recurrence*> **/
+GList* gnc_sx_get_schedule(const SchedXaction *sx);
+/** @param[in] schedule A GList<Recurrence*> **/
+void gnc_sx_set_schedule(SchedXaction *sx, GList *schedule);
+
+FreqSpec *xaccSchedXactionGetFreqSpec( const SchedXaction *sx );
 /**
  * The FreqSpec is given to the SchedXaction for mem mgmt; it should
  * not be freed by the external code.
 */
 void xaccSchedXactionSetFreqSpec( SchedXaction *sx, FreqSpec *fs );
 
-gchar *xaccSchedXactionGetName( SchedXaction *sx );
+gchar *xaccSchedXactionGetName( const SchedXaction *sx );
 /**
  * A copy of the name is made.
 */
@@ -96,13 +166,13 @@
  * Returns true if the scheduled transaction has a defined number of
  * occurances, false if not.
 */
-gboolean xaccSchedXactionHasOccurDef( SchedXaction *sx );
-gint xaccSchedXactionGetNumOccur( SchedXaction *sx );
+gboolean xaccSchedXactionHasOccurDef( const SchedXaction *sx );
+gint xaccSchedXactionGetNumOccur( const SchedXaction *sx );
 /**
  * Set to '0' to turn off number-of-occurances definition.
 */
 void xaccSchedXactionSetNumOccur( SchedXaction *sx, gint numNum );
-gint xaccSchedXactionGetRemOccur( SchedXaction *sx );
+gint xaccSchedXactionGetRemOccur( const SchedXaction *sx );
 void xaccSchedXactionSetRemOccur( SchedXaction *sx, gint numRemain );
 
 /** \brief Set the instance count.
@@ -114,16 +184,19 @@
  * @param sx The instance whose state should be retrieved.
  * @param stateData may be NULL.
 */
-gint gnc_sx_get_instance_count( SchedXaction *sx, void *stateData );
+gint gnc_sx_get_instance_count( const SchedXaction *sx, void *stateData );
 /**
  * Sets the instance count to something other than the default.  As the
  * default is the incorrect value '0', callers should DTRT here.
 */
 void gnc_sx_set_instance_count( SchedXaction *sx, gint instanceNum );
 
-GList *xaccSchedXactionGetSplits( SchedXaction *sx );
+GList *xaccSchedXactionGetSplits( const SchedXaction *sx );
 void xaccSchedXactionSetSplits( SchedXaction *sx, GList *newSplits );
 
+gboolean xaccSchedXactionGetEnabled( const SchedXaction *sx );
+void xaccSchedXactionSetEnabled( SchedXaction *sx, gboolean newEnabled );
+
 void xaccSchedXactionGetAutoCreate( const SchedXaction *sx,
                                     gboolean *outAutoCreate,
                                     gboolean *outNotify );
@@ -131,10 +204,10 @@
                                     gboolean newAutoCreate,
                                     gboolean newNotify );
 
-gint xaccSchedXactionGetAdvanceCreation( SchedXaction *sx );
+gint xaccSchedXactionGetAdvanceCreation( const SchedXaction *sx );
 void xaccSchedXactionSetAdvanceCreation( SchedXaction *sx, gint createDays );
 
-gint xaccSchedXactionGetAdvanceReminder( SchedXaction *sx );
+gint xaccSchedXactionGetAdvanceReminder( const SchedXaction *sx );
 void xaccSchedXactionSetAdvanceReminder( SchedXaction *sx, gint reminderDays );
 
 /** \name Temporal state data.
@@ -159,7 +232,7 @@
 /** @} */
 
 /** \brief Returns the next occurance of a scheduled transaction.
-
+ *
  *   If the transaction hasn't occured, then it's based off the start date.
  * Otherwise, it's based off the last-occurance date.
  *
@@ -199,7 +272,7 @@
 
  This is a date-sorted state-data instance list.
  The list should not be modified by the caller; use the
- gnc_sx_{add,remove}_defer_instance() functions to modifiy the list.
+ gnc_sx_{add,remove}_defer_instance() functions to modify the list.
 */
 GList *gnc_sx_get_defer_instances( SchedXaction *sx );
 
@@ -229,7 +302,7 @@
 #define xaccSchedXactionGetSlots(X) qof_instance_get_slots(QOF_INSTANCE(X))
 
 /** \deprecated to be replaced with 'dirty' kvp's */
-KvpValue *xaccSchedXactionGetSlot( SchedXaction *sx, 
+KvpValue *xaccSchedXactionGetSlot( const SchedXaction *sx, 
 				    const char *slot );
 /** \deprecated to be replaced with 'dirty' kvp's */
 void xaccSchedXactionSetSlot( SchedXaction *sx, 

Deleted: gnucash/branches/gda-dev/src/engine/SchedXactionP.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/SchedXactionP.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/SchedXactionP.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,92 +0,0 @@
-/********************************************************************\
- * SchedXactionP.h -- Scheduled Transaction private header          *
- * Copyright (C) 2001 Linux Developers Group                        *
- *                                                                  *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
- *                                                                  *
-\********************************************************************/
-
-#ifndef XACC_SCHEDXACTION_P_H
-#define XACC_SCHEDXACTION_P_H
-
-#include "SchedXaction.h"
-
-/**
- * A single scheduled transaction.
- *
- * Scheduled transactions have a list of transactions, and a frequency
- * [and associated date anchors] with which they are scheduled.
- *
- * Things that make sense to have in a template transaction:
- *   [not] Date [though eventually some/multiple template transactions
- *               might have relative dates].
- *   Memo
- *   Account
- *   Funds In/Out... or an expr involving 'amt' [A, x, y, a?] for
- *     variable expenses.
- *
- * Template transactions are instantiated by:
- *  . copying the fields of the template
- *  . setting the date to the calculated "due" date.
- *
- * We should be able to use the GeneralLedger [or, yet-another-subtype
- * of the internal ledger] for this editing.
- **/
-struct gncp_SchedXaction
-{
-  QofInstance     inst;
-  gchar           *name;
-
-  FreqSpec        *freq;
-  
-  GDate           last_date;
-  
-  GDate           start_date;
-  /* if end_date is invalid, then no end. */
-  GDate           end_date;
-
-  /* if num_occurances_total == 0, then no limit */
-  gint            num_occurances_total;
-  /* reminaing occurances are as-of the 'last_date'. */
-  gint            num_occurances_remain;
-
-  /* the current instance-count of the SX. */
-  gint            instance_num;
-  
-  gboolean        autoCreateOption;
-  gboolean        autoCreateNotify;
-  gint            advanceCreateDays;
-  gint            advanceRemindDays;
- 
-  Account        *template_acct;
-  
-  /** The list of deferred SX instances.  This list is of temporalStateData
-   * instances.  */
-  GList /* <temporalStateData*> */ *deferredList;
-};
-
-/** Just the variable temporal bits from the SX structure. */
-typedef struct _temporalStateData {
-  GDate last_date;
-  gint num_occur_rem;
-  gint num_inst;
-} temporalStateData;
-
-#define xaccSchedXactionSetGUID(X,G) qof_entity_set_guid(QOF_ENTITY(X),(G))
-
-#endif /* XACC_SCHEDXACTION_P_H */

Modified: gnucash/branches/gda-dev/src/engine/Scrub.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Scrub.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Scrub.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -45,8 +45,6 @@
 
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "Scrub.h"
 #include "ScrubP.h"
 #include "Transaction.h"
@@ -58,34 +56,17 @@
 /* ================================================================ */
 
 void
-xaccGroupScrubOrphans (AccountGroup *grp)
-{
-  GList *list;
-  GList *node;
-
-  if (!grp) return;
-
-  list = xaccGroupGetAccountList (grp);
-
-  for (node = list; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccAccountTreeScrubOrphans (account);
-  }
-}
-
-void
 xaccAccountTreeScrubOrphans (Account *acc)
 {
   if (!acc) return;
 
-  xaccGroupScrubOrphans (xaccAccountGetChildren(acc));
   xaccAccountScrubOrphans (acc);
+  gnc_account_foreach_descendant(acc,
+                                 (AccountCb)xaccAccountScrubOrphans, NULL);
 }
 
 static void
-TransScrubOrphansFast (Transaction *trans, AccountGroup *root)
+TransScrubOrphansFast (Transaction *trans, Account *root)
 {
   GList *node;
 
@@ -125,7 +106,7 @@
     Split *split = node->data;
 
     TransScrubOrphansFast (xaccSplitGetParent (split),
-                           xaccAccountGetRoot (acc));
+                           gnc_account_get_root (acc));
   }
 }
 
@@ -135,14 +116,14 @@
 {
   SplitList *node;
   QofBook *book = NULL;
-  AccountGroup *root = NULL;
+  Account *root = NULL;
   for (node = trans->splits; node; node = node->next)
   {
     Split *split = node->data;
 
     if (split->acc)
     {
-      TransScrubOrphansFast (trans, xaccAccountGetRoot(split->acc));
+      TransScrubOrphansFast (trans, gnc_account_get_root(split->acc));
       return;
     }
   }
@@ -154,35 +135,20 @@
    */
   PINFO ("Free Floating Transaction!");
   book = xaccTransGetBook (trans);
-  root = xaccGetAccountGroup (book);
+  root = gnc_book_get_root_account (book);
   TransScrubOrphansFast (trans, root);
 }
 
 /* ================================================================ */
 
 void
-xaccGroupScrubSplits (AccountGroup *group)
-{
-  GList *list;
-  GList *node;
-
-  if (!group) return;
-
-  list = xaccGroupGetAccountList (group);
-
-  for (node = list; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccAccountTreeScrubSplits (account);
-  }
-}
-
-void
 xaccAccountTreeScrubSplits (Account *account)
 {
-  xaccGroupScrubSplits (xaccAccountGetChildren(account));
+  if (!account) return;
+
   xaccAccountScrubSplits (account);
+  gnc_account_foreach_descendant(account,
+                                 (AccountCb)xaccAccountScrubSplits, NULL);
 }
 
 void
@@ -289,28 +255,11 @@
 /* ================================================================ */
 
 void
-xaccGroupScrubImbalance (AccountGroup *grp)
-{
-  GList *list;
-  GList *node;
-
-  if (!grp) return;
-
-  list = xaccGroupGetAccountList (grp);
-
-  for (node = list; node; node = node->next)
-  {
-    Account *account = node->data;
-
-    xaccAccountTreeScrubImbalance (account);
-  }
-}
-
-void
 xaccAccountTreeScrubImbalance (Account *acc)
 {
-  xaccGroupScrubImbalance (xaccAccountGetChildren(acc));
   xaccAccountScrubImbalance (acc);
+  gnc_account_foreach_descendant(acc,
+                                 (AccountCb)xaccAccountScrubImbalance, NULL);
 }
 
 void
@@ -332,7 +281,7 @@
 
     xaccTransScrubCurrencyFromSplits(trans);
     
-    xaccTransScrubImbalance (trans, xaccAccountGetRoot (acc), NULL);
+    xaccTransScrubImbalance (trans, gnc_account_get_root (acc), NULL);
   }
 }
 
@@ -397,7 +346,7 @@
 }
 
 void
-xaccTransScrubImbalance (Transaction *trans, AccountGroup *root,
+xaccTransScrubImbalance (Transaction *trans, Account *root,
                          Account *account)
 {
   Split *balance_split = NULL;
@@ -418,7 +367,7 @@
   {
     if (!root) 
     {
-       root = xaccGetAccountGroup (xaccTransGetBook (trans));
+       root = gnc_book_get_root_account (xaccTransGetBook (trans));
        if (NULL == root)
        {
           /* This can't occur, things should be in books */
@@ -711,6 +660,7 @@
   gnc_commodity *commodity;
 
   if (!account) return;
+  if (xaccAccountGetType(account) == ACCT_TYPE_ROOT) return;
 
   commodity = xaccAccountGetCommodity (account);
   if (commodity) return;
@@ -754,27 +704,22 @@
   return 0;
 }
 
-static gpointer
+static void
 scrub_account_commodity_helper (Account *account, gpointer data)
 {
   xaccAccountScrubCommodity (account);
   xaccAccountDeleteOldData (account);
-  return NULL;
 }
 
 void
-xaccGroupScrubCommodities (AccountGroup *group)
+xaccAccountTreeScrubCommodities (Account *acc)
 {
-  if (!group) return;
+  if (!acc) return;
 
-  xaccAccountGroupBeginEdit (group);
+  xaccAccountTreeForEachTransaction (acc, scrub_trans_currency_helper, NULL);
 
-  xaccGroupForEachTransaction (group, scrub_trans_currency_helper, NULL);
-
-  xaccGroupForEachAccount (group, scrub_account_commodity_helper,
-                           NULL, TRUE);
-
-  xaccAccountGroupCommitEdit (group);
+  scrub_account_commodity_helper (acc, NULL);
+  gnc_account_foreach_descendant (acc, scrub_account_commodity_helper, NULL);
 }
 
 /* ================================================================ */
@@ -788,7 +733,7 @@
   return TRUE;
 }
 
-static gpointer
+static void
 move_quote_source (Account *account, gpointer data)
 {
   gnc_commodity *com;
@@ -798,12 +743,12 @@
 
   com = xaccAccountGetCommodity(account);
   if (!com)
-    return NULL;
+    return;
 
   if (!new_style) {
     source = dxaccAccountGetPriceSrc(account);
     if (!source || !*source)
-      return NULL;
+      return;
     tz = dxaccAccountGetQuoteTZ(account);
 
     PINFO("to %8s from %s", gnc_commodity_get_mnemonic(com),
@@ -818,27 +763,26 @@
 
   dxaccAccountSetPriceSrc(account, NULL);
   dxaccAccountSetQuoteTZ(account, NULL);
-  return NULL;
+  return;
 }
 
 
 void
-xaccGroupScrubQuoteSources (AccountGroup *group, gnc_commodity_table *table)
+xaccAccountTreeScrubQuoteSources (Account *root, gnc_commodity_table *table)
 {
   gboolean new_style = FALSE;
   ENTER(" ");
 
-  if (!group || !table) {
+  if (!root || !table) {
     LEAVE("Oops");
     return;
   }
 
   gnc_commodity_table_foreach_commodity (table, check_quote_source, &new_style);
 
-  xaccAccountGroupBeginEdit (group);
-  xaccGroupForEachAccount (group, move_quote_source,
-                           GINT_TO_POINTER(new_style), TRUE);
-  xaccAccountGroupCommitEdit (group);
+  move_quote_source(root, GINT_TO_POINTER(new_style));
+  gnc_account_foreach_descendant (root, move_quote_source,
+                           GINT_TO_POINTER(new_style));
   LEAVE("Migration done");
 }
 
@@ -874,7 +818,7 @@
 /* ================================================================ */
 
 Account *
-xaccScrubUtilityGetOrMakeAccount (AccountGroup *root, gnc_commodity * currency,
+xaccScrubUtilityGetOrMakeAccount (Account *root, gnc_commodity * currency,
                   const char *name_root)
 {
   char * accname;
@@ -893,19 +837,19 @@
                          gnc_commodity_get_mnemonic (currency), NULL);
 
   /* See if we've got one of these going already ... */
-  acc = xaccGetAccountFromName (root, accname);
+  acc = gnc_account_lookup_by_name(root, accname);
 
   if (acc == NULL)
   {
     /* Guess not. We'll have to build one. */
-    acc = xaccMallocAccount (root->book);
+    acc = xaccMallocAccount(gnc_account_get_book (root));
     xaccAccountBeginEdit (acc);
     xaccAccountSetName (acc, accname);
     xaccAccountSetCommodity (acc, currency);
     xaccAccountSetType (acc, ACCT_TYPE_BANK);
 
     /* Hang the account off the root. */
-    xaccGroupInsertAccount (root, acc);
+    gnc_account_append_child (root, acc);
     xaccAccountCommitEdit (acc);
   }
 

Modified: gnucash/branches/gda-dev/src/engine/Scrub.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/Scrub.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Scrub.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -50,7 +50,6 @@
 #ifndef XACC_SCRUB_H
 #define XACC_SCRUB_H
 
-#include "Group.h"
 #include "gnc-engine.h"
 
 /** @name Double-Entry Scrubbing
@@ -85,11 +84,6 @@
  */
 void xaccAccountTreeScrubOrphans (Account *acc);
 
-/** The xaccGroupScrubOrphans() method performs this scrub for the 
- *    child accounts of this group. 
- */
-void xaccGroupScrubOrphans (AccountGroup *grp);
-
 /** The xaccSplitScrub method ensures that if this split has the same
  *   commodity and currency, then it will have the same amount and value.  
  *   If the commoidty is the currency, the split->amount is set to the 
@@ -106,18 +100,16 @@
 void xaccTransScrubSplits (Transaction *trans);
 void xaccAccountScrubSplits (Account *account);
 void xaccAccountTreeScrubSplits (Account *account);
-void xaccGroupScrubSplits (AccountGroup *group);
 
 /** The xaccScrubImbalance() method searches for transactions that do
  *    not balance to zero. If any such transactions are found, a split
  *    is created to offset this amount and is added to an "imbalance"
  *    account.
  */
-void xaccTransScrubImbalance (Transaction *trans, AccountGroup *root,
+void xaccTransScrubImbalance (Transaction *trans, Account *root,
                               Account *parent);
 void xaccAccountScrubImbalance (Account *acc);
 void xaccAccountTreeScrubImbalance (Account *acc);
-void xaccGroupScrubImbalance (AccountGroup *grp);
 
 /** The xaccTransScrubCurrency method fixes transactions without a
  * common_currency by using the old account currency and security
@@ -137,9 +129,10 @@
  * a commodity by using the old account currency and security. */
 void xaccAccountScrubCommodity (Account *account);
 
-/** The xaccGroupScrubCommodities will scrub the currency/commodity
- * of all accounts & transactions in the group. */
-void xaccGroupScrubCommodities (AccountGroup *group);
+/** The xaccAccountTreeScrubCommodities will scrub the
+ * currency/commodity of all accounts & transactions in the specified
+ * account or any child account. */
+void xaccAccountTreeScrubCommodities (Account *acc);
 
 /** This routine will migrate the information about price quote
  *  sources from the account data structures to the commodity data
@@ -148,13 +141,13 @@
  *  out as part of the account.  Just in case anyone needs to fall
  *  back from CVS to a production version of code.
  *
- *  @param group A pointer to the account group containing all
+ *  @param acc A pointer to the root account containing all
  *  accounts in the current book.
  *
  *  @param table A pointer to the commodity table for the current
  *  book.
  */
-void xaccGroupScrubQuoteSources (AccountGroup *group, gnc_commodity_table *table);
+void xaccAccountTreeScrubQuoteSources (Account *root, gnc_commodity_table *table);
 
 void xaccAccountScrubKvp (Account *account);
 

Modified: gnucash/branches/gda-dev/src/engine/Scrub2.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Scrub2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Scrub2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,8 +36,6 @@
 
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "Transaction.h"
 #include "TransactionP.h"
 #include "Scrub2.h"

Modified: gnucash/branches/gda-dev/src/engine/Scrub3.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Scrub3.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Scrub3.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -40,7 +40,6 @@
 #include "policy-p.h"
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
 #include "Scrub2.h"
 #include "Scrub3.h"
 #include "Transaction.h"
@@ -176,27 +175,19 @@
 
 /* ============================================================== */
 
-static gpointer 
+static void
 lot_scrub_cb (Account *acc, gpointer data)
 {
-   if (FALSE == xaccAccountHasTrades (acc)) return NULL;
+   if (FALSE == xaccAccountHasTrades (acc)) return;
    xaccAccountScrubLots (acc);
-   return NULL;
 }
 
 void 
-xaccGroupScrubLots (AccountGroup *grp)
-{
-   if (!grp) return;
-   xaccGroupForEachAccount (grp, lot_scrub_cb, NULL, TRUE);
-}
-
-void 
 xaccAccountTreeScrubLots (Account *acc)
 {
    if (!acc) return;
 
-   xaccGroupScrubLots (acc->children);
+   gnc_account_foreach_descendant(acc, lot_scrub_cb, NULL);
    xaccAccountScrubLots (acc);
 }
 

Modified: gnucash/branches/gda-dev/src/engine/Scrub3.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/Scrub3.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Scrub3.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -62,16 +62,11 @@
  *    lot structure, and the cap-gains for an account are in good 
  *    order.
  *
- * The xaccGroupScrubLots() routine walks the account tree, and invokes 
- *    xaccAccountScrubLots() on all accounts that are trading accounts.
- * The xaccAccountTreeScrubLots() does the same.
- *
  * Most GUI routines will want to use one of these xacc[*]ScrubLots()
  * routines, instead of the various component routines, since it will 
  * usually makes sense to work only with these high-level routines.
  */
 void xaccAccountScrubLots (Account *acc);
-void xaccGroupScrubLots (AccountGroup *grp);
 void xaccAccountTreeScrubLots (Account *acc);
 
 /** @} */

Modified: gnucash/branches/gda-dev/src/engine/ScrubP.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/ScrubP.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/ScrubP.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -33,7 +33,7 @@
 #include "gnc-engine.h"
 
 /* Utility to make account by name.  Not for public use. */
-Account * xaccScrubUtilityGetOrMakeAccount (AccountGroup *root, 
+Account * xaccScrubUtilityGetOrMakeAccount (Account *root, 
        gnc_commodity * currency, const char *name_root);
 
 

Modified: gnucash/branches/gda-dev/src/engine/Split.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Split.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Split.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,7 +36,6 @@
 
 #include "Split.h"
 #include "AccountP.h"
-#include "Group.h"
 #include "Scrub.h"
 #include "Scrub3.h"
 #include "TransactionP.h"
@@ -728,7 +727,7 @@
   mark_split (s);
   qof_instance_set_dirty(QOF_INSTANCE(s));
   xaccTransCommitEdit(s->parent);
-
+  LEAVE("");
 }
 
 void 
@@ -1068,11 +1067,20 @@
     const Split *osplit = xaccSplitGetOtherSplit (split);
 
     if (osplit)
-        g_assert(gnc_commodity_equal(
-                     to_commodity, 
-                     xaccAccountGetCommodity(xaccSplitGetAccount(osplit))));
-    if (osplit)
-      return gnc_numeric_neg (xaccSplitGetAmount (osplit));
+    {
+        gnc_commodity* split_comm =
+                     xaccAccountGetCommodity(xaccSplitGetAccount(osplit));
+        if (!gnc_commodity_equal(to_commodity, split_comm))
+	{
+          PERR("The split's (%s) amount can't be converted from %s into %s.",
+               guid_to_string(xaccSplitGetGUID(osplit)),
+               gnc_commodity_get_mnemonic(split_comm),
+               gnc_commodity_get_mnemonic(to_commodity)
+               );
+          return gnc_numeric_zero();
+        }
+        return gnc_numeric_neg (xaccSplitGetAmount (osplit));
+    }
   }
 
   /* ... otherwise, we need to compute the amount from the conversion

Modified: gnucash/branches/gda-dev/src/engine/TransLog.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/TransLog.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/TransLog.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,11 +25,10 @@
 
 #include <errno.h>
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <string.h>
 
 #include "Account.h"
-#include "AccountP.h"
 #include "Transaction.h"
 #include "TransactionP.h"
 #include "TransLog.h"
@@ -50,7 +49,7 @@
  *       No, using a perl script to analyze a file that's supposed to
  *       be human readable is not a contradication in terms -- that's 
  *       exactly the point.
- * (2.b) Use tabs as a human freindly field separator; its also a 
+ * (2.b) Use tabs as a human friendly field separator; its also a 
  *       character that does not (should not) appear naturally anywhere 
  *       in the data, as it serves no formatting purpose in the current 
  *       GUI design.  (hack alert -- this is not currently tested for 
@@ -157,7 +156,7 @@
 
    filename = g_strconcat (log_base_name, ".", timestamp, ".log", NULL);
 
-   trans_log = fopen (filename, "a");
+   trans_log = g_fopen (filename, "a");
    if (!trans_log) {
       int norr = errno;
       printf ("Error: xaccOpenLog(): cannot open journal \n"

Modified: gnucash/branches/gda-dev/src/engine/Transaction.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/Transaction.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Transaction.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,11 +35,9 @@
 #include <unistd.h>
 
 #include "AccountP.h"
-#include "Group.h"
 #include "Scrub.h"
 #include "Scrub3.h"
 #include "TransactionP.h"
-#include "Split.h"
 #include "SplitP.h"
 #include "TransLog.h"
 #include "cap-gains.h"
@@ -1023,7 +1021,8 @@
      /* Get the cap gains into a consistent state as well. */
      
      /* Lot Scrubbing is temporarily disabled. */
-     //xaccTransScrubGains (trans, NULL);
+     if (g_getenv("GNC_AUTO_SCRUB_LOTS") != NULL)
+         xaccTransScrubGains (trans, NULL);
 
      /* Allow scrubbing in transaction commit again */
      scrub_data = 1;
@@ -1666,50 +1665,14 @@
 gnc_book_count_transactions(QofBook *book)
 {
     guint count = 0;
-    xaccGroupForEachTransaction(xaccGetAccountGroup(book),
+    xaccAccountTreeForEachTransaction(gnc_book_get_root_account(book),
                                 counter_thunk, (void*)&count);
     return count;
 }
 
 /********************************************************************\
 \********************************************************************/
-/* walk through the splits, looking for any account */
-static Account * 
-get_any_account(const Transaction *trans)
-{
-    GList *node;
-    if (!trans) return NULL;
-    for (node = trans->splits; node; node = node->next)
-        if (((Split *)node->data)->acc)
-            return ((Split *)node->data)->acc;
-    return NULL;
-}
-Account *
-xaccGetAccountByName (const Transaction *trans, const char * name)
-{
-   Account *acc;
-   if (!trans || !name) return NULL;
 
-   acc = get_any_account(trans);
-   return acc ? xaccGetPeerAccountFromName (acc, name) : NULL;
-}
-
-/********************************************************************\
-\********************************************************************/
-
-Account *
-xaccGetAccountByFullName (const Transaction *trans, const char * name)
-{
-   Account *acc;
-   if (!trans || !name) return NULL;
-
-   acc = get_any_account(trans);
-   return acc ? xaccGetPeerAccountFromFullName (acc, name) : NULL;
-}
-
-/********************************************************************\
-\********************************************************************/
-
 void
 xaccTransVoid(Transaction *trans, const char *reason)
 {

Modified: gnucash/branches/gda-dev/src/engine/Transaction.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/Transaction.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/Transaction.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -452,16 +452,6 @@
 \********************************************************************/
 
 
-/** The xaccGetAccountByName() is a convenience routine that 
- *  is essentially identical to xaccGetPeerAccountFromName(),
- *  except that it accepts the handy transaction as root.*/
-Account * xaccGetAccountByName (const Transaction *trans, const char *name);
-/** The xaccGetAccountByFullName routine is similar to xaccGetAccountByName, but uses
- *  full names using the given separator.*/
-Account * xaccGetAccountByFullName (const Transaction *trans,
-                                    const char *name);
-
-
 /** @name Transaction voiding
 @{
 */

Modified: gnucash/branches/gda-dev/src/engine/binreloc.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/binreloc.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/binreloc.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -590,39 +590,6 @@
 }
 
 
-/** Locate the application's localization folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/share/locale"
- * \endcode
- *
- * @param default_locale_dir  A default path which will used as fallback.
- * @return A string containing the localization folder's path, which must be freed when
- *         no longer necessary. If BinReloc is not initialized, or if the
- *         initialization function failed, then a copy of default_locale_dir will be returned.
- *         If default_locale_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_locale_dir (const gchar *default_locale_dir)
-{
-	gchar *data_dir, *dir;
-
-	data_dir = gbr_find_data_dir (NULL);
-	if (data_dir == NULL) {
-		/* BinReloc not initialized. */
-		if (default_locale_dir != NULL)
-			return g_strdup (default_locale_dir);
-		else
-			return NULL;
-	}
-
-	dir = g_build_filename (data_dir, "locale", NULL);
-	g_free (data_dir);
-	return dir;
-}
-
-
 /** Locate the application's library folder.
  *
  * The path is generated by the following pseudo-code evaluation:

Modified: gnucash/branches/gda-dev/src/engine/binreloc.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/binreloc.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/binreloc.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,7 +41,6 @@
 	#define gbr_find_bin_dir     ffEt66859784967989_gbr_find_bin_dir
 	#define gbr_find_sbin_dir    ffEt66859784967989_gbr_find_sbin_dir
 	#define gbr_find_data_dir    ffEt66859784967989_gbr_find_data_dir
-	#define gbr_find_locale_dir  ffEt66859784967989_gbr_find_locale_dir
 	#define gbr_find_lib_dir     ffEt66859784967989_gbr_find_lib_dir
 	#define gbr_find_libexec_dir ffEt66859784967989_gbr_find_libexec_dir
 	#define gbr_find_etc_dir     ffEt66859784967989_gbr_find_etc_dir
@@ -57,7 +56,6 @@
 gchar   *gbr_find_bin_dir     (const gchar *default_bin_dir);
 gchar   *gbr_find_sbin_dir    (const gchar *default_sbin_dir);
 gchar   *gbr_find_data_dir    (const gchar *default_data_dir);
-gchar   *gbr_find_locale_dir  (const gchar *default_locale_dir);
 gchar   *gbr_find_lib_dir     (const gchar *default_lib_dir);
 gchar   *gbr_find_libexec_dir (const gchar *default_libexec_dir);
 gchar   *gbr_find_etc_dir     (const gchar *default_etc_dir);

Modified: gnucash/branches/gda-dev/src/engine/cap-gains.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/cap-gains.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/cap-gains.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,10 +58,7 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
-#include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "Scrub2.h"
 #include "Scrub3.h"
 #include "Transaction.h"
@@ -221,7 +218,7 @@
 /* Similar to GetOrMakeAccount, but different in important ways */
 
 static Account *
-GetOrMakeLotOrphanAccount (AccountGroup *root, gnc_commodity * currency)
+GetOrMakeLotOrphanAccount (Account *root, gnc_commodity * currency)
 {
   char * accname;
   Account * acc;
@@ -239,12 +236,12 @@
                          gnc_commodity_get_mnemonic (currency), NULL);
 
   /* See if we've got one of these going already ... */
-  acc = xaccGetAccountFromName (root, accname);
+  acc = gnc_account_lookup_by_name(root, accname);
 
   if (acc == NULL)
   {
     /* Guess not. We'll have to build one. */
-    acc = xaccMallocAccount (root->book);
+    acc = xaccMallocAccount (gnc_account_get_book(root));
     xaccAccountBeginEdit (acc);
     xaccAccountSetName (acc, accname);
     xaccAccountSetCommodity (acc, currency);
@@ -256,7 +253,7 @@
            "that haven't been recorded elsewhere."));
 
     /* Hang the account off the root. */
-    xaccGroupInsertAccount (root, acc);
+    gnc_account_append_child (root, acc);
     xaccAccountCommitEdit (acc);
   }
 
@@ -344,10 +341,10 @@
    * for this account, then create such a place */
   if (NULL == gain_acct)
   {
-      AccountGroup *root;
+      Account *root;
 
       xaccAccountBeginEdit (acc);
-      root = xaccAccountGetRoot(acc);
+      root = gnc_account_get_root(acc);
       gain_acct = GetOrMakeLotOrphanAccount (root, currency);
 
       vvv = kvp_value_new_guid (xaccAccountGetGUID (gain_acct));

Modified: gnucash/branches/gda-dev/src/engine/cashobjects.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/cashobjects.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/cashobjects.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -27,7 +27,6 @@
 #include "cashobjects.h"
 #include "gnc-engine.h"
 #include "AccountP.h"
-#include "GroupP.h"
 #include "TransactionP.h"
 #include "FreqSpec.h"
 #include "SchedXaction.h"
@@ -43,7 +42,6 @@
 	g_return_val_if_fail(xaccAccountRegister(), FALSE);
 	g_return_val_if_fail ( xaccTransRegister(), FALSE);
 	g_return_val_if_fail ( xaccSplitRegister(), FALSE);
-	g_return_val_if_fail ( xaccGroupRegister(), FALSE);
 	g_return_val_if_fail ( FreqSpecRegister(),  FALSE);
 	g_return_val_if_fail ( SXRegister (),       FALSE);
 	g_return_val_if_fail ( gnc_sxtt_register(), FALSE);

Modified: gnucash/branches/gda-dev/src/engine/engine-helpers.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/engine-helpers.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/engine-helpers.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,7 +29,6 @@
 #include <string.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "engine-helpers.h"
 #include "glib-helpers.h"
 #include "gnc-date.h"

Modified: gnucash/branches/gda-dev/src/engine/engine-utilities.scm
===================================================================
--- gnucash/branches/gda-dev/src/engine/engine-utilities.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/engine-utilities.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -21,10 +21,10 @@
 
 ;; Copyright 2000 Rob Browning <rlb at cs.utexas.edu>
 
-(define (gnc:group-map-all-accounts thunk group)
-  (let ((accounts (or (xaccGroupGetSubAccountsSorted group) '())))
-    (map thunk accounts)))
+(define (gnc:account-map-descendants thunk account)
+  (let ((descendants (or (gnc-account-get-descendants-sorted account) '())))
+    (map thunk descendants)))
 
-(define (gnc:group-map-accounts thunk group)
-  (let ((accounts (or (xaccGroupGetAccountListSorted group) '())))
-    (map thunk accounts)))
+(define (gnc:account-map-children thunk account)
+  (let ((children (or (gnc-account-get-children-sorted account) '())))
+    (map thunk children)))

Modified: gnucash/branches/gda-dev/src/engine/engine.i
===================================================================
--- gnucash/branches/gda-dev/src/engine/engine.i	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/engine.i	2007-04-07 16:05:40 UTC (rev 15847)
@@ -4,7 +4,6 @@
 #include <config.h>
 #include <glib.h>
 #include <qof.h>
-#include <Group.h>
 #include <Query.h>
 #include <gnc-budget.h>
 #include <gnc-commodity.h>
@@ -61,9 +60,6 @@
 wrapped.  So, we should contract the interface to wrap only the used
 functions. */
 
-%newobject xaccGroupGetSubAccountsSorted;
-%newobject xaccGroupGetAccountListSorted;
-
 %delobject gnc_price_list_destroy;
 %newobject gnc_pricedb_lookup_latest_any_currency;
 
@@ -89,6 +85,14 @@
 
 %include <Split.h>
 %include <engine-helpers.h>
+AccountList * gnc_account_get_children (const Account *account);
+AccountList * gnc_account_get_children_sorted (const Account *account);
+AccountList * gnc_account_get_descendants (const Account *account);
+AccountList * gnc_account_get_descendants_sorted (const Account *account);
+%ignore gnc_account_get_children;
+%ignore gnc_account_get_children_sorted;
+%ignore gnc_account_get_descendants;
+%ignore gnc_account_get_descendants_sorted;
 %include <Account.h>
 %include <Transaction.h>
 %include <gnc-pricedb.h>
@@ -96,8 +100,6 @@
 QofSession * qof_session_new (void);
 QofBook * qof_session_get_book (QofSession *session);
 
-%include <Group.h>
-
 // TODO: Maybe unroll
 void qof_book_kvp_changed (QofBook *book);
 
@@ -194,7 +196,7 @@
 void gnc_hook_run (const gchar *name, gpointer data);
 %include <gnc-hooks.h>
 
-AccountGroup * gnc_book_get_template_group(QofBook *book);
+Account * gnc_book_get_template_root(QofBook *book);
 
 // KVP stuff
 %typemap(in) KvpValue * " $1 = gnc_scm_to_kvp_value_ptr($input); "

Modified: gnucash/branches/gda-dev/src/engine/engine.scm
===================================================================
--- gnucash/branches/gda-dev/src/engine/engine.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/engine.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -42,8 +42,8 @@
 (export GNC_COMMODITY_NS_MUTUAL)
 
 (export gnc:url->loaded-session)
-(export gnc:group-map-all-accounts)
-(export gnc:group-map-accounts)
+(export gnc:account-map-descendants)
+(export gnc:account-map-children)
 
 (export gnc:split-structure)
 (export gnc:make-split-scm)

Modified: gnucash/branches/gda-dev/src/engine/gnc-associate-account.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-associate-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-associate-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,6 @@
 
 #include "config.h"
 
-#include "AccountP.h"
 #include "gnc-associate-account.h"
 #include "gnc-engine.h"
 #include "qof.h"
@@ -297,7 +296,8 @@
   kvpd_on_account_list = kvp_frame_get_slot(account_frame,
 					    expense_to_key[category]);
 
-  return de_kvp_account_list(kvpd_on_account_list, stock_account->inst.book);
+  return de_kvp_account_list(kvpd_on_account_list,
+			     gnc_account_get_book(stock_account));
 }
 
 /*********************************************************************\
@@ -329,7 +329,8 @@
   kvpd_on_account_list = kvp_frame_get_slot(income_acc_frame,
 					    income_to_key[category]);
   
-  return de_kvp_account_list(kvpd_on_account_list, stock_account->inst.book);
+  return de_kvp_account_list(kvpd_on_account_list,
+			     gnc_account_get_book(stock_account));
 }
 
 /*********************************************************************\
@@ -440,7 +441,7 @@
 
   inc_or_expense_account_guid = xaccAccountGetGUID(inc_or_expense_account);
   stock_account = xaccAccountLookup
-    (stock_account_guid, inc_or_expense_account->inst.book);
+    (stock_account_guid, gnc_account_get_book(inc_or_expense_account));
 
   stock_account_kvpframe = xaccAccountGetSlots(stock_account);
 

Modified: gnucash/branches/gda-dev/src/engine/gnc-budget.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-budget.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-budget.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,7 +32,6 @@
 #include "glib-compat.h"
 
 #include "Account.h"
-#include "Group.h"
 
 #include "gnc-budget.h"
 #include "gnc-commodity.h"
@@ -49,7 +48,7 @@
     guint  num_periods;
 };
 
-static inline void commit_err (QofInstance *inst, QofBackendError errcode)
+static void commit_err (QofInstance *inst, QofBackendError errcode)
 {
   PERR ("Failed to commit: %d", errcode);
 }
@@ -75,7 +74,7 @@
     g_free(budget);
 }
 
-static inline void noop (QofInstance *inst) {}
+static void noop (QofInstance *inst) {}
 
 void
 gnc_budget_begin_edit(GncBudget *bgt)
@@ -292,14 +291,12 @@
 static gboolean
 xaccAccountChildrenHaveSameCommodity(Account *account)
 {
-    AccountGroup *grp;
     gpointer different;
     gnc_commodity *comm;
 
     comm = xaccAccountGetCommodity(account);
-    grp = xaccAccountGetChildren(account);
-    different = xaccGroupForEachAccount(
-        grp, is_same_commodity, comm, TRUE);
+    different =
+      gnc_account_foreach_descendant_until(account, is_same_commodity, comm);
     return (different == NULL);
 }
 #endif

Modified: gnucash/branches/gda-dev/src/engine/gnc-commodity.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-commodity.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-commodity.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -84,11 +84,12 @@
   const char *old_code;
   const char *new_code;
 } gnc_new_iso_codes[] = {
-  {"RUB", "RUR"}, /* Russian Ruble */
+  {"RUR", "RUB"}, /* Russian Ruble: RUR through 1997-12, RUB from 1998-01 onwards; see bug #393185 */
   {"PLZ", "PLN"}, /* Polish Zloty */
   {"UAG", "UAH"}, /* Ukraine Hryvnia */
   {"ILS", "NIS"}, /* New Israeli Shekel */
   {"MXP", "MXN"}, /* Mexican (Nuevo) Peso */
+  {"TRL", "TRY"}, /* New Turkish Lira: changed 2005 */
 
   /* Only add currencies to this table when the old currency no longer
    * exists in the file iso-4217-currencies.scm */
@@ -245,7 +246,7 @@
 {
   gnc_quote_source *new_source;
 
-  DEBUG("Creating new source %s", source_name);
+  DEBUG("Creating new source %s", (source_name == NULL ? "(null)" : source_name));
   new_source = malloc(sizeof(gnc_quote_source));
   new_source->supported = supported;
   new_source->type = SOURCE_UNKNOWN;
@@ -476,12 +477,12 @@
   qof_begin_edit(&cm->inst);
 }
 
-static inline void commit_err (QofInstance *inst, QofBackendError errcode)
+static void commit_err (QofInstance *inst, QofBackendError errcode)
 {
   PERR ("Failed to commit: %d", errcode);
 }
 
-static inline void noop (QofInstance *inst) {}
+static void noop (QofInstance *inst) {}
 
 void
 gnc_commodity_commit_edit (gnc_commodity *cm)
@@ -1257,7 +1258,9 @@
   if (!table) return NULL;
   if (!comm) return NULL;
 
-  ENTER ("(table=%p, comm=%p) %s %s", table, comm, comm->mnemonic, comm->fullname);
+  ENTER ("(table=%p, comm=%p) %s %s", table, comm,
+         (comm->mnemonic == NULL ? "(null)" : comm->mnemonic),
+         (comm->fullname == NULL ? "(null)" : comm->fullname));
   ns_name = gnc_commodity_namespace_get_name(comm->namespace);
   c = gnc_commodity_table_lookup (table, ns_name, comm->mnemonic);
 

Modified: gnucash/branches/gda-dev/src/engine/gnc-engine.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-engine.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-engine.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,25 +28,23 @@
 #include "qof.h"
 #include "cashobjects.h"
 #include "AccountP.h"
-#include "GroupP.h"
 #include "SX-book-p.h"
 #include "gnc-budget.h"
 #include "TransactionP.h"
 #include "gnc-commodity.h"
 #include "gnc-lot-p.h"
-#include "SchedXactionP.h"
 #include "FreqSpecP.h"
 #include "gnc-pricedb-p.h"
 
 /** gnc file backend library name */
-#define GNC_LIB_NAME "gnc-backend-file"
+#define GNC_LIB_NAME "gncmod-backend-file"
 
 /* gnc-backend-file location */
 #include "gnc-path.h"
 
 static GList * engine_init_hooks = NULL;
 static int engine_is_initialized = 0;
-//static QofLogModule log_module = GNC_MOD_ENGINE;
+// static QofLogModule log_module = GNC_MOD_ENGINE;
 
 /* GnuCash version functions */
 unsigned int
@@ -80,27 +78,16 @@
     gboolean required;
   } libs[] = {
     { GNC_LIB_NAME, TRUE },
-	{ "gnc-backend-gda", TRUE },
+    { "gncmod-backend-gda", TRUE },
     /* shouldn't the PG gnc-module do this instead of US doing it? */
-    { "gnc-backend-postgres", FALSE },
+    { "gncmod-backend-postgres", FALSE },
     { NULL, FALSE } }, *lib;
   gnc_engine_init_hook_t hook;
   GList * cur;
-  gchar *tracefilename;
-  gchar *libdir;
+  gchar *pkglibdir;
 
   if (1 == engine_is_initialized) return;
 
-  /* initialize logging to our file. */
-  tracefilename = g_build_filename(g_get_tmp_dir(), "gnucash.trace",
-				   (gchar *)NULL);
-  qof_log_init_filename(tracefilename);
-  g_free(tracefilename);
-  /* Only set the core log_modules here the rest can be set locally.  */
-  qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_WARNING);
-  qof_log_set_level(GNC_MOD_IO, QOF_LOG_WARNING);
-  qof_log_set_level(GNC_MOD_GUI, QOF_LOG_WARNING);
-  qof_log_set_default(QOF_LOG_WARNING);
   /* initialize QOF */
   qof_init();
   qof_set_alt_dirty_mode(TRUE);
@@ -108,24 +95,24 @@
   /* Now register our core types */
   cashobjects_register();
 
-  libdir = gnc_path_get_libdir ();
+  pkglibdir = gnc_path_get_pkglibdir ();
   for (lib = libs; lib->lib ; lib++)
   {
-      if (qof_load_backend_library(libdir, lib->lib))
+      if (qof_load_backend_library(pkglibdir, lib->lib))
       {
           engine_is_initialized = 1;
       }
       else
       {
-	  g_message("failed to load %s from %s\n", lib->lib, libdir);
-	  /* If this is a required library, stop now! */
-	  if (lib->required)
-	  {
-	      g_message("required library %s not found.\n", lib->lib);
-	  }
+          g_warning("failed to load %s from %s\n", lib->lib, pkglibdir);
+          /* If this is a required library, stop now! */
+          if (lib->required)
+          {
+              g_critical("required library %s not found.\n", lib->lib);
+          }
       }
   }
-  g_free (libdir);
+  g_free (pkglibdir);
 
   /* call any engine hooks */
   for (cur = engine_init_hooks; cur; cur = cur->next)
@@ -174,27 +161,7 @@
 void gnc_log_default(void)
 {
 	qof_log_set_default(QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_ACCOUNT, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_SX, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_QUERY, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_SCRUB, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_LOT, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_COMMODITY, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_BACKEND, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_PRICE, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_BUSINESS, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_IO, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_BOOK, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_GUI, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_GUILE, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_LEDGER, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_REGISTER, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_HTML, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_PREFS, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_IMPORT, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_DRUID, QOF_LOG_WARNING);
-	qof_log_set_level(GNC_MOD_TEST, QOF_LOG_TRACE);
-	qof_log_set_level(GNC_MOD_BUDGET, QOF_LOG_WARNING);
+    qof_log_set_level(GNC_MOD_ROOT, QOF_LOG_WARNING);
+	qof_log_set_level(GNC_MOD_TEST, QOF_LOG_DEBUG);
 }
 

Modified: gnucash/branches/gda-dev/src/engine/gnc-engine.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-engine.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-engine.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,28 +41,30 @@
 
 /** \name QofLogModule identifiers */
 // @{
-#define GNC_MOD_ENGINE    "gnucash-engine-objects"
-#define GNC_MOD_ACCOUNT   "gnucash-account"
-#define GNC_MOD_SX        "gnucash-schedX"
-#define GNC_MOD_QUERY     "gnucash-query"
-#define GNC_MOD_SCRUB     "gnucash-scrub"
-#define GNC_MOD_LOT       "gnucash-lots"
-#define GNC_MOD_COMMODITY "gnucash-commodity"
-#define GNC_MOD_BACKEND   "gnucash-backend-general"
-#define GNC_MOD_PRICE     "gnucash-pricedb"
-#define GNC_MOD_BUSINESS  "gnucash-business"
-#define GNC_MOD_IO        "gnucash-inputoutput"
-#define GNC_MOD_BOOK      "gnucash-book-period"
-#define GNC_MOD_GUI       "gnucash-gui"
-#define GNC_MOD_GUILE     "gnucash-guile"
-#define GNC_MOD_LEDGER    "gnucash-ledger"
-#define GNC_MOD_REGISTER  "gnucash-register"
-#define GNC_MOD_HTML      "gnucash-html"
-#define GNC_MOD_PREFS     "gnucash-preferences"
-#define GNC_MOD_IMPORT    "gnucash-import-export"
-#define GNC_MOD_DRUID     "gnucash-druids"
-#define GNC_MOD_TEST      "gnucash-tests"
-#define GNC_MOD_BUDGET    "gnucash-budget"
+#define GNC_MOD_ROOT      "gnc"
+#define GNC_MOD_ENGINE    "gnc.engine"
+#define GNC_MOD_ACCOUNT   "gnc.account"
+#define GNC_MOD_SX        "gnc.engine.sx"
+#define GNC_MOD_QUERY     "gnc.query"
+#define GNC_MOD_SCRUB     "gnc.scrub"
+#define GNC_MOD_LOT       "gnc.lots"
+#define GNC_MOD_COMMODITY "gnc.commodity"
+#define GNC_MOD_BACKEND   "gnc.backend"
+#define GNC_MOD_PRICE     "gnc.pricedb"
+#define GNC_MOD_BUSINESS  "gnc.business"
+#define GNC_MOD_IO        "gnc.io"
+#define GNC_MOD_BOOK      "gnc.book-period"
+#define GNC_MOD_GUI       "gnc.gui"
+#define GNC_MOD_GUI_SX    "gnc.gui.sx"
+#define GNC_MOD_GUILE     "gnc.guile"
+#define GNC_MOD_LEDGER    "gnc.ledger"
+#define GNC_MOD_REGISTER  "gnc.register"
+#define GNC_MOD_HTML      "gnc.html"
+#define GNC_MOD_PREFS     "gnc.pref"
+#define GNC_MOD_IMPORT    "gnc.import"
+#define GNC_MOD_DRUID     "gnc.druids"
+#define GNC_MOD_TEST      "gnc.tests"
+#define GNC_MOD_BUDGET    "gnc.budget"
 //@}
 
 /** @brief IDENTIFIERS
@@ -92,14 +94,14 @@
 #define GNC_ID_COMMODITY_NAMESPACE "CommodityNamespace"
 #define GNC_ID_COMMODITY_TABLE "CommodityTable"
 #define GNC_ID_FREQSPEC       "FreqSpec"
-#define GNC_ID_GROUP          "AccountGroup"
 #define GNC_ID_LOT            "Lot"
 #define GNC_ID_PERIOD         "Period"
 #define GNC_ID_PRICE          "Price"
 #define GNC_ID_PRICEDB        "PriceDB"
 #define GNC_ID_SPLIT          "Split"
-#define GNC_ID_SCHEDXACTION   "SchedXaction"
 #define GNC_ID_BUDGET         "Budget"
+#define GNC_ID_SCHEDXACTION   "SchedXaction"
+#define GNC_ID_SXES           "SchedXactions"
 #define GNC_ID_SXTG           "SXTGroup"
 #define GNC_ID_SXTT           "SXTTrans"
 #define GNC_ID_TRANS          "Trans"
@@ -130,10 +132,6 @@
  * through the functions in Account.h .*/
 typedef struct account_s             Account;
 
-/** @brief A group of accounts in Gnucash. 
-*/
-typedef struct account_group_s       AccountGroup;
-
 /** @brief Split in Gnucash. 
  * A "split" is more commonly refered to as a "entry" in a
  * "transaction". Each split belongs to one Account and one

Modified: gnucash/branches/gda-dev/src/engine/gnc-filepath-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-filepath-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-filepath-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,11 +35,7 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <glib/gprintf.h>
-#ifdef HAVE_GLIB26
 #include <glib/gstdio.h>
-#else
-#define g_mkdir(a,b) mkdir(a,b)
-#endif
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -63,8 +59,6 @@
 static void 
 MakeHomeDir (void) 
 {
-  int rc;
-  struct stat statbuf;
   const gchar *home;
   char *path;
   char *data;
@@ -75,19 +69,15 @@
 
   path = g_build_filename(home, ".gnucash", (gchar *)NULL);
 
-  rc = stat (path, &statbuf);
-  if (rc)
+  if (!g_file_test(path, G_FILE_TEST_EXISTS))
   {
-    /* assume that the stat failed only because the dir is absent,
-     * and not because its read-protected or other error.
-     * Go ahead and make it. Don't bother much with checking mkdir 
+    /* Go ahead and make it. Don't bother much with checking mkdir 
      * for errors; seems pointless. */
     g_mkdir (path, S_IRWXU);   /* perms = S_IRWXU = 0700 */
   }
 
   data = g_build_filename (path, "data", (gchar *)NULL);
-  rc = stat (data, &statbuf);
-  if (rc)
+  if (!g_file_test(data, G_FILE_TEST_EXISTS))
     g_mkdir (data, S_IRWXU);
 
   g_free (path);
@@ -186,7 +176,6 @@
 char * 
 xaccResolveFilePath (const char * filefrag)
 {
-  struct stat statbuf;
   char pathbuf[PATH_MAX];
   pathGenerator gens[4];
   char *filefrag_dup;
@@ -230,8 +219,7 @@
       {
 	  gchar *fullpath = g_build_filename(pathbuf, filefrag, (gchar *)NULL);
 
-	  int rc = stat (fullpath, &statbuf);
-	  if ((!rc) && (S_ISREG(statbuf.st_mode)))
+	  if (g_file_test(fullpath, G_FILE_TEST_IS_REGULAR))
 	  {
 	      return fullpath;
           }
@@ -298,7 +286,7 @@
 
   if (!g_ascii_strncasecmp (pathfrag, "http://", 7)      ||
       !g_ascii_strncasecmp (pathfrag, "https://", 8)     ||
-	  !g_ascii_strncasecmp (pathfrag, "gda://", 6)		 ||
+      !g_ascii_strncasecmp (pathfrag, "gda://", 6)		 ||
       !g_ascii_strncasecmp (pathfrag, "postgres://", 11))
   {
     return g_strdup(pathfrag);
@@ -319,7 +307,7 @@
   struct stat statbuf;
   gint rc;
 
-  rc = stat (dirname, &statbuf);
+  rc = g_stat (dirname, &statbuf);
   if (rc) {
     switch (errno) {
     case ENOENT:
@@ -333,7 +321,7 @@
 		  dirname, strerror(errno), errno);
 	exit(1);
       }
-      stat (dirname, &statbuf);
+      g_stat (dirname, &statbuf);
       break;
 
     case EACCES:
@@ -389,26 +377,32 @@
 const gchar *
 gnc_dotgnucash_dir (void)
 {
-  static gchar *dotgnucash = NULL, *books_dir;
+  static gchar *dotgnucash = NULL, *tmp_dir;
   const gchar *home;
 
   if (dotgnucash)
     return dotgnucash;
 
-  home = g_get_home_dir();
-  if (!home) {
-    g_warning("Cannot find home directory. Using tmp directory instead.");
-    home = g_get_tmp_dir();
-  }
-  g_assert(home);
+  dotgnucash = g_strdup(g_getenv("GNC_DOT_DIR"));
+  if (!dotgnucash) {
+    home = g_get_home_dir();
+    if (!home) {
+      g_warning("Cannot find home directory. Using tmp directory instead.");
+      home = g_get_tmp_dir();
+    }
+    g_assert(home);
 
-  dotgnucash = g_build_filename(home, ".gnucash", (gchar *)NULL);
+    dotgnucash = g_build_filename(home, ".gnucash", (gchar *)NULL);
+  }
   gnc_validate_directory(dotgnucash);
 
   /* Since we're in code that is only executed once.... */
-  books_dir = g_build_filename(dotgnucash, "books", (gchar *)NULL);
-  gnc_validate_directory(books_dir);
-  g_free(books_dir);
+  tmp_dir = g_build_filename(dotgnucash, "books", (gchar *)NULL);
+  gnc_validate_directory(tmp_dir);
+  g_free(tmp_dir);
+  tmp_dir = g_build_filename(dotgnucash, "checks", (gchar *)NULL);
+  gnc_validate_directory(tmp_dir);
+  g_free(tmp_dir);
 
   return dotgnucash;
 }

Modified: gnucash/branches/gda-dev/src/engine/gnc-hooks.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-hooks.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-hooks.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -91,7 +91,7 @@
 
   ENTER("name %s", name);
   if (gnc_hooks_list == NULL) {
-    LEAVE("no hook lists");
+    PINFO("no hook lists");
     gnc_hooks_init();
   }
 
@@ -268,7 +268,7 @@
 {
   GncHook *hook;
 
-  ENTER("list %s, data %p", name, data);
+  ENTER("list %s, data %p", (name == NULL ? "(null)" : name), data);
   hook = gnc_hook_lookup(name);
   if (!hook) {
     LEAVE("No such hook list");

Modified: gnucash/branches/gda-dev/src/engine/gnc-lot.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-lot.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-lot.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -108,12 +108,12 @@
   qof_begin_edit(&lot->inst);
 }
 
-static inline void commit_err (QofInstance *inst, QofBackendError errcode)
+static void commit_err (QofInstance *inst, QofBackendError errcode)
 {
   PERR ("Failed to commit: %d", errcode);
 }
 
-static inline void noop (QofInstance *inst) {}
+static void noop (QofInstance *inst) {}
 
 void
 gnc_lot_commit_edit (GNCLot *lot)
@@ -368,61 +368,27 @@
 /* Utility function, get earliest split in lot */
 
 Split *
-gnc_lot_get_earliest_split (const GNCLot *lot)
+gnc_lot_get_earliest_split (GNCLot *lot)
 {
-   SplitList *node;
-   Timespec ts;
-   Split *earliest = NULL;
-
-   ts.tv_sec = ((long long) ULONG_MAX);
-   ts.tv_nsec = 0;
-   if (!lot) return NULL;
-
-   for (node=lot->splits; node; node=node->next)
-   {
-      Split *s = node->data;
-      Transaction *trans = s->parent;
-      if (!trans) continue;
-      if ((ts.tv_sec > trans->date_posted.tv_sec) ||
-          ((ts.tv_sec == trans->date_posted.tv_sec) &&
-           (ts.tv_nsec > trans->date_posted.tv_nsec)))
-          
-      {
-         ts = trans->date_posted;
-         earliest = s;
-      }
-   }
-
-   return earliest;
+  if (! lot->splits)
+    return NULL;
+  lot->splits = g_list_sort (lot->splits, (GCompareFunc) xaccSplitDateOrder);
+  return lot->splits->data;
 }
 
 Split *
-gnc_lot_get_latest_split (const GNCLot *lot)
+gnc_lot_get_latest_split (GNCLot *lot)
 {
-   SplitList *node;
-   Timespec ts;
-   Split *latest = NULL;
+  SplitList *node;
 
-   ts.tv_sec = 0;
-   ts.tv_nsec = 0;
-   if (!lot) return NULL;
+  if (! lot->splits)
+    return NULL;
+  lot->splits = g_list_sort (lot->splits, (GCompareFunc) xaccSplitDateOrder);
 
-   for (node=lot->splits; node; node=node->next)
-   {
-      Split *s = node->data;
-      Transaction *trans = s->parent;
-      if (!trans) continue;
-      if ((ts.tv_sec < trans->date_posted.tv_sec) ||
-          ((ts.tv_sec == trans->date_posted.tv_sec) &&
-           (ts.tv_nsec < trans->date_posted.tv_nsec)))
-          
-      {
-         ts = trans->date_posted;
-         latest = s;
-      }
-   }
+  for (node = lot->splits; node->next; node = node->next)
+    ;
 
-   return latest;
+  return node->data;
 }
 
 /* ============================================================= */

Modified: gnucash/branches/gda-dev/src/engine/gnc-lot.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-lot.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-lot.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -122,14 +122,14 @@
  *    loops over all of the splits in the lot, and returns the split
  *    with the earliest split->transaction->date_posted.
  */
-Split * gnc_lot_get_earliest_split (const GNCLot *lot);
+Split * gnc_lot_get_earliest_split (GNCLot *lot);
 
 /** The gnc_lot_get_latest_split() routine is a convenience routine
  *    that helps identify the date this lot was closed.   It simply
  *    loops over all of the splits in the lot, and returns the split
  *    with the latest split->transaction->date_posted.
  */
-Split * gnc_lot_get_latest_split (const GNCLot *lot);
+Split * gnc_lot_get_latest_split (GNCLot *lot);
 
 /** Get and set the account title, or the account notes. */
 const char * gnc_lot_get_title (const GNCLot *);

Modified: gnucash/branches/gda-dev/src/engine/gnc-path.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-path.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-path.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -100,8 +100,11 @@
  * @returns A newly allocated string. */
 gchar *gnc_path_get_localedir()
 {
-  //printf("Returning localedir %s\n", gbr_find_locale_dir (LOCALE_DIR));
-  return gbr_find_locale_dir (LOCALE_DIR);
+  gchar *prefix = gnc_path_get_prefix();
+  gchar *result = g_build_filename (prefix, LOCALE_DATADIRNAME, "locale", (char*)NULL);
+  g_free (prefix);
+  //printf("Returning localedir %s\n", result);
+  return result;
 }
 
 /** Returns the glade file path, usually

Modified: gnucash/branches/gda-dev/src/engine/gnc-pricedb.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gnc-pricedb.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gnc-pricedb.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -142,12 +142,12 @@
   QOF_BEGIN_EDIT (&p->inst);
 }
 
-static inline void commit_err (QofInstance *inst, QofBackendError errcode)
+static void commit_err (QofInstance *inst, QofBackendError errcode)
 {
   PERR ("Failed to commit: %d", errcode);
 }
 
-static inline void noop (QofInstance *inst) {}
+static void noop (QofInstance *inst) {}
 
 void
 gnc_price_commit_edit (GNCPrice *p)

Modified: gnucash/branches/gda-dev/src/engine/gncla-dir.h.in
===================================================================
--- gnucash/branches/gda-dev/src/engine/gncla-dir.h.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gncla-dir.h.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,10 +28,5 @@
 #define SYSCONFDIR "@-sysconfdir-@"
 
 #define LIBDIR "@-libdir-@"
-#define PKGLIBDIR "@-pkglibdir-@"
 
-#define LOCALE_DIR  "@-LOCALE_DIR-@"
-
-#define GNC_ACCOUNTS_DIR "@-GNC_ACCOUNTS_DIR-@"
-#define GNC_GLADE_DIR "@-GNC_GLADE_DIR-@"
-#define GNC_GCONF_DIR "@-GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY-@"
+#define LOCALE_DATADIRNAME "@-DATADIRNAME-@"

Modified: gnucash/branches/gda-dev/src/engine/gncmod-engine.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/gncmod-engine.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/gncmod-engine.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,41 +1,34 @@
 /*********************************************************************
  * gnc-mod-engine.c
  * module definition/initialization for the Engine module
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-engine.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_engine_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_engine_LTX_gnc_module_current  = 0;
-int libgncmod_engine_LTX_gnc_module_revision = 0;
-int libgncmod_engine_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_engine_LTX_gnc_module_path(void);
-char *libgncmod_engine_LTX_gnc_module_description(void);
-int libgncmod_engine_LTX_gnc_module_init(int refcount);
-int libgncmod_engine_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_engine_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/engine");
 }
 
-char * 
-libgncmod_engine_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("The GnuCash accounting engine");
 }
@@ -43,14 +36,14 @@
 extern SCM scm_init_sw_engine_module(void);
 
 int
-libgncmod_engine_LTX_gnc_module_init(int refcount) 
+gnc_module_init(int refcount)
 {
-  if(refcount == 0) 
+  if(refcount == 0)
   {
     /* initialize the engine on the first load */
     gnc_engine_init(0, NULL);
   }
-  
+
   scm_init_sw_engine_module();
   scm_c_eval_string("(use-modules (sw_engine))");
   scm_c_eval_string("(use-modules (gnucash engine))");
@@ -59,7 +52,6 @@
 }
 
 int
-libgncmod_engine_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }
-

Modified: gnucash/branches/gda-dev/src/engine/iso-4217-currencies.scm
===================================================================
--- gnucash/branches/gda-dev/src/engine/iso-4217-currencies.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/iso-4217-currencies.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,6 +5,11 @@
 ;;
 ;; This file is not currently used at runtime.  It's used to generate
 ;; the contents of iso-4217-currencies.c.
+;;
+;; You can find Currency Information from the following sites: 
+;;   http://www.evertype.com/standards/iso4217/iso4217-en.html
+;;   http://www.xe.com/iso4217.htm
+;;   http://www.thefinancials.com/vortex/CurrencyFormats.html
 
 ( "Afghanistan Afghani" "afghani" "pul" "ISO4217" "AFA" "004" 100 100 )
 ( "Albanian Lek" "lek" "qindarka" "ISO4217" "ALL" "008" 100 100 )
@@ -145,7 +150,7 @@
 ( "Qatari Rial" "rial" "dirham" "ISO4217" "QAR" "634" 100 100 )
 ( "Romanian Leu" "leu" "bani"  "ISO4217" "ROL" "642" 100 100 ) ;; through 2005-06
 ( "Romanian Leu" "leu" "bani"  "ISO4217" "RON" "946" 100 100 ) ;; from 2005-07
-( "Russian Rouble" "rouble" "kopek" "ISO4217" "RUR" "810" 100 100 )
+( "Russian Rouble" "rouble" "kopek" "ISO4217" "RUB" "643" 100 100 ) ;; RUR through 1997-12, RUB from 1998-01 onwards; see bug #393185
 ( "Rwanda Franc" "franc" "centime" "ISO4217" "RWF" "646" 100 100 )
 ( "Samoan Tala" "tala" "sene" "ISO4217" "WST" "882" 100 100 )
 ( "Sao Tome and Principe Dobra" "Dobra" "centimo" "ISO4217" "STD" "678" 100 100 )
@@ -178,7 +183,7 @@
 ( "Tongan Pa'anga" "Pa'anga" "seniti" "ISO4217" "TOP" "776" 100 100 )
 ( "Trinidad and Tobago Dollar" "dollar" "cent" "ISO4217" "TTD" "780" 100 100 )
 ( "Tunisian Dinar" "dinar" "milleme" "ISO4217" "TND" "788" 1000 1000 )
-( "Turkish Lira" "lira" "kuru" "ISO4217" "TRL" "792" 1 1)
+( "Turkish New Lira" "lira" "kuru" "ISO4217" "TRY" "949" 100 100)
 ( "Turkmenistan Manat" "manat" "tenga" "ISO4217" "TMM" "795" 100 100 )
 ( "US Dollar" "dollar" "cent" "ISO4217" "USD" "840" 100 100 )
 ( "Uganda Shilling" "shilling" "cent"  "ISO4217" "UGX" "800" 100 100  )

Modified: gnucash/branches/gda-dev/src/engine/kvp-scm.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/kvp-scm.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/kvp-scm.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,14 +23,18 @@
 KvpValue *
 gnc_scm_to_kvp_value_ptr(SCM val)
 {
-    if(SCM_EXACTP (val) && gnc_gh_gint64_p(val))
+    if(SCM_NUMBERP(val))
     {
-        return kvp_value_new_gint64(gnc_scm_to_gint64(val));
+        /* in guile 1.8 (exact? ) only works on numbers */
+        if(SCM_EXACTP (val) && gnc_gh_gint64_p(val))
+        {
+            return kvp_value_new_gint64(gnc_scm_to_gint64(val));
+        }
+        else 
+        {
+            return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__));
+        }
     }
-    else if(SCM_NUMBERP(val))
-    {
-        return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__));
-    }
     else if(gnc_numeric_p(val))
     {
         return kvp_value_new_gnc_numeric(gnc_scm_to_numeric(val));

Modified: gnucash/branches/gda-dev/src/engine/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -8,21 +8,20 @@
   -I${top_srcdir}/src/engine/test-core \
   ${GUILE_INCS} \
   ${QOF_CFLAGS} \
-  ${GLIB_CFLAGS} 
+  ${GLIB_CFLAGS}
 
 LDADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/test-core/libgncmod-test.la \
   ../libgncmod-engine.la \
   ../test-core/libgncmod-test-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${GLIB_LIBS} \
-  ${QOF_LIBS} \
-  -lltdl
+  ${QOF_LIBS}
 
 # these tests are ordered kind more or less in the order
 # that they should be executed, with more basic tests coming first.
-# 
+#
 TESTS = \
   test-link \
   test-load-engine \
@@ -45,23 +44,22 @@
   test-freq-spec \
   test-recurrence \
   test-scm-query \
-  test-book-merge 
+  test-book-merge
 
 GNC_TEST_DEPS := \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --library-dir    ${top_builddir}/src/core-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --library-dir    ${top_builddir}/src/backend/file \
-  --guile-load-dir ${top_srcdir}/src/engine/test
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine
 
 TESTS_ENVIRONMENT := \
   SRCDIR=${srcdir} \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-link \
   test-commodities \
   test-date \

Modified: gnucash/branches/gda-dev/src/engine/test/test-book-merge.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-book-merge.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-book-merge.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -472,5 +472,5 @@
 	test_merge();
 	print_test_results();
 	qof_close();
-	return 0;
+	return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-commodities.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-commodities.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-commodities.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -43,7 +43,7 @@
         com = gnc_commodity_new(book, NULL, NULL, NULL, NULL, 0);
 
         gnc_commodity_destroy(com);
-	qof_book_destroy (book);
+        qof_book_destroy (book);
 
         success("commodity new and destroy");
     }
@@ -184,15 +184,15 @@
 int
 main (int argc, char **argv)
 {
-    guid_init ();
-    qof_object_initialize ();
-    qof_query_init ();
+    qof_init();
+
     qof_book_register ();
     gnc_commodity_table_register();
+
     test_commodity();
+
     print_test_results();
-    qof_query_shutdown();
-    guid_shutdown();
-    qof_object_shutdown ();
+
+    qof_close();
     return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-create-account.scm
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-create-account.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-create-account.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -9,10 +9,10 @@
 
   (let* ((session (qof-session-new))
          (book (qof-session-get-book session))
-         (group (xaccMallocAccountGroup book))
+         (root (xaccMallocAccount book))
          (acct (xaccMallocAccount book)))
     (xaccAccountBeginEdit acct)
     (xaccAccountSetName acct "foo")
     (xaccAccountCommitEdit acct)
-    (xaccGroupInsertAccount group acct))
+    (gnc-account-append-child root acct))
   #t)

Modified: gnucash/branches/gda-dev/src/engine/test/test-freq-spec.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-freq-spec.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-freq-spec.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -52,7 +52,7 @@
             "once off" );
       }
    }
-   fprintf (stdout, " FreqSpec: Single test OK, continuing . . . \r");
+   fprintf(stdout, " FreqSpec: Single test OK, continuing . . . \r");
    fflush(stdout);
    xaccFreqSpecFree(fs);
 }
@@ -559,6 +559,50 @@
    xaccFreqSpecFree(fs);
 }
 
+static void
+test_monthly_31st_bug_104844()
+{
+     gchar date_buf[128];
+     GDate start, next, expected;
+     FreqSpec *fs = xaccFreqSpecMalloc(book);
+
+     g_date_clear(&next, 1);
+
+     g_date_clear(&start, 1);
+     g_date_set_dmy(&start, 31, 1, 2003);
+     xaccFreqSpecSetMonthly(fs, &start, 1);
+
+     //g_date_add_days(&start, 1);
+     xaccFreqSpecGetNextInstance(fs, &start, &next);
+     g_date_clear(&expected, 1);
+     g_date_set_dmy(&expected, 28, 2, 2003);
+     g_date_strftime(date_buf, 128, "%c", &next);
+     do_test(g_date_compare(&expected, &next) == 0, date_buf);
+
+     start = next;
+     xaccFreqSpecGetNextInstance(fs, &start, &next);
+     g_date_set_dmy(&expected, 31, 3, 2003);
+     g_date_strftime(date_buf, 128, "%c", &next);
+     do_test(g_date_compare(&expected, &next) == 0, date_buf);
+
+     // test...
+     g_date_set_dmy(&start, 31, 1, 2003);
+     xaccFreqSpecSetMonthly(fs, &start, 1);
+     g_date_set_dmy(&start, 31, 1, 2007);
+     xaccFreqSpecGetNextInstance(fs, &start, &next);
+     g_date_set_dmy(&expected, 28, 2, 2007);
+     g_date_strftime(date_buf, 128, "%c", &next);
+     do_test(g_date_compare(&expected, &next) == 0, date_buf);
+
+     start = next;
+     xaccFreqSpecGetNextInstance(fs, &start, &next);
+     g_date_set_dmy(&expected, 31, 3, 2007);
+     g_date_strftime(date_buf, 128, "%c", &next);
+     do_test(g_date_compare(&expected, &next) == 0, date_buf);
+
+     xaccFreqSpecFree(fs);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -568,6 +612,9 @@
     g_return_val_if_fail(cashobjects_register(), -1);
     session = qof_session_new ();
     book = qof_session_get_book(session);
+
+    test_monthly_31st_bug_104844();
+
     test_once();
     test_caseA();
     test_daily();
@@ -575,6 +622,7 @@
     test_monthly();
     test_month_relative();
     test_composite();
+
     print_test_results();
     qof_session_end(session);
     qof_close();

Modified: gnucash/branches/gda-dev/src/engine/test/test-group-vs-book.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-group-vs-book.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-group-vs-book.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,34 +25,30 @@
 #include <glib.h>
 #include "qof.h"
 #include "cashobjects.h"
-#include "Group.h"
-#include "GroupP.h"
+#include "Account.h"
 #include "TransLog.h"
 #include "gnc-engine.h"
 #include "test-engine-stuff.h"
 #include "test-stuff.h"
 
 static gboolean
-group_has_book (AccountGroup *group, QofBook *book)
+account_tree_has_book (Account *parent, QofBook *book)
 {
-  GList *node;
+  GList *children, *node;
 
-  if (!group)
+  if (!parent)
     return (book == NULL);
 
-  if (xaccGroupGetBook (group) != book)
+  if (gnc_account_get_book(parent) != book)
     return FALSE;
 
-  for (node = xaccGroupGetAccountList (group); node; node = node->next)
+  children = gnc_account_get_children(parent);
+  for (node = children; node; node = node->next)
   {
-    AccountGroup *children = xaccAccountGetChildren (node->data);
-
-    if (!children)
-      continue;
-
-    if (!group_has_book (children, book))
+    if (!account_tree_has_book (node->data, book))
       return FALSE;
   }
+  g_list_free(children);
 
   return TRUE;
 }
@@ -61,8 +57,8 @@
 static void
 run_test (void)
 {
-  AccountGroup *group1;
-  AccountGroup *group2;
+  Account *root1;
+  Account *root2;
   Account *account1;
   Account *account2;
   QofBook *book;
@@ -74,16 +70,16 @@
     exit(get_rv());
   }
 
-  group1 = get_random_group (book);
-  if(!group1)
+  root1 = get_random_account (book);
+  if(!root1)
   {
-    failure("group1 not created");
+    failure("root1 not created");
     exit(get_rv());
   }
 
-  if (!group_has_book (group1, book))
+  if (!account_tree_has_book (root1, book))
   {
-    failure("new group has wrong book");
+    failure("new root has wrong book");
     exit(get_rv());
   }
 
@@ -93,34 +89,34 @@
    * interface. the maintenance of the correct
    * book pointers is important for correct
    * engine operation. */
-  xaccSetAccountGroup (book, group1);
-  if (!group_has_book (group1, book))
+  gnc_book_set_root_account (book, root1);
+  if (!account_tree_has_book (root1, book))
   {
-    failure("xaccSetAccountGroup didn't take");
+    failure("gnc_book_set_root_account didn't take");
     exit(get_rv());
   }
 
-  group2 = get_random_group (book);
-  if(!group2)
+  root2 = get_random_account (book);
+  if(!root2)
   {
-    failure("group2 not created");
+    failure("root2 not created");
     exit(get_rv());
   }
 
-  xaccSetAccountGroup (book, group2);
+  gnc_book_set_root_account (book, root2);
 
 #if 0
   /* a group cannot have a 'null' book; this test is nonsense. */
-  if (!group_has_book (group1, NULL))
+  if (!account_tree_has_book (root1, NULL))
   {
-    failure("xaccSetAccountGroup didn't clear old");
+    failure("gnc_book_set_root_account didn't clear old");
     exit(get_rv());
   }
 #endif
 
-  if (!group_has_book (group2, book))
+  if (!account_tree_has_book (root2, book))
   {
-    failure("xaccSetAccountGroup didn't take");
+    failure("gnc_book_set_root_account didn't take");
     exit(get_rv());
   }
 
@@ -131,8 +127,8 @@
     exit(get_rv());
   }
 
-  xaccGroupInsertAccount (group2, account1);
-  if (group2 != xaccAccountGetParent (account1))
+  gnc_account_append_child (root2, account1);
+  if (root2 != gnc_account_get_parent (account1))
   {
     failure("group insert account didn't work");
     exit(get_rv());
@@ -145,15 +141,15 @@
     exit(get_rv());
   }
 
-  xaccAccountInsertSubAccount (account1, account2);
-  if (!group_has_book (xaccAccountGetParent (account2), book))
+  gnc_account_append_child (account1, account2);
+  if (!account_tree_has_book (gnc_account_get_parent (account2), book))
   {
     failure("account2 has wrong book");
     exit(get_rv());
   }
 
-  xaccGroupRemoveAccount (group2, account1);
-  if (xaccAccountGetParent (account1) != NULL)
+  gnc_account_remove_child (root2, account1);
+  if (gnc_account_get_parent (account1) != NULL)
   {
     failure("remove group didn't take");
     exit(get_rv());
@@ -175,5 +171,5 @@
   print_test_results();
 	}
 	qof_close();
-  return 0;
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-guid.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-guid.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-guid.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -90,5 +90,5 @@
 		print_test_results();
 	}
 	qof_close();
-  return 0;
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-load-engine.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-load-engine.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-load-engine.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -43,5 +43,5 @@
 		print_test_results();
 	}
 	qof_close();
-  return 0;
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-lots.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-lots.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-lots.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,7 +30,6 @@
 #include <glib.h>
 #include "qof.h"
 #include "Account.h"
-#include "Group.h"
 #include "Scrub3.h"
 #include "cashobjects.h"
 #include "test-stuff.h"
@@ -45,7 +44,7 @@
 {
   QofSession *sess;
   QofBook *book;
-  AccountGroup *grp;
+  Account *root;
 
   /* --------------------------------------------------------- */
   /* In the first test, we will merely try to see if we can run
@@ -56,8 +55,8 @@
 
   add_random_transactions_to_book (book, transaction_num);
 
-  grp = xaccGetAccountGroup (book);
-  xaccGroupScrubLots (grp);
+  root = gnc_book_get_root_account (book);
+  xaccAccountTreeScrubLots (root);
 
   /* --------------------------------------------------------- */
   /* In the second test, we create an account with unrealized gains,
@@ -97,5 +96,5 @@
     print_test_results();
 
     qof_close();
-    return 0;
+    return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-numeric.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-numeric.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-numeric.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -54,19 +54,21 @@
 
 /* ======================================================= */
 
+#define check_unary_op(eq,ex,a,i,e) check_unary_op_r(eq,ex,a,i,e,__LINE__)
 static void
-check_unary_op (gboolean (*eqtest) (gnc_numeric, gnc_numeric), 
-                gnc_numeric expected, 
-                gnc_numeric actual, 
-                gnc_numeric input, 
-                const char * errmsg)
+check_unary_op_r (gboolean (*eqtest) (gnc_numeric, gnc_numeric), 
+		  gnc_numeric expected, 
+		  gnc_numeric actual, 
+		  gnc_numeric input, 
+		  const char * errmsg,
+		  int line)
 {
 	char *e = gnc_numeric_print (expected);
 	char *r = gnc_numeric_print (actual);
 	char *a = gnc_numeric_print (input);
 	char *str = g_strdup_printf (errmsg, e,r, a);
 	
-	do_test (eqtest(expected, actual), str);
+	do_test_call (eqtest(expected, actual), str, __FILE__, line);
 	
 	g_free (a);
 	g_free (r);
@@ -76,12 +78,16 @@
 
 /* ======================================================= */
 
+#define check_binary_op(ex,a,ia,ib,e) check_binary_op_r(ex,a,ia,ib,e,__LINE__,gnc_numeric_eq)
+#define check_binary_op_equal(ex,a,ia,ib,e) check_binary_op_r(ex,a,ia,ib,e,__LINE__,gnc_numeric_equal)
 static void
-check_binary_op (gnc_numeric expected, 
-                 gnc_numeric actual, 
-                 gnc_numeric input_a, 
-                 gnc_numeric input_b, 
-                 const char * errmsg)
+check_binary_op_r (gnc_numeric expected, 
+		   gnc_numeric actual, 
+		   gnc_numeric input_a, 
+		   gnc_numeric input_b, 
+		   const char * errmsg,
+		   int line,
+		   gboolean (*eq)(gnc_numeric, gnc_numeric))
 {
 	char *e = gnc_numeric_print (expected);
 	char *r = gnc_numeric_print (actual);
@@ -89,7 +95,7 @@
 	char *b = gnc_numeric_print (input_b);
 	char *str = g_strdup_printf (errmsg, e,r,a,b);
 	
-	do_test (gnc_numeric_eq(expected, actual), str);
+	do_test_call ((eq)(expected, actual), str, __FILE__, line);
 	
 	g_free (a);
 	g_free (b);
@@ -215,6 +221,9 @@
 		mult = rand() / 2;
 		numer = rand() / 2;
 
+		/* avoid 0 */
+		if (deno == 0 || mult == 0) { i--; continue; }
+
 		val = gnc_numeric_create (numer, deno);
 		mval = gnc_numeric_create (numer*mult, deno*mult);
 		
@@ -626,6 +635,9 @@
 		gint64 nb = rand();
 		gint64 ne;
 
+		/* avoid 0 */
+		if (nb/4 == 0) { i--; continue; }
+
 		/* avoid overflow; */
 		na /= 2;
 		nb /= 2;
@@ -634,7 +646,7 @@
 		a = gnc_numeric_create(na, deno);
 		b = gnc_numeric_create(nb, deno);
 
-		check_binary_op (gnc_numeric_create(ne,1), 
+		check_binary_op_equal (gnc_numeric_create(ne,1), 
 			          gnc_numeric_mul(a, b, GNC_DENOM_AUTO, GNC_HOW_DENOM_EXACT),
 						 a, b, "expected %s got %s = %s * %s for mult exact");
 
@@ -651,7 +663,7 @@
 		/* Do some hokey random 128-bit division too */
 		b = gnc_numeric_create(deno, nb);
 
-		check_binary_op (gnc_numeric_create(ne,1), 
+		check_binary_op_equal (gnc_numeric_create(ne,1), 
 			          gnc_numeric_div(a, b, GNC_DENOM_AUTO, GNC_HOW_DENOM_EXACT),
 						 a, b, "expected %s got %s = %s / %s for div exact");
 
@@ -864,7 +876,7 @@
 		print_test_results();
 	}
 	qof_close();
-  return 0;
+  return get_rv();
 }
 
 /* ======================== END OF FILE ====================== */

Modified: gnucash/branches/gda-dev/src/engine/test/test-object.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-object.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-object.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -154,5 +154,5 @@
 		print_test_results();
 	}
 	qof_close();
-  return 0;
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-period.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-period.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-period.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,7 +32,6 @@
 #include <time.h>
 #include "cashobjects.h"
 #include "Account.h"
-#include "Group.h"
 #include "Period.h"
 #include "test-stuff.h"
 #include "test-engine-stuff.h"
@@ -44,9 +43,8 @@
 {
   QofSession *sess1, *sess2;
   QofBook *openbook, *closedbook;
-  AccountGroup *grp;
-  AccountList *acclist, *anode;
-  Account *acc, *equity;
+  GList *acclist, *anode;
+  Account *root, *acc, *equity;
   SplitList *splist;
   Split *sfirst, *slast;
   Transaction *tfirst, *tlast;
@@ -66,9 +64,9 @@
 
   add_random_transactions_to_book (openbook, num_trans);
 
-  grp = xaccGetAccountGroup (openbook);
+  root = gnc_book_get_root_account (openbook);
 
-  acclist = xaccGroupGetSubAccounts (grp);
+  acclist = gnc_account_get_descendants (root);
   for (anode=acclist; anode; anode=anode->next)
   {
     int ns;
@@ -77,10 +75,11 @@
     if (2 <= ns) break;
     acc = NULL;
   }
+  g_list_free(acclist);
 
   if(!acc)
   {
-    failure("group didn't have accounts with enough splits");
+    failure("book didn't have accounts with enough splits");
     exit(get_rv());
   }
 
@@ -119,8 +118,6 @@
 
   tsmiddle = tsfirst;
   tsmiddle.tv_sec = (tsfirst.tv_sec + tslast.tv_sec)/2;
-  qof_log_set_file (stdout);
-  qof_log_set_level_registered (QOF_LOG_WARNING);
   closedbook = gnc_book_close_period (openbook, tsmiddle, 
                   equity, "this is opening balance dude");
 
@@ -141,15 +138,13 @@
     else num_trans = 120;
 
     qof_init();
-    gnc_log_default();
-    qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_WARNING);
-
     g_log_set_always_fatal( G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING );
+
     if(cashobjects_register()) {
         srand(num_trans);
         run_test ();
         print_test_results();
     }
     qof_close();
-    return 0;
+    return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-query.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-query.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-query.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,6 @@
 #include <glib.h>
 #include "qof.h"
 #include "cashobjects.h"
-#include "Group.h"
 #include "Transaction.h"
 #include "TransLog.h"
 #include "gnc-engine.h"
@@ -70,16 +69,16 @@
 run_test (void)
 {
   QofSession *session;
-  AccountGroup *group;
+  Account *root;
   QofBook *book;
 
   session = get_random_session ();
   book = qof_session_get_book (session);
-  group = xaccGetAccountGroup (book);
+  root = gnc_book_get_root_account (book);
 
   add_random_transactions_to_book (book, 20);
 
-  xaccGroupForEachTransaction (group, test_trans_query, book);
+  xaccAccountTreeForEachTransaction (root, test_trans_query, book);
 
   qof_session_end (session);
 }
@@ -110,5 +109,5 @@
 
  cleanup:
   qof_close();
-  return 0;
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-querynew.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-querynew.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-querynew.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -92,13 +92,13 @@
 int
 main (int argc, char **argv)
 {
-	qof_init();
-	if(cashobjects_register()) {
-  test_query_core();
-  test_class();
-  test_querynew();
-	}
-	qof_close();
-  print_test_results();
-  return 0;
+     qof_init();
+     if(cashobjects_register()) {
+          test_query_core();
+          test_class();
+          test_querynew();
+     }
+     qof_close();
+     print_test_results();
+     return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-recurrence.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-recurrence.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-recurrence.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -387,6 +387,8 @@
 int
 main (int argc, char **argv)
 {
+    qof_init();
+
     g_log_set_always_fatal( G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING );
 
 #if 0

Modified: gnucash/branches/gda-dev/src/engine/test/test-resolve-file-path.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-resolve-file-path.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-resolve-file-path.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -55,7 +55,9 @@
 main(int argc, char **argv)
 {
     int i;
-    
+
+    qof_init();
+
     for(i = 0; strs[i].input != NULL; i++)
     {
         char *daout;

Modified: gnucash/branches/gda-dev/src/engine/test/test-split-vs-account.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-split-vs-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-split-vs-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -71,5 +71,5 @@
         print_test_results();
     }
     qof_close();
-    return 0;
+    return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-transaction-reversal.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-transaction-reversal.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-transaction-reversal.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -123,5 +123,5 @@
   print_test_results();
 	}
 	qof_close();
-  return 0;
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test/test-transaction-voiding.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test/test-transaction-voiding.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test/test-transaction-voiding.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -193,14 +193,14 @@
 int
 main (int argc, char **argv)
 {
-	qof_init();
-	if(cashobjects_register())
-	{
-  xaccLogDisable ();
-  run_test ();
-  success("transaction voiding seems OK");
-  print_test_results();
-	}
-	qof_close();
-  return 0;
+  qof_init();
+  if(cashobjects_register())
+    {
+      xaccLogDisable ();
+      run_test ();
+      success("transaction voiding seems OK");
+      print_test_results();
+    }
+  qof_close();
+  return get_rv();
 }

Modified: gnucash/branches/gda-dev/src/engine/test-core/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/engine/test-core/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test-core/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,16 +1,15 @@
-noinst_LTLIBRARIES=libgncmod-test-engine.la
+check_LTLIBRARIES=libgncmod-test-engine.la
 
 LDADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ../libgncmod-engine.la \
   ${GLIB_LIBS} \
-  ${QOF_LIBS} \
-  -lltdl
+  ${QOF_LIBS}
 
 libgncmod_test_engine_la_SOURCES = gncmod-test-engine.c test-engine-stuff.c
 libgncmod_test_engine_la_LDFLAGS = -module
 libgncmod_test_engine_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ../libgncmod-engine.la \
   ${QOF_LIBS} \
   ${GLIB_LIBS}

Modified: gnucash/branches/gda-dev/src/engine/test-core/gncmod-test-engine.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test-core/gncmod-test-engine.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test-core/gncmod-test-engine.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,47 +1,41 @@
 /*********************************************************************
  * gncmod-test-engine.c
- * module definition/initialization for the engine test infrastructure 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the engine test infrastructure
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_test_engine_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_test_engine_LTX_gnc_module_current  = 0;
-int libgncmod_test_engine_LTX_gnc_module_revision = 0;
-int libgncmod_test_engine_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_test_engine_LTX_gnc_module_path(void);
-char *libgncmod_test_engine_LTX_gnc_module_description(void);
-int libgncmod_test_engine_LTX_gnc_module_init(int refcount);
-int libgncmod_test_engine_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_test_engine_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/engine/test");
 }
 
-char * 
-libgncmod_test_engine_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("GnuCash Engine test infrastructure.");
 }
 
 int
-libgncmod_test_engine_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   return TRUE;
 }
 
 int
-libgncmod_test_engine_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.c
===================================================================
--- gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,11 +29,14 @@
 
 #include "Account.h"
 #include "AccountP.h"
-#include "Group.h"
-#include "GroupP.h"
 #include "gnc-engine.h"
+#include "gnc-session.h"
 #include "Transaction.h"
 #include "TransactionP.h"
+#include "FreqSpec.h"
+#include "Recurrence.h"
+#include "SchedXaction.h"
+#include "SX-book.h"
 
 #include "test-engine-stuff.h"
 #include "test-stuff.h"
@@ -45,8 +48,8 @@
 static gint kvp_max_depth = 5;
 static gint kvp_frame_max_elements = 10;
 
-static gint max_group_depth = 1;
-static gint max_group_accounts = 3;
+static gint max_tree_depth = 1;
+static gint max_level_accounts = 3;
 static gint max_total_accounts = 10;
 static gint max_trans_num = 1000;
 static gint total_num_accounts = 0;
@@ -69,15 +72,15 @@
 /* Set control parameters governing the run. */
 
 void
-set_max_group_depth (gint max_group_depth_in)
+set_max_account_tree_depth (gint max_tree_depth_in)
 {
-  max_group_depth = MAX (max_group_depth_in, 1);
+  max_tree_depth = MAX (max_tree_depth_in, 1);
 }
 
 void
-set_max_group_accounts (gint max_group_accounts_in)
+set_max_accounts_per_level (gint max_level_accounts_in)
 {
-  max_group_accounts = MAX (max_group_accounts_in, 1);
+  max_level_accounts = MAX (max_level_accounts_in, 1);
 }
 
 void
@@ -838,7 +841,7 @@
   {
     Account *sub = get_random_account (book);
 
-    xaccAccountInsertSubAccount (account, sub);
+    gnc_account_append_child (account, sub);
 
     total_num_accounts ++;
     if (total_num_accounts > max_total_accounts) return;
@@ -848,64 +851,40 @@
 }
 
 static void
-make_random_group_depth (QofBook *book, AccountGroup *group, int depth)
+make_random_account_tree (QofBook *book, Account *root)
 {
-  int num_accounts;
-
-  g_return_if_fail (book);
-  g_return_if_fail (group);
-
-  if (depth <= 0)
-    return;
-
-  num_accounts = get_random_int_in_range (1, max_group_accounts);
-
-  while (num_accounts-- > 0)
-  {
-    Account *account = get_random_account (book);
-
-    xaccGroupInsertAccount (group, account);
-    total_num_accounts++;
-
-    account_add_subaccounts (book, account, depth - 1);
-  }
-}
-
-static void
-make_random_group (QofBook *book, AccountGroup *group)
-{
   int depth;
 
   g_return_if_fail (book);
-  g_return_if_fail (group);
+  g_return_if_fail (root);
 
   total_num_accounts = 0;
-  depth = get_random_int_in_range (1, max_group_depth);
+  depth = get_random_int_in_range (1, max_tree_depth);
 
-  make_random_group_depth (book, group, depth);
+  account_add_subaccounts (book, root, depth);
 
   /* Make sure we have at least two accounts! */
   if (total_num_accounts <= 1)
-    make_random_group_depth (book, group, 1);
+    account_add_subaccounts (book, root, 1);
 }
 
-AccountGroup *
-get_random_group (QofBook *book)
+Account *
+get_random_account_tree (QofBook *book)
 {
-  AccountGroup * group;
+  Account * root;
 
   g_return_val_if_fail (book, NULL);
 
-  group = xaccGetAccountGroup (book);
-  if (!group)
+  root = gnc_book_get_root_account (book);
+  if (!root)
   {
-    group = xaccMallocAccountGroup (book);
-    xaccSetAccountGroup (book, group);
+    root = xaccMallocAccount (book);
+    gnc_book_set_root_account (book, root);
   }
 
-  make_random_group (book, group);
+  make_random_account_tree (book, root);
 
-  return group;
+  return root;
 }
 
 /* ================================================================= */
@@ -1073,7 +1052,7 @@
 }
 
 void
-make_random_changes_to_group (QofBook *book, AccountGroup *group)
+make_random_changes_to_level (QofBook *book, Account *parent)
 {
   Account *new_account;
   Account *account;
@@ -1082,24 +1061,24 @@
   GList *splits;
   GList *node;
 
-  g_return_if_fail (group && book);
+  g_return_if_fail (parent && book);
 
-  accounts = xaccGroupGetSubAccounts (group);
+  accounts = gnc_account_get_descendants (parent);
 
   /* Add a new account */
   new_account = get_random_account (book);
 
   if (get_random_boolean () || !accounts)
-    xaccGroupInsertAccount (group, new_account);
+    gnc_account_append_child (parent, new_account);
   else
   {
     account = get_random_list_element (accounts);
 
-    xaccAccountInsertSubAccount (account, new_account);
+    gnc_account_append_child (account, new_account);
   }
 
   g_list_free (accounts);
-  accounts = xaccGroupGetSubAccounts (group);
+  accounts = gnc_account_get_descendants (parent);
 
   /* Add some new transactions */
   add_random_transactions_to_book (book, get_random_int_in_range (1, 6));
@@ -1115,7 +1094,7 @@
 
   /* Mess with the transactions & splits */
   transes = NULL;
-  xaccGroupForEachTransaction (group, add_trans_helper, &transes);
+  xaccAccountTreeForEachTransaction (parent, add_trans_helper, &transes);
 
   for (node = transes; node; node = node->next)
   {
@@ -1161,7 +1140,7 @@
   g_list_free (splits);
   g_list_free (accounts);
 
-  accounts = xaccGroupGetSubAccounts (group);
+  accounts = gnc_account_get_descendants (parent);
 
   /* move some accounts around */
   if (accounts && (g_list_length (accounts) > 1))
@@ -1181,7 +1160,7 @@
 
       if (!a2)
       {
-        xaccGroupInsertAccount (group, a1);
+        gnc_account_append_child (parent, a1);
         continue;
       }
 
@@ -1193,7 +1172,7 @@
         continue;
       }
 
-      xaccAccountInsertSubAccount (a2, a1);
+      gnc_account_append_child (a2, a1);
     }
   }
 
@@ -1203,8 +1182,7 @@
 Account*
 get_random_account(QofBook *book)
 {
-    AccountGroup *grp;
-    Account *ret;
+    Account *root, *ret;
     int tmp_int;
 
     ret = xaccMallocAccount(book);
@@ -1224,13 +1202,13 @@
 
     xaccAccountSetSlots_nc(ret, get_random_kvp_frame());
 
-    grp = xaccGetAccountGroup (book);
-    if (!grp) 
+    root = gnc_book_get_root_account (book);
+    if (!root) 
     {
-        grp = xaccMallocAccountGroup (book);
-        xaccSetAccountGroup (book, grp);
+        root = xaccMallocAccount (book);
+        gnc_book_set_root_account (book, root);
     }
-    xaccGroupInsertAccount (grp, ret);
+    gnc_account_append_child (root, ret);
     xaccAccountCommitEdit(ret);
 
     return ret;
@@ -1430,7 +1408,7 @@
     numstr = g_new0(gchar, 10);
     if (!account_list) 
     {
-      account_list = xaccGroupGetSubAccounts (xaccGetAccountGroup (book));
+      account_list = gnc_account_get_descendants (gnc_book_get_root_account (book));
     }
 
     /* Gotta have at least two different accounts */
@@ -1878,7 +1856,7 @@
 
   book = qof_book_new ();
 
-  get_random_group (book);
+  get_random_account_tree (book);
   get_random_pricedb (book);
 
   return book;
@@ -1894,7 +1872,7 @@
 
   book = qof_session_get_book (session);
 
-  get_random_group (book);
+  get_random_account_tree (book);
   get_random_pricedb (book);
 
   return session;
@@ -1910,7 +1888,7 @@
 
   g_return_if_fail (book);
 
-  accounts = xaccGroupGetSubAccounts (xaccGetAccountGroup (book));
+  accounts = gnc_account_get_descendants (gnc_book_get_root_account (book));
   g_return_if_fail (accounts);
 
   table = gnc_commodity_table_get_table (book);
@@ -1931,7 +1909,7 @@
 {
   g_return_if_fail (book);
 
-  make_random_changes_to_group (book, xaccGetAccountGroup (book));
+  make_random_changes_to_level (book, gnc_book_get_root_account (book));
   make_random_changes_to_pricedb (book, gnc_pricedb_get_db (book));
 
 #if 0
@@ -2160,3 +2138,61 @@
 
   return q;
 }
+
+static Recurrence*
+daily_freq(GDate* start, int multiplier)
+{
+     Recurrence *r = g_new0(Recurrence, 1);
+     recurrenceSet(r, multiplier, PERIOD_DAY, start);
+     return r;
+}
+
+static Recurrence*
+once_freq(GDate *when)
+{
+     Recurrence *r = g_new0(Recurrence, 1);
+     recurrenceSet(r, 1, PERIOD_ONCE, when);
+     return r;
+}
+
+static SchedXaction*
+add_sx(gchar *name, GDate *start, GDate *end, GDate *last_occur, Recurrence *r)
+{
+     QofBook *book = qof_session_get_book(gnc_get_current_session());
+     SchedXaction *sx = xaccSchedXactionMalloc(book);
+     xaccSchedXactionSetName(sx, name);
+     xaccSchedXactionSetStartDate(sx, start);
+     if (end != NULL)
+          xaccSchedXactionSetEndDate(sx, end);
+     if (last_occur != NULL)
+          xaccSchedXactionSetLastOccurDate(sx, last_occur);
+     {
+         GList *recurrences = NULL;
+         recurrences = g_list_append(recurrences, r);
+         gnc_sx_set_schedule(sx, recurrences);
+     }
+
+     gnc_sxes_add_sx(gnc_book_get_schedxactions(book), sx);
+
+     return sx;
+}
+
+SchedXaction*
+add_daily_sx(gchar *name, GDate *start, GDate *end, GDate *last_occur)
+{
+     return add_sx(name, start, end, last_occur, daily_freq(start, 1));
+}
+
+SchedXaction*
+add_once_sx(gchar *name, GDate *when)
+{
+     return add_sx(name, when, NULL, NULL, once_freq(when));
+}
+
+void
+remove_sx(SchedXaction *sx)
+{
+     QofBook *book = qof_session_get_book(gnc_get_current_session());
+     SchedXactions *sxes = gnc_book_get_schedxactions(book);
+     gnc_sxes_del_sx(sxes, sx);
+}

Modified: gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.h
===================================================================
--- gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/engine/test-core/test-engine-stuff.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,6 +11,7 @@
 #include "qof.h"
 #include "Query.h"
 #include "gnc-pricedb.h"
+#include "SchedXaction.h"
 
 Timespec* get_random_timespec(void);
 void random_timespec_zero_nsec (gboolean zero_nsec);
@@ -35,13 +36,13 @@
 void kvp_exclude_type (KvpValueType kvp_type);
 void set_max_kvp_depth (gint max_kvp_depth);
 void set_max_kvp_frame_elements (gint max_kvp_frame_elements);
-void set_max_group_depth (gint max_group_depth);
-void set_max_group_accounts (gint max_group_accounts);
+void set_max_account_tree_depth (gint max_tree_depth);
+void set_max_accounts_per_level (gint max_accounts);
 
 GNCPrice * get_random_price(QofBook *book);
 gboolean make_random_pricedb (QofBook *book, GNCPriceDB *pdb);
 GNCPriceDB * get_random_pricedb(QofBook *book);
-AccountGroup * get_random_group(QofBook * book);
+Account * get_random_account_tree(QofBook * book);
 Account* get_random_account(QofBook * book);
 Split* get_random_split(QofBook *book, Account *account, Transaction *trn);
 Transaction* get_random_transaction(QofBook *book);
@@ -84,8 +85,12 @@
                                                     Transaction *trans,
                                                     GList *accounts);
 void make_random_changes_to_account (QofBook *book, Account *account);
-void make_random_changes_to_group (QofBook *book, AccountGroup *group);
+void make_random_changes_to_level (QofBook *book, Account *parent);
 void make_random_changes_to_book (QofBook *book);
 void make_random_changes_to_session (QofSession *session);
 
+SchedXaction* add_daily_sx(gchar *name, GDate *start, GDate *end, GDate *last_occur);
+SchedXaction* add_once_sx(gchar *name, GDate *when);
+void remove_sx(SchedXaction *sx);
+
 #endif

Modified: gnucash/branches/gda-dev/src/experimental/cgi-bin/gnc-server.c
===================================================================
--- gnucash/branches/gda-dev/src/experimental/cgi-bin/gnc-server.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/experimental/cgi-bin/gnc-server.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,7 +17,6 @@
 
 #include "gnc-book.h"
 #include "gnc-engine.h"
-#include "Group.h"
 #include "io-gncxml.h"
  
 #include <fcgi_stdio.h>
@@ -213,7 +212,7 @@
    int err, fake_argc =1;
    char * fake_argv[] = {"hello", 0};
    GNCBook *book;
-   AccountGroup *grp;
+   Account *root;
    char *request_bufp, *reply_bufp;
    int rc, sz;
    
@@ -230,8 +229,8 @@
    rc = gnc_book_load (book);
    if (!rc) goto bookerrexit;
 
-   /* the grp pointer points to our local cache of the data */
-   grp = gnc_book_get_group (book);
+   /* the root pointer points to our local cache of the data */
+   root = gnc_book_get_root_account (book);
    
    /* --------------------------------------------------- */
    /* done with initialization, go into event loop */
@@ -326,7 +325,7 @@
           * in, send them the full set of accounts.
           * (Do not send them any transactions yet).
           */
-         gncxml_write_group_to_buf(grp, &reply_bufp, &sz);
+         gncxml_write_account_tree_to_buf(root, &reply_bufp, &sz);
 
          /* send the xml to the client */
          printf ("%s", reply_bufp);
@@ -345,7 +344,7 @@
 
       /* conver the xml input into a gnucash query structure... */
       q = gncxml_read_query (request_bufp, read_len);
-      xaccQuerySetGroup (q, grp);
+      xaccQuerySetGroup (q, root);
 
       /* hack -- limit to 30 splits ... */
       xaccQuerySetMaxSplits (q, 30);

Modified: gnucash/branches/gda-dev/src/experimental/cgi-bin/hello2.c
===================================================================
--- gnucash/branches/gda-dev/src/experimental/cgi-bin/hello2.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/experimental/cgi-bin/hello2.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -12,7 +12,6 @@
 
 #include "gnc-book.h"
 #include "gnc-engine.h"
-#include "Group.h"
 #include "io-gncxml.h"
 #include "Query.h"
  
@@ -22,7 +21,7 @@
    int fake_argc =1;
    char * fake_argv[] = {"hello2", 0};
    GNCBook *book;
-   AccountGroup *grp;
+   Account *root;
    Query *q, *qq;
    GList *split_list, *sl2, *node;
    Split *s;
@@ -54,12 +53,12 @@
       goto bookerrexit;
    }
 
-   /* the grp pointer points to our local cache of the data */
-   grp = gnc_book_get_group (book);
+   /* the root pointer points to our local cache of the data */
+   root = gnc_book_get_root_account (book);
    
    /* build a query */
    q = xaccMallocQuery ();
-   xaccQuerySetGroup (q, grp);
+   xaccQuerySetGroup (q, root);
    xaccQuerySetMaxSplits (q, 30);
    
    /* Get everything between some random dates */
@@ -80,8 +79,8 @@
 		       
    gncxml_write_query_to_buf(q, &bufp, &sz);
    qq = gncxml_read_query (bufp, sz);
-xaccQuerySetMaxSplits (qq, 30);
-   xaccQuerySetGroup (qq, grp);
+   xaccQuerySetMaxSplits (qq, 30);
+   xaccQuerySetGroup (qq, root);
    sl2 = xaccQueryGetSplits (qq);
 
    /* count number of splits */

Modified: gnucash/branches/gda-dev/src/experimental/cgi-bin/hello3.c
===================================================================
--- gnucash/branches/gda-dev/src/experimental/cgi-bin/hello3.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/experimental/cgi-bin/hello3.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,7 +16,6 @@
 
 #include "gnc-book.h"
 #include "gnc-engine.h"
-#include "Group.h"
 #include "io-gncxml.h"
  
 #include <fcgi_stdio.h>
@@ -28,7 +27,7 @@
    int err, fake_argc =1;
    char * fake_argv[] = {"hello", 0};
    GNCBook *book;
-   AccountGroup *grp;
+   Account *root;
    char *bufp;
    int rc, sz;
    
@@ -44,8 +43,8 @@
    rc = gnc_book_load (book);
    if (!rc) goto bookerrexit;
 
-   /* the grp pointer points to our local cache of the data */
-   grp = gnc_book_get_group (book);
+   /* the root pointer points to our local cache of the data */
+   root = gnc_book_get_root_account (book);
    
    /* --------------------------------------------------- */
    /* done with initialization, go into event loop */
@@ -65,7 +64,7 @@
        * but not the transactions/splits. */
       if (!strcmp ("GET", request_method))
       {
-         gncxml_write_group_to_buf(grp, &bufp, &sz);
+         gncxml_write_account_tree_to_buf(root, &bufp, &sz);
 
          /* print the HTTP header */
          printf("Content-type: text/gnc-xml\r\n"
@@ -92,7 +91,7 @@
 
          /* conver the xml input into a gnucash query structure... */
          q = gncxml_read_query (bufp, read_len);
-         xaccQuerySetGroup (q, grp);
+         xaccQuerySetGroup (q, root);
 
          /* hack -- limit to 30 splits ... */
          xaccQuerySetMaxSplits (q, 30);

Modified: gnucash/branches/gda-dev/src/gnc-module/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -6,16 +6,15 @@
    -I${top_srcdir}/src/core-utils \
    ${GLIB_CFLAGS} ${GUILE_INCS}
 
-lib_LTLIBRARIES = libgncmodule.la 
+lib_LTLIBRARIES = libgnc-module.la
 
-libgncmodule_la_SOURCES = gnc-module.c swig-gnc-module.c
+libgnc_module_la_SOURCES = gnc-module.c swig-gnc-module.c
 
-libgncmodule_la_LIBADD = \
-  ../core-utils/libcore-utils.la \
+libgnc_module_la_LIBADD = \
+  ../core-utils/libgnc-core-utils.la \
   ${top_builddir}/lib/libc/libc-missing.la \
   ${GUILE_LIBS} \
-  ${GLIB_LIBS} \
-  -lltdl
+  ${GLIB_LIBS}
 
 gncmoddir = ${GNC_SHAREDIR}/guile-modules/gnucash
 gncmod_DATA = gnc-module.scm
@@ -28,7 +27,7 @@
 noinst_DATA = .scm-links
 
 if BUILDING_FROM_SVN
-swig-gnc-module.c: gnc-module.i
+swig-gnc-module.c: gnc-module.i ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -55,3 +54,5 @@
 
 CLEANFILES = .scm-links gnucash ${SCM_FILE_LINKS}
 MAINTAINERCLEANFILES = swig-gnc-module.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.module\"

Modified: gnucash/branches/gda-dev/src/gnc-module/gnc-module.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/gnc-module.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/gnc-module.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -8,22 +8,13 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <glib.h>
-#ifdef G_OS_WIN32
-# undef DLL_EXPORT /* Will cause warnings in ltdl.h if defined */
-# define LIBLTDL_DLL_IMPORT
-#endif
-#include <ltdl.h>
+#include <gmodule.h>
 #include <guile/gh.h>
 #include <sys/types.h>
 #include <dirent.h>
 
 #include "gnc-module.h"
 
-#ifndef lt_ptr
-# define lt_ptr lt_ptr_t
-#endif
-
 static GHashTable * loaded_modules = NULL;
 static GList      * module_info = NULL;
 
@@ -36,12 +27,12 @@
   int    module_revision;
 } GNCModuleInfo;
 
-typedef struct 
+typedef struct
 {
-  lt_dlhandle   handle;
+  GModule       * gmodule;
   gchar         * filename;
   int           load_count;
-  GNCModuleInfo * info;  
+  GNCModuleInfo * info;
   int           (* init_func)(int refcount);
 } GNCLoadedModule;
 
@@ -55,11 +46,11 @@
 static GList * 
 gnc_module_system_search_dirs(void) 
 {
-  char  * spath   = getenv("GNC_MODULE_PATH");
+  const char *spath = g_getenv("GNC_MODULE_PATH");
   GList * list    = NULL;
   GString * token = g_string_new(NULL);
   int   escchar   = 0;
-  char  * cpos;
+  const char *cpos;
 
   if(!spath) 
   {
@@ -136,14 +127,10 @@
 
   if(dirs)
   {
-    char *envt = getenv("LD_LIBRARY_PATH");
+    char *envt = g_strdup(g_getenv("LD_LIBRARY_PATH"));
     
-    if(envt)
+    if(!envt)
     {
-      envt = g_strdup(envt);
-    }
-    else
-    {
       envt = g_strdup("");
     }
     
@@ -156,7 +143,7 @@
     }
     g_list_free(dirs);
     
-    if (!g_setenv("LD_LIBRARY_PATH", envt, 1))
+    if (!g_setenv("LD_LIBRARY_PATH", envt, TRUE))
     {
       g_warning ("gnc-module failed to set LD_LIBRARY_PATH");
     }
@@ -166,29 +153,21 @@
 
 /*************************************************************
  * gnc_module_system_init
- * initialize the module system 
+ * initialize the module system
  *************************************************************/
 
 void
-gnc_module_system_init(void) 
+gnc_module_system_init(void)
 {
-  if(loaded_modules == NULL) 
-  {
-    loaded_modules = g_hash_table_new(g_direct_hash, g_direct_equal);
-    
-    if(lt_dlinit() == 0)
-    {
-      gnc_module_system_setup_load_path();
-      
-      /* now crawl the GNC_MODULE_PATH to find likely libraries */
-      gnc_module_system_refresh();
-    }
-    else
-    {
-      /* FIXME: there's no way to report this error to the caller. */
-      g_warning ("gnc module system couldn't initialize libltdl");
-    }
-  }
+  if (loaded_modules)
+    return;
+
+  loaded_modules = g_hash_table_new(g_direct_hash, g_direct_equal);
+
+  gnc_module_system_setup_load_path();
+
+  /* now crawl the GNC_MODULE_PATH to find likely libraries */
+  gnc_module_system_refresh();
 }
 
 
@@ -215,25 +194,27 @@
   /* look in each search directory */
   for(current = search_dirs; current; current = current->next) 
   {
-      DIR *d = opendir(current->data);
-      struct dirent * dent = NULL;
+      GDir *d = g_dir_open(current->data, 0,NULL);
+      const gchar *dent = NULL;
       char * fullpath = NULL;
-      int namelen;
       GNCModuleInfo * info;
 
       if (!d) continue;
 
-      while ((dent = readdir(d)) != NULL)
+      while ((dent = g_dir_read_name(d)) != NULL)
       {
-        namelen = strlen(dent->d_name);
-        
-        /* is the file a .la shared lib? */
-        if((namelen > 3) && (!strncmp(dent->d_name + namelen - 3, ".la", 3)))
+        /* is the file a loadable module? */
+
+        /* Gotcha: On MacOS, G_MODULE_SUFFIX is defined as "so", but if we do
+         * not build clean libtool modules with "-module", we get dynamic
+         * libraries ending on .dylib */
+        if (g_str_has_suffix(dent, "." G_MODULE_SUFFIX) ||
+            g_str_has_suffix(dent, ".dylib"))
         {
           /* get the full path name, then dlopen the library and see
            * if it has the appropriate symbols to be a gnc_module */
-          fullpath = g_build_filename((const gchar *)(current->data), 
-				      dent->d_name, (char*)NULL);
+          fullpath = g_build_filename((const gchar *)(current->data),
+                                      dent, (char*)NULL);
           info     = gnc_module_get_info(fullpath);
           
           if(info) 
@@ -243,7 +224,7 @@
           g_free(fullpath);
         }
       }
-      closedir(d);
+      g_dir_close(d);
 
   }
   /* free the search dir strings */
@@ -279,68 +260,62 @@
  *************************************************************/
 
 static GNCModuleInfo *
-gnc_module_get_info(const char * fullpath) 
+gnc_module_get_info(const char * fullpath)
 {
-  lt_dlhandle handle;
-  lt_ptr modsysver;
+  GModule *gmodule;
+  gpointer modsysver;
+  GNCModuleInfo *info = NULL;
+  gpointer initfunc, pathfunc, descripfunc, iface, revision, age;
+  gchar * (* f_path)(void);
+  gchar * (* f_descrip)(void);
 
-  //printf("(init) dlopening %s\n", fullpath);
-  handle = lt_dlopen(fullpath);
-  if (handle == NULL) {
-      g_warning ("Failed to dlopen() '%s': %s\n", fullpath, lt_dlerror());
+/*   g_debug("(init) dlopening '%s'\n", fullpath); */
+  gmodule = g_module_open(fullpath, G_MODULE_BIND_MASK);
+  if (gmodule == NULL) {
+      g_warning("Failed to dlopen() '%s': %s\n", fullpath, g_module_error());
       return NULL;
   }
 
-  modsysver   = lt_dlsym(handle, "gnc_module_system_interface");
-    
   /* the modsysver tells us what the expected symbols and their
    * types are */
-  if (!modsysver) {
-      //printf("(init) closing %s\n", fullpath);
-      //lt_dlclose(handle);
-      return NULL;
+  if (!g_module_symbol(gmodule, "gnc_module_system_interface", &modsysver)) {
+/*       g_debug("Module '%s' does not contain 'gnc_module_system_interface'\n", */
+/*                 fullpath); */
+      goto get_info_close;
   }
 
   if (*(int *)modsysver != 0) {
-      /* unsupported module system interface version */
-      /* printf("\n** WARNING ** : module '%s' requires newer module system\n",
-         fullpath); */
-      //lt_dlclose(handle);
-      return NULL;
+      g_warning("Module '%s' requires newer module system\n", fullpath);
+      goto get_info_close;
   }
 
-  {
-      lt_ptr initfunc    = lt_dlsym(handle, "gnc_module_init");
-      lt_ptr pathfunc    = lt_dlsym(handle, "gnc_module_path");
-      lt_ptr descripfunc = lt_dlsym(handle, "gnc_module_description");
-      lt_ptr interface   = lt_dlsym(handle, "gnc_module_current");
-      lt_ptr revision    = lt_dlsym(handle, "gnc_module_revision");
-      lt_ptr age         = lt_dlsym(handle, "gnc_module_age");
-      
-      if (!(initfunc && pathfunc && descripfunc && interface &&
-            revision && age)) {
-          g_warning ("module '%s' does not match module signature\n",
-                     fullpath);
-          //lt_dlclose(handle);
-          return NULL;
-      }
-
-      {
-          /* we have found a gnc_module. */
-          GNCModuleInfo * info = g_new0(GNCModuleInfo, 1);
-          char * (* f_path)(void) = pathfunc;
-          char * (* f_descrip)(void) = descripfunc;
-          info->module_path        = f_path();
-          info->module_description = f_descrip();
-          info->module_filepath    = g_strdup(fullpath);
-          info->module_interface   = *(int *)interface;
-          info->module_age         = *(int *)age;
-          info->module_revision    = *(int *)revision;
-          //printf("(init) closing %s\n", fullpath);
-          //lt_dlclose(handle);
-          return info;
-      }
+  if (!g_module_symbol(gmodule, "gnc_module_init", &initfunc) ||
+      !g_module_symbol(gmodule, "gnc_module_path", &pathfunc) ||
+      !g_module_symbol(gmodule, "gnc_module_description", &descripfunc) ||
+      !g_module_symbol(gmodule, "gnc_module_current", &iface) ||
+      !g_module_symbol(gmodule, "gnc_module_revision", &revision) ||
+      !g_module_symbol(gmodule, "gnc_module_age", &age)) {
+    g_warning("Module '%s' does not match module signature\n", fullpath);
+    goto get_info_close;
   }
+
+  /* we have found a gnc_module. */
+  info = g_new0(GNCModuleInfo, 1);
+  f_path                   = pathfunc;
+  f_descrip                = descripfunc;
+  info->module_path        = f_path();
+  info->module_description = f_descrip();
+  info->module_filepath    = g_strdup(fullpath);
+  info->module_interface   = *(int *)iface;
+  info->module_age         = *(int *)age;
+  info->module_revision    = *(int *)revision;
+
+
+get_info_close:
+/*   g_debug("(init) closing '%s'\n", fullpath); */
+  g_module_close(gmodule);
+
+  return info;
 }
 
 
@@ -350,7 +325,7 @@
  *************************************************************/
 
 static GNCModuleInfo * 
-gnc_module_locate(const gchar * module_name, int interface) 
+gnc_module_locate(const gchar * module_name, int iface) 
 {
   GNCModuleInfo * best    = NULL;
   GNCModuleInfo * current = NULL;
@@ -365,8 +340,8 @@
   {
     current = lptr->data;
     if(!strcmp(module_name, current->module_path) &&
-       (interface >= (current->module_interface - current->module_age)) &&
-       (interface <= current->module_interface)) 
+       (iface >= (current->module_interface - current->module_age)) &&
+       (iface <= current->module_interface)) 
     {
       if(best) 
       {
@@ -396,32 +371,32 @@
   *l = g_list_prepend(*l, v);
 }
 
-static GNCLoadedModule * 
-gnc_module_check_loaded(const char * module_name, gint interface) 
+static GNCLoadedModule *
+gnc_module_check_loaded(const char * module_name, gint iface)
 {
-  GNCModuleInfo * modinfo = gnc_module_locate(module_name, interface);
+  GNCModuleInfo * modinfo = gnc_module_locate(module_name, iface);
   GList * modules = NULL;
   GList * p = NULL;
   GNCLoadedModule * rv = NULL;
 
-  if(modinfo == NULL) 
+  if (modinfo == NULL)
   {
     return NULL;
   }
-  
-  if(!loaded_modules) 
+
+  if (!loaded_modules)
   {
     gnc_module_system_init();
   }
-  
+
   /* turn the loaded-modules table into a list */
   g_hash_table_foreach(loaded_modules, list_loaded, &modules);
 
   /* walk the list to see if the file we want is already open */
-  for(p=modules; p; p=p->next) 
+  for (p=modules; p; p=p->next)
   {
     GNCLoadedModule * lm = p->data;
-    if(!strcmp(lm->filename, modinfo->module_filepath)) 
+    if (!strcmp(lm->filename, modinfo->module_filepath))
     {
       rv = lm;
       break;
@@ -434,33 +409,33 @@
 
 /*************************************************************
  * gnc_module_load
- * Ensure that the module named by "module_name" is loaded. 
+ * Ensure that the module named by "module_name" is loaded.
  *************************************************************/
 
-static GNCModule 
-gnc_module_load_common(char * module_name, gint interface, gboolean optional)
+static GNCModule
+gnc_module_load_common(char * module_name, gint iface, gboolean optional)
 {
 
   GNCLoadedModule * info;
-  
-  if(!loaded_modules) 
+
+  if(!loaded_modules)
   {
     gnc_module_system_init();
   }
-  
-  info = gnc_module_check_loaded(module_name, interface);
-  
+
+  info = gnc_module_check_loaded(module_name, iface);
+
   /* if the module's already loaded, just increment its use count.
    * otherwise, load it and check for the initializer
    * "gnc_module_init".  if we find that, assume it's a gnucash module
    * and run the function. */
 
-  if(info) 
+  if (info)
   {
     /* module already loaded ... call the init thunk */
-    if(info->init_func) 
+    if (info->init_func)
     {
-      if(info->init_func(info->load_count)) 
+      if (info->init_func(info->load_count))
       {
         info->load_count++;
         return info;
@@ -476,44 +451,47 @@
       return NULL;
     }
   }
-  else 
+  else
   {
-    GNCModuleInfo * modinfo = gnc_module_locate(module_name, interface);
-    lt_dlhandle   handle = NULL;
-    
-    //if(modinfo) 
-    //printf("(load) dlopening %s\n", modinfo->module_filepath);
+    GNCModuleInfo * modinfo = gnc_module_locate(module_name, iface);
+    GModule       * gmodule;
 
-    if(modinfo && ((handle = lt_dlopen(modinfo->module_filepath)) != NULL)) 
+/*     if (modinfo) */
+/*       g_debug("(init) loading '%s' from '%s'\n", module_name, */
+/*               modinfo->module_filepath); */
+
+    if (modinfo &&
+        ((gmodule = g_module_open(modinfo->module_filepath, 0))
+         != NULL))
     {
-      lt_ptr initfunc = lt_dlsym(handle, "gnc_module_init");
-      
-      if(initfunc) 
+      gpointer initfunc;
+
+      if (g_module_symbol(gmodule, "gnc_module_init", &initfunc))
       {
-        /* stick it in the hash table */ 
+        /* stick it in the hash table */
         info = g_new0(GNCLoadedModule, 1);
-        info->handle     = handle;
+        info->gmodule    = gmodule;
         info->filename   = g_strdup(modinfo->module_filepath);
         info->load_count = 1;
         info->init_func  = initfunc;
         g_hash_table_insert(loaded_modules, info, info);
-        
+
         /* now call its init function.  this should load any dependent
          * modules, too.  If it doesn't return TRUE unload the module. */
-        if(!info->init_func(0)) 
+        if (!info->init_func(0))
         {
           /* init failed. unload the module. */
           g_warning ("Initialization failed for module %s\n", module_name);
           g_hash_table_remove(loaded_modules, info);
           g_free(info->filename);
           g_free(info);
-          //lt_dlclose(handle);
+          /* g_module_close(module); */
           return NULL;
         }
 
         return info;
       }
-      else 
+      else
       {
         g_warning ("Module %s (%s) is not a gnc-module.\n", module_name,
                    modinfo->module_filepath);
@@ -524,9 +502,9 @@
     else if (!optional)
     {
       g_warning ("Failed to open module %s", module_name);
-      if(modinfo) printf(": %s\n", lt_dlerror());
+      if(modinfo) printf(": %s\n", g_module_error());
       else g_warning (": could not locate %s interface v.%d\n",
-                      module_name, interface);
+                      module_name, iface);
       return NULL;
     }
     return NULL;
@@ -535,15 +513,15 @@
 
 
 GNCModule 
-gnc_module_load(char * module_name, gint interface) 
+gnc_module_load(char * module_name, gint iface) 
 {
-  return gnc_module_load_common(module_name, interface, FALSE);
+  return gnc_module_load_common(module_name, iface, FALSE);
 }
 
 GNCModule 
-gnc_module_load_optional(char * module_name, gint interface) 
+gnc_module_load_optional(char * module_name, gint iface) 
 {
-  return gnc_module_load_common(module_name, interface, TRUE);
+  return gnc_module_load_common(module_name, iface, TRUE);
 }
 
 /*************************************************************
@@ -551,40 +529,40 @@
  * unload a module (only actually unload it if the use count goes to 0)
  *************************************************************/
 
-int 
-gnc_module_unload(GNCModule module) 
+int
+gnc_module_unload(GNCModule module)
 {
   GNCLoadedModule * info;
- 
-  if(!loaded_modules) 
+
+  if(!loaded_modules)
   {
     gnc_module_system_init();
   }
-  
-  if((info = g_hash_table_lookup(loaded_modules, module)) != NULL) 
+
+  if ((info = g_hash_table_lookup(loaded_modules, module)) != NULL)
   {
-    lt_ptr unload_thunk = lt_dlsym(info->handle, "gnc_module_end");
-    int    unload_val = TRUE;
+    gpointer unload_thunk;
+    int unload_val = TRUE;
 
     info->load_count--;
-    if(unload_thunk) 
+    if (g_module_symbol(info->gmodule, "gnc_module_end", &unload_thunk))
     {
       int (* thunk)(int) = unload_thunk;
       unload_val = thunk(info->load_count);
     }
-    
+
     /* actually unload the module if necessary */
-    if(info->load_count == 0) 
+    if (info->load_count == 0)
     {
-      /* now close the module and free the struct */ 
-      //printf("(unload) closing %s\n", info->filename);
-      //lt_dlclose(info->handle);
+      /* now close the module and free the struct */
+      /* g_debug("(unload) closing %s\n", info->filename); */
+      /* g_module_close(info->gmodule); */
       g_hash_table_remove(loaded_modules, module);
       g_free(info);
     }
     return unload_val;
   }
-  else 
+  else
   {
     g_warning ("Failed to unload module %p (it is not loaded)\n", module);
     return 0;

Modified: gnucash/branches/gda-dev/src/gnc-module/gnc-module.h
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/gnc-module.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/gnc-module.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,8 +25,8 @@
  * module_name is not a const gchar?! It certainly should be const
  * (because of passing string literals), and from a quick glance it is
  * also only used in a const way. */
-GNCModule       gnc_module_load(gchar * module_name, gint interface);
-GNCModule       gnc_module_load_optional(gchar * module_name, gint interface);
+GNCModule       gnc_module_load(gchar * module_name, gint iface);
+GNCModule       gnc_module_load_optional(gchar * module_name, gint iface);
 int             gnc_module_unload(GNCModule mod);
 
 #endif

Modified: gnucash/branches/gda-dev/src/gnc-module/gnc-module.scm
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/gnc-module.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/gnc-module.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -7,7 +7,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define-module (gnucash gnc-module))
-(load-extension "libgncmodule" "scm_init_sw_gnc_module_module")
+(load-extension "libgnc-module" "scm_init_sw_gnc_module_module")
 (use-modules (sw_gnc_module))
 
 (define gnc:module-system-init gnc-module-system-init)

Modified: gnucash/branches/gda-dev/src/gnc-module/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 SUBDIRS = mod-foo mod-bar mod-baz misc-mods
 
-LDADD = ../libgncmodule.la ${GLIB_LIBS} -lltdl ${GUILE_LIBS}
+LDADD = ../libgnc-module.la ${GLIB_LIBS} ${GUILE_LIBS}
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
@@ -28,23 +28,27 @@
   --gnc-module-dir ${top_builddir}/src/gnc-module/test/mod-bar \
   --gnc-module-dir ${top_builddir}/src/gnc-module/test/mod-baz \
   --gnc-module-dir ${top_builddir}/src/gnc-module/test/misc-mods \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module/test/mod-foo \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module/test/mod-bar \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module/test/mod-baz \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module/test/misc-mods
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_srcdir}/src/gnc-module/test/mod-foo \
+  --guile-load-dir ${top_srcdir}/src/gnc-module/test/mod-baz \
+  --guile-load-dir ${top_srcdir}/src/gnc-module/test/mod-bar \
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/gnc-module/test/mod-foo \
+  --library-dir    ${top_builddir}/src/gnc-module/test/mod-bar \
+  --library-dir    ${top_builddir}/src/gnc-module/test/mod-baz
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-load-c \
   test-modsysver \
   test-incompatdep \
   test-agedver \
   test-dynload
 
-test_dynload_LDFLAGS = -lltdl ${GUILE_LIBS}
+test_dynload_LDFLAGS = ${GUILE_LIBS}
 
 EXTRA_DIST = \
   test-gwrapped-c \

Modified: gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -7,25 +7,22 @@
 LDADD = -L../.. -L../../.libs
 
 PWD := $(shell pwd)
-checklibdir=${PWD}
-checklib_LTLIBRARIES=libfuturemodsys.la libincompatdep.la libagedver.la
+check_LTLIBRARIES=libfuturemodsys.la libincompatdep.la libagedver.la
 
 libfuturemodsys_la_SOURCES=futuremodsys.c
+libfuturemodsys_la_LDFLAGS=-rpath ${PWD}
 libfuturemodsys_la_LIBADD = \
   $(GLIB_LIBS)
 
 libincompatdep_la_SOURCES=incompatdep.c
-libincompatdep_la_LDFLAGS=-module
+libincompatdep_la_LDFLAGS=-module -rpath ${PWD}
 libincompatdep_la_LIBADD = \
-  ../../libgncmodule.la \
+  ../../libgnc-module.la \
   $(GLIB_LIBS)
 
 libagedver_la_SOURCES=agedver.c
+libagedver_la_LDFLAGS=-rpath ${PWD}
 libagedver_la_LIBADD = \
   $(GLIB_LIBS)
 
 CLEANFILES = *.so* *.a
-
-# Keep automake from generating install targets for test libs
-install-checklibLTLIBRARIES:
-uninstall-checklibLTLIBRARIES:

Modified: gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/agedver.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/agedver.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/agedver.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,31 +1,28 @@
 /* agedver.c : testing module age? */
 
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
-int libagedver_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
-int libagedver_LTX_gnc_module_current = 12;
-int libagedver_LTX_gnc_module_age = 9;
-int libagedver_LTX_gnc_module_revision = 0;
-char* libagedver_LTX_gnc_module_path(void);
-char* libagedver_LTX_gnc_module_description(void);
-int libagedver_LTX_gnc_module_init(int refcount);
+int gnc_module_current = 12;
+int gnc_module_age = 9;
+int gnc_module_revision = 0;
+
 char *
-libagedver_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/agedver");
 }
 
 char *
-libagedver_LTX_gnc_module_description(void) {
+gnc_module_description(void) {
   return g_strdup("this is a frequently extended module");
 }
 
-int 
-libagedver_LTX_gnc_module_init(int refcount) {
+int
+gnc_module_init(int refcount) {
   return TRUE;
 }
-

Modified: gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/futuremodsys.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/futuremodsys.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/futuremodsys.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -4,33 +4,28 @@
  * version 0 so it will load all the way before failing. */
 
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module-api.h"
 
-int libfuturemodsys_LTX_gnc_module_system_interface = 123456;
+int gnc_module_system_interface = 123456;
 
-int libfuturemodsys_LTX_gnc_module_current = 0;
-int libfuturemodsys_LTX_gnc_module_age = 0;
-int libfuturemodsys_LTX_gnc_module_revision = 0;
+int gnc_module_current = 0;
+int gnc_module_age = 0;
+int gnc_module_revision = 0;
 
-char* libfuturemodsys_LTX_gnc_module_path(void);
-char* libfuturemodsys_LTX_gnc_module_description(void); 
-int libfuturemodsys_LTX_gnc_module_init(int refcount);
 
-
 char *
-libfuturemodsys_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/futuremodsys");
 }
 
 char *
-libfuturemodsys_LTX_gnc_module_description(void) {
+gnc_module_description(void) {
   return g_strdup("this is a broken future module");
 }
 
-int 
-libfuturemodsys_LTX_gnc_module_init(int refcount) {
+int
+gnc_module_init(int refcount) {
   return TRUE;
 }
-

Modified: gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/incompatdep.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/incompatdep.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/misc-mods/incompatdep.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,40 +2,36 @@
  * version of another module. the initialization should fail. */
 
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
-int libincompatdep_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
-int libincompatdep_LTX_gnc_module_current = 0;
-int libincompatdep_LTX_gnc_module_age = 0;
-int libincompatdep_LTX_gnc_module_revision = 0;
+int gnc_module_current = 0;
+int gnc_module_age = 0;
+int gnc_module_revision = 0;
 
-char *libincompatdep_LTX_gnc_module_path(void);
-char *libincompatdep_LTX_gnc_module_description(void);
-int libincompatdep_LTX_gnc_module_init(int refcount);
 
 char *
-libincompatdep_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/incompatdep");
 }
 
 char *
-libincompatdep_LTX_gnc_module_description(void) {
+gnc_module_description(void) {
   return g_strdup("this is a broken module");
 }
 
-int 
-libincompatdep_LTX_gnc_module_init(int refcount) {
-  if (gnc_module_load("gnucash/foo", 25)) 
+int
+gnc_module_init(int refcount) {
+  if (gnc_module_load("gnucash/foo", 25))
   {
     return TRUE;
   }
-  else 
+  else
   {
     return FALSE;
   }
 }
-

Modified: gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,10 +5,10 @@
   ${GLIB_CFLAGS}
 
 PWD := $(shell pwd)
-checklibdir=${PWD}
-checklib_LTLIBRARIES = libbar.la libgncmodbar.la
+check_LTLIBRARIES = libbar.la libgncmodbar.la
 
 libbar_la_SOURCES = bar.c
+libbar_la_LDFLAGS = -rpath ${PWD}
 
 # Make swig-bar.c for dist. It is an automatic dependency
 # of gnc-mod-bar.c
@@ -17,7 +17,7 @@
   swig-bar.c
 
 libgncmodbar_la_SOURCES=gnc-mod-bar.c
-
+libgncmodbar_la_LDFLAGS=-rpath ${PWD}
 libgncmodbar_la_LIBADD=libbar.la \
   $(GUILE_LIBS) \
   $(GLIB_LIBS)
@@ -33,7 +33,3 @@
 
 BUILT_SOURCES = swig-bar.c
 MAINTAINERCLEANFILES = swig-bar.c
-
-# Keep automake from generating install targets for test libs
-install-checklibLTLIBRARIES:
-uninstall-checklibLTLIBRARIES:

Modified: gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/gnc-mod-bar.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/gnc-mod-bar.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/mod-bar/gnc-mod-bar.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,43 +3,36 @@
 
 #include "config.h"
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module-api.h"
 #include "swig-bar.c"
 
-int libgncmodbar_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
-int libgncmodbar_LTX_gnc_module_current = 0;
-int libgncmodbar_LTX_gnc_module_age = 0;
-int libgncmodbar_LTX_gnc_module_revision = 0;
+int gnc_module_current = 0;
+int gnc_module_age = 0;
+int gnc_module_revision = 0;
 
-/* forward references */
-char *libgncmodbar_LTX_gnc_module_path(void);
-char *libgncmodbar_LTX_gnc_module_description(void);
-int libgncmodbar_LTX_gnc_module_init(int refcount);
-
 char *
-libgncmodbar_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/bar");
 }
 
 char *
-libgncmodbar_LTX_gnc_module_description(void) {
+gnc_module_description(void) {
   return g_strdup("this is a bar module");
 }
 
 int
-libgncmodbar_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* publish the wrapped Scheme bindings for libbar */
   scm_init_sw_bar_module();
   scm_c_eval_string("(use-modules (sw_bar))");
-  
+
   /* use the Scheme "bar" module */
   scm_c_eval_string("(use-modules (gnucash bar))");
 
   return TRUE;
 }
-
-

Modified: gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -6,10 +6,10 @@
   ${GUILE_INCS}
 
 PWD := $(shell pwd)
-checklibdir = ${PWD}
-checklib_LTLIBRARIES = libbaz.la libgncmodbaz.la
+check_LTLIBRARIES = libbaz.la libgncmodbaz.la
 
 libbaz_la_SOURCES = baz.c
+libbaz_la_LDFLAGS = -rpath ${PWD}
 libbaz_la_LIBADD = ../mod-foo/libfoo.la
 
 # Make swig-baz.c for dist. It is an automatic dependency
@@ -19,10 +19,10 @@
   swig-baz.c
 
 libgncmodbaz_la_SOURCES = gnc-mod-baz.c
-
+libgncmodbaz_la_LDFLAGS = -rpath ${PWD}
 libgncmodbaz_la_LIBADD = \
   libbaz.la \
-  ../../libgncmodule.la \
+  ../../libgnc-module.la \
   $(GUILE_LIBS) \
   $(GLIB_LIBS)
 
@@ -37,7 +37,3 @@
 
 BUILT_SOURCES = swig-baz.c
 MAINTAINERCLEANFILES = swig-baz.c
-
-# Keep automake from generating install targets for test libs
-install-checklibLTLIBRARIES:
-uninstall-checklibLTLIBRARIES:

Modified: gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/gnc-mod-baz.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/gnc-mod-baz.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/mod-baz/gnc-mod-baz.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,41 +3,37 @@
 
 #include "config.h"
 #include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 #include "swig-baz.c"
 
-int libgncmodbaz_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
-int libgncmodbaz_LTX_gnc_module_current = 0;
-int libgncmodbaz_LTX_gnc_module_age = 0;
-int libgncmodbaz_LTX_gnc_module_revision = 0;
+int gnc_module_current = 0;
+int gnc_module_age = 0;
+int gnc_module_revision = 0;
 
-/* forward references */
-char *libgncmodbaz_LTX_gnc_module_path(void);
-char *libgncmodbaz_LTX_gnc_module_description(void);
-int libgncmodbaz_LTX_gnc_module_init(int refcount);
-
-char * 
-libgncmodbaz_LTX_gnc_module_path(void) {
+char *
+gnc_module_path(void) {
   return g_strdup("gnucash/baz");
 }
 
-char * 
-libgncmodbaz_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("this is the baz module");
 }
 
 int
-libgncmodbaz_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load libfoo */
   if(gnc_module_load("gnucash/foo", 0)) {
     /* publish the wrapped Scheme bindings for libbaz */
     scm_init_sw_baz_module();
     scm_c_eval_string("(use-modules (sw_baz))");
-  
+
     /* use the Scheme "baz" module */
     scm_c_eval_string("(use-modules (gnucash baz))");
 
@@ -47,4 +43,3 @@
     return FALSE;
   }
 }
-

Modified: gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,10 +5,10 @@
   ${GLIB_CFLAGS}
 
 PWD := $(shell pwd)
-checklibdir=${PWD}
-checklib_LTLIBRARIES=libfoo.la libgncmodfoo.la
+check_LTLIBRARIES=libfoo.la libgncmodfoo.la
 
 libfoo_la_SOURCES = foo.c
+libfoo_la_LDFLAGS = -rpath ${PWD}
 
 # Make swig-foo.c for dist. It is an automatic dependency
 # of gnc-mod-foo.c
@@ -17,7 +17,7 @@
   swig-foo.c
 
 libgncmodfoo_la_SOURCES = gnc-mod-foo.c
-
+libgncmodfoo_la_LDFLAGS = -rpath ${PWD}
 libgncmodfoo_la_LIBADD = \
   libfoo.la \
   $(GUILE_LIBS) \
@@ -34,7 +34,3 @@
 
 BUILT_SOURCES = swig-foo.c
 MAINTAINERCLEANFILES = swig-foo.c
-
-# Keep automake from generating install targets for test libs
-install-checklibLTLIBRARIES:
-uninstall-checklibLTLIBRARIES:

Modified: gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/gnc-mod-foo.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/gnc-mod-foo.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/mod-foo/gnc-mod-foo.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,41 +3,37 @@
 
 #include "config.h"
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module-api.h"
 #include "swig-foo.c"
 
-int libgncmodfoo_LTX_gnc_module_system_interface = 0;
 
-int libgncmodfoo_LTX_gnc_module_current = 0;
-int libgncmodfoo_LTX_gnc_module_age = 0;
-int libgncmodfoo_LTX_gnc_module_revision = 0;
+int gnc_module_system_interface = 0;
 
-/* forward references */
-char *libgncmodfoo_LTX_gnc_module_path(void);
-char *libgncmodfoo_LTX_gnc_module_description(void);
-int libgncmodfoo_LTX_gnc_module_init(int refcount);
+int gnc_module_current = 0;
+int gnc_module_age = 0;
+int gnc_module_revision = 0;
 
 char *
-libgncmodfoo_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/foo");
 }
 
 char *
-libgncmodfoo_LTX_gnc_module_description(void) {
+gnc_module_description(void) {
   return g_strdup("this is a foo module");
 }
 
-int 
-libgncmodfoo_LTX_gnc_module_init(int refcount) {
+int
+gnc_module_init(int refcount) {
   /* publish the wrapped Scheme bindings for libfoo */
   scm_init_sw_foo_module();
   scm_c_eval_string("(use-modules (sw_foo))");
-  
+
   /* use the Scheme "foo" module */
   scm_c_eval_string("(use-modules (gnucash foo))");
-  
+
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/gnc-module/test/test-dynload.c
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/test-dynload.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/test-dynload.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,35 +1,30 @@
 /*********************************************************************
  * test-dynload.c
  * test the ability to dlopen the gnc_module library and initialize
- * it via dlsym 
+ * it via dlsym
  *********************************************************************/
 
 #include <stdio.h>
-#ifdef G_OS_WIN32
-# undef DLL_EXPORT /* Will cause warnings in ltdl.h if defined */
-# define LIBLTDL_DLL_IMPORT
-#endif
-#include <ltdl.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
 
-#ifndef lt_ptr
-# define lt_ptr lt_ptr_t
-#endif
-
 static void
 guile_main(void *closure, int argc, char ** argv)
 {
-  lt_dlhandle handle;
+  GModule *gmodule;
 
-  lt_dlinit();
+  printf("  test-dynload.c: testing dynamic linking of libgnc-module ...");
+  gmodule = g_module_open("libgnc-module", 0);
 
-  printf("  test-dynload.c: testing dynamic linking of libgncmodule ...");
-  handle = lt_dlopen("libgncmodule.la");
-  if(handle) {
-    lt_ptr ptr = lt_dlsym(handle, "gnc_module_system_init");
-    if(ptr) {
+  /* Maybe MacOS? */
+  if (!gmodule)
+    gmodule = g_module_open("libgnc-module.dylib", 0);
+
+  if (gmodule) {
+    gpointer ptr;
+    if (g_module_symbol(gmodule, "gnc_module_system_init", &ptr)) {
       void (* fn)(void) = ptr;
       fn();
       printf(" OK\n");
@@ -42,7 +37,7 @@
   }
   else {
     printf(" failed to open library.\n");
-    printf("%s\n", lt_dlerror());
+    printf("%s\n", g_module_error());
     exit(-1);
   }
 }

Modified: gnucash/branches/gda-dev/src/gnc-module/test/test-scm-dynload
===================================================================
--- gnucash/branches/gda-dev/src/gnc-module/test/test-scm-dynload	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-module/test/test-scm-dynload	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,12 +1,12 @@
 #! /bin/sh
-echo "  test-scm-dynload: testing dynamic-link of libgncmodule from Scheme.";
+echo "  test-scm-dynload: testing dynamic-link of libgnc-module from Scheme.";
 exec guile -s $0 "$@"
 !#
 
 (if (or (string=? (version) "1.3")
         (string=? (version) "1.3.4"))
-    (dynamic-link "libgncmodule.so")
-    (dynamic-link "libgncmodule"))
+    (dynamic-link "libgnc-module.so")
+    (dynamic-link "libgnc-module"))
 
 ;; LocalVariables:
 ;; mode: scheme

Modified: gnucash/branches/gda-dev/src/gnc-test-env
===================================================================
--- gnucash/branches/gda-dev/src/gnc-test-env	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-test-env	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,7 +14,10 @@
 ;; Are we on MS Windows here? If yes, make this a #t.
 ;; (utsname:sysname (uname)) wasn't available in my guile-1.6.7 on
 ;; mingw, so I don't know an automated way to do this so far.
-(define is-windows? #f)
+(define is-windows?
+  (let ((ostype (getenv "OSTYPE")))
+    (and ostype
+         (string=? ostype "msys"))))
 
 (define args (cdr (command-line)))
 (define display-exports? #t)
@@ -45,13 +48,12 @@
       (loop (cddr rest)))
      (else (usage-death))))
   (set! gnc-module-dirs (reverse gnc-module-dirs))
-  (set! guile-load-dirs (reverse guile-load-dirs))
-  (set! library-dirs (reverse library-dirs)))
+  (set! guile-load-dirs (reverse guile-load-dirs)))
 
 ;; The character set of everything except a directory separator as
 ;; necessary for string-tokenize below
 (define char-set-path
-  (char-set-adjoin 
+  (char-set-adjoin
    (char-set-delete char-set:graphic #\/)
    #\ ))
 
@@ -84,41 +86,34 @@
 
 (process-args! args)
 
-(display "GNC_MODULE_PATH=${GNC_MODULE_PATH}:")
-(display (adapt-dirsep
-	  (string-join gnc-module-dirs
-		       ":")))
+(define (get-dir-adder env-name dir-list item-suffix separator)
+  (string-append env-name "=\""
+                 (apply string-append
+                        (map
+                         (lambda (dir)
+                           (string-append dir item-suffix separator))
+                         dir-list))
+                 "${" env-name "}\" "))
 
-(display " GUILE_LOAD_PATH=\"${GUILE_LOAD_PATH}")
-(display path-sep-str)
-(display (adapt-dirsep
-	  (string-join (append gnc-module-dirs guile-load-dirs)
-		       path-sep-str)))
-(display "\"")
+(display
+ (adapt-dirsep
+  (get-dir-adder "GNC_MODULE_PATH" gnc-module-dirs "/.libs" path-sep-str)))
 
-(display " LD_LIBRARY_PATH=${LD_LIBRARY_PATH}")
-(display (adapt-dirsep
-	  (apply string-append
-		 (map
-		  (lambda (dir)
-		    (string-append ":" dir ":" dir "/.libs"))
-		  (append gnc-module-dirs library-dirs)))))
+(display
+ (adapt-dirsep
+  (get-dir-adder "GUILE_LOAD_PATH" guile-load-dirs "" path-sep-str)))
 
-(display " LTDL_LIBRARY_PATH=${LTDL_LIBRARY_PATH}")
-(display (apply string-append
-                (map
-                 (lambda (dir)
-                   (string-append ":" dir ":" dir "/.libs"))
-                 (append gnc-module-dirs library-dirs))))
+(display
+ (adapt-dirsep
+  (get-dir-adder "LD_LIBRARY_PATH" library-dirs "/.libs" path-sep-str)))
 
+(display
+ (adapt-dirsep
+  (get-dir-adder "DYLD_LIBRARY_PATH" library-dirs "/.libs" path-sep-str)))
+
 (if is-windows?
-    (begin
-      (display " PATH=${PATH}")
-      (display (apply string-append
-		      (map
-		       (lambda (dir)
-			 (string-append ":" dir ":" dir "/.libs"))
-		       (append gnc-module-dirs library-dirs))))))
+    (display
+     (get-dir-adder "PATH" library-dirs "/.libs" ":")))
 
 (if display-exports?
     (begin
@@ -126,7 +121,9 @@
       (display " export GNC_MODULE_PATH;")
       (display " export GUILE_LOAD_PATH;")
       (display " export LD_LIBRARY_PATH;")
-      (display " export LTDL_LIBRARY_PATH;")))
+      (display " export DYLD_LIBRARY_PATH;")
+      (if is-windows?
+          (display " export PATH;"))))
 
 ;; Local Variables:
 ;; mode: scheme

Modified: gnucash/branches/gda-dev/src/gnc-ui.h
===================================================================
--- gnucash/branches/gda-dev/src/gnc-ui.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnc-ui.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,8 +39,13 @@
 
 
 /** Help Files ******************************************************/
-#define HF_GUIDE             "gnucash-guide.xml"
-#define HF_HELP              "gnucash-help.xml"
+#ifdef G_OS_WIN32
+#    define HF_GUIDE         "gnucash-guide.chm"
+#    define HF_HELP          "gnucash-help.chm"
+#else
+#    define HF_GUIDE         "gnucash-guide.xml"
+#    define HF_HELP          "gnucash-help.xml"
+#endif
 
 /** Links in the Help Files *****************************************/
 #define HL_USAGE             "usage"

Modified: gnucash/branches/gda-dev/src/gnome/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnome/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,8 +1,8 @@
 SUBDIRS = glade schemas ui
 
-lib_LTLIBRARIES = libgncgnome.la
+lib_LTLIBRARIES = libgnc-gnome.la
 
-libgncgnome_la_LIBADD = \
+libgnc_gnome_la_LIBADD = \
   ${top_builddir}/src/register/ledger-core/libgncmod-ledger-core.la \
   ${top_builddir}/src/register/register-gnome/libgncmod-register-gnome.la \
   ${top_builddir}/src/register/register-core/libgncmod-register-core.la \
@@ -14,11 +14,11 @@
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/calculation/libgncmod-calculation.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${GLADE_LIBS} \
   ${GUILE_LIBS} ${GNOME_LIBS} ${GLIB_LIBS} ${QOF_LIBS}
 
-libgncgnome_la_SOURCES = \
+libgnc_gnome_la_SOURCES = \
   swig-gnome.c \
   dialog-chart-export.c  \
   dialog-commodities.c \
@@ -29,11 +29,11 @@
   dialog-price-edit-db.c \
   dialog-print-check.c \
   dialog-progress.c \
+  dialog-sx-editor.c \
   dialog-sx-from-trans.c \
-  dialog-sxsincelast.c \
+  dialog-sx-since-last-run.c \
   dialog-tax-info.c \
   dialog-userpass.c \
-  dialog-scheduledxaction.c \
   druid-acct-period.c \
   druid-hierarchy.c \
   druid-merge.c \
@@ -45,6 +45,7 @@
   gnc-plugin-register.c \
   gnc-plugin-page-account-tree.c \
   gnc-plugin-page-budget.c \
+  gnc-plugin-page-sx-list.c \
   gnc-plugin-page-register.c \
   gnc-split-reg.c \
   lot-viewer.c \
@@ -67,9 +68,9 @@
   dialog-new-user.h \
   dialog-print-check.h \
   dialog-progress.h \
+  dialog-sx-editor.h \
   dialog-sx-from-trans.h \
-  dialog-sxsincelast.h \
-  dialog-scheduledxaction.h \
+  dialog-sx-since-last-run.h \
   druid-acct-period.h \
   druid-hierarchy.h \
   druid-merge.h \
@@ -81,6 +82,7 @@
   gnc-plugin-register.h \
   gnc-plugin-page-account-tree.h \
   gnc-plugin-page-budget.h \
+  gnc-plugin-page-sx-list.h \
   gnc-plugin-page-register.h \
   gnc-split-reg.h \
   lot-viewer.h \
@@ -89,7 +91,7 @@
   window-reconcile.h
 
 if BUILDING_FROM_SVN
-swig-gnome.c: gnome.i dialog-progress.h
+swig-gnome.c: gnome.i dialog-progress.h ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -100,10 +102,10 @@
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/core-utils \
   -I${top_srcdir}/src/calculation \
   -I${top_srcdir}/src/engine \
-  -I${top_srcdir}/src/network-utils \
   -I${top_srcdir}/src/app-utils \
   -I${top_srcdir}/src/backend/file \
   -I${top_srcdir}/src/gnome-utils \
@@ -116,7 +118,6 @@
   -I${top_srcdir}/lib/libc \
   ${GUILE_INCS} \
   ${GNOME_CFLAGS} \
-  ${GNOME_PRINT_CFLAGS} \
   ${GDK_PIXBUF_CFLAGS} \
   ${GTKHTML_CFLAGS} \
   ${GLADE_CFLAGS} \
@@ -130,3 +131,5 @@
 
 CLEANFILES = gnucash.desktop
 MAINTAINERCLEANFILES = swig-gnome.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.gui\"

Modified: gnucash/branches/gda-dev/src/gnome/dialog-chart-export.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-chart-export.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-chart-export.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -229,7 +229,6 @@
 	data->chart_time_t = mktime(chart_tm);
 	current_session = gnc_get_current_session();
 	book = qof_session_get_book(current_session);
-	filename = g_strdup("/tmp/qsf-chartofaccounts.xml");
 	chart_session = qof_session_new();
 	filename = gnc_file_dialog(_("Export Chart of Accounts to QSF XML"),
 				   NULL, NULL, GNC_FILE_DIALOG_EXPORT);

Modified: gnucash/branches/gda-dev/src/gnome/dialog-commodities.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-commodities.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-commodities.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -113,7 +113,7 @@
   if (commodity == NULL)
     return;
 
-  accounts = xaccGroupGetSubAccounts (xaccGetAccountGroup(cd->book));
+  accounts = gnc_account_get_descendants (gnc_book_get_root_account(cd->book));
   can_delete = TRUE;
   do_delete = FALSE;
 

Modified: gnucash/branches/gda-dev/src/gnome/dialog-find-transactions.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-find-transactions.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-find-transactions.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -141,8 +141,8 @@
 
     /* In lieu of not "mis-using" some portion of the infrastructure by writing
      * a bunch of new code, we just filter out the accounts of the template
-     * transactions.  While these are in a seperate AccountGroup just for this
-     * reason, the query engine makes no distinction between AccountGroups.
+     * transactions.  While these are in a seperate Account trees just for this
+     * reason, the query engine makes no distinction between Account trees.
      * See Gnome Bug 86302.
      * 	-- jsled 
      *
@@ -152,15 +152,15 @@
      * key in the KVP frame of the split.
      */
     {
-      AccountGroup *tAG;
-      AccountList *al;
+      Account *tRoot;
+      GList *al;
     
-      tAG = gnc_book_get_template_group( gnc_get_current_book() );
-      al = xaccGroupGetSubAccounts( tAG );
+      tRoot = gnc_book_get_template_root( gnc_get_current_book() );
+      al = gnc_account_get_descendants( tRoot );
       xaccQueryAddAccountMatch( start_q, al, GUID_MATCH_NONE, QUERY_AND );
       g_list_free (al);
       al = NULL;
-      tAG = NULL;
+      tRoot = NULL;
     }
 
     ftd->q = start_q;		/* save this to destroy it later */

Modified: gnucash/branches/gda-dev/src/gnome/dialog-new-user.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-new-user.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-new-user.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,6 +35,7 @@
 #include "gnc-ui.h"
 #include "gnc-main-window.h"
 #include "gnc-plugin-page-account-tree.h"
+#include "gnc-session.h"
 
 #define GCONF_SECTION "dialogs/new_user"
 #define FIRST_STARTUP "first_startup"
@@ -99,6 +100,7 @@
   result = gtk_dialog_run (GTK_DIALOG (dialog));
   switch (result) {
 	  case GTK_RESPONSE_CANCEL:
+	  case GTK_RESPONSE_DELETE_EVENT:
 		gnc_ui_new_user_cancel_dialog ();
 		break;
 	  case GTK_RESPONSE_OK:
@@ -148,5 +150,5 @@
 void
 gncp_new_user_finish (void)
 {
-  gnc_hook_run(HOOK_BOOK_OPENED, NULL);
+  gnc_hook_run(HOOK_BOOK_OPENED, gnc_get_current_session());
 }

Modified: gnucash/branches/gda-dev/src/gnome/dialog-print-check.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-print-check.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-print-check.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 /********************************************************************\
  * dialog-print-check.c : dialog to control check printing.         *
  * Copyright (C) 2000 Bill Gribble <grib at billgribble.com>           *
- * Copyright (C) 2006 David Hampton <hampton at employees.org>         *
+ * Copyright (C) 2006,2007 David Hampton <hampton at employees.org>    *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
  * modify it under the terms of the GNU General Public License as   *
@@ -27,7 +27,12 @@
 #include <glib/gi18n.h>
 #include <stdio.h>
 #include <libguile.h>
+#include <locale.h>
+#include <math.h>
 
+#include "glib-compat.h"
+
+#include "qof.h"
 #include "gnc-date.h"
 #include "gnc-gconf-utils.h"
 #include "gnc-numeric.h"
@@ -37,12 +42,20 @@
 #include "print-session.h"
 #include "gnc-ui.h"
 #include "gnc-date-format.h"
+#include "gnc-ui-util.h"
+#include "gnc-path.h"
+#include "gnc-filepath-utils.h"
+#include "gnc-gkeyfile-utils.h"
+#include "Split.h"
+#include "Transaction.h"
 
-#define CHECK_PRINT_NUM_FORMATS 4
-#define CHECK_PRINT_NUM_POSITIONS 4
-#define CHECK_PRINT_NUM_UNITS 4
+#define USE_GTKPRINT HAVE_GTK_2_10
 
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.printing.checks"
+
 #define GCONF_SECTION 	       "dialogs/print_checks"
+#define KEY_CHECK_FORMAT_GUID  "check_format_guid"
 #define KEY_CHECK_FORMAT       "check_format"
 #define KEY_CHECK_POSITION     "check_position"
 #define KEY_DATE_FORMAT_USER   "date_format_custom"
@@ -50,36 +63,185 @@
 #define KEY_CUSTOM_DATE        "custom_date"
 #define KEY_CUSTOM_WORDS       "custom_amount_words"
 #define KEY_CUSTOM_NUMBER      "custom_amount_number"
-#define KEY_CUSTOM_MEMO        "custom_memo"
+#define KEY_CUSTOM_NOTES       "custom_memo" /* historically misnamed */
 #define KEY_CUSTOM_TRANSLATION "custom_translation"
 #define KEY_CUSTOM_ROTATION    "custom_rotation"
 #define KEY_CUSTOM_UNITS       "custom_units"
+#define KEY_PRINT_DATE_FMT     "print_date_format"
+#define KEY_DEFAULT_FONT       "default_font"
+#define KEY_BLOCKING_CHARS     "blocking_chars"
 
+
+#define DEFAULT_FONT            "sans 12"
+#define CHECK_FMT_DIR           "checks"
+#define CUSTOM_CHECK_NAME       "custom.chk"
+#define CHECK_NAME_FILTER       "*.chk"
+#define DEGREES_TO_RADIANS      (G_PI / 180.0)
+
+#define KF_GROUP_TOP       "Top"
+#define KF_GROUP_POS       "Check Positions"
+#define KF_GROUP_ITEMS     "Check Items"
+#define KF_KEY_GUID        "Guid"
+#define KF_KEY_TITLE       "Title"
+#define KF_KEY_ROTATION    "Rotation"
+#define KF_KEY_TRANSLATION "Translation"
+#define KF_KEY_FONT        "Font"
+#define KF_KEY_ALIGN       "Align"
+#define KF_KEY_SHOW_GRID   "Show_Grid"
+#define KF_KEY_SHOW_BOXES  "Show_Boxes"
+#define KF_KEY_NAMES       "Names"
+#define KF_KEY_HEIGHT      "Height"
+#define KF_KEY_TYPE        "Type"
+#define KF_KEY_COORDS      "Coords"
+#define KF_KEY_TEXT        "Text"
+#define KF_KEY_FILENAME    "Filename"
+
+/**< This enum specifies the columns used in the check format combobox. */
+typedef enum format_combo_col_t {
+    COL_NAME = 0,               /**< This column holds a copy of the check
+                                 *   format name and is what is displayed to
+                                 *   the user in the combobox. It is NULL for
+                                 *   separator lines. */
+    COL_DATA,                   /**< This column holds a pointer to the check
+                                 *   format data read in from a file.  It is
+                                 *   NULL for the custom check format and for
+                                 *   separator lines. */
+    COL_SEP,                    /**< This column contains the value TRUE if
+                                 *   this enry specifies a separator line. */
+} format_combo_col;
+
+#if USE_GTKPRINT
+#    define GncPrintContext GtkPrintContext
+static GtkPrintSettings *print_settings = NULL;
+G_LOCK_DEFINE_STATIC(print_settings);
+#else
+#    define GncPrintContext GnomePrintContext
+#    define GNOMEPRINT_CLIP_EXTRA 2
+#endif
+
+
 /* Used by glade_xml_signal_autoconnect_full */
 void gnc_ui_print_check_response_cb(GtkDialog * dialog, gint response, PrintCheckDialog * pcd);
-void gnc_print_check_combobox_changed(GtkComboBox *widget, PrintCheckDialog * pcd);
-static void gnc_ui_print_save_dialog(PrintCheckDialog * pcd);
-static void gnc_ui_print_restore_dialog(PrintCheckDialog * pcd);
-void gnc_ui_print_restore_dialog(PrintCheckDialog * pcd);
+void gnc_print_check_format_changed(GtkComboBox *widget, PrintCheckDialog * pcd);
+void gnc_print_check_position_changed(GtkComboBox *widget, PrintCheckDialog * pcd);
+void gnc_print_check_save_button_clicked(GtkButton *button, PrintCheckDialog *pcd);
 
+
+/** This enum defines the types of items that gnucash knows how to
+ *  print on checks.  Most refer to specific fields from a gnucash
+ *  transaction and split, but some are generic items unrelated to
+ *  gnucash. */
+#define ENUM_CHECK_ITEM_TYPE(_) \
+        _(NONE,) \
+        _(PAYEE,) \
+        _(DATE,) \
+        _(NOTES,) \
+        _(CHECK_NUMBER,) \
+                  \
+        _(MEMO,) \
+        _(ACTION,) \
+        _(AMOUNT_NUMBER,) \
+        _(AMOUNT_WORDS,) \
+                         \
+        _(TEXT,) \
+        _(PICTURE,)
+
+DEFINE_ENUM(CheckItemType, ENUM_CHECK_ITEM_TYPE)
+FROM_STRING_DEC(CheckItemType, ENUM_CHECK_ITEM_TYPE)
+FROM_STRING_FUNC(CheckItemType, ENUM_CHECK_ITEM_TYPE)
+AS_STRING_DEC(CheckItemType, ENUM_CHECK_ITEM_TYPE)
+AS_STRING_FUNC(CheckItemType, ENUM_CHECK_ITEM_TYPE)
+
+/** This data structure describes a single item printed on a check.
+ *  It is build from a description in a text file. */
+typedef struct _check_item {
+
+    CheckItemType type;         /**< What type of item is this?  */
+
+    gdouble x, y;               /**< The x/y coordinates where this item
+                                 *   should be printed.  The origin for this
+                                 *   coordinate is determined by the print
+                                 *   system used.  */
+
+    gdouble w, h;               /**< Optional. The width and height of this
+                                 *   item.  Text will be clipped to this
+                                 *   size. Pictures will be shrunk if
+                                 *   necessary to fit.  */
+
+    gchar *filename;            /**< The filename for picture items. Otherwise
+                                 *   unused. */
+
+    gchar *text;                /**< The text to be displayed (for text based
+                                 *   items.) Otherwise unused.  */
+
+    gchar *font;                /**< The font to use for text based item. This
+                                 *   overrides any font in the check format.
+                                 *   Unused for non-text items. */
+
+    PangoAlignment align;       /**< The alignment of a text based item. Only
+                                 *   used for text based items when a width is
+                                 *   specified.  */
+} check_item_t;
+
+/** This data structure describes an entire page of checks.  Depending
+ *  upon the check format, the page may contain multiple checks or
+ *  only a single check.  The data structure is build from a
+ *  description in a text file. */
+typedef struct _check_format {
+
+    gchar *guid;                /**< Unique identifier for this format. */
+
+    const gchar *group;         /**< The group where this format was found. */
+
+    gchar *filename;            /**< The name of the file from which this data
+                                 *   was read.  */
+
+    gchar *title;               /**< Title of this check format. Displayed to
+                                 *   user in the dialog box. */
+
+    gboolean show_grid;         /**< Print a grid pattern on the page */
+
+    gboolean show_boxes;        /**< Print boxes when width and height are
+                                 *   known. */
+
+    gdouble rotation;           /**< Rotate entire page by this amount  */
+
+    gdouble trans_x;            /**< Move entire page by this X amount  */
+
+    gdouble trans_y;            /**< Move entire page by this Y amount  */
+
+    gchar *font;                /**< Default font for this page of checks */
+
+    gdouble height;             /**< Height of one check on a page */
+
+    GSList *positions;          /**< Names of the checks on the page. */
+
+    GSList *items;              /**< List of items printed on each check  */
+} check_format_t;
+
+/** This data structure is used to manage the print check dialog, and
+ *  the overall check printing process.  It contains pointers to many
+ *  of the widgets in the dialog, pointers to the check descriptions
+ *  that have been read, and also contains the data from the gnucash
+ *  transaction/split that is to be printed.  */
 struct _print_check_dialog {
   GladeXML * xml;
   GtkWidget * dialog;
+  GtkWindow * caller_window;
 
   GncPluginPageRegister *plugin_page;
-  const char    *payee;
-  gnc_numeric    amount;
-  time_t         date;
-  const char    *memo;
+  Split *split;
 
   GtkWidget * format_combobox;
+  gint format_max;
   GtkWidget * position_combobox;
+  gint position_max;
   GtkWidget * custom_table;
   GtkSpinButton * payee_x,  * payee_y;
   GtkSpinButton * date_x,   * date_y;
   GtkSpinButton * words_x,  * words_y;
   GtkSpinButton * number_x, * number_y;
-  GtkSpinButton * memo_x,   * memo_y;
+  GtkSpinButton * notes_x,   * notes_y;
   GtkSpinButton * translation_x, * translation_y;
   GtkSpinButton * check_rotation;
   GtkWidget * translation_label;
@@ -88,11 +250,46 @@
 
   GtkWidget * date_format;
 
-  gchar *format_string;
+  gchar *default_font;
 
+  check_format_t *selected_format;
 };
 
 
+/**< This function walks ths list of available check formats looking for a
+ * specific format as specified by guid number.  If found, a pointer to the
+ * check format is returned to the caller.  Additionally, if the caller passed
+ * a pointer to a GtkTreeIter, then the iter for that entry will also be
+ * returned. */
+static check_format_t *
+find_existing_format (GtkListStore *store, gchar *guid, GtkTreeIter *iter_out)
+{
+    GtkTreeIter iter;
+    check_format_t *format;
+
+    g_return_val_if_fail(store, NULL);
+    g_return_val_if_fail(guid, NULL);
+
+    if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter))
+        return NULL;
+
+    do {
+        gtk_tree_model_get(GTK_TREE_MODEL(store), &iter,
+                           COL_DATA, &format, -1);
+        if (format == NULL)
+            continue;
+        if (strcmp(format->guid, guid) != 0)
+            continue;
+
+        if (iter_out)
+          *iter_out = iter;
+        return format;
+    } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter));
+
+    return NULL;
+}
+
+
 static void
 save_float_pair (const char *section, const char *key, double a, double b)
 {
@@ -124,12 +321,20 @@
 static void
 gnc_ui_print_save_dialog(PrintCheckDialog * pcd)
 {
+  GtkTreeModel *model;
+  GtkTreeIter iter;
+  check_format_t *check;
   const gchar *format;
   gint active;
 
   /* Options page */
-  active = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->format_combobox));
-  gnc_gconf_set_int(GCONF_SECTION, KEY_CHECK_FORMAT, active, NULL);
+  if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(pcd->format_combobox),
+                                    &iter)) {
+      model = gtk_combo_box_get_model(GTK_COMBO_BOX(pcd->format_combobox));
+      gtk_tree_model_get(model, &iter, COL_DATA, &check, -1);
+      gnc_gconf_set_string(GCONF_SECTION, KEY_CHECK_FORMAT_GUID,
+                           check ? check->guid : "custom", NULL);
+  }
   active = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
   gnc_gconf_set_int(GCONF_SECTION, KEY_CHECK_POSITION, active, NULL);
   active = gnc_date_format_get_format (GNC_DATE_FORMAT(pcd->date_format));
@@ -154,9 +359,9 @@
   save_float_pair(GCONF_SECTION, KEY_CUSTOM_NUMBER,
 		  gtk_spin_button_get_value(pcd->number_x),
 		  gtk_spin_button_get_value(pcd->number_y));
-  save_float_pair(GCONF_SECTION, KEY_CUSTOM_MEMO,
-		  gtk_spin_button_get_value(pcd->memo_x),
-		  gtk_spin_button_get_value(pcd->memo_y));
+  save_float_pair(GCONF_SECTION, KEY_CUSTOM_NOTES,
+		  gtk_spin_button_get_value(pcd->notes_x),
+		  gtk_spin_button_get_value(pcd->notes_y));
   save_float_pair(GCONF_SECTION, KEY_CUSTOM_TRANSLATION,
 		  gtk_spin_button_get_value(pcd->translation_x),
 		  gtk_spin_button_get_value(pcd->translation_y));
@@ -167,16 +372,31 @@
   gnc_gconf_set_int(GCONF_SECTION, KEY_CUSTOM_UNITS, active, NULL);
 }
 
-void
+static void
 gnc_ui_print_restore_dialog(PrintCheckDialog * pcd)
 {
-  gchar *format;
+  GtkTreeModel *model;
+  GtkTreeIter iter;
+  gchar *format, *guid;
   gdouble x, y;
   gint active;
 
   /* Options page */
-  active = gnc_gconf_get_int(GCONF_SECTION, KEY_CHECK_FORMAT, NULL);
-  gtk_combo_box_set_active(GTK_COMBO_BOX(pcd->format_combobox), active);
+  guid = gnc_gconf_get_string(GCONF_SECTION, KEY_CHECK_FORMAT_GUID, NULL);
+  if (guid == NULL) {
+      active = gnc_gconf_get_int(GCONF_SECTION, KEY_CHECK_FORMAT, NULL);
+      gtk_combo_box_set_active(GTK_COMBO_BOX(pcd->format_combobox), active);
+  } else if (strcmp(guid, "custom") == 0) {
+      gtk_combo_box_set_active(GTK_COMBO_BOX(pcd->format_combobox),
+                               pcd->format_max - 1);
+  } else {
+      model = gtk_combo_box_get_model(GTK_COMBO_BOX(pcd->format_combobox));
+      if (find_existing_format(GTK_LIST_STORE(model), guid, &iter)) {
+          gtk_combo_box_set_active_iter(GTK_COMBO_BOX(pcd->format_combobox), &iter);
+      } else {
+          gtk_combo_box_set_active(GTK_COMBO_BOX(pcd->format_combobox), 0);
+      }
+  }
   active = gnc_gconf_get_int(GCONF_SECTION, KEY_CHECK_POSITION, NULL);
   gtk_combo_box_set_active(GTK_COMBO_BOX(pcd->position_combobox), active);
   active = gnc_gconf_get_int(GCONF_SECTION, KEY_DATE_FORMAT, NULL);
@@ -203,9 +423,9 @@
   get_float_pair(GCONF_SECTION, KEY_CUSTOM_NUMBER, &x, &y);
   gtk_spin_button_set_value(pcd->number_x, x);
   gtk_spin_button_set_value(pcd->number_y, y);
-  get_float_pair(GCONF_SECTION, KEY_CUSTOM_MEMO, &x, &y);
-  gtk_spin_button_set_value(pcd->memo_x, x);
-  gtk_spin_button_set_value(pcd->memo_y, y);
+  get_float_pair(GCONF_SECTION, KEY_CUSTOM_NOTES, &x, &y);
+  gtk_spin_button_set_value(pcd->notes_x, x);
+  gtk_spin_button_set_value(pcd->notes_y, y);
   get_float_pair(GCONF_SECTION, KEY_CUSTOM_TRANSLATION, &x, &y);
   gtk_spin_button_set_value(pcd->translation_x, x);
   gtk_spin_button_set_value(pcd->translation_y, y);
@@ -216,6 +436,691 @@
 }
 
 
+static gdouble
+pcd_get_custom_multip(PrintCheckDialog * pcd)
+{
+    gint selected;
+
+    selected = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->units_combobox));
+    switch (selected) {
+        default:
+            return 72.0;        /* inches */
+        case 1:
+            return 28.346;      /* cm */
+        case 2:
+            return 2.8346;      /* mm */
+        case 3:
+            return 1.0;         /* points */
+    }
+}
+
+
+/** Save a coordinate pair into a check description file.  This function
+ *  extracts the values from the spin buttons, adjusts them for the units
+ *  multiplies (inch, pixel, etc), and then adds them to the gKeyFile. */
+static void
+pcd_key_file_save_xy (GKeyFile *key_file, const gchar *group_name,
+                      const gchar *key_name, gdouble multip,
+                      GtkSpinButton *spin0, GtkSpinButton *spin1)
+{
+    gdouble dd[2];
+
+    dd[0] = multip * gtk_spin_button_get_value(spin0);
+    dd[1] = multip * gtk_spin_button_get_value(spin1);
+    /* Clip the numbers to three decimal places. */
+    dd[0] = round(dd[0] * 1000) / 1000;
+    dd[1] = round(dd[1] * 1000) / 1000;
+    g_key_file_set_double_list(key_file, group_name, key_name, dd, 2);
+}
+
+
+/** Save the information about a single printed item into a check description
+ *  file.  This function uses a helper function to extracts and save the item
+ *  coordinates. */
+static void
+pcd_key_file_save_item_xy (GKeyFile *key_file, int index,
+                           CheckItemType type, gdouble multip,
+                           GtkSpinButton *spin0, GtkSpinButton *spin1)
+{
+    gchar *key;
+    key = g_strdup_printf("Type_%d", index);
+    g_key_file_set_string(key_file, KF_GROUP_ITEMS, key,
+                          CheckItemTypeasString(type));
+    g_free(key);
+    key = g_strdup_printf("Coords_%d", index);
+    pcd_key_file_save_xy(key_file, KF_GROUP_ITEMS, key, multip, spin0, spin1);
+    g_free(key);
+}
+
+
+/** Save all of the information from the custom check dialog into a check
+ *  description file. */
+static void
+pcd_save_custom_data(PrintCheckDialog *pcd, gchar *filename)
+{
+    GKeyFile *key_file;
+    GError *error = NULL;
+    GtkWidget *dialog;
+    gdouble multip;
+    gint i = 0;
+    GUID guid;
+    char buf[GUID_ENCODING_LENGTH+1];
+
+    multip = pcd_get_custom_multip(pcd);
+
+    key_file = g_key_file_new();
+    guid_new(&guid);
+    g_key_file_set_string(key_file, KF_GROUP_TOP, KF_KEY_GUID,
+                          guid_to_string_buff(&guid, buf));
+    g_key_file_set_string(key_file, KF_GROUP_TOP, KF_KEY_TITLE,
+                          _("Custom Check"));
+    g_key_file_set_boolean(key_file, KF_GROUP_TOP, KF_KEY_SHOW_GRID, FALSE);
+    g_key_file_set_boolean(key_file, KF_GROUP_TOP, KF_KEY_SHOW_BOXES, FALSE);
+    g_key_file_set_double(key_file, KF_GROUP_TOP, KF_KEY_ROTATION,
+                          gtk_spin_button_get_value(pcd->check_rotation));
+    pcd_key_file_save_xy(key_file, KF_GROUP_TOP, KF_KEY_TRANSLATION, multip,
+                         pcd->translation_x, pcd->translation_y);
+
+    pcd_key_file_save_item_xy(key_file, i++, PAYEE, multip,
+                              pcd->payee_x, pcd->payee_y);
+    pcd_key_file_save_item_xy(key_file, i++, DATE, multip,
+                              pcd->date_x, pcd->date_y);
+    pcd_key_file_save_item_xy(key_file, i++, AMOUNT_WORDS, multip,
+                              pcd->words_x, pcd->words_y);
+    pcd_key_file_save_item_xy(key_file, i++, AMOUNT_NUMBER, multip,
+                              pcd->number_x, pcd->number_y);
+    pcd_key_file_save_item_xy(key_file, i++, NOTES, multip,
+                              pcd->notes_x, pcd->notes_y);
+
+    if (!gnc_key_file_save_to_file(filename, key_file, &error)) {
+        dialog = gtk_message_dialog_new(GTK_WINDOW(pcd->dialog),
+                                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                                        GTK_MESSAGE_ERROR,
+                                        GTK_BUTTONS_CLOSE,
+                                        _("Cannot save check format file."));
+        gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+                                                 error->message);
+        gtk_dialog_run(GTK_DIALOG(dialog));
+        gtk_widget_destroy(dialog);
+        g_error_free(error);
+    }
+}
+
+
+/** This function is called when the user clicks the "save format" button in
+ *  the check printing dialog.  It presents another dialog to the user to get
+ *  the filename for saving the data. */
+void
+gnc_print_check_save_button_clicked(GtkButton *button, PrintCheckDialog *pcd)
+{
+    GtkFileChooser *chooser;
+    GtkFileFilter *filter;
+    GtkWidget *dialog;
+    gchar *check_dir, *filename;
+
+    dialog = gtk_file_chooser_dialog_new(_("Save Check Description"),
+                                         GTK_WINDOW(pcd->dialog),
+                                         GTK_FILE_CHOOSER_ACTION_SAVE,
+                                         GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                         GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+                                         NULL);
+    chooser = GTK_FILE_CHOOSER(dialog);
+
+    check_dir = g_build_filename(gnc_dotgnucash_dir(), CHECK_FMT_DIR, NULL);
+    gtk_file_chooser_set_current_folder(chooser, check_dir);
+    gtk_file_chooser_set_current_name(chooser, CUSTOM_CHECK_NAME);
+    g_free(check_dir);
+
+    filter = gtk_file_filter_new();
+    gtk_file_filter_set_name(filter, CHECK_NAME_FILTER);
+    gtk_file_filter_add_pattern(filter, CHECK_NAME_FILTER);
+    gtk_file_chooser_add_filter(chooser, filter);
+
+    filter = gtk_file_filter_new();
+    gtk_file_filter_set_name(filter, _("All Files"));
+    gtk_file_filter_add_pattern(filter, "*");
+    gtk_file_chooser_add_filter(chooser, filter);
+
+    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+        filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+        pcd_save_custom_data(pcd, filename);
+        g_free(filename);
+    }
+
+    gtk_widget_destroy (dialog);
+}
+
+
+/** This is an auxiliary debugging function for converting an array of doubles
+ *  into a printable string. */
+static gchar *
+doubles_to_string(gdouble * dd, gint len)
+{
+    GString *str;
+    gint i;
+
+    str = g_string_new_len(NULL, 50);
+    for (i = 0; i < len; i++)
+        g_string_append_printf(str, "%f ", dd[i]);
+    return g_string_free(str, FALSE);
+}
+
+
+/** Read the information describing the placement for each item to be printed
+ *  on the check.  This information is all relative to the upper left hand
+ *  corner of a "check".  See the format_read_multicheck_info() function for
+ *  determining if there are multiple checks on a single page of paper. This
+ *  data is build into a linked list and saved as part of the check format
+ *  information.  These items will be printed in the same order they are read,
+ *  meaning that items listed later in the date file can be printed over top
+ *  of items that appear earlier in the file. */
+static GSList *
+format_read_item_placement(const gchar * file,
+                           GKeyFile * key_file, check_format_t * format)
+{
+    check_item_t *data = NULL;
+    GError *error = NULL;
+    GSList *list = NULL;
+    gchar *key, *value, *name;
+    int item_num;
+    gdouble *dd;
+    gsize dd_len;
+
+    /* Read until failure. */
+    for (item_num = 1;; item_num++) {
+
+        /* Create the per-item data structure */
+        data = g_new0(check_item_t, 1);
+        if (NULL == data)
+            return list;
+
+        /* Get the item type */
+        key = g_strdup_printf("%s_%d", KF_KEY_TYPE, item_num);
+        value = g_key_file_get_string(key_file, KF_GROUP_ITEMS, key, &error);
+        if (error) {
+            if ((error->domain == G_KEY_FILE_ERROR)
+                && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)) {
+                /* This is the expected exit from this function. */
+                goto cleanup;
+            }
+            goto failed;
+        }
+        g_debug("Check file %s, group %s, key %s, value: %s",
+                file, KF_GROUP_ITEMS, key, value);
+        g_free(key);
+
+        /* Convert the type from a string to an enum, ignoring case. */
+        name = g_utf8_strup(value, -1);
+        data->type = CheckItemTypefromString(name);
+        g_free(name);
+        g_free(value);
+
+
+        /* Get the item location */
+        key = g_strdup_printf("%s_%d", KF_KEY_COORDS, item_num);
+        dd = g_key_file_get_double_list(key_file, KF_GROUP_ITEMS,
+                                        key, &dd_len, &error);
+        if (error)
+            goto failed;
+        value = doubles_to_string(dd, dd_len);
+        g_debug("Check file %s, group %s, key %s, length %zd; values: %s",
+                file, KF_GROUP_ITEMS, key, dd_len, value);
+        g_free(value);
+
+        /* Must have "x;y" or "x;y;w;h". */
+        switch (dd_len) {
+            case 4:
+                data->w = dd[2];
+                data->h = dd[3];
+                /* fall through */
+            case 2:
+                data->x = dd[0];
+                data->y = dd[1];
+                break;
+            default:
+                g_warning
+                    ("Check file %s, group %s, key %s, error: 2 or 4 values only",
+                     file, KF_GROUP_ITEMS, key);
+                goto cleanup;
+        }
+        g_free(dd);
+        g_free(key);
+
+        /* Any text item can specify a font, and can also an alignment if a
+         * width was provided for the item. These values are optional and do
+         * not cause a failure if they are missing. */
+        if (data->type != PICTURE) {
+            key = g_strdup_printf("%s_%d", KF_KEY_FONT, item_num);
+            data->font =
+                g_key_file_get_string(key_file, KF_GROUP_ITEMS, key, &error);
+            if (!error) {
+                g_debug("Check file %s, group %s, key %s, value: %s",
+                        file, KF_GROUP_ITEMS, key, data->font);
+            } else {
+                if (!((error->domain == G_KEY_FILE_ERROR)
+                      && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+                    g_warning("Check file %s, group %s, key %s, error: %s",
+                              file, KF_GROUP_ITEMS, key, error->message);
+                g_clear_error(&error);
+            }
+            g_free(key);
+
+            value =
+                g_key_file_get_string(key_file, KF_GROUP_ITEMS, KF_KEY_ALIGN,
+                                      &error);
+            if (!error) {
+                g_debug("Check file %s, group %s, key %s, value: %s",
+                        file, KF_GROUP_ITEMS, key, value);
+                name = g_utf8_strdown(value, -1);
+                if (strcmp(name, "right") == 0)
+                    data->align = PANGO_ALIGN_RIGHT;
+                else if (strcmp(name, "center") == 0)
+                    data->align = PANGO_ALIGN_CENTER;
+                else
+                    data->align = PANGO_ALIGN_LEFT;
+                g_free(name);
+                g_free(value);
+            } else {
+                if (!((error->domain == G_KEY_FILE_ERROR)
+                      && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+                    g_warning("Check file %s, group %s, key %s, error: %s",
+                              file, KF_GROUP_ITEMS, key, error->message);
+                data->align = PANGO_ALIGN_LEFT;
+                g_clear_error(&error);
+            }
+        }
+        /* Get any extra data for specific items. */
+        switch (data->type) {
+            case PICTURE:
+                key = g_strdup_printf("%s_%d", KF_KEY_FILENAME, item_num);
+                data->filename =
+                    g_key_file_get_string(key_file, KF_GROUP_ITEMS, key,
+                                          &error);
+                if (error)
+                    goto failed;
+                g_debug("Check file %s, group %s, key %s, value: %s",
+                        file, KF_GROUP_ITEMS, key, data->filename);
+                g_free(key);
+                break;
+            case TEXT:
+                key = g_strdup_printf("%s_%d", KF_KEY_TEXT, item_num);
+                data->text =
+                    g_key_file_get_string(key_file, KF_GROUP_ITEMS, key,
+                                          &error);
+                if (error)
+                    goto failed;
+                g_debug("Check file %s, group %s, key %s, value: %s",
+                        file, KF_GROUP_ITEMS, key, data->text);
+                g_free(key);
+                break;
+            default:
+                break;
+        }
+
+        list = g_slist_append(list, data);
+        data = NULL;
+    }
+
+    /* Should never be reached. */
+    return list;
+
+  failed:
+    g_warning("Check file %s, group %s, key %s, error: %s",
+              file, KF_GROUP_ITEMS, key, error->message);
+  cleanup:
+    if (error)
+        g_error_free(error);
+    if (data)
+        g_free(data);
+    if (key)
+        g_free(key);
+    return list;
+}
+
+
+/** Free the data describing the placement of a single item on a check. */
+static void
+format_free_item_placement(check_item_t * data)
+{
+    if (data->font)
+        g_free(data->font);
+    if (data->text)
+        g_free(data->text);
+    if (data->filename)
+        g_free(data->filename);
+    g_free(data);
+}
+
+
+/** Read the information describing whether a page contains multiple checks or
+ *  a single check.  If there are multiple checks on a page, this functions
+ *  builds a linked list of the position names and their offsets (from the
+ *  upper left corner of the page). */
+static GSList *
+format_read_multicheck_info(const gchar * file,
+                            GKeyFile * key_file, check_format_t * format)
+{
+    GError *error = NULL;
+    GSList *list = NULL;
+    gchar *key, **names;
+    gsize length;
+    gint i;
+
+    key = g_strdup_printf("%s", KF_KEY_HEIGHT);
+    format->height = g_key_file_get_double(key_file, KF_GROUP_POS, key, &error);
+    if (error) {
+        if ((error->domain == G_KEY_FILE_ERROR)
+            && ((error->code == G_KEY_FILE_ERROR_GROUP_NOT_FOUND)
+                || (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND))) {
+            g_clear_error(&error);
+            format->height = 0.0;
+        } else {
+            g_warning("Check file %s, error reading group %s, key %s: %s",
+                      file, KF_GROUP_POS, key, error->message);
+            g_free(key);
+            return NULL;
+        }
+    }
+
+    names = g_key_file_get_string_list(key_file, KF_GROUP_POS, KF_KEY_NAMES,
+                                       &length, &error);
+    if (error) {
+        if ((error->domain == G_KEY_FILE_ERROR)
+            && ((error->code == G_KEY_FILE_ERROR_GROUP_NOT_FOUND)
+                || (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND))) {
+          /* This is the expected exit from this function. */
+          g_free(key);
+          return NULL;
+        }
+        g_warning("Check file %s, error reading group %s, key %s: %s",
+                  file, KF_GROUP_POS, key, error->message);
+        g_free(key);
+        return list;
+    }
+
+    for (i = 0; i < length; i++)
+      list = g_slist_append(list, g_strdup(names[i]));
+
+    g_strfreev(names);
+    return list;
+}
+
+
+/** Free the data describing the placement of multiple checks on a page. */
+static void
+free_check_position(gchar * name)
+{
+    g_free(name);
+}
+
+
+/** Read the information describing the general layout of a page of checks.
+ *  All items in this section are optional except or the name of the check
+ *  style. */
+static gboolean
+format_read_general_info(const gchar * file,
+                         GKeyFile * key_file, check_format_t * format)
+{
+    GError *error = NULL;
+    gchar **parts;
+    gchar *value;
+    double *dd;
+    gsize dd_len;
+
+    value = g_key_file_get_string(key_file, KF_GROUP_TOP, KF_KEY_GUID, &error);
+    if (error) {
+        g_warning("Check file %s, group %s, key %s, error: %s",
+                  file, KF_GROUP_TOP, KF_KEY_GUID, error->message);
+        g_error_free(error);
+        return FALSE;
+    }
+    parts = g_strsplit(value, "-", -1);
+    format->guid = g_strjoinv("", parts);
+    g_strfreev(parts);
+    g_debug("Check file %s, group %s, key %s, value: %s",
+            file, KF_GROUP_TOP, KF_KEY_GUID, format->guid);
+
+    format->title =
+        g_key_file_get_string(key_file, KF_GROUP_TOP, KF_KEY_TITLE, &error);
+    if (!error) {
+        g_debug("Check file %s, group %s, key %s, value: %s",
+                file, KF_GROUP_TOP, KF_KEY_TITLE, format->title);
+    } else {
+        g_warning("Check file %s, group %s, key %s, error: %s",
+                  file, KF_GROUP_TOP, KF_KEY_TITLE, error->message);
+        return FALSE;
+    }
+
+    format->show_grid =
+        g_key_file_get_boolean(key_file, KF_GROUP_TOP, KF_KEY_SHOW_GRID,
+                               &error);
+    if (!error) {
+        g_debug("Check file %s, group %s, key %s, value: %d",
+                file, KF_GROUP_TOP, KF_KEY_SHOW_GRID, format->show_grid);
+    } else {
+        if (!((error->domain == G_KEY_FILE_ERROR)
+              && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+            g_warning("Check file %s, group %s, key %s, error: %s",
+                      file, KF_GROUP_TOP, KF_KEY_SHOW_GRID, error->message);
+        format->show_grid = FALSE;
+        g_clear_error(&error);
+    }
+
+    format->show_boxes =
+        g_key_file_get_boolean(key_file, KF_GROUP_TOP, KF_KEY_SHOW_BOXES,
+                               &error);
+    if (!error) {
+        g_debug("Check file %s, group %s, key %s, value: %d",
+                file, KF_GROUP_TOP, KF_KEY_SHOW_BOXES, format->show_boxes);
+    } else {
+        if (!((error->domain == G_KEY_FILE_ERROR)
+              && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+            g_warning("Check file %s, group %s, key %s, error: %s",
+                      file, KF_GROUP_TOP, KF_KEY_SHOW_BOXES, error->message);
+        format->show_boxes = FALSE;
+        g_clear_error(&error);
+    }
+
+    format->font =
+        g_key_file_get_string(key_file, KF_GROUP_TOP, KF_KEY_FONT, &error);
+    if (!error) {
+        g_debug("Check file %s, group %s, key %s, value: %s",
+                file, KF_GROUP_TOP, KF_KEY_FONT, format->font);
+    } else {
+        if (!((error->domain == G_KEY_FILE_ERROR)
+              && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+            g_warning("Check file %s, group %s, key %s, error: %s",
+                      file, KF_GROUP_TOP, KF_KEY_FONT, error->message);
+        g_clear_error(&error);
+    }
+
+    format->rotation =
+        g_key_file_get_double(key_file, KF_GROUP_TOP, KF_KEY_ROTATION, &error);
+    if (!error) {
+        g_debug("Check file %s, group %s, key %s, value: %f",
+                file, KF_GROUP_TOP, KF_KEY_ROTATION, format->rotation);
+    } else {
+        if (!((error->domain == G_KEY_FILE_ERROR)
+              && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+            g_warning("Check file %s, group %s, key %s, error: %s",
+                      file, KF_GROUP_TOP, KF_KEY_ROTATION, error->message);
+        format->rotation = 0.0;
+        g_clear_error(&error);
+    }
+
+    dd = g_key_file_get_double_list(key_file, KF_GROUP_TOP, KF_KEY_TRANSLATION,
+                                    &dd_len, &error);
+    if (!error) {
+        value = doubles_to_string(dd, dd_len);
+        g_debug("Check file %s, group %s, key %s, length %zd; values: %s",
+                file, KF_GROUP_TOP, KF_KEY_TRANSLATION, dd_len, value);
+        g_free(value);
+
+        if (dd_len == 2) {
+            format->trans_x = dd[0];
+            format->trans_y = dd[1];
+        } else {
+            g_warning("Check file %s, error top %s, key %s: 2 values only",
+                      file, KF_GROUP_TOP, KF_KEY_TRANSLATION);
+        }
+        g_free(dd);
+    } else {
+        if (!((error->domain == G_KEY_FILE_ERROR)
+              && (error->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
+            g_warning("Check file %s, group top %s, key %s: %s",
+                      file, KF_GROUP_ITEMS, KF_KEY_TRANSLATION, error->message);
+        g_clear_error(&error);
+    }
+
+    return TRUE;
+}
+
+
+/** Free all of the information describing a page of checks. */
+static void
+free_check_format(check_format_t * data)
+{
+    g_free(data->guid);
+    g_free(data->filename);
+    g_free(data->title);
+    g_free(data->font);
+    g_slist_foreach(data->positions, (GFunc) free_check_position, NULL);
+    g_slist_free(data->positions);
+    g_slist_foreach(data->items, (GFunc) format_free_item_placement, NULL);
+    g_slist_free(data->items);
+    g_free(data);
+}
+
+
+/** Read a single check format file and append the resulting format to the
+ *  list of all known formats.  This function calls other functions to read
+ *  each section of the data file. */
+static check_format_t *
+read_one_check_format(PrintCheckDialog * pcd, const gchar *groupname,
+                      const gchar * dirname, const gchar * file)
+{
+    gchar *pathname;
+    GKeyFile *key_file;
+    check_format_t *format;
+
+    pathname = g_build_filename(dirname, file, (char *)NULL);
+    key_file = gnc_key_file_load_from_file(pathname, FALSE, FALSE, NULL);
+    g_free(pathname);
+    if (!key_file) {
+        g_warning("Check file %s, cannot load file", file);
+        return NULL;
+    }
+
+    format = g_new0(check_format_t, 1);
+    format->group = groupname;
+    format->filename = g_strdup(file);
+    if (format_read_general_info(file, key_file, format)) {
+        format->positions = format_read_multicheck_info(file, key_file, format);
+        format->items = format_read_item_placement(file, key_file, format);
+    }
+
+    g_key_file_free(key_file);
+    if ((NULL == format->title) || (NULL == format->items)) {
+        g_warning("Check file %s, no items read. Dropping file.", file);
+        free_check_format(format);
+        return NULL;
+    }
+
+    return format;
+}
+
+
+/** Iterate over a single check directory, throwing out any backup files and
+ *  then calling a helper function to read and parse the check format withing
+ *  the file. */
+static void
+read_one_check_directory(PrintCheckDialog * pcd, GtkListStore *store,
+                         const gchar *groupname, const gchar * dirname)
+{
+    check_format_t *format, *existing;
+    GDir *dir;
+    const gchar *filename;
+    GtkTreeIter iter;
+    GtkWidget *dialog;
+    gboolean found = FALSE;
+
+    dir = g_dir_open(dirname, 0, NULL);
+    if (dir == NULL)
+        return;
+
+    while ((filename = g_dir_read_name(dir)) != NULL) {
+        if (g_str_has_prefix(filename, "#"))
+            continue;
+        if (!g_str_has_suffix(filename, ".chk"))
+            continue;
+
+        format = read_one_check_format(pcd, groupname, dirname, filename);
+        if (NULL == format)
+            continue;
+
+        existing = find_existing_format(store, format->guid, NULL);
+        if (existing) {
+            dialog = gtk_message_dialog_new
+                (GTK_WINDOW(pcd->dialog),
+                 GTK_DIALOG_DESTROY_WITH_PARENT,
+                 GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
+                 _("There is a duplicate check format file."));
+            gtk_message_dialog_format_secondary_text
+                (GTK_MESSAGE_DIALOG(dialog),
+                 _("The guids in the %s check format file '%s' and "
+                   "the %s check format file '%s' match."),
+                 existing->group, existing->filename,
+                 format->group, format->filename);
+            gtk_dialog_run(GTK_DIALOG(dialog));
+            gtk_widget_destroy(dialog);
+        } else {
+            gtk_list_store_append(store, &iter);
+            gtk_list_store_set(store, &iter, COL_NAME, format->title,
+                               COL_DATA, format, -1);
+            found = TRUE;
+        }
+    }
+    g_dir_close(dir);
+
+    /* If any files were added to the list, add a separator between
+     *  this group and the next. */
+    if (found) {
+        gtk_list_store_append(store, &iter);
+        gtk_list_store_set(store, &iter, COL_SEP, TRUE, -1);
+    }
+}
+
+
+/** Read all check formats.  This function first looks in the system directory
+ *  for check files, and then looks in the user's .gnucash directory for any
+ *  custom check files. */
+static void
+read_formats(PrintCheckDialog * pcd, GtkListStore *store)
+{
+    gchar *dirname, *pkgdatadir;
+
+    pkgdatadir = gnc_path_get_pkgdatadir();
+    dirname = g_build_filename(pkgdatadir, CHECK_FMT_DIR, (char *)NULL);
+    read_one_check_directory(pcd, store, _("application"), dirname);
+    g_free(dirname);
+    g_free(pkgdatadir);
+
+    dirname = gnc_build_dotgnucash_path(CHECK_FMT_DIR);
+    read_one_check_directory(pcd, store, _("user"), dirname);
+    g_free(dirname);
+}
+
+
+static gboolean
+format_is_a_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
+{
+    gboolean separator;
+
+    gtk_tree_model_get(model, iter, COL_SEP, &separator, -1);
+    return separator;
+}
+
+
 /********************************************************************\
  * gnc_ui_print_check_dialog_create
  * make a new print check dialog and wait for it.
@@ -223,22 +1128,19 @@
 
 void
 gnc_ui_print_check_dialog_create(GncPluginPageRegister *plugin_page,
-				 const char    *payee,
-				 gnc_numeric    amount,
-				 time_t         date,
-				 const char    *memo)
+                                 Split *split)
 {
   PrintCheckDialog * pcd;
   GladeXML *xml;
   GtkWidget *table;
   GtkWindow *window;
+  GtkListStore *store;
+  GtkTreeIter iter;
+  gchar *font;
 
   pcd = g_new0(PrintCheckDialog, 1);
   pcd->plugin_page = plugin_page;
-  pcd->payee = payee;
-  pcd->amount = amount;
-  pcd->date = date;
-  pcd->memo = memo;
+  pcd->split = split;
 
   xml = gnc_glade_xml_new ("print.glade", "Print Check Dialog");
   glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, pcd);
@@ -263,8 +1165,8 @@
     GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "amount_numbers_x_entry"));
   pcd->number_y =
     GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "amount_numbers_y_entry"));
-  pcd->memo_x = GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "memo_x_entry"));
-  pcd->memo_y = GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "memo_y_entry"));
+  pcd->notes_x = GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "notes_x_entry"));
+  pcd->notes_y = GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "notes_y_entry"));
   pcd->translation_x = GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "translation_x_entry"));
   pcd->translation_y = GTK_SPIN_BUTTON(glade_xml_get_widget (xml, "translation_y_entry"));
   pcd->translation_label = glade_xml_get_widget (xml, "translation_label");
@@ -274,99 +1176,828 @@
 
   window = GTK_WINDOW(GNC_PLUGIN_PAGE(plugin_page)->window);
   gtk_window_set_transient_for(GTK_WINDOW(pcd->dialog), window);
+  pcd->caller_window = GTK_WINDOW(window);
 
   /* Create and attach the date-format chooser */
   table = glade_xml_get_widget (xml, "options_table");
   pcd->date_format = gnc_date_format_new_without_label();
   gtk_table_attach_defaults(GTK_TABLE(table), pcd->date_format, 1, 3, 2, 7);
 
+  /* Default font (set in preferences) */
+  font = gnc_gconf_get_string(GCONF_SECTION, KEY_DEFAULT_FONT, NULL);
+  pcd->default_font = font ? font : g_strdup(DEFAULT_FONT);
+
+  /* Update the combo boxes bases on the available check formats */
+  store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN);
+  read_formats(pcd, store);
+  gtk_list_store_append(store, &iter);
+  gtk_list_store_set(store, &iter, COL_NAME, _("Custom"), -1);
+  pcd->format_max = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store),NULL);
+  gtk_combo_box_set_model(GTK_COMBO_BOX(pcd->format_combobox),
+                          GTK_TREE_MODEL(store));
+  gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(pcd->format_combobox),
+                                       format_is_a_separator, NULL, NULL);
+
+#if USE_GTKPRINT
+  gtk_widget_destroy(glade_xml_get_widget (xml, "lower_left"));
+#else
+  gtk_widget_destroy(glade_xml_get_widget (xml, "upper_left"));
+#endif
+
   gnc_ui_print_restore_dialog(pcd);
   gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(pcd->dialog));
   gtk_widget_show_all(pcd->dialog);
 }
 
 /********************************************************************\
+ * Print check contents to the page.
+\********************************************************************/
+
+
+/** Draw a grid pattern on the page to be printed.  This grid is helpful when
+ *  figuring out the offsets for where to print various items on the page. */
+static void
+draw_grid(GncPrintContext * context, gint width, gint height, const gchar *font)
+{
+    const double dash_pattern[2] = { 1.0, 5.0 };
+#if USE_GTKPRINT
+    PangoFontDescription *desc;
+    PangoLayout *layout;
+    cairo_t *cr;
+#endif
+    gchar *text;
+    gint i;
+
+#if USE_GTKPRINT
+    /* Initialize for printing text */
+    layout = gtk_print_context_create_pango_layout(context);
+    desc = pango_font_description_from_string(font);
+    pango_layout_set_font_description(layout, desc);
+    pango_font_description_free(desc);
+    pango_layout_set_alignment(layout, PANGO_ALIGN_LEFT);
+    pango_layout_set_width(layout, -1);
+#endif
+
+    /* Set up the line to draw with. */
+#if USE_GTKPRINT
+    cr = gtk_print_context_get_cairo_context(context);
+    cairo_save(cr);
+    cairo_set_line_width(cr, 1.0);
+    cairo_set_line_cap(cr, CAIRO_LINE_JOIN_ROUND);
+    cairo_set_dash(cr, dash_pattern, 2, 0);
+#else
+    gnome_print_gsave(context);
+    gnome_print_setlinewidth(context, 1.0);
+    gnome_print_setlinecap(context, 2);
+    gnome_print_setdash(context, 2, dash_pattern, 0);
+#endif
+
+    /* Draw horizontal lines */
+    for (i = -200; i < (height + 200); i += 50) {
+        text = g_strdup_printf("%d", (int)i);
+#if USE_GTKPRINT
+        cairo_move_to(cr, -200, i);
+        cairo_line_to(cr, width + 200, i);
+        cairo_stroke(cr);
+        pango_layout_set_text(layout, text, -1);
+        cairo_move_to(cr, 0, i);
+        pango_cairo_show_layout(cr, layout);
+#else
+        gnome_print_line_stroked(context, -200, i, width + 200, i);
+        gnome_print_moveto(context, 0, i);
+        gnome_print_show(context, text);
+#endif
+        g_free(text);
+    }
+
+    /* Draw vertical lines */
+    for (i = -200; i < (width + 200); i += 50) {
+        text = g_strdup_printf("%d", (int)i);
+#if USE_GTKPRINT
+        cairo_move_to(cr, i, -200);
+        cairo_line_to(cr, i, height + 200);
+        cairo_stroke(cr);
+        pango_layout_set_text(layout, text, -1);
+        cairo_move_to(cr, i, 0);
+        pango_cairo_show_layout(cr, layout);
+#else
+        gnome_print_line_stroked(context, i, -200, i, height + 200);
+        gnome_print_moveto(context, i, 0);
+        gnome_print_show(context, text);
+#endif
+        g_free(text);
+    }
+
+    /* Clean up after ourselves */
+#if USE_GTKPRINT
+    cairo_restore(cr);
+    g_object_unref(layout);
+#else
+    gnome_print_grestore(context);
+#endif
+}
+
+
+/** Print a single line of text to the printed page.  If a width and height
+ *  are specified, the line will be wrapped at the specified width, and the
+ *  resulting text will be clipped if it does not fit in the space
+ *  available. */
+static gdouble
+draw_text(GncPrintContext * context, const gchar * text, check_item_t * data,
+          PangoFontDescription *default_desc)
+{
+#if USE_GTKPRINT
+    PangoFontDescription *desc;
+    PangoLayout *layout;
+    cairo_t *cr;
+    gint layout_height, layout_width;
+    gdouble width, height;
+    gchar *new_text;
+
+    if ((NULL == text) || (strlen(text) == 0))
+      return 0.0;
+
+    /* Initialize for printing text */
+    layout = gtk_print_context_create_pango_layout(context);
+    if (data->font) {
+      desc = pango_font_description_from_string(data->font);
+      pango_layout_set_font_description(layout, desc);
+      pango_font_description_free(desc);
+    } else {
+      pango_layout_set_font_description(layout, default_desc);
+    }
+    pango_layout_set_alignment(layout,
+                               data->w ? data->align : PANGO_ALIGN_LEFT);
+    pango_layout_set_width(layout, data->w ? data->w * PANGO_SCALE : -1);
+    if (gnc_gconf_get_bool(GCONF_SECTION, KEY_BLOCKING_CHARS, NULL)) {
+        new_text = g_strdup_printf("***%s***", text);
+        pango_layout_set_text(layout, new_text, -1);
+        g_free(new_text);
+    } else {
+        pango_layout_set_text(layout, text, -1);
+    }
+    pango_layout_get_size(layout, &layout_width, &layout_height);
+    width = (gdouble) layout_width / PANGO_SCALE;
+    height = (gdouble) layout_height / PANGO_SCALE;
+
+    cr = gtk_print_context_get_cairo_context(context);
+    cairo_save(cr);
+
+    /* Clip text to the enclosing rectangle */
+    if (data->w && data->h) {
+        g_debug("Text clip rectangle, coords %f,%f, size %f,%f",
+                data->x, data->y - data->h, data->w, data->h);
+        cairo_rectangle(cr, data->x, data->y - data->h, data->w, data->h);
+        cairo_clip_preserve(cr);
+    }
+
+    /* Draw the text */
+    g_debug("Text move to %f,%f, print '%s'", data->x, data->y,
+            text ? text : "(null)");
+    cairo_move_to(cr, data->x, data->y - height);
+    pango_cairo_show_layout(cr, layout);
+
+    /* Clean up after ourselves */
+    cairo_restore(cr);
+    g_object_unref(layout);
+    return width;
+#else
+    gdouble x0, x1, y0, y1;
+    gchar *new_text;
+
+    if ((NULL == text) || (strlen(text) == 0))
+      return 0.0;
+
+    /* Clip text to the enclosing rectangle */
+    gnome_print_gsave(context);
+    if (data->w && data->h) {
+        g_debug("Text clip rectangle, coords %f,%f, size %f,%f",
+                data->x, data->y - data->h, data->w, data->h);
+        x0 = data->x - GNOMEPRINT_CLIP_EXTRA;
+        x1 = data->x + data->w + GNOMEPRINT_CLIP_EXTRA;
+        y0 = data->y - GNOMEPRINT_CLIP_EXTRA;
+        y1 = data->y + data->h + GNOMEPRINT_CLIP_EXTRA;
+        gnome_print_moveto(context, x0, y0);
+        gnome_print_lineto(context, x0, y1);
+        gnome_print_lineto(context, x1, y1);
+        gnome_print_lineto(context, x1, y0);
+        gnome_print_lineto(context, x0, y0);
+        gnome_print_clip(context);
+    }
+
+    /* Draw the text */
+    g_debug("Text move to %f,%f, print '%s'", data->x, data->y,
+            text ? text : "(null)");
+    gnome_print_moveto(context, data->x, data->y);
+    if (gnc_gconf_get_bool(GCONF_SECTION, KEY_BLOCKING_CHARS, NULL)) {
+        new_text = g_strdup_printf("***%s***", text);
+        gnome_print_show(context, new_text);
+        g_free(new_text);
+    } else {
+        gnome_print_show(context, text);
+    }
+    gnome_print_grestore(context);
+    return 0.0;
+#endif
+}
+
+
+#if USE_GTKPRINT
+/** Find and load the specified image.  If the specified filename isn't an
+ *  absolute path name, this code will also look in the gnucash system check
+ *  format directory, and then in the user's private check format
+ *  directory.
+ *
+ *  NOTE: The gtk_image_new_from_file() function never fails.  If it can't
+ *  find the specified file, it returs the "broken image" icon.  This function
+ *  takes advantage of that.
+*/
+static GtkWidget *
+read_image (const gchar *filename)
+{
+    GtkWidget *image;
+    gchar *pkgdatadir, *dirname, *tmp_name;
+
+    if (g_path_is_absolute(filename))
+        return gtk_image_new_from_file(filename);
+
+    pkgdatadir = gnc_path_get_pkgdatadir();
+    tmp_name = g_build_filename(pkgdatadir, CHECK_FMT_DIR, filename, (char *)NULL);
+    if (!g_file_exists(tmp_name)) {
+        g_free(tmp_name);
+	dirname = gnc_build_dotgnucash_path(CHECK_FMT_DIR);
+	tmp_name = g_build_filename(dirname, filename, (char *)NULL);
+	g_free(dirname);
+    }
+    image = gtk_image_new_from_file(tmp_name);
+    g_free(tmp_name);
+    return image;
+}
+
+
+/** Print a single image to the printed page.  This picture will be scaled
+ *  down to fit in the specified size rectangle.  Scaling is done with the
+ *  proportions locked 1:1 so as not to distort the image. */
+static void
+draw_picture(GtkPrintContext * context, check_item_t * data)
+{
+    cairo_t *cr;
+    GdkPixbuf *pixbuf, *scaled_pixbuf;
+    GtkImage *image;
+    gint pix_w, pix_h;
+    gdouble scale_w, scale_h, scale;
+
+    cr = gtk_print_context_get_cairo_context(context);
+    cairo_save(cr);
+
+    /* Get the picture. */
+    image = GTK_IMAGE(read_image(data->filename));
+    pixbuf = gtk_image_get_pixbuf(image);
+    if (pixbuf) {
+        g_object_ref(pixbuf);
+    } else {
+        g_warning("Filename '%s' cannot be read or understood.",
+                  data->filename);
+        pixbuf = gtk_widget_render_icon(GTK_WIDGET(image),
+                                        GTK_STOCK_MISSING_IMAGE,
+                                        -1, NULL);
+    }
+    pix_w = gdk_pixbuf_get_width(pixbuf);
+    pix_h = gdk_pixbuf_get_height(pixbuf);
+
+    /* Draw the enclosing rectangle */
+    if (data->w && data->h) {
+        cairo_rectangle(cr, data->x, data->y - data->h, data->w, data->h);
+        g_debug("Picture clip rectangle, user coords %f,%f, user size %f,%f",
+                data->x, data->y - data->h, data->w, data->h);
+    } else {
+        cairo_rectangle(cr, data->x, data->y - pix_h, pix_w, pix_h);
+        g_debug("Picture clip rectangle, user coords %f,%f, pic size %d,%d",
+                data->x, data->y - data->h, pix_w, pix_h);
+    }
+    cairo_clip_preserve(cr);
+
+    /* Scale down to fit.  Never scale up. */
+    scale_w = scale_h = 1;
+    if (data->w && (pix_w > data->w))
+        scale_w = data->w / pix_w;
+    if (data->h && (pix_h > data->h))
+        scale_h = data->h / pix_h;
+    scale = MIN(scale_w, scale_h);
+
+    if (scale != 1) {
+        scaled_pixbuf = gdk_pixbuf_scale_simple(pixbuf, pix_w * scale,
+                                                pix_h * scale,
+                                                GDK_INTERP_BILINEAR);
+        pix_h = gdk_pixbuf_get_height(scaled_pixbuf);
+        gdk_cairo_set_source_pixbuf(cr, scaled_pixbuf, data->x,
+                                    data->y - pix_h);
+        g_object_unref(scaled_pixbuf);
+    } else {
+        gdk_cairo_set_source_pixbuf(cr, pixbuf, data->x, data->y - pix_h);
+    }
+    g_object_unref(pixbuf);
+    cairo_paint(cr);
+
+    /* Clean up after ourselves */
+    cairo_restore(cr);
+    gtk_widget_destroy(GTK_WIDGET(image));
+}
+#endif
+
+
+#define DATE_FMT_HEIGHT 8
+#define DATE_FMT_SLOP   2
+
+/* There is a new Canadian requirement that all software that prints the date
+ * on a check must also print the format of that date underneath using a 6-8
+ * point font.  This function implements that requirement.  It requires the
+ * font description used in printing the date so that it can print in the same
+ * font using a smaller point size.  It also requires width of the printed
+ * date as an argument, allowing it to center the format string under the
+ * date.
+ *
+ * Note: This code only prints a date if the user has explicitly requested it
+ * via a preference (gconf) setting.  This is because gnucash has no way of
+ * knowing if the user's checks already have a date format printed on them.
+ */
+static void
+draw_date_format(GncPrintContext * context, const gchar *date_format,
+                 check_item_t * data, PangoFontDescription *default_desc,
+                 gdouble width)
+{
+#if USE_GTKPRINT
+    PangoFontDescription *date_desc;
+    check_item_t date_item;
+    gchar *text = NULL, *expanded = NULL;
+    const gchar *thislocale, *c;
+    GString *cdn_fmt;
+
+    thislocale = setlocale(LC_ALL, NULL);
+    if (!gnc_gconf_get_bool(GCONF_SECTION, KEY_PRINT_DATE_FMT, NULL))
+        return;
+
+    date_desc = pango_font_description_copy_static(default_desc);
+    pango_font_description_set_size(date_desc, DATE_FMT_HEIGHT * PANGO_SCALE);
+    date_item = *data;
+    date_item.y += (DATE_FMT_HEIGHT + DATE_FMT_SLOP);
+    date_item.w = width;
+    date_item.h = DATE_FMT_HEIGHT + DATE_FMT_SLOP;
+    date_item.align = PANGO_ALIGN_CENTER;
+
+    /* This is a date format string. It should only contain ascii. */
+    cdn_fmt = g_string_new_len(NULL, 50);
+    for (c = date_format; c && *c; ) {
+        if ((c[0] != '%') || (c[1] == '\0')) {
+            c += 1;
+            continue;
+        }
+        switch (c[1]) {
+            case 'F':
+                cdn_fmt = g_string_append(cdn_fmt, "YYYYMMDD");
+                break;
+            case 'Y':
+                cdn_fmt = g_string_append(cdn_fmt, "YYYY");
+                break;
+            case 'y':
+                cdn_fmt = g_string_append(cdn_fmt, "YY");
+                break;
+            case 'm':
+                cdn_fmt = g_string_append(cdn_fmt, "MM");
+                break;
+            case 'd':
+            case 'e':
+                cdn_fmt = g_string_append(cdn_fmt, "DD");
+                break;
+            case 'x':
+                expanded = g_strdup_printf("%s%s",
+                                           qof_date_format_get_string(QOF_DATE_FORMAT_LOCALE),
+                                           c + 2);
+                c = expanded;
+                continue;
+            default:
+                break;
+        }
+        c += 2;
+    }
+
+    text = g_string_free(cdn_fmt, FALSE);
+    draw_text(context, text, &date_item, date_desc);
+    g_free(text);     
+    if (expanded)
+        g_free(expanded);
+    pango_font_description_free(date_desc);
+#endif
+}
+
+
+/** Print each of the items that in the description of a single check.  This
+ *  function uses helper functions to print text based and picture based
+ *  items. */
+static void
+draw_page_items(GncPrintContext * context,
+                gint page_nr, check_format_t * format, gpointer user_data)
+{
+    PrintCheckDialog *pcd = (PrintCheckDialog *) user_data;
+    PangoFontDescription *default_desc;
+    Transaction *trans;
+    gnc_numeric amount;
+    GNCPrintAmountInfo info;
+    const gchar *date_format;
+    gchar *text = NULL, buf[100];
+    GSList *elem;
+    check_item_t *item;
+    gdouble width;
+    GDate *date;
+
+    trans = xaccSplitGetParent(pcd->split);
+    /* This was valid when the check printing dialog was instantiated. */
+    g_return_if_fail(trans);
+    amount = gnc_numeric_abs(xaccSplitGetAmount(pcd->split));
+
+    if (format->font)
+        default_desc = pango_font_description_from_string(format->font);
+    else
+        default_desc = pango_font_description_from_string(pcd->default_font);
+
+    /* Now put the actual data onto the page. */
+    for (elem = format->items; elem; elem = g_slist_next(elem)) {
+        item = elem->data;
+
+        switch (item->type) {
+            case DATE:
+                date = g_date_new();
+                g_date_set_time_t(date, xaccTransGetDate(trans));
+                date_format =
+                    gnc_date_format_get_custom(GNC_DATE_FORMAT
+                                               (pcd->date_format));
+                g_date_strftime(buf, 100, date_format, date);
+                width = draw_text(context, buf, item, default_desc);
+		draw_date_format(context, date_format, item, default_desc, width);
+                g_date_free(date);
+                break;
+
+            case PAYEE:
+                draw_text(context, xaccTransGetDescription(trans), item, default_desc);
+                break;
+
+            case NOTES:
+                draw_text(context, xaccTransGetNotes(trans), item, default_desc);
+                break;
+
+            case MEMO:
+                draw_text(context, xaccSplitGetMemo(pcd->split), item, default_desc);
+                break;
+
+            case ACTION:
+                draw_text(context, xaccSplitGetAction(pcd->split), item, default_desc);
+                break;
+
+            case CHECK_NUMBER:
+                draw_text(context, xaccTransGetNum(trans), item, default_desc);
+                break;
+
+            case AMOUNT_NUMBER:
+                info = gnc_default_print_info(FALSE);
+                draw_text(context, xaccPrintAmount(amount, info),
+                          item, default_desc);
+                break;
+
+            case AMOUNT_WORDS:
+                text = numeric_to_words(amount);
+                draw_text(context, text, item, default_desc);
+                g_free(text);
+                break;
+
+            case TEXT:
+                draw_text(context, item->text, item, default_desc);
+                break;
+
+#if USE_GTKPRINT
+            case PICTURE:
+                draw_picture(context, item);
+                break;
+#endif
+
+            default:
+                text = g_strdup_printf("(unknown check field, type %d)", item->type);
+                draw_text(context, text, item, default_desc);
+                g_free(text);
+        }
+    }
+
+    pango_font_description_free(default_desc);
+}
+
+
+#if USE_GTKPRINT
+/** Print each of the items that in the description of a single check.  This
+ *  function uses helper functions to print text based and picture based
+ *  items. */
+static void
+draw_page_boxes(GncPrintContext * context,
+                gint page_nr, check_format_t * format, gpointer user_data)
+{
+    cairo_t *cr;
+    GSList *elem;
+    check_item_t *item;
+
+    cr = gtk_print_context_get_cairo_context(context);
+
+    /* Now put the actual data onto the page. */
+    for (elem = format->items; elem; elem = g_slist_next(elem)) {
+        item = elem->data;
+        if (!item->w || !item->h)
+            continue;
+        cairo_rectangle(cr, item->x, item->y - item->h, item->w, item->h);
+        cairo_stroke(cr);
+    }
+}
+
+
+/** Print an entire page based upon the layout in a check description file.
+ *  This function takes care of translating/rotating the page, calling the function to print the grid
+ *  pattern (if requested), an
+
+each of the items that in the description of a single check.  This
+ *  function uses helper functions to print text based and picture based
+ *  items. */
+static void
+draw_page_format(GncPrintContext * context,
+                 gint page_nr, check_format_t * format, gpointer user_data)
+{
+    PrintCheckDialog *pcd = (PrintCheckDialog *) user_data;
+    cairo_t *cr;
+    gint i;
+    gdouble x, y, multip;
+
+    cr = gtk_print_context_get_cairo_context(context);
+    cairo_translate(cr, format->trans_x, format->trans_y);
+    g_debug("Page translated by %f,%f", format->trans_x, format->trans_y);
+    cairo_rotate(cr, format->rotation * DEGREES_TO_RADIANS);
+    g_debug("Page rotated by %f degrees", format->rotation);
+
+    /* The grid is useful when determining check layouts */
+    if (format->show_grid) {
+        draw_grid(context,
+                  gtk_print_context_get_width(context),
+                  gtk_print_context_get_height(context),
+                  pcd->default_font);
+    }
+
+    /* Translate all subsequent check items if requested. */
+    i = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
+    if ((i >= 0) && (i < pcd->position_max)) {
+        y = format->height * i;
+        cairo_translate(cr, 0, y);
+        g_debug("Position translated by %f (pre-defined)", y);
+    } else {
+        multip = pcd_get_custom_multip(pcd);
+        x = multip * gtk_spin_button_get_value(pcd->translation_x);
+        y = multip * gtk_spin_button_get_value(pcd->translation_y);
+        cairo_translate(cr, x, y);
+        g_debug("Position translated by %f (custom)", y);
+    }
+
+    /* Draw layout boxes if requested. Also useful when determining check
+     * layouts. */
+    if (format->show_boxes)
+      draw_page_boxes(context, page_nr, format, user_data);
+
+    /* Draw the actual check data. */
+    draw_page_items(context, page_nr, format, user_data);
+}
+
+#else
+
+static void
+draw_page_format(PrintSession * ps, check_format_t * format, gpointer user_data)
+{
+    PrintCheckDialog *pcd = (PrintCheckDialog *) user_data;
+    GnomePrintConfig *config;
+    gint i;
+    GSList *elem;
+    check_item_t *item;
+    gdouble width, height, x, y, multip;
+
+    config = gnome_print_job_get_config(ps->job);
+    gnome_print_job_get_page_size_from_config(config, &width, &height);
+
+    gnome_print_gsave(ps->context);
+    gnome_print_translate(ps->context, format->trans_x, format->trans_y);
+    g_debug("Page translated by %f,%f", format->trans_x, format->trans_y);
+    gnome_print_rotate(ps->context, format->rotation);
+    g_debug("Page rotated by %f degrees", format->rotation);
+
+    /* The grid is useful when determining check layouts */
+    if (format->show_grid) {
+        draw_grid(ps->context, width, height, pcd->default_font);
+    }
+
+    /* Translate all subsequent check items if requested. */
+    i = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
+    if ((i >= 0) && (i < pcd->position_max)) {
+        y = height - (format->height * (i + 1));
+        gnome_print_translate(ps->context, 0, y);
+        g_debug("Check translated by %f (pre-defined)", y);
+    } else {
+        multip = pcd_get_custom_multip(pcd);
+        x = multip * gtk_spin_button_get_value(pcd->translation_x);
+        y = multip * gtk_spin_button_get_value(pcd->translation_y);
+        gnome_print_translate(ps->context, x, y);
+        g_debug("Check translated by %f (custom)", y);
+    }
+
+    /* Draw layout boxes if requested. Also useful when determining check
+     * layouts. */
+    if (format->show_boxes) {
+        for (elem = format->items; elem; elem = g_slist_next(elem)) {
+            item = elem->data;
+            if (!item->w || !item->h)
+                continue;
+            gnome_print_rect_stroked(ps->context, item->x, item->y, item->w,
+                                     item->h);
+        }
+    }
+
+    draw_page_items(ps->context, 1, format, user_data);
+}
+#endif
+
+static void
+draw_page_custom(GncPrintContext * context, gint page_nr, gpointer user_data)
+{
+    PrintCheckDialog *pcd = (PrintCheckDialog *) user_data;
+    GNCPrintAmountInfo info;
+    PangoFontDescription *desc;
+    Transaction *trans;
+    gnc_numeric amount;
+#if USE_GTKPRINT
+    cairo_t *cr;
+#endif
+    const gchar *date_format;
+    gchar *text = NULL, buf[100];
+    check_item_t item = { 0 };
+    gdouble x, y, multip, degrees;
+    GDate *date;
+
+    trans = xaccSplitGetParent(pcd->split);
+    /* This was valid when the check printing dialog was instantiated. */
+    g_return_if_fail(trans);
+
+    desc = pango_font_description_from_string(pcd->default_font);
+
+    multip = pcd_get_custom_multip(pcd);
+    degrees = gtk_spin_button_get_value(pcd->check_rotation);
+#if USE_GTKPRINT
+    cr = gtk_print_context_get_cairo_context(context);
+    cairo_rotate(cr, degrees * DEGREES_TO_RADIANS);
+#else
+    gnome_print_rotate(context, degrees);
+#endif
+    g_debug("Page rotated by %f degrees", degrees);
+
+    x = multip * gtk_spin_button_get_value(pcd->translation_x);
+    y = multip * gtk_spin_button_get_value(pcd->translation_y);
+#if USE_GTKPRINT
+    cairo_translate(cr, x, y);
+#else
+    gnome_print_translate(context, x, y);
+#endif
+    g_debug("Page translated by %f,%f", x, y);
+
+    item.x = multip * gtk_spin_button_get_value(pcd->payee_x);
+    item.y = multip * gtk_spin_button_get_value(pcd->payee_y);
+    draw_text(context, xaccTransGetDescription(trans), &item, desc);
+
+    item.x = multip * gtk_spin_button_get_value(pcd->date_x);
+    item.y = multip * gtk_spin_button_get_value(pcd->date_y);
+    date = g_date_new();
+    g_date_set_time_t(date, xaccTransGetDate(trans));
+    date_format = gnc_date_format_get_custom(GNC_DATE_FORMAT(pcd->date_format));
+    g_date_strftime(buf, 100, date_format, date);
+    draw_text(context, buf, &item, desc);
+    g_date_free(date);
+
+    item.x = multip * gtk_spin_button_get_value(pcd->words_x);
+    item.y = multip * gtk_spin_button_get_value(pcd->words_y);
+    info = gnc_default_print_info(FALSE);
+    amount = gnc_numeric_abs(xaccSplitGetAmount(pcd->split));
+    draw_text(context, xaccPrintAmount(amount, info), &item, desc);
+
+    item.x = multip * gtk_spin_button_get_value(pcd->number_x);
+    item.y = multip * gtk_spin_button_get_value(pcd->number_y);
+    text = numeric_to_words(amount);
+    draw_text(context, text, &item, desc);
+    g_free(text);
+
+    item.x = multip * gtk_spin_button_get_value(pcd->notes_x);
+    item.y = multip * gtk_spin_button_get_value(pcd->notes_y);
+    draw_text(context, xaccTransGetNotes(trans), &item, desc);
+
+    pango_font_description_free(desc);
+}
+
+#if USE_GTKPRINT
+/* Print a page of checks. Today, check printing only prints one check at a
+ * time.  When its extended to print multiple checks, this will need to take
+ * into account the number of checks to print, the number of checks on a page,
+ * and the starting check position on the page. This function is called once
+ * by the GtkPrint code once for each page to be printed. */
+static void
+draw_page(GtkPrintOperation * operation,
+          GtkPrintContext * context, gint page_nr, gpointer user_data)
+{
+    PrintCheckDialog *pcd = (PrintCheckDialog *) user_data;
+    check_format_t *format;
+
+    format = pcd->selected_format;
+    if (format)
+        draw_page_format(context, page_nr, format, user_data);
+    else
+        draw_page_custom(context, page_nr, user_data);
+}
+
+
+/* Compute the number of pages required to complete this print operation.
+ * Today, check printing only prints one check at a time.  When its extended to 
+ * print multiple checks, this will need to take into account the number of
+ * checks to print, the number of checks on a page, and the starting check
+ * position on the page. This function is called once by the GtkPrint code to
+ * determine the number of pages required to complete the print operation. */
+static void
+begin_print(GtkPrintOperation * operation,
+            GtkPrintContext * context, gpointer user_data)
+{
+    gtk_print_operation_set_n_pages(operation, 1);
+}
+
+/********************************************************************\
  * gnc_ui_print_check_dialog_ok_cb
 \********************************************************************/
 
 static void
 gnc_ui_print_check_dialog_ok_cb(PrintCheckDialog * pcd)
 {
-  SCM        make_check_format = scm_c_eval_string("make-print-check-format");
-  SCM        print_check = scm_c_eval_string("gnc:print-check");
-  SCM        format_data;
-  SCM        fmt, posn, cust_format, date_format;
-  int        sel_option;
-  double     multip = 72.0;
+    GtkPrintOperation *print;
+    GtkPrintOperationResult res;
 
-  char       * formats[]   = { "quicken", "deluxe", "wallet", "custom" };
-  char       * positions[] = { "top", "middle", "bottom", "custom" };
+    print = gtk_print_operation_new();
 
-  sel_option = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->format_combobox));
-  if (-1 == sel_option)
-    return;
-  fmt = scm_str2symbol(formats[sel_option]);
+    G_LOCK(print_settings);
+    if (print_settings)
+        gtk_print_operation_set_print_settings(print, print_settings);
+    G_UNLOCK(print_settings);
 
-  sel_option = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
-  if (-1 == sel_option)
-    return;
-  posn = scm_str2symbol(positions[sel_option]);
+    gtk_print_operation_set_unit(print, GTK_UNIT_POINTS);
+    gtk_print_operation_set_use_full_page(print, TRUE);
+    g_signal_connect(print, "begin_print", G_CALLBACK(begin_print), NULL);
+    g_signal_connect(print, "draw_page", G_CALLBACK(draw_page), pcd);
 
-  sel_option = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->units_combobox));
-  switch(sel_option) {
-  case -1: return;
-  case 0:  multip = 72.0; break;   /* inches */
-  case 1:  multip = 28.346; break; /* cm */
-  case 2:  multip = 2.8346; break; /* mm */
-  case 3:  multip = 1.0; break;    /* points */
-  }
-    
-  date_format = scm_makfrom0str
-    (gnc_date_format_get_custom(GNC_DATE_FORMAT(pcd->date_format)));
-  
-  cust_format = 
-    SCM_LIST7
-    (scm_cons(scm_str2symbol("payee"),
-	      SCM_LIST2(scm_make_real(multip*gtk_spin_button_get_value(pcd->payee_x)),
-			scm_make_real(multip*gtk_spin_button_get_value(pcd->payee_y)))),
-     scm_cons(scm_str2symbol("date"),
-	      SCM_LIST2(scm_make_real(multip*gtk_spin_button_get_value(pcd->date_x)),
-			scm_make_real(multip*gtk_spin_button_get_value(pcd->date_y)))),
-     scm_cons(scm_str2symbol("amount-words"),
-	      SCM_LIST2(scm_make_real(multip*gtk_spin_button_get_value(pcd->words_x)),
-			scm_make_real(multip*gtk_spin_button_get_value(pcd->words_y)))),
-     scm_cons(scm_str2symbol("amount-number"),
-	      SCM_LIST2(scm_make_real(multip*gtk_spin_button_get_value(pcd->number_x)),
-			scm_make_real(multip*gtk_spin_button_get_value(pcd->number_y)))),
-     scm_cons(scm_str2symbol("memo"),
-	      SCM_LIST2(scm_make_real(multip*gtk_spin_button_get_value(pcd->memo_x)),
-			scm_make_real(multip*gtk_spin_button_get_value(pcd->memo_y)))),
-     scm_cons(scm_str2symbol("translate"),
-	      SCM_LIST2(scm_make_real(multip*gtk_spin_button_get_value(pcd->translation_x)),
-			scm_make_real(multip*gtk_spin_button_get_value(pcd->translation_y)))),
-     scm_cons(scm_str2symbol("rotate"),
-	      scm_make_real(gtk_spin_button_get_value(pcd->check_rotation))));
+    res = gtk_print_operation_run(print,
+                                  GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
+                                  pcd->caller_window, NULL);
 
-  /* hide the window */
-  gtk_widget_hide(pcd->dialog);
+    if (res == GTK_PRINT_OPERATION_RESULT_APPLY) {
+        G_LOCK(print_settings);
+        if (print_settings)
+            g_object_unref(print_settings);
+        print_settings = g_object_ref(gtk_print_operation_get_print_settings(print));
+        G_UNLOCK(print_settings);
+    }
 
-  /* now call the callback passed in from the scheme side with 
-     the format as an arg */
-  format_data = scm_apply(make_check_format,
-			  SCM_LIST4(fmt, posn, date_format, cust_format),
-			  SCM_EOL);
+    g_object_unref(print);
+}
 
-  scm_apply(print_check,
-	    SCM_LIST5(format_data,
-		      scm_makfrom0str(pcd->payee),
-		      scm_make_real(gnc_numeric_to_double (pcd->amount)),
-		      scm_ulong2num(pcd->date),
-		      scm_makfrom0str(pcd->memo)),
-	    SCM_EOL);
-  
+#else
+
+static void
+gnc_ui_print_check_dialog_ok_cb(PrintCheckDialog * pcd)
+{
+  PrintSession *ps;
+  GnomeFont *oldfont;
+  check_format_t *format;
+
+  ps = gnc_print_session_create(TRUE);
+  oldfont = ps->default_font;
+  ps->default_font = gnome_font_find_closest_from_full_name(pcd->default_font);
+  gnome_print_setfont(ps->context, ps->default_font);
+  g_object_unref(oldfont);
+
+  format = pcd->selected_format;
+  if (format) {
+    draw_page_format(ps, format, pcd);
+  } else {
+    draw_page_custom(ps->context, 1, pcd);
+  }
+
+  gnc_print_session_done(ps);
+  gnc_print_session_destroy(ps);
 }
+#endif
 
 
+
 static void
 gnc_print_check_set_sensitive (GtkWidget *widget, gpointer data)
 {
@@ -376,29 +2007,77 @@
 
 
 void
-gnc_print_check_combobox_changed (GtkComboBox *widget,
+gnc_print_check_position_changed (GtkComboBox *widget,
 				  PrintCheckDialog * pcd)
 {
   gboolean sensitive;
   gint value;
 
-  value = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->format_combobox));
+  value = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
   if (-1 == value)
     return;
-  sensitive = (value == (CHECK_PRINT_NUM_FORMATS - 1));
+  sensitive = (value == pcd->position_max);
+  gtk_widget_set_sensitive(GTK_WIDGET(pcd->translation_label), sensitive);
+  gtk_widget_set_sensitive(GTK_WIDGET(pcd->translation_x), sensitive);
+  gtk_widget_set_sensitive(GTK_WIDGET(pcd->translation_y), sensitive);
+}
+
+void
+gnc_print_check_format_changed (GtkComboBox *widget,
+                                PrintCheckDialog * pcd)
+{
+  GtkListStore *p_store;
+  GtkTreeModel *f_model;
+  GtkTreeIter f_iter;
+  gboolean sensitive;
+  gint pnum;
+  check_format_t *format;
+  gboolean separator;
+  GSList *elem;
+
+  if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(pcd->format_combobox), &f_iter))
+    return;
+  f_model = gtk_combo_box_get_model(GTK_COMBO_BOX(pcd->format_combobox));
+  gtk_tree_model_get(f_model, &f_iter, COL_DATA, &format, COL_SEP, &separator, -1);
+  if (separator)
+    return;
+
+  pnum = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
+
+  /* Update the positions combobox */
+  pcd->selected_format = format;
+  g_signal_handlers_block_by_func(pcd->position_combobox,
+                                  gnc_print_check_position_changed, pcd);
+  p_store = gtk_list_store_new (1, G_TYPE_STRING);
+  gtk_combo_box_set_model(GTK_COMBO_BOX(pcd->position_combobox),
+                          GTK_TREE_MODEL(p_store));
+  if (format) {
+    pcd->position_max = g_slist_length(format->positions); /* -1 for 0 base, +1 for custom entry */
+    for (elem = format->positions; elem; elem = g_slist_next(elem)) {
+      gtk_combo_box_append_text(GTK_COMBO_BOX(pcd->position_combobox), elem->data);
+    }
+  } else {
+    pcd->position_max = 0;
+  }
+  gtk_combo_box_append_text(GTK_COMBO_BOX(pcd->position_combobox), _("Custom"));
+  pnum = MIN(pnum, pcd->position_max);
+  gtk_combo_box_set_active(GTK_COMBO_BOX(pcd->position_combobox), pnum);
+  g_signal_handlers_unblock_by_func(pcd->position_combobox,
+                                    gnc_print_check_position_changed, pcd);
+
+  /* If there's only one thing in the position combobox, make it insensitive */
+  sensitive = (pcd->position_max > 0);
+  gtk_widget_set_sensitive(GTK_WIDGET(pcd->position_combobox), sensitive);
+  
+  /* Update the custom page */
+  sensitive = (!separator && !format);
   gtk_container_foreach(GTK_CONTAINER(pcd->custom_table),
 			gnc_print_check_set_sensitive,
 			GINT_TO_POINTER(sensitive));
   if (sensitive == TRUE)
     return;
   
-  value = gtk_combo_box_get_active(GTK_COMBO_BOX(pcd->position_combobox));
-  if (-1 == value)
-    return;
-  sensitive = (value == (CHECK_PRINT_NUM_POSITIONS - 1));
-  gtk_widget_set_sensitive(GTK_WIDGET(pcd->translation_label), sensitive);
-  gtk_widget_set_sensitive(GTK_WIDGET(pcd->translation_x), sensitive);
-  gtk_widget_set_sensitive(GTK_WIDGET(pcd->translation_y), sensitive);
+  gnc_print_check_position_changed(widget, pcd);
 }
 
 void
@@ -414,7 +2093,8 @@
     case GTK_RESPONSE_OK:
       gnc_ui_print_check_dialog_ok_cb(pcd);
       gnc_ui_print_save_dialog(pcd);
-      /* fall through */
+      gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
+      break;
 
     case GTK_RESPONSE_CANCEL:
       gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(dialog));
@@ -423,5 +2103,6 @@
 
   gtk_widget_destroy(pcd->dialog);
   g_object_unref(pcd->xml);
+  g_free(pcd->default_font);
   g_free(pcd);
 }

Modified: gnucash/branches/gda-dev/src/gnome/dialog-print-check.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-print-check.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-print-check.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,10 +31,7 @@
 typedef struct _print_check_dialog PrintCheckDialog;
 
 void gnc_ui_print_check_dialog_create(GncPluginPageRegister *plugin_page,
-				      const char    *payee,
-				      gnc_numeric    amount,
-				      time_t         date,
-				      const char    *memo);
+                                      Split *split);
 void gnc_ui_print_check_dialog_destroy(PrintCheckDialog * pcd);
 
 #endif

Deleted: gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,2598 +0,0 @@
-/********************************************************************\
- * dialog-scheduledxaction.c : dialog for scheduled transaction     *
- *    list and editor                                               *
- * Copyright (C) 2001,2002,2006 Joshua Sled <jsled at asynchronous.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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
-\********************************************************************/
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
-#include "glib-compat.h"
-#include <locale.h>
-#include <time.h>
-
-#include "qof.h"
-#include "gnc-book.h"
-#include "Account.h"
-#include "FreqSpec.h"
-#include "SchedXaction.h"
-#include "SX-book.h"
-#include "SX-book-p.h"
-#include "dialog-preferences.h"
-#include "dialog-scheduledxaction.h"
-#include "dialog-utils.h"
-#include "gnc-book.h"
-#include "gnc-component-manager.h"
-#include "gnc-date.h"
-#include "gnc-date-edit.h"
-#include "gnc-dense-cal.h"
-#include "gnc-embedded-window.h"
-#include "gnc-engine.h"
-#include "gnc-frequency.h"
-#include "gnc-gconf-utils.h"
-#include "gnc-gui-query.h"
-#include "gnc-hooks.h"
-#include "gnc-ledger-display.h"
-#include "gnc-plugin-page.h"
-#include "gnc-plugin-page-register.h"
-#include "gnc-ui.h"
-#include "gnc-ui-util.h"
-#include "gnucash-sheet.h"
-
-#include "gnc-split-reg.h"
-
-/* FIXME: temp until variable-related-stuff settled. */
-#include "dialog-sxsincelast.h"
-
-#ifdef HAVE_LANGINFO_D_FMT
-#include <langinfo.h>
-#endif
-
-static QofLogModule log_module = GNC_MOD_SX;
-
-static gint _sx_engine_event_handler_id = -1;
-
-#define SX_LIST_GCONF_SECTION "dialogs/scheduled_trans/transaction_list"
-#define SX_LIST_WIN_PREFIX "sx_list_win"
-#define SX_LIST_GLADE_NAME "Scheduled Transaction List"
-#define SX_LIST "sched_xact_list"
-#define SX_LIST_EDIT_BUTTON "edit_button"
-#define SX_LIST_DELETE_BUTTON "delete_button"
-#define SX_LIST_UPCOMING_BOX "upcoming_cal_hbox"
-#define SX_EDITOR_GLADE_NAME "Scheduled Transaction Editor"
-
-#define SXED_WIN_PREFIX "sx_editor_win"
-#define SXED_NAME_ENTRY "sxe_name"
-#define SXED_LAST_OCCUR_LABEL "last_occur_label"
-#define AUTOCREATE_OPT "autocreate_opt"
-#define NOTIFY_OPT "notify_opt"
-#define ADVANCE_OPT "advance_opt"
-#define ADVANCE_DAYS_SPIN "advance_days"
-#define REMIND_OPT "remind_opt"
-#define REMIND_DAYS_SPIN "remind_days"
-#define END_DATE_BOX "end_date_hbox"
-#define END_SPIN "end_spin"
-#define REMAIN_SPIN "remain_spin"
-
-#define SX_GLADE_FILE "sched-xact.glade"
-
-#define END_NEVER_OPTION 0
-#define END_DATE_OPTION  1
-#define NUM_OCCUR_OPTION 2
-
-#define NUM_LEDGER_LINES_DEFAULT 6
-
-#define EX_CAL_NUM_MONTHS 6
-#define EX_CAL_MO_PER_COL 2
-
-#define GNC_D_WIDTH 25
-#define GNC_D_BUF_WIDTH 26
-
-/** Datatypes ***********************************************************/
-
-typedef enum _EndTypeEnum {
-        END_NEVER,
-        END_DATE,
-        END_OCCUR,
-} EndType;
-
-/* Runtime/dialog information about a particular SX. */
-typedef struct _SxRuntimeInfo
-{
-        SchedXaction *sx;
-        // the gnc-dense-cal mark-tag
-        gint         markTag;
-        // which row in the GTK CList this SX is.
-        gint         row;
-} SxRuntimeInfo;
-
-struct _SchedXactionDialog
-{
-        GtkWidget   *dialog;
-        GladeXML    *gxml;
-        GncDenseCal *gdcal;
-        GHashTable  *sxData;
-
-        gint        currentSortCol;
-        GtkSortType currentSortType;
-};
-
-struct _SchedXactionEditorDialog
-{
-        GladeXML *gxml;
-        GtkWidget *dialog;
-        SchedXactionDialog *sxd;
-        SchedXaction *sx;
-        /* If this is a new scheduled transaction or not. */
-        int newsxP;
-
-        /* The various widgets in the dialog */
-        GNCLedgerDisplay *ledger;
-
-        GNCFrequency *gncfreq;
-        GncDenseCal *example_cal;
-        GDate **cal_marks;
-        gint markId;
-
-        GtkEditable *nameEntry;
-
-        GtkLabel *lastOccurLabel;
-
-        GtkToggleButton *autocreateOpt;
-        GtkToggleButton *notifyOpt;
-        GtkToggleButton *advanceOpt;
-        GtkSpinButton *advanceSpin;
-        GtkToggleButton *remindOpt;
-        GtkSpinButton *remindSpin;
-
-        GtkToggleButton *optEndDate;
-        GtkToggleButton *optEndNone;
-        GtkToggleButton *optEndCount;
-        GtkEntry *endCountSpin;
-        GtkEntry *endRemainSpin;
-        GNCDateEdit *endDateEntry;
-
-        char *sxGUIDstr;
-
-        GncEmbeddedWindow *embed_window;
-	GncPluginPage *plugin_page;
-};
-
-/** Prototypes **********************************************************/
-
-static void putSchedXactionInDialog( gpointer data, gpointer user_data );
-
-static void generate_instances( SchedXaction *sx,
-                                GDate *end, GList **instanceList );
-
-static void schedXact_populate( SchedXactionDialog * );
-static void schedXact_editor_create_freq_sel( SchedXactionEditorDialog *sxed );
-static void schedXact_editor_create_ledger( SchedXactionEditorDialog *sxed );
-static void schedXact_editor_populate( SchedXactionEditorDialog * );
-
-static void sxd_close_handler ( gpointer user_data );
-
-static void new_button_clicked( GtkButton *b, gpointer d );
-static void edit_button_clicked( GtkButton *b, gpointer d );
-static void delete_button_clicked( GtkButton *b, gpointer d );
-static void close_button_clicked( GtkButton *b, gpointer d );
-static void gnc_sxl_record_size( SchedXactionDialog *sxd );
-static void gnc_sxd_row_click_handler( GtkCList *clist,
-                                       gint col,
-                                       gpointer ud );
-static void gnc_sxd_set_sort_compare( GtkCList *cl, gint col );
-static gint gnc_sxd_clist_compare_sx_name( GtkCList *cl,
-                                           gconstpointer a,
-                                           gconstpointer b );
-static gint gnc_sxd_clist_compare_sx_freq( GtkCList *cl,
-                                           gconstpointer a,
-                                           gconstpointer b );
-static gint gnc_sxd_clist_compare_sx_next_occur( GtkCList *cl,
-                                                 gconstpointer a,
-                                                 gconstpointer b );
-
-static void gnc_sxed_record_size( SchedXactionEditorDialog *sxed );
-static void gnc_sxed_get_widgets( SchedXactionEditorDialog *sxed );
-static void endgroup_rb_toggled( GtkButton *b, gpointer d );
-static void set_endgroup_toggle_states( SchedXactionEditorDialog *sxed, EndType t );
-static void advance_toggle( GtkButton *b, SchedXactionEditorDialog *sxed );
-static gboolean gnc_sxed_check_consistent( SchedXactionEditorDialog *sxed );
-static gboolean gnc_sxed_check_changed( SchedXactionEditorDialog *sxed );
-static void free_keys_and_numerics_ea( gpointer key,
-                                       gpointer value,
-                                       gpointer user_data );
-static void gnc_sxed_save_sx( SchedXactionEditorDialog *sxed );
-static void gnc_sxed_freq_changed( GNCFrequency *gf, gpointer ud );
-static void sxed_excal_update_adapt( GtkObject *o, gpointer ud );
-static void gnc_sxed_update_cal( SchedXactionEditorDialog *sxed );
-
-static void gnc_sxed_reg_check_close(SchedXactionEditorDialog *sxed);
-
-static gint sxed_close_event( GtkDialog *dlg, gpointer ud );
-
-static gboolean sxed_confirmed_cancel( SchedXactionEditorDialog *sxed );
-
-static gboolean editor_component_sx_equality( gpointer find_data,
-                                              gpointer user_data );
-
-static SxRuntimeInfo* _new_sx_runtime_info( SchedXaction *sx );
-static void _clear_runtime_info_row( gpointer key, gpointer value, gpointer user_data );
-
-
-static GtkActionEntry gnc_sxed_menu_entries [] =
-{
-	{ "EditAction", NULL, N_("_Edit"), NULL, NULL, NULL },
-	{ "TransactionAction", NULL, N_("_Transaction"), NULL, NULL, NULL },
-	{ "ViewAction", NULL, N_("_View"), NULL, NULL, NULL },
-	{ "ActionsAction", NULL, N_("_Actions"), NULL, NULL, NULL },
-};
-static guint gnc_sxed_menu_n_entries = G_N_ELEMENTS (gnc_sxed_menu_entries);
-
-/** Implementations *****************************************************/
-
-static
-void
-sxd_close_handler (gpointer user_data)
-{
-        SchedXactionDialog        *sxd = user_data;
-        gnc_sxl_record_size(sxd);
-        gtk_widget_hide(sxd->dialog);
-        gtk_widget_destroy(sxd->dialog);
-}
-
-static
-void
-_clear_runtime_info_row( gpointer key, gpointer value, gpointer user_data )
-{
-        SxRuntimeInfo *sxri;
-        sxri = (SxRuntimeInfo*)value;
-        sxri->row = -1;
-}
-
-void
-gnc_sxd_list_refresh( SchedXactionDialog *sxd )
-{
-        GList *sxList;
-        GtkCList *cl;
-	GtkWidget *widget;
-
-	widget = glade_xml_get_widget( sxd->gxml, SX_LIST_EDIT_BUTTON );
-	gtk_widget_set_sensitive(widget, FALSE);
-	widget = glade_xml_get_widget( sxd->gxml, SX_LIST_DELETE_BUTTON );
-	gtk_widget_set_sensitive(widget, FALSE);
-
-        /* Update the clist. */
-        cl = GTK_CLIST( glade_xml_get_widget( sxd->gxml, SX_LIST ) );
-        gtk_clist_freeze( cl );
-
-        gtk_clist_clear( cl );
-        // Also, flush the row-numbers from storage
-        g_hash_table_foreach( sxd->sxData, _clear_runtime_info_row, NULL );
-        sxList = gnc_book_get_schedxactions( gnc_get_current_book() );
-        g_list_foreach( sxList, putSchedXactionInDialog, sxd );
-
-        gtk_clist_thaw( cl );
-}
-
-static
-void
-sxed_close_handler ( gpointer user_data )
-{
-        SchedXactionEditorDialog *sxed = user_data;
-
-        gnc_sxed_reg_check_close( sxed );
-        gnc_sxed_record_size( sxed );
-        gtk_widget_destroy( sxed->dialog );
-        /* The data will be cleaned up in the destroy handler. */
-}
-
-static
-void
-close_button_clicked( GtkButton *b, gpointer d )
-{
-        sxd_close_handler( d );
-}
-
-/**
- * @return TRUE if the user does want to cancel, FALSE if not.  If TRUE is
- * returned, the register's changes have been cancelled.
- **/
-static
-gboolean
-sxed_confirmed_cancel( SchedXactionEditorDialog *sxed )
-{
-        SplitRegister *reg;
-
-        reg = gnc_ledger_display_get_split_register( sxed->ledger );
-        /* check for changes */
-        if ( gnc_sxed_check_changed( sxed ) ) {
-                const char *sx_changed_msg =
-                        _( "This SX has changed; are you "
-                           "sure you want to cancel?" );
-                if (!gnc_verify_dialog(sxed->dialog, FALSE, sx_changed_msg)) {
-                        return FALSE;
-                }
-        }
-        /* cancel ledger changes */
-        gnc_split_register_cancel_cursor_trans_changes( reg );
-        return TRUE;
-}
-
-static
-void
-editor_cancel_button_clicked( GtkButton *b, SchedXactionEditorDialog *sxed )
-{
-        /* close */
-        gnc_close_gui_component_by_data( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
-                                         sxed );
-}
-
-static
-void
-editor_help_button_clicked(GtkButton *b, SchedXactionEditorDialog *sxed)
-{
-	gnc_gnome_help(HF_HELP, HL_SXEDITOR);
-}
-
-static void
-set_var_to_random_value( gpointer key, gpointer value, gpointer ud )
-{
-        if ( !value ) {
-                value = g_new0( gnc_numeric, 1 );
-        }
-        *(gnc_numeric*)value =
-                double_to_gnc_numeric( rand() + 2, 1,
-                                       GNC_NUMERIC_RND_MASK
-                                       | GNC_RND_FLOOR );
-        g_hash_table_insert( ud, key, value );
-}
-
-static
-void
-free_keys_and_numerics_ea( gpointer key, gpointer val, gpointer ud )
-{
-        g_assert( key );
-        g_assert( val );
-        g_free( (gchar*)key );
-        g_free( (gnc_numeric*)val );
-}
-
-static
-void
-editor_ok_button_clicked( GtkButton *b, SchedXactionEditorDialog *sxed )
-{
-        GNCBook *book;
-        GList *sxList;
-
-        if ( !gnc_sxed_check_consistent( sxed ) ) 
-                return;
-
-        gnc_sxed_save_sx( sxed );
-
-        /* add to list */
-        if ( sxed->newsxP ) {
-                book = gnc_get_current_book ();
-                sxList = gnc_book_get_schedxactions( book );
-                sxList = g_list_append( sxList, sxed->sx );
-                gnc_book_set_schedxactions( book, sxList );
-                sxed->newsxP = FALSE;
-        }
-
-        /* update lists */
-        /* We now do this by getting the list of SX Lists and updating them
-           [if they exist].  Otherwise, our pointer to our SXD might not be
-           valid; see Bug#103629. */
-        {
-                GList *listDialogs, *ldIter;
-                listDialogs =
-                        gnc_find_gui_components( DIALOG_SCHEDXACTION_CM_CLASS,
-                                                 NULL, NULL );
-                for ( ldIter = listDialogs;
-                      ldIter != NULL;
-                      ldIter = ldIter->next )
-                {
-                        gnc_sxd_list_refresh( (SchedXactionDialog*)ldIter
-                                              ->data );
-                }
-                if ( listDialogs != NULL )
-                {
-                        g_list_free( listDialogs );
-                }
-        }
-
-        /* cleanup */
-        gnc_close_gui_component_by_data( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
-                                         sxed );
-}
-
-/**
- * Checks to see if the SX has been modified from it's previously-saved
- * state.
- * @return TRUE if this is a 'new' SX, or if the SX has changed from it's
- *   previous configuration.
- **/
-static
-gboolean
-gnc_sxed_check_changed( SchedXactionEditorDialog *sxed )
-{
-        if ( sxed->newsxP )
-                return TRUE;
-
-        /* name */
-        {
-                char *name;
-
-                name = gtk_editable_get_chars( GTK_EDITABLE(sxed->nameEntry), 0, -1 );
-                if ( strlen(name) == 0 ) {
-                        return TRUE;
-                        
-                }
-                if ( (xaccSchedXactionGetName(sxed->sx) == NULL)
-                     || (strcmp( xaccSchedXactionGetName(sxed->sx),
-                                 name ) != 0) ) {
-                        return TRUE;
-                }
-        }
-
-        /* end options */
-        {
-                /* dialog says... no end */
-                if ( gtk_toggle_button_get_active( sxed->optEndNone ) ) {
-                        if ( xaccSchedXactionHasEndDate(sxed->sx)
-                             || xaccSchedXactionHasOccurDef(sxed->sx) ) {
-                                return TRUE;
-                        }
-                }
-
-                /* dialog says... end date */
-                if ( gtk_toggle_button_get_active( sxed->optEndDate ) ) {
-                        GDate sxEndDate, dlgEndDate;
-
-                        if ( ! xaccSchedXactionHasEndDate( sxed->sx ) ) {
-                                return TRUE;
-                        }
-                        sxEndDate = *xaccSchedXactionGetEndDate( sxed->sx );
-                        g_date_set_time_t( &dlgEndDate,
-					   gnc_date_edit_get_date( sxed->
-								   endDateEntry ) );
-
-                        if ( g_date_compare( &sxEndDate, &dlgEndDate ) != 0 ) {
-                                return TRUE;
-                        }
-                }
-
-                /* dialog says... num occur */
-                if ( gtk_toggle_button_get_active( sxed->optEndCount ) ) {
-                        gint sxNumOccur, sxNumRem, dlgNumOccur, dlgNumRem;
-
-                        if ( ! xaccSchedXactionGetNumOccur( sxed->sx ) ) {
-                                return TRUE;
-                        }
-
-			dlgNumOccur  =
-			  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endCountSpin) );
-
-			dlgNumRem =
-			  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
-
-                        sxNumOccur = xaccSchedXactionGetNumOccur( sxed->sx );
-                        sxNumRem = xaccSchedXactionGetRemOccur( sxed->sx );
-
-                        if ( (dlgNumOccur != sxNumOccur)
-                             || (dlgNumRem != sxNumRem) ) {
-                                return TRUE;
-                        }
-                }
-        }
-
-        /* SX options [autocreate, notify, reminder, advance] */
-        {
-                gboolean dlgAutoCreate, dlgNotify, sxAutoCreate, sxNotify;
-                gint dlgAdvance, sxAdvance;
-                gint dlgRemind, sxRemind;
-
-                dlgAutoCreate =
-                        gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->
-                                                                        autocreateOpt) );
-                dlgNotify =
-                        gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->
-                                                                        notifyOpt) );
-
-                xaccSchedXactionGetAutoCreate( sxed->sx, &sxAutoCreate, &sxNotify );
-                if ( ! ((dlgAutoCreate == sxAutoCreate)
-                        && (dlgNotify == sxNotify)) ) {
-                        return TRUE;
-                }
-
-                dlgAdvance = 0;
-                if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->advanceOpt) ) ) {
-                        dlgAdvance =
-                                gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(sxed->
-                                                                                  advanceSpin) );
-                }
-                sxAdvance = xaccSchedXactionGetAdvanceCreation( sxed->sx );
-                if ( dlgAdvance != sxAdvance ) {
-                        return TRUE;
-                }
-
-                dlgRemind = 0;
-                if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->remindOpt) ) ) {
-                        dlgRemind =
-                                gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(sxed->remindSpin) );
-                }
-                sxRemind = xaccSchedXactionGetAdvanceReminder( sxed->sx );
-                if ( dlgRemind != sxRemind ) {
-                        return TRUE;
-                }
-        }
-
-        /* FS, startdate */
-        {
-                FreqSpec *dlgFS, *sxFS;
-                GDate dlgStartDate, sxStartDate;
-                GString *dlgFSstr, *sxFSstr;
-                gboolean fsStrCmpResult;
-
-                dlgFS = xaccFreqSpecMalloc( gnc_get_current_book() );
-                /* save gncFreq data */
-                gnc_frequency_save_state( sxed->gncfreq, dlgFS, &dlgStartDate );
-                dlgFSstr = g_string_sized_new( 16 );
-                xaccFreqSpecGetFreqStr( dlgFS, dlgFSstr );
-                /* get SX startdate/fs data */
-                sxStartDate = *xaccSchedXactionGetStartDate( sxed->sx );
-                sxFS = xaccSchedXactionGetFreqSpec( sxed->sx );
-                sxFSstr = g_string_sized_new( 16 );
-                xaccFreqSpecGetFreqStr( sxFS, sxFSstr );
-                /* compare */
-
-                fsStrCmpResult = /* lame version of comparison */
-                        (strcmp( dlgFSstr->str, sxFSstr->str) != 0);
-                g_string_free( dlgFSstr, TRUE );
-                g_string_free( sxFSstr, TRUE );
-                xaccFreqSpecFree( dlgFS );
-
-                if ( (g_date_compare(&dlgStartDate, &sxStartDate) != 0)
-                     ||  fsStrCmpResult ) {
-                        return TRUE;
-                }
-        }
-
-        /* template transactions */
-        {
-                SplitRegister *sr =
-                        gnc_ledger_display_get_split_register( sxed->ledger );
-
-                if ( gnc_split_register_changed( sr ) ) {
-                        return TRUE;
-                }
-        }
-        return FALSE;
-}
-
-
-/**
- * Holds the credit- and debit-sum for a given Transaction, as used in
- * gnc_sxed_check_consistent.
- **/
-typedef struct _txnCreditDebitSums {
-  gnc_numeric creditSum;
-  gnc_numeric debitSum;
-} txnCreditDebitSums;
-
-static
-void
-set_sums_to_zero( gpointer key,
-                  gpointer val,
-                  gpointer ud )
-{
-  txnCreditDebitSums *tcds = (txnCreditDebitSums*)val;
-  tcds->creditSum = gnc_numeric_zero();
-  tcds->debitSum  = gnc_numeric_zero();
-}
-
-static
-void
-free_sums( gpointer key,
-           gpointer val,
-           gpointer ud )
-{
-  txnCreditDebitSums *tcds = (txnCreditDebitSums*)val;
-  g_free( tcds );
-}
-
-static
-void
-check_credit_debit_balance( gpointer key,
-                            gpointer val,
-                            gpointer ud )
-{
-        txnCreditDebitSums *tcds = (txnCreditDebitSums*)val;
-        gboolean *unbalanced = (gboolean*)ud;
-        *unbalanced |= !(gnc_numeric_zero_p(
-                                 gnc_numeric_sub_fixed( tcds->debitSum,
-                                                        tcds->creditSum ) ));
-#if GNC_DEBUG
-
-        if ( gnc_numeric_zero_p( gnc_numeric_sub_fixed( tcds->debitSum,
-                                                        tcds->creditSum ) ) ) {
-                DEBUG( "%.8x | true [%s - %s = %s]",
-                        (unsigned int)key,
-                        gnc_numeric_to_string( tcds->debitSum ),
-                        gnc_numeric_to_string( tcds->creditSum ),
-                        gnc_numeric_to_string(gnc_numeric_sub_fixed( tcds->debitSum,
-                                                                     tcds->creditSum )) );
-        } else {
-                DEBUG( "%.8x | false [%s - %s = %s]",
-                        (unsigned int)key,
-                        gnc_numeric_to_string( tcds->debitSum ),
-                        gnc_numeric_to_string( tcds->creditSum ),
-                        gnc_numeric_to_string(gnc_numeric_sub_fixed( tcds->debitSum,
-                                                                     tcds->creditSum )) );
-        }
-#endif /* GNC_DEBUG */
-}
-
-/**
- * Checks to make sure that the SX is in a reasonable state to save.
- * @return true if checks out okay, false otherwise.
- **/
-static
-gboolean
-gnc_sxed_check_consistent( SchedXactionEditorDialog *sxed )
-{
-        gboolean multi_commodity = FALSE;
-        gnc_commodity *base_cmdty = NULL;
-        gint ttVarCount, splitCount;
-        FreqSpec *fs;
-
-        /* Do checks on validity and such, interrupting the user if
-         * things aren't right.
-         *
-         * Features...
-         * X support formulas [?!]
-         * X balancing the SX if contain numeric-only formula data.
-         *   X agreement with create-automagically/notification controls
-         * X the 'will ever be valid' check should take num-occur vals into
-         *   account.
-         * X SX name is unique
-         * X SX has a name
-         * X "weekly" FS has some days set.
-         * X "once" with reasonable start/end dates.
-         *   X This doesn't work at the time the 'weekly' one was fixed with
-         *     user-confirmation, below; the once SX is always valid.
-         * [X more generically, creating a "not scheduled" SX is probably not
-         *   right... ]
-         */
-
-        ttVarCount = 0;
-        splitCount = 0;
-        {
-                static const int NUM_ITERS_WITH_VARS = 5;
-                static const int NUM_ITERS_NO_VARS = 1;
-                int numIters, i;
-                GHashTable *vars, *txns;
-                GList *splitList = NULL;
-                char *str;
-                kvp_frame *f;
-                kvp_value *v;
-                Split *s;
-                Transaction *t;
-                gnc_numeric tmp;
-                gboolean unbalanceable;
-                gpointer unusedKey, unusedValue;
-
-                unbalanceable = FALSE; /* innocent until proven guilty */
-                vars = g_hash_table_new( g_str_hash, g_str_equal );
-                txns = g_hash_table_new( g_direct_hash, g_direct_equal );
-                numIters = NUM_ITERS_NO_VARS;
-                /**
-                 * Plan:
-                 * . Do a first pass to get the variables.
-                 * . Set each variable to random values.
-                 * . see if we balance after that
-                 *   . true: all good
-                 *   . false: indicate to user, allow decision.
-                 */
-
-                /* FIXME: This _really_ shouldn't require a modification of the
-                 * SX just to get the var names... */
-                gnc_split_register_save ( gnc_ledger_display_get_split_register(sxed->ledger),
-                                          FALSE );
-                /* numeric-formulas-get-balanced determination */
-                sxsl_get_sx_vars( sxed->sx, vars );
-
-                ttVarCount = g_hash_table_size( vars );
-                if ( ttVarCount != 0 ) {
-                        /* balance with random variable bindings some number
-                         * of times in an attempt to ferret out
-                         * un-balanceable transactions.
-                         * 
-                         * NOTE: The Real Way to do this is with some
-                         * symbolic math to eliminate the variables.  This is
-                         * hard, and we don't do it.  This solution will
-                         * suffice for now, and perhaps for the lifetime of
-                         * the software. --jsled */
-                        numIters = NUM_ITERS_WITH_VARS;
-                }
-
-                srand(time(NULL));
-                for ( i=0; i < numIters && !unbalanceable; i++ ) {
-                        g_hash_table_foreach( vars, set_var_to_random_value,
-                                              (gpointer)vars );
-                        g_hash_table_foreach( txns, set_sums_to_zero, NULL );
-                        tmp = gnc_numeric_zero();
-
-                        splitList = xaccSchedXactionGetSplits( sxed->sx );
-                        splitCount += g_list_length( splitList );
-
-                        for ( ; splitList; splitList = splitList->next )
-                        {
-                                GUID *acct_guid;
-                                Account *acct;
-                                gnc_commodity *split_cmdty;
-                                txnCreditDebitSums *tcds;
-
-                                s = (Split*)splitList->data;
-                                t = xaccSplitGetParent( s );
-
-                                if ( !(tcds =
-                                       (txnCreditDebitSums*)g_hash_table_lookup( txns,
-                                                                                 (gpointer)t )) )
-                                {
-                                        tcds = g_new0( txnCreditDebitSums, 1 );
-                                        tcds->creditSum = gnc_numeric_zero();
-                                        tcds->debitSum  = gnc_numeric_zero();
-                                        g_hash_table_insert( txns, (gpointer)t, (gpointer)tcds );
-                                }
-
-                                f = xaccSplitGetSlots( s );
-
-                                /* contains the guid of the split's actual account. */
-                                v = kvp_frame_get_slot_path(f,
-                                                            GNC_SX_ID,
-                                                            GNC_SX_ACCOUNT,
-                                                            NULL);
-                                acct_guid = kvp_value_get_guid( v );
-                                acct = xaccAccountLookup( acct_guid, gnc_get_current_book ());
-                                split_cmdty = xaccAccountGetCommodity(acct);
-                                if (base_cmdty == NULL)
-                                {
-                                        base_cmdty = split_cmdty;
-                                }
-                                multi_commodity |= !gnc_commodity_equal(split_cmdty, base_cmdty);
-                                        
-                                v = kvp_frame_get_slot_path( f,
-                                                             GNC_SX_ID,
-                                                             GNC_SX_CREDIT_FORMULA,
-                                                             NULL );
-                                if ( v
-                                     && (str = kvp_value_get_string(v))
-                                     && strlen( str ) != 0 ) {
-                                        if ( parse_vars_from_formula( str, vars, &tmp ) < 0 ) {
-                                                GString *errStr;
-
-                                                errStr = g_string_sized_new( 32 );
-                                                g_string_printf( errStr,
-                                                                 _( "Couldn't parse credit formula for "
-                                                                    "split \"%s\"." ),
-                                                                 xaccSplitGetMemo( s ) );
-                                                gnc_error_dialog( GTK_WIDGET(sxed->dialog),
-                                                                  errStr->str );
-                                                g_string_free( errStr, TRUE );
-
-                                                return FALSE;
-                                        }
-                                        tcds->creditSum =
-                                                gnc_numeric_add( tcds->creditSum, tmp, 100,
-                                                                 (GNC_DENOM_AUTO | GNC_DENOM_LCD) );
-                                        tmp = gnc_numeric_zero();
-                                }
-                                v = kvp_frame_get_slot_path( f,
-                                                             GNC_SX_ID,
-                                                             GNC_SX_DEBIT_FORMULA,
-                                                             NULL );
-                                if ( v
-                                     && (str = kvp_value_get_string(v))
-                                     && strlen(str) != 0 ) {
-                                        if ( parse_vars_from_formula( str, vars, &tmp ) < 0 ) {
-                                                GString *errStr;
-
-                                                errStr = g_string_sized_new( 32 );
-                                                g_string_printf( errStr,
-                                                                 _( "Couldn't parse debit formula for "
-                                                                    "split \"%s\"." ),
-                                                                 xaccSplitGetMemo( s ) );
-                                                gnc_error_dialog( GTK_WIDGET(sxed->dialog),
-                                                                  (gchar*)errStr->str );
-                                                g_string_free( errStr, TRUE );
-
-                                                return FALSE;
-                                        }
-                                        tcds->debitSum = gnc_numeric_add( tcds->debitSum, tmp, 100,
-                                                                          (GNC_DENOM_AUTO | GNC_DENOM_LCD) );
-                                        tmp = gnc_numeric_zero();
-                                }
-                        }
-
-                        g_hash_table_foreach( txns,
-                                              check_credit_debit_balance,
-                                              &unbalanceable );
-                }
-
-                /* Subtract out pre-defined vars */
-                if ( g_hash_table_lookup_extended( vars, "i",
-                                                   &unusedKey,
-                                                   &unusedValue ) ) {
-                        ttVarCount -= 1;
-                }
-
-                g_hash_table_foreach( vars,
-                                      free_keys_and_numerics_ea,
-                                      NULL );
-                g_hash_table_destroy( vars );
-
-                g_hash_table_foreach( txns, free_sums, NULL );
-                g_hash_table_destroy( txns );
-
-                if ( unbalanceable
-                     && !gnc_verify_dialog( sxed->dialog, FALSE,
-					    "%s",
-					    _("The Scheduled Transaction Editor "
-					      "cannot automatically balance "
-					      "this transaction. "
-					      "Should it still be "
-					      "entered?") ) ) {
-                        return FALSE;
-                }
-        }
-
-        /* read out data back into SchedXaction object. */
-        /* FIXME: this is getting too deep; split out. */
-        {
-                gchar *name, *nameKey;
-                gboolean nameExists, nameHasChanged;
-                GList *sxList;
-
-                name = gtk_editable_get_chars( GTK_EDITABLE(sxed->nameEntry), 0, -1 );
-                if ( strlen(name) == 0 ) {
-                        const char *sx_has_no_name_msg =
-                                _( "Please name the Scheduled Transaction." );
-                        gnc_error_dialog( sxed->dialog, sx_has_no_name_msg );
-                        g_free( name );
-                        return FALSE;
-                        
-                }
-
-                nameExists = FALSE;
-                nameKey = g_utf8_collate_key(name, -1);
-                nameHasChanged =
-                        (xaccSchedXactionGetName(sxed->sx) == NULL)
-                        || (strcmp( xaccSchedXactionGetName(sxed->sx), name ) != 0);
-                for ( sxList =
-                          gnc_book_get_schedxactions( gnc_get_current_book() );
-                      nameHasChanged && !nameExists && sxList ;
-                      sxList = sxList->next ) {
-                        char *existingName, *existingNameKey;
-                        existingName =
-                                xaccSchedXactionGetName( (SchedXaction*)sxList->
-                                                         data );
-                        existingNameKey = g_utf8_collate_key(existingName, -1);
-                        nameExists |= ( strcmp(nameKey, existingNameKey) == 0 );
-                        g_free( existingNameKey );
-                }
-                if ( nameHasChanged && nameExists ) {
-                        const char *sx_has_existing_name_msg =
-                                _( "A Scheduled Transaction with the "
-                                   "name \"%s\" already exists. "
-                                   "Are you sure you want to name "
-                                   "this one the same?" );
-                        if ( ! gnc_verify_dialog( sxed->dialog, FALSE,
-						  sx_has_existing_name_msg,
-						  name) ) {
-                                g_free( nameKey );
-                                g_free( name );
-                                return FALSE;
-                        }
-                }
-                g_free( nameKey );
-                g_free( name );
-        }
-
-        // @@fixme: similar to below, check the commodities involved, and disallow autocreation
-        {
-                gboolean autocreateState, notifyState;
-
-                autocreateState =
-                        gtk_toggle_button_get_active(
-                                GTK_TOGGLE_BUTTON(sxed->autocreateOpt) );
-                notifyState =
-                        gtk_toggle_button_get_active(
-                                GTK_TOGGLE_BUTTON(sxed->notifyOpt) );
-
-                if (((ttVarCount > 0) || multi_commodity) && autocreateState) {
-                        gnc_warning_dialog(sxed->dialog,
-                                           _("Scheduled Transactions with variables "
-                                             "cannot be automatically created."));
-                        return FALSE;
-                }
-
-                /* Fix for part of Bug#121740 -- auto-create transactions are
-                 * only valid if there's actually a transaction to create. */
-                if ( autocreateState && splitCount == 0 ) {
-                        gnc_warning_dialog( sxed->dialog,
-                                            _("Scheduled Transactions without a template "
-                                              "transaction cannot be automatically created.") );
-                        return FALSE;
-                }
-        }
-
-        /* deal with time. */
-        {
-                GDate startDate, endDate, nextDate;
-
-                if ( !gtk_toggle_button_get_active(sxed->optEndDate)
-                     && !gtk_toggle_button_get_active(sxed->optEndCount)
-                     && !gtk_toggle_button_get_active(sxed->optEndNone) ) {
-                        const char *sx_end_spec_msg =
-                                _( "Please provide a valid end selection." );
-                        gnc_error_dialog( sxed->dialog, sx_end_spec_msg );
-                        return FALSE;
-                }
-
-                if ( gtk_toggle_button_get_active(sxed->optEndCount)) {
-                        gint occur, rem;
-
-			occur  =
-			  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endCountSpin) );
-
-			rem =
-			  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
-
-                        if ( occur == 0 ) {
-                                const char *sx_occur_count_zero_msg =
-                                        _( "There must be some number of occurrences." );
-                                gnc_error_dialog( sxed->dialog,
-						  sx_occur_count_zero_msg );
-                                return FALSE;
-                        }
-
-                        if ( rem > occur ) {
-                                const char *sx_occur_counts_wrong_msg =
-                                        _( "The number of remaining occurrences "
-                                           "(%d) is greater than the number of "
-                                           "total occurrences (%d)." );
-                                gnc_error_dialog( sxed->dialog,
-						  sx_occur_counts_wrong_msg,
-						  rem, occur );
-                                return FALSE;
-                        }
-
-                }
-
-                g_date_clear( &endDate, 1 );
-                if ( gtk_toggle_button_get_active(sxed->optEndDate) ) {
-                        g_date_set_time_t( &endDate,
-					   gnc_date_edit_get_date( sxed->
-								   endDateEntry ) );
-                }
-
-                /* Now, see if the user is attempting to create a SX that can't exist
-                 * [will never run]. */
-
-                /* get the frequency spec data */
-                fs = xaccFreqSpecMalloc( gnc_get_current_book() );
-                gnc_frequency_save_state( sxed->gncfreq, fs, &startDate );
-                /* Replicate just a smidgen of the code in the SX
-                 * ...GetNextInstance routine */
-                g_date_subtract_days( &startDate, 1 );
-                xaccFreqSpecGetNextInstance( fs, &startDate, &nextDate );
-                xaccFreqSpecFree( fs );
-
-                if ( !g_date_valid( &nextDate )
-                     || (g_date_valid( &endDate )
-                         && (g_date_compare( &nextDate, &endDate ) > 0)) ) {
-                        const char *invalid_sx_check_msg =
-                                _( "You have attempted to create a Scheduled "
-                                   "Transaction which will never run. Do you "
-                                   "really want to do this?" );
-                        if ( ! gnc_verify_dialog( sxed->dialog, FALSE,
-						  invalid_sx_check_msg) ) {
-                        
-                                return FALSE;
-                        }
-                }
-        }
-        return TRUE;
-}
-
-/**
- * Saves the contents of the SX.  This assumes that gnc_sxed_check_consistent
- * has returned true.
- **/
-static
-void
-gnc_sxed_save_sx( SchedXactionEditorDialog *sxed )
-{
-		gnc_sx_begin_edit( sxed->sx );
-
-        /* name */
-        {
-                char *name;
-
-                name = gtk_editable_get_chars( sxed->nameEntry, 0, -1 );
-                xaccSchedXactionSetName( sxed->sx, name );
-                g_free( name );
-        }
-
-        /* date */
-        {
-                GDate gdate;
-
-                if ( gtk_toggle_button_get_active(sxed->optEndDate) ) {
-                        /* get the end date data */
-                        g_date_set_time_t( &gdate,
-					   gnc_date_edit_get_date(
-                                                 sxed->endDateEntry ) );
-                        xaccSchedXactionSetEndDate( sxed->sx, &gdate );
-                        /* set the num occurances data */
-                        xaccSchedXactionSetNumOccur( sxed->sx, 0 );
-                } else if ( gtk_toggle_button_get_active(sxed->optEndCount) ) {
-                        gint num;
-
-                        /* get the occurances data */
-			num  =
-			  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endCountSpin) );
-                        xaccSchedXactionSetNumOccur( sxed->sx, num );
-
-			num =
-			  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
-                        xaccSchedXactionSetRemOccur( sxed->sx, num );
-
-                        g_date_clear( &gdate, 1 );
-                        xaccSchedXactionSetEndDate( sxed->sx, &gdate );
-                } else if ( gtk_toggle_button_get_active( sxed->optEndNone ) ) {
-                        xaccSchedXactionSetNumOccur( sxed->sx, 0 );
-                        g_date_clear( &gdate, 1 );
-                        xaccSchedXactionSetEndDate( sxed->sx, &gdate );
-                } else {
-                        PERR( "No valid end specified\n" );
-                }
-        }
-
-        /* Auto-create/notification states */
-        {
-                gboolean autocreateState, notifyState;
-
-                autocreateState = gtk_toggle_button_get_active( sxed->autocreateOpt );
-                notifyState = gtk_toggle_button_get_active( sxed->notifyOpt );
-                /* "Notify" only makes sense if AutoCreate is actived;
-                 * enforce that here. */
-                xaccSchedXactionSetAutoCreate( sxed->sx,
-                                               autocreateState,
-                                               (autocreateState & notifyState) );
-        }
-
-        /* days in advance */
-        {
-                int daysInAdvance;
-
-                daysInAdvance = 0;
-                if ( gtk_toggle_button_get_active( sxed->advanceOpt ) ) {
-                        daysInAdvance =
-                                gtk_spin_button_get_value_as_int( sxed->advanceSpin );
-                }
-                xaccSchedXactionSetAdvanceCreation( sxed->sx, daysInAdvance );
-
-                daysInAdvance = 0;
-                if ( gtk_toggle_button_get_active( sxed->remindOpt ) ) {
-                        daysInAdvance =
-                                gtk_spin_button_get_value_as_int( sxed->remindSpin );
-                }
-                xaccSchedXactionSetAdvanceReminder( sxed->sx, daysInAdvance );
-        }
-
-        /* start date and freq spec */
-        {
-                FreqSpec *fs;
-                GDate gdate;
-		GString *str;
-
-                fs = xaccSchedXactionGetFreqSpec( sxed->sx );
-                gnc_frequency_save_state( sxed->gncfreq, fs, &gdate );
-
-                str = g_string_new( "" );
-                xaccFreqSpecGetFreqStr( fs, str );
-                DEBUG( "fs: %s", str->str );
-
-                /* now that we have it, set the start date */
-                xaccSchedXactionSetStartDate( sxed->sx, &gdate );
-        }
-
-		gnc_sx_commit_edit( sxed->sx );
-}
-
-static void
-autocreate_toggled( GtkObject *o, SchedXactionEditorDialog *sxed )
-{
-        if ( !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(o)) ) {
-                gtk_toggle_button_set_active( sxed->notifyOpt, FALSE );
-        }
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->notifyOpt),
-                                  gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(o) ) );
-}
-
-static void
-advance_toggle( GtkButton *o, SchedXactionEditorDialog *sxed )
-{
-        gchar *spinName;
-        GtkWidget *spin;
-
-        spinName = (gchar*)g_object_get_data( G_OBJECT(o), "whichOneAmI" );
-        spin = glade_xml_get_widget( sxed->gxml, spinName );
-        if ( !spin ) {
-                PERR( "Error getting widget with name \"%s\"", spinName );
-                return;
-        }
-        gtk_widget_set_sensitive( spin,
-                                  gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(o) ) );
-        /* FIXME: this doesn't do what we want... :( */
-        gtk_editable_set_editable( GTK_EDITABLE(spin), TRUE );
-}
-
-/* Local destruction of dialog */
-static void
-scheduledxaction_dialog_destroy(GtkObject *object, gpointer data)
-{
-        SchedXactionDialog *sxd = data;
-
-        if ( !sxd ) return;
-
-        gnc_unregister_gui_component_by_data
-                (DIALOG_SCHEDXACTION_CM_CLASS, sxd);
-
-        // FIXME: um.  We should free memory and stuff, here...
-        /*
-        GladeXML    *gxml;
-        GncDenseCal *gdcal;
-        GHashTable  *sxData;
-        */
-
-        g_free( sxd );
-}
-
-/* Local destruction of dialog */
-static void
-scheduledxaction_editor_dialog_destroy(GtkObject *object, gpointer data)
-{
-        int i;
-        SchedXactionEditorDialog *sxed = data;
-
-        if (sxed == NULL)
-                return;
-
-        gnc_unregister_gui_component_by_data
-                (DIALOG_SCHEDXACTION_EDITOR_CM_CLASS, sxed);
-
-        gnc_embedded_window_close_page(sxed->embed_window, sxed->plugin_page);
-        gtk_widget_destroy(GTK_WIDGET(sxed->embed_window));
-        sxed->embed_window = NULL;
-        sxed->plugin_page = NULL;
-        sxed->ledger = NULL;
-
-        g_free (sxed->sxGUIDstr);
-        sxed->sxGUIDstr = NULL;
-
-        for ( i=0; i<(EX_CAL_NUM_MONTHS*31); i++ ) {
-                g_free( sxed->cal_marks[i] );
-        }
-        g_free( sxed->cal_marks );
-
-        if ( sxed->newsxP ) {
-                /* FIXME: WTF???
-                 *
-                 * "WTF" explaination: in the "new" click from the caller, we
-                 * set this flag.  When "ok" is pressed on the dialog, we set
-                 * this flag to false, and thus leave the SX live.  If
-                 * "Cancel" is clicked, the flag will still be true, and this
-                 * SX will be cleaned, here. -- jsled
-                 */
-                xaccSchedXactionFree( sxed->sx );
-        }
-        sxed->sx = NULL;
-
-        g_free (sxed);
-}
-
-SchedXactionDialog*
-gnc_ui_scheduled_xaction_dialog_create(void)
-{
-        SchedXactionDialog *sxd = NULL;
-        GtkObject *sxdo;
-        GtkWidget *button;
-        GtkWidget *w;
-        SchedXactionDialog *alreadyExisting = NULL;
-
-        alreadyExisting = 
-                (SchedXactionDialog*)
-                gnc_find_first_gui_component( DIALOG_SCHEDXACTION_CM_CLASS,
-                                              NULL,
-                                              (gpointer)sxd );
-        if ( alreadyExisting != NULL ) {
-                gtk_window_present( GTK_WINDOW(alreadyExisting->dialog) );
-                return alreadyExisting;
-        }
-
-        sxd = g_new0( SchedXactionDialog, 1 );
-
-        sxd->gxml = gnc_glade_xml_new( SX_GLADE_FILE, SX_LIST_GLADE_NAME );
-        sxd->dialog = glade_xml_get_widget( sxd->gxml, SX_LIST_GLADE_NAME );
-
-        sxd->sxData = g_hash_table_new( NULL, NULL );
-
-        sxdo = GTK_OBJECT(sxd->dialog);
-
-        w = glade_xml_get_widget( sxd->gxml, SX_LIST_UPCOMING_BOX );
-        sxd->gdcal = GNC_DENSE_CAL( gnc_dense_cal_new() );
-        gnc_dense_cal_set_months_per_col( sxd->gdcal, 4 );
-        gnc_dense_cal_set_num_months( sxd->gdcal, 12 );
-        gtk_container_add( GTK_CONTAINER(w), GTK_WIDGET(sxd->gdcal) );
-
-        g_signal_connect( sxdo, "destroy",
-                          G_CALLBACK(scheduledxaction_dialog_destroy),
-                          sxd );
-
-        button = glade_xml_get_widget( sxd->gxml, "new_button" );
-        g_signal_connect( button, "clicked",
-                          G_CALLBACK(new_button_clicked), sxd );
-        button = glade_xml_get_widget( sxd->gxml, "edit_button" );
-        g_signal_connect( button, "clicked",
-                          G_CALLBACK(edit_button_clicked), sxd );
-        button = glade_xml_get_widget( sxd->gxml, "delete_button" );
-        g_signal_connect( button, "clicked",
-                          G_CALLBACK(delete_button_clicked), sxd );
-        button = glade_xml_get_widget( sxd->gxml, "close_button" );
-        g_signal_connect( button, "clicked",
-                          G_CALLBACK(close_button_clicked), sxd );
-
-        w = glade_xml_get_widget( sxd->gxml, SX_LIST );
-        g_signal_connect( w, "select-row",
-                          G_CALLBACK(row_select_handler), sxd );
-        g_signal_connect( w, "unselect-row",
-                          G_CALLBACK(row_unselect_handler), sxd );
-        g_signal_connect( w, "click-column",
-                          G_CALLBACK(gnc_sxd_row_click_handler), sxd );
-
-        // gtk_clist_column_titles_active( GTK_CLIST( w ) );
-
-        /* Default to sorting by ascending next-instance date. */
-        sxd->currentSortCol = 2;
-        sxd->currentSortType = GTK_SORT_ASCENDING;
-        gnc_sxd_set_sort_compare( GTK_CLIST(w), sxd->currentSortCol );
-        gtk_clist_set_auto_sort( GTK_CLIST(w), TRUE );
-
-	gnc_restore_window_size(SX_LIST_GCONF_SECTION, GTK_WINDOW(sxd->dialog));
-
-        gnc_register_gui_component( DIALOG_SCHEDXACTION_CM_CLASS,
-                                    NULL, /* no refresh_handler */
-                                    sxd_close_handler,
-                                    sxd );
-
-        schedXact_populate( sxd );
-
-        gtk_widget_show_all(sxd->dialog);
-
-        return sxd;
-}
-
-static
-void
-gnc_sxl_record_size( SchedXactionDialog *sxd )
-{
-	gnc_save_window_size(SX_LIST_GCONF_SECTION, GTK_WINDOW(sxd->dialog));
-}
-
-void
-row_select_handler( GtkCList *clist,
-                    gint row,
-                    gint col,
-                    GdkEventButton *event,
-                    gpointer d )
-{
-        SchedXactionDialog *sxd;
-        SchedXaction *sx;
-	GtkWidget *widget;
-       
-        sxd   = (SchedXactionDialog*)d;
-
-	widget = glade_xml_get_widget( sxd->gxml, SX_LIST_EDIT_BUTTON );
-	gtk_widget_set_sensitive(widget, TRUE);
-	widget = glade_xml_get_widget( sxd->gxml, SX_LIST_DELETE_BUTTON );
-	gtk_widget_set_sensitive(widget, TRUE);
-
-        if ( event == NULL ) {
-                /* it could be a keypress */
-                return;
-        }
-
-        switch ( event->type ) {
-        case GDK_2BUTTON_PRESS:
-                sx = (SchedXaction*)gtk_clist_get_row_data( clist, row );
-                gnc_ui_scheduled_xaction_editor_dialog_create( sxd, sx, FALSE );
-                break;
-        default:
-                /* noop */
-                break;
-        }
-}
-
-void
-row_unselect_handler( GtkCList *clist,
-                    gint row,
-                    gint col,
-                    GdkEventButton *event,
-                    gpointer d )
-{
-        SchedXactionDialog *sxd;
-	GtkWidget *widget;
-       
-        sxd   = (SchedXactionDialog*)d;
-
-	widget = glade_xml_get_widget( sxd->gxml, SX_LIST_EDIT_BUTTON );
-	gtk_widget_set_sensitive(widget, FALSE);
-	widget = glade_xml_get_widget( sxd->gxml, SX_LIST_DELETE_BUTTON );
-	gtk_widget_set_sensitive(widget, FALSE);
-}
-
-static
-void
-schedXact_populate( SchedXactionDialog *sxd )
-{
-        GList *sxList;
-        GtkCList *sx_clist;
-        int i;
-
-        sxList = gnc_book_get_schedxactions( gnc_get_current_book() );
-        g_list_foreach( sxList, putSchedXactionInDialog, sxd );
-
-        sx_clist = GTK_CLIST( glade_xml_get_widget( sxd->gxml,
-                                                    SX_LIST ) );
-        for ( i=0; i<3; i++ ) {
-                gtk_clist_set_column_auto_resize( sx_clist, i, TRUE );
-        }
-}
-
-static
-gint
-sxed_close_event( GtkDialog *dlg, gpointer ud )
-{
-        SchedXactionEditorDialog *sxed = (SchedXactionEditorDialog*)ud;
-
-        /* We've already processed the SX, likely because of "ok" being
-         * clicked. */
-        if ( sxed->sx == NULL ) {
-          return FALSE;
-        }
-
-        if ( ! sxed_confirmed_cancel( sxed ) ) {
-                return TRUE;
-        }
-        return FALSE;
-}
-
-static
-void
-gnc_sxed_get_widgets( SchedXactionEditorDialog *sxed )
-{
-        GtkWidget *w;
-
-        w = glade_xml_get_widget( sxed->gxml, SXED_NAME_ENTRY );
-        sxed->nameEntry = GTK_EDITABLE(w);
-        w = glade_xml_get_widget( sxed->gxml, SXED_LAST_OCCUR_LABEL );
-        sxed->lastOccurLabel = GTK_LABEL(w);
-        w = glade_xml_get_widget( sxed->gxml, AUTOCREATE_OPT );
-        sxed->autocreateOpt = GTK_TOGGLE_BUTTON(w);
-        w = glade_xml_get_widget( sxed->gxml, NOTIFY_OPT );
-        sxed->notifyOpt = GTK_TOGGLE_BUTTON(w);
-        w = glade_xml_get_widget( sxed->gxml, ADVANCE_OPT );
-        sxed->advanceOpt = GTK_TOGGLE_BUTTON(w);
-        w = glade_xml_get_widget( sxed->gxml, ADVANCE_DAYS_SPIN );
-        sxed->advanceSpin = GTK_SPIN_BUTTON(w);
-        w = glade_xml_get_widget( sxed->gxml, REMIND_OPT );
-        sxed->remindOpt = GTK_TOGGLE_BUTTON(w);
-        w = glade_xml_get_widget( sxed->gxml, REMIND_DAYS_SPIN );
-        sxed->remindSpin = GTK_SPIN_BUTTON(w);
-
-        w = glade_xml_get_widget( sxed->gxml, "rb_enddate" );
-        sxed->optEndDate = GTK_TOGGLE_BUTTON(w);
-
-        w = glade_xml_get_widget( sxed->gxml, "rb_noend" );
-        sxed->optEndNone = GTK_TOGGLE_BUTTON(w);
-
-        w = glade_xml_get_widget( sxed->gxml, "rb_num_occur" );
-        sxed->optEndCount = GTK_TOGGLE_BUTTON(w);
-
-        w = glade_xml_get_widget( sxed->gxml, END_SPIN );
-        sxed->endCountSpin = GTK_ENTRY(w);
-
-        w = glade_xml_get_widget( sxed->gxml, REMAIN_SPIN );
-        sxed->endRemainSpin = GTK_ENTRY(w);
-
-}
-
-SchedXactionEditorDialog *
-gnc_ui_scheduled_xaction_editor_dialog_create( SchedXactionDialog *sxd,
-                                               SchedXaction *sx,
-                                               gboolean newSX )
-{
-        SchedXactionEditorDialog *sxed;
-        GtkWidget *button;
-        int i;
-        GList *dlgExists = NULL;
-
-        static struct widgetSignalCallback {
-                char     *name;
-                char     *signal;
-                void     (*fn)();
-                gpointer objectData;
-        } widgets[] = {
-                { "ok_button",      "clicked", editor_ok_button_clicked,     NULL },
-                { "cancel_button",  "clicked", editor_cancel_button_clicked, NULL },
-                { "help_button",    "clicked", editor_help_button_clicked,   NULL },
-
-                { "rb_noend",       "toggled", endgroup_rb_toggled,          GINT_TO_POINTER(END_NEVER_OPTION) },
-                { "rb_enddate",     "toggled", endgroup_rb_toggled,          GINT_TO_POINTER(END_DATE_OPTION) },
-                { "rb_num_occur",   "toggled", endgroup_rb_toggled,          GINT_TO_POINTER(NUM_OCCUR_OPTION) },
-
-                { REMAIN_SPIN ,     "value-changed", sxed_excal_update_adapt, NULL },
-
-                { AUTOCREATE_OPT,   "toggled", autocreate_toggled,           NULL },
-                { ADVANCE_OPT,      "toggled", advance_toggle,               (gpointer)ADVANCE_DAYS_SPIN },
-                { REMIND_OPT,       "toggled", advance_toggle,               (gpointer)REMIND_DAYS_SPIN },
-
-                { NULL,             NULL,      NULL,                         NULL }
-        };
-
-        dlgExists = gnc_find_gui_components( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
-                                             editor_component_sx_equality,
-                                             sx );
-        if ( dlgExists != NULL ) {
-                DEBUG( "dialog already exists; using that one." );
-                sxed = (SchedXactionEditorDialog*)dlgExists->data;
-                gtk_window_present( GTK_WINDOW(sxed->dialog) );
-                g_list_free( dlgExists );
-                return sxed;
-        }
-
-        sxed         = g_new0( SchedXactionEditorDialog, 1 );
-        sxed->gxml   = gnc_glade_xml_new( SX_GLADE_FILE,
-                                        SX_EDITOR_GLADE_NAME );
-        sxed->dialog = glade_xml_get_widget( sxed->gxml, SX_EDITOR_GLADE_NAME );
-
-        sxed->sxd    = sxd;
-        sxed->sx     = sx;
-        sxed->newsxP = newSX;
-        /* Setup dense-cal local mark storage */
-        {
-                sxed->cal_marks = g_new0( GDate*, EX_CAL_NUM_MONTHS * 31 );
-                for( i=0; i<(EX_CAL_NUM_MONTHS * 31); i++ ) {
-                        sxed->cal_marks[i] = g_date_new();
-                }
-                sxed->markId = -1;
-        }
-
-        /* Setup the end-date GNC widget */
-        {
-                GtkWidget *endDateBox =
-                        glade_xml_get_widget( sxed->gxml, END_DATE_BOX );
-                sxed->endDateEntry =
-                        GNC_DATE_EDIT(gnc_date_edit_new( time(NULL),
-                                                         FALSE, FALSE ));
-                gtk_widget_show(GTK_WIDGET(sxed->endDateEntry));
-                g_signal_connect( sxed->endDateEntry,
-                                  "date-changed",
-                                  G_CALLBACK( sxed_excal_update_adapt ),
-                                  sxed );
-                gtk_box_pack_start( GTK_BOX(endDateBox),
-                                    GTK_WIDGET(sxed->endDateEntry),
-                                    TRUE, TRUE, 0 );
-        }
-
-        /* NOTE: this must occur before processing the widget list, defined
-         * above, so the gpointers stored with the advance_ and remind_opts
-         * are correct. */
-        gnc_sxed_get_widgets( sxed );
-
-        gnc_register_gui_component( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
-                                    NULL, /* no refresh handler */
-                                    sxed_close_handler,
-                                    sxed );
-
-        g_signal_connect( sxed->dialog, "close",
-                          G_CALLBACK(sxed_close_event), sxed );
-        g_signal_connect( sxed->dialog, "destroy",
-                          G_CALLBACK(scheduledxaction_editor_dialog_destroy),
-                          sxed );
-
-        for ( i=0; widgets[i].name != NULL; i++ ) {
-                button = glade_xml_get_widget( sxed->gxml, widgets[i].name );
-                if ( widgets[i].objectData != NULL ) {
-                        g_object_set_data( G_OBJECT(button), "whichOneAmI",
-					   widgets[i].objectData );
-                }
-                g_signal_connect( button, widgets[i].signal,
-                                  G_CALLBACK( widgets[i].fn ), sxed );
-        }
-
-        /* For some reason the Glade-specified sensitivity settings are not
-         * being honored... ? */
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->notifyOpt), FALSE );
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->advanceSpin), FALSE );
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->remindSpin), FALSE );
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->endCountSpin), FALSE );
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->endRemainSpin), FALSE );
-
-        gtk_editable_set_editable( GTK_EDITABLE(sxed->advanceSpin), TRUE );
-        gtk_editable_set_editable( GTK_EDITABLE(sxed->remindSpin), TRUE );
-
-	/* Allow resize */
-        gtk_window_set_resizable (GTK_WINDOW(sxed->dialog), TRUE);
-
-	gnc_restore_window_size(SXED_GCONF_SECTION, GTK_WINDOW(sxed->dialog));
-
-        /* create the frequency-selection macrowidget and example
-         * [dense-]calendar. */
-        schedXact_editor_create_freq_sel( sxed );
-        /* create the template-transaction ledger window */
-        schedXact_editor_create_ledger( sxed );
-        /* populate */
-        schedXact_editor_populate( sxed );
-
-	/* Do not call show_all here. Screws up the gtkuimanager code */
-        gtk_widget_show(sxed->dialog);
-
-	/* Refresh the cal and the ledger */
-	gtk_widget_queue_resize( GTK_WIDGET( sxed->example_cal ) );
-        gnc_ledger_display_refresh( sxed->ledger );
-
-        return sxed;
-}
-
-static
-void
-gnc_sxed_record_size( SchedXactionEditorDialog *sxed )
-{
-	gnc_save_window_size( SXED_GCONF_SECTION, GTK_WINDOW(sxed->dialog) );
-}
-
-static
-void
-schedXact_editor_create_freq_sel( SchedXactionEditorDialog *sxed )
-{
-        GtkBox *b;
-
-        b = GTK_BOX(glade_xml_get_widget( sxed->gxml, "gncfreq_hbox" ));
-        sxed->gncfreq =
-                GNC_FREQUENCY( gnc_frequency_new( xaccSchedXactionGetFreqSpec(sxed->sx),
-                                                  xaccSchedXactionGetStartDate(sxed->sx) ) );
-        g_assert( sxed->gncfreq );
-        g_signal_connect( sxed->gncfreq, "changed",
-                          G_CALLBACK(gnc_sxed_freq_changed),
-                          sxed );
-        gtk_container_add( GTK_CONTAINER(b), GTK_WIDGET(sxed->gncfreq) );
-
-        b = GTK_BOX(glade_xml_get_widget( sxed->gxml, "example_cal_hbox" ));
-        sxed->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new());
-        g_assert( sxed->example_cal );
-        gnc_dense_cal_set_num_months( sxed->example_cal, EX_CAL_NUM_MONTHS );
-        gnc_dense_cal_set_months_per_col( sxed->example_cal, EX_CAL_MO_PER_COL );
-        gtk_container_add( GTK_CONTAINER(b), GTK_WIDGET(sxed->example_cal) );
-	gtk_widget_show( GTK_WIDGET(sxed->example_cal) );
-}
-
-static
-void
-schedXact_editor_create_ledger( SchedXactionEditorDialog *sxed )
-{
-        SplitRegister *splitreg;
-        GtkWidget *main_vbox;
-
-	/* Create the ledger */
-        /* THREAD-UNSAFE */
-        sxed->sxGUIDstr = g_strdup( guid_to_string(
-                                        xaccSchedXactionGetGUID(sxed->sx) ) );
-        sxed->ledger = gnc_ledger_display_template_gl( sxed->sxGUIDstr );
-        splitreg = gnc_ledger_display_get_split_register( sxed->ledger );
-
-	/* First the embedded window */
-        main_vbox = glade_xml_get_widget( sxed->gxml, "register_vbox" );
-	sxed->embed_window =
-	  gnc_embedded_window_new("SXWindowActions",
-                                  gnc_sxed_menu_entries,
-                                  gnc_sxed_menu_n_entries,
-                                  "gnc-sxed-window-ui.xml",
-                                  sxed->dialog,
-                                  FALSE, /* no accelerators */
-                                  sxed);
-	gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET(sxed->embed_window),
-			    TRUE, TRUE, 0);
-
-	/* Now create the register plugin page. */
-	sxed->plugin_page = gnc_plugin_page_register_new_ledger (sxed->ledger);
-	gnc_plugin_page_set_ui_description (sxed->plugin_page,
-					    "gnc-sxed-window-ui-full.xml");
-	gnc_plugin_page_register_set_options (sxed->plugin_page,
-					      NULL, NULL,
-					      NUM_LEDGER_LINES_DEFAULT, FALSE );
-	gnc_embedded_window_open_page (sxed->embed_window, sxed->plugin_page);
-
-        /* configure... */
-        /* don't use double-line */
-        gnc_split_register_config(splitreg,
-                                  splitreg->type, splitreg->style,
-                                  FALSE);
-        gnc_split_register_set_auto_complete(splitreg, FALSE);
-
-        /* don't show present/future divider [by definition, not necessary] */
-        gnc_split_register_show_present_divider( splitreg, FALSE );
-}
-
-static
-void
-schedXact_editor_populate( SchedXactionEditorDialog *sxed )
-{
-        char *name;
-        time_t tmpDate;
-        SplitRegister *splitReg;
-        struct tm *tmpTm;
-        GDate *gd;
-        gint daysInAdvance;
-        gboolean autoCreateState, notifyState;
-
-        name = xaccSchedXactionGetName(sxed->sx);
-        if ( name != NULL ) {
-                gtk_entry_set_text( GTK_ENTRY(sxed->nameEntry), name  );
-        }
-        {
-                gd = xaccSchedXactionGetLastOccurDate( sxed->sx );
-                if ( g_date_valid( gd ) ) {
-                        gchar dateBuf[ MAX_DATE_LENGTH+1 ];
-                        qof_print_gdate( dateBuf,MAX_DATE_LENGTH, gd );
-                        gtk_label_set_text( sxed->lastOccurLabel, dateBuf );
-                } else {
-                        gtk_label_set_text( sxed->lastOccurLabel, _( "(never)" ) );
-                }
-                gd = NULL;
-        }
-
-        gd = xaccSchedXactionGetEndDate( sxed->sx );
-        if ( g_date_valid( gd ) ) {
-                gtk_toggle_button_set_active( sxed->optEndDate, TRUE );
-                /* fill in date data. */
-                tmpTm = g_new0( struct tm, 1 );
-                g_date_to_struct_tm( gd, tmpTm );
-                tmpDate = mktime( tmpTm );
-                g_free( tmpTm );
-                gnc_date_edit_set_time( sxed->endDateEntry, tmpDate );
-
-                set_endgroup_toggle_states( sxed, END_DATE );
-        } else if ( xaccSchedXactionHasOccurDef( sxed->sx ) ) {
-                gint numOccur = xaccSchedXactionGetNumOccur( sxed->sx );
-                gint numRemain = xaccSchedXactionGetRemOccur( sxed->sx );
-
-                gtk_toggle_button_set_active( sxed->optEndCount, TRUE );
-
-		gtk_spin_button_set_value ( GTK_SPIN_BUTTON(sxed->endCountSpin), numOccur );
-		gtk_spin_button_set_value ( GTK_SPIN_BUTTON(sxed->endRemainSpin), numRemain );
-
-                set_endgroup_toggle_states( sxed, END_OCCUR );
-        } else {
-                gtk_toggle_button_set_active( sxed->optEndNone, TRUE );
-                set_endgroup_toggle_states( sxed, END_NEVER );
-        }
-
-        /* Do auto-create/notify setup */
-        if ( sxed->newsxP ) {
-                autoCreateState =
-		  gnc_gconf_get_bool( SXED_GCONF_SECTION, KEY_CREATE_AUTO, NULL );
-                notifyState =
-		  gnc_gconf_get_bool( SXED_GCONF_SECTION, KEY_NOTIFY, NULL );
-        } else {
-                xaccSchedXactionGetAutoCreate( sxed->sx,
-                                               &autoCreateState,
-                                               &notifyState );
-        }
-        gtk_toggle_button_set_active( sxed->autocreateOpt, autoCreateState );
-        if ( ! autoCreateState ) {
-                notifyState = FALSE;
-        }
-        gtk_toggle_button_set_active( sxed->notifyOpt, notifyState );
-
-
-        /* Do days-in-advance-to-create widget[s] setup. */
-        if ( sxed->newsxP ) {
-                daysInAdvance =
-		  gnc_gconf_get_float( SXED_GCONF_SECTION, KEY_CREATE_DAYS, NULL );
-        } else {
-                daysInAdvance =
-                        xaccSchedXactionGetAdvanceCreation( sxed->sx );
-        }
-        if ( daysInAdvance != 0 ) {
-                gtk_toggle_button_set_active( sxed->advanceOpt, TRUE );
-                gtk_spin_button_set_value( sxed->advanceSpin,
-                                           (gfloat)daysInAdvance );
-        }
-
-        /* Do days-in-advance-to-remind widget[s] setup. */
-        if ( sxed->newsxP ) {
-                daysInAdvance =
-		  gnc_gconf_get_float( SXED_GCONF_SECTION, KEY_REMIND_DAYS, NULL );
-        } else {
-                daysInAdvance =
-                        xaccSchedXactionGetAdvanceReminder( sxed->sx );
-        }
-        if ( daysInAdvance != 0 ) {
-                gtk_toggle_button_set_active( sxed->remindOpt, TRUE );
-                gtk_spin_button_set_value( sxed->remindSpin,
-                                           (gfloat)daysInAdvance );
-        }
-
-        if ( sxed->newsxP ) {
-                gnc_sx_set_instance_count( sxed->sx, 1 );
-        }
-
-        /* populate the ledger */
-        { 
-                /* create the split list */
-                GList        *splitList;
-
-                splitList = xaccSchedXactionGetSplits( sxed->sx );
-                if ( splitList != NULL ) {
-                        splitReg = gnc_ledger_display_get_split_register
-                          ( sxed->ledger );
-                        gnc_split_register_load(splitReg, splitList, NULL );
-                } /* otherwise, use the existing stuff. */
-        }
-
-        /* Update the example cal */
-        gnc_sxed_update_cal( sxed );
-}
-
-static
-void
-set_endgroup_toggle_states( SchedXactionEditorDialog *sxed, EndType type )
-{
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->endDateEntry),   (type == END_DATE) );
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->endCountSpin),  (type == END_OCCUR) );
-        gtk_widget_set_sensitive( GTK_WIDGET(sxed->endRemainSpin), (type == END_OCCUR) );
-}
-
-static
-void
-new_button_clicked( GtkButton *b, gpointer d )
-{
-        SchedXactionDialog        *sxd;
-        FreqSpec *fs;
-        GDate *gd;
-        SchedXaction        *tmpSX =
-                xaccSchedXactionMalloc( gnc_get_current_book ());
-        SchedXactionEditorDialog *sxed;
-
-        /* Give decent initial FreqSpec for SX */
-        fs = xaccSchedXactionGetFreqSpec( tmpSX );
-        gd = g_date_new();
-        g_date_set_time_t( gd, time(NULL) );
-        xaccFreqSpecSetMonthly( fs, gd, 1 );
-        xaccFreqSpecSetUIType ( fs, UIFREQ_MONTHLY );
-        g_date_free( gd );
-        
-        sxd = (SchedXactionDialog*)d;
-        sxed = gnc_ui_scheduled_xaction_editor_dialog_create( sxd, tmpSX,
-                                                              TRUE /* newSX */ );
-}
-
-static
-void
-edit_button_clicked( GtkButton *b, gpointer d )
-{
-        GList *sel;
-        GtkCList *cl;
-        int row;
-        SchedXactionDialog *sxd;
-        SchedXaction *sx;
-        SchedXactionEditorDialog *sxed;
-
-        sxd = (SchedXactionDialog*)d;
-        cl = GTK_CLIST(glade_xml_get_widget( sxd->gxml, SX_LIST ));
-        for( sel = cl->selection; sel; sel = g_list_next(sel) ) {
-                row = GPOINTER_TO_INT(sel->data);
-                /* get the clist row for this listitem */
-                sx = (SchedXaction*)gtk_clist_get_row_data( cl, row );
-                /* get the object UD */
-                sxed = gnc_ui_scheduled_xaction_editor_dialog_create( sxd, sx, FALSE );
-        }
-}
-
-static void
-delete_button_clicked( GtkButton *b, gpointer d )
-{
-        GNCBook *book;
-        GtkCList *cl;
-        GList *sel, *sxList, *beingEditedList, *l;
-        SchedXactionDialog *sxd;
-        char *beingEditedMessage =
-          _( "The following transactions are presently being edited; "
-             "are you sure you want to delete them?" );
-        char *confirmMessage =
-          _( "Delete the selected Scheduled Transactions?" );
-        GString  *realConfDelOpenMsg, *realConfDeleteMsg;
-        SchedXaction *sx;
-        gboolean destroyOpenedResult = FALSE;
-
-        sxd = (SchedXactionDialog*)d;
-
-        cl = GTK_CLIST(glade_xml_get_widget( sxd->gxml, SX_LIST ));
-        sel = cl->selection;
-
-        if ( !sel ) {
-                return;
-        }
-
-        realConfDeleteMsg = g_string_new( confirmMessage );
-        realConfDelOpenMsg = g_string_new( beingEditedMessage );
-        beingEditedList = NULL;
-        for ( ; sel ; sel = sel->next ) {
-                sx = (SchedXaction*)gtk_clist_get_row_data( cl, GPOINTER_TO_INT(sel->data));
-                g_string_append_printf( realConfDeleteMsg, "\n\"%s\"",
-                                        xaccSchedXactionGetName( sx ) );
-                if ( (l = gnc_find_gui_components( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
-                                                   editor_component_sx_equality,
-                                                   sx )) ) {
-                        beingEditedList = g_list_append( beingEditedList, (gpointer)l );
-                        g_string_append_printf( realConfDelOpenMsg, "\n\"%s\"",
-                                                xaccSchedXactionGetName( sx ) );
-                }
-        }
-
-        if ( g_list_length( beingEditedList ) > 0 ) {
-                /* Figure out the user's disposition [toward the opened
-                 * transactions], but if it's true, don't act on it until
-                 * they confirm they actually want to do the deletion
-                 * generically.  If it's false, cleanup and return. */
-                if ( ! (destroyOpenedResult =
-                        gnc_verify_dialog( sxd->dialog, FALSE, "%s",
-					   realConfDelOpenMsg->str )) ) {
-                        for ( l = beingEditedList; l; l = l->next ) {
-                                g_list_free( (GList*)l->data );
-                        }
-                        g_list_free( beingEditedList );
-                        goto cleanupStrings;
-                        return; /* unreachable, but clearer. */
-                }
-        }
-
-        if ( gnc_verify_dialog( sxd->dialog, FALSE, "%s",
-				realConfDeleteMsg->str ) ) {
-                /* Close the being-edited transactions. */
-                if ( destroyOpenedResult ) {
-                        GList *component;
-                        for ( l = beingEditedList; l; l = l->next ) {
-                                SplitRegister *reg;
-                                component = (GList*)l->data;
-                                /* We'd like to force the cancellation of
-                                 * ledger/other changes, here. */
-                                reg = gnc_ledger_display_get_split_register(
-                                        ((SchedXactionEditorDialog*)component
-                                         ->data)
-                                        ->ledger );
-                                gnc_split_register_cancel_cursor_trans_changes(
-                                        reg );
-                                editor_cancel_button_clicked(
-                                        NULL,
-                                        (SchedXactionEditorDialog*)component
-                                        ->data );
-                                g_list_free( component );
-                        }
-                        g_list_free( beingEditedList );
-                }
-
-                /* Now, actually do the deletions... */
-                book = gnc_get_current_book ();
-                sxList = gnc_book_get_schedxactions( book );
-                for ( sel = cl->selection; sel; sel = sel->next ) {
-                        SxRuntimeInfo *sxri;
-                        SxRuntimeInfo **p_sxri = &sxri;
-                        gpointer unused;
-                        gboolean foundP;
-
-                        sx = (SchedXaction*)gtk_clist_get_row_data( cl, GPOINTER_TO_INT(sel->data));
-                        sxList = g_list_remove( sxList, (gpointer)sx );
-                        gnc_book_set_schedxactions( book, sxList );
-
-                        foundP = g_hash_table_lookup_extended( sxd->sxData, sx,
-                                                               &unused,
-                                                               (gpointer*)p_sxri );
-                        g_assert( foundP );
-                        if ( sxri->markTag != -1 ) {
-                                gnc_dense_cal_mark_remove( sxd->gdcal, sxri->markTag );
-                        }
-                        g_hash_table_remove( sxd->sxData, sx );
-                        xaccSchedXactionFree( sx );
-                }
-
-                gtk_clist_freeze( cl );
-                /* Remove the selected and deleted rows from the clist in
-                 * reverse order so each index is valid. */
-                sel = g_list_copy( cl->selection );
-                sel = g_list_reverse( sel );
-                gtk_clist_unselect_all( cl );
-                for ( ; sel; sel = sel->next ) {
-                        gtk_clist_remove( cl, GPOINTER_TO_INT(sel->data) );
-                }
-                g_list_free( sel );
-                sel = NULL;
-                gtk_clist_thaw( cl );
-        }
-
- cleanupStrings:
-        g_string_free( realConfDeleteMsg, TRUE );
-        g_string_free( realConfDelOpenMsg, TRUE );
-}
-
-static
-void
-endgroup_rb_toggled( GtkButton *b, gpointer d )
-{
-        /* figure out which one */
-        SchedXactionEditorDialog *sxed;
-        gint id;
-
-        sxed = (SchedXactionEditorDialog*)d;
-        id = GPOINTER_TO_INT(g_object_get_data( G_OBJECT(b), "whichOneAmI" ));
-
-        switch (id) {
-        case END_NEVER_OPTION:
-                set_endgroup_toggle_states( sxed, END_NEVER );
-                break;
-        case END_DATE_OPTION:
-                set_endgroup_toggle_states( sxed, END_DATE );
-                break;
-        case NUM_OCCUR_OPTION:
-                set_endgroup_toggle_states( sxed, END_OCCUR );
-                break;
-        default:
-                g_error( "Unknown id %d", id );
-                break;
-        }
-
-        gnc_sxed_update_cal( sxed );
-}
-
-/**
- * This is a copy of more complex code from dialog-sxsincelast.c.  They
- * should probably be combined into a single useful function somewhere.
- **/
-static
-void
-generate_instances( SchedXaction *sx,
-                    GDate *end, GList **instanceList )
-{
-        GDate gd, *gdToReturn;
-        void *seqStateData;
-
-        /* Process valid next instances */
-        seqStateData = gnc_sx_create_temporal_state( sx );
-        gd = xaccSchedXactionGetNextInstance( sx, seqStateData );
-        while ( g_date_valid(&gd)
-                && g_date_compare( &gd, end ) <= 0 ) {
-
-                gdToReturn = g_date_new();
-                *gdToReturn = gd;
-                *instanceList = g_list_append( *instanceList, gdToReturn );
-
-                gnc_sx_incr_temporal_state( sx, seqStateData );
-                gd = xaccSchedXactionGetInstanceAfter( sx, &gd, seqStateData );
-        }
-        gnc_sx_destroy_temporal_state( seqStateData );
-        seqStateData = NULL;
-}
-
-static
-void
-_gnc_sxd_free_dates( gpointer data, gpointer user_data )
-{
-        g_date_free( (GDate*)data );
-}
-
-static
-SxRuntimeInfo*
-_new_sx_runtime_info( SchedXaction *sx )
-{
-        SxRuntimeInfo *sxri;
-
-        sxri = g_new0( SxRuntimeInfo, 1 );
-        sxri->sx      = sx;
-        sxri->row     = -1;
-        sxri->markTag = -1;
-        return sxri;
-}
-
-static
-void
-putSchedXactionInDialog( gpointer data, gpointer user_data )
-{
-        SchedXaction *sx;
-        SchedXactionDialog *sxd;
-        GtkCList *clist;
-        char *text[3];
-        GString *freqStr;
-        GString *nextDate;
-        int i;
-        GDate *nextInstDate = NULL, *calEndDate;
-        int instArraySize;
-        GDate **instArray;
-        GList *instList;
-        gpointer unused;
-        SxRuntimeInfo *sxri = NULL;
-        SxRuntimeInfo **p_sxri = &sxri;
-        gboolean foundP;
-        gint gdcMarkTag;
-        gint row;
-
-        sx = (SchedXaction*)data;
-        sxd = (SchedXactionDialog*)user_data;
-
-        freqStr = g_string_new( "" );
-        nextDate = g_string_new( "" );
-
-        xaccFreqSpecGetFreqStr( xaccSchedXactionGetFreqSpec(sx), freqStr );
-
-        calEndDate = g_date_new_dmy( 1,
-                                     gnc_dense_cal_get_month(sxd->gdcal),
-                                     gnc_dense_cal_get_year(sxd->gdcal) );
-        g_date_add_months( calEndDate,
-                           gnc_dense_cal_get_num_months(sxd->gdcal) );
-
-        instList = NULL;
-        generate_instances( sx, calEndDate, &instList );
-        g_date_free( calEndDate );
-
-        if ( instList == NULL ) {
-                /* This was a bug [#90326]; while we do want to generate
-                 * instances within the visible calendar range, we also want
-                 * to generate the first, next SX instance regardless of the
-                 * calendar range.  Thus, if the generate_instances above
-                 * returns nothing, double-check with the SX. */
-                nextInstDate = g_date_new();
-                *nextInstDate = xaccSchedXactionGetNextInstance( sx, NULL );
-                if ( g_date_valid( nextInstDate ) ) {
-                        instList = g_list_append( instList,
-                                                  (gpointer)nextInstDate );
-                }
-        }
-
-        if ( instList == NULL ) {
-                g_string_printf( nextDate, _("Not scheduled") );
-        } else {
-                char tmpBuf[ MAX_DATE_LENGTH+1 ];
-                char dowBuf[ 25 ]; /* <- FIXME: appropriate length? */
-                nextInstDate = (GDate*)instList->data;
-                qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, nextInstDate );
-                g_date_strftime( dowBuf, 25, "%A", nextInstDate );
-                g_string_printf( nextDate, "%s (%s)", tmpBuf, dowBuf );
-        }
-
-        /* Add markings to GncDenseCal */
-        gdcMarkTag = -1;
-        if ( instList != NULL ) {
-                GList *l;
-                FreqSpec *fs;
-                GString *freqDesc;
-
-                instArraySize = g_list_length( instList );
-                instArray = g_new0( GDate*, instArraySize );
-                for ( i=0, l=instList; l; l = l->next ) {
-                        instArray[i++] = (GDate*)l->data;
-                }
-                freqDesc = g_string_sized_new(64);
-                fs = xaccSchedXactionGetFreqSpec(sx);
-                xaccFreqSpecGetFreqStr(fs, freqDesc );
-                gdcMarkTag = gnc_dense_cal_mark( sxd->gdcal,
-                                                 instArraySize, instArray,
-                                                 xaccSchedXactionGetName(sx),
-                                                 freqDesc->str );
-                g_string_free( freqDesc, TRUE );
-                g_free( instArray );
-                g_list_foreach( instList, _gnc_sxd_free_dates, NULL );
-                g_list_free( instList );
-                nextInstDate = NULL;
-        }
-
-        foundP = g_hash_table_lookup_extended( sxd->sxData,
-                                               (gpointer)sx,
-                                               &unused,
-                                               (gpointer*)p_sxri );
-        if ( ! foundP )
-        {
-                // new SX -- create runtime storage for it
-                sxri = _new_sx_runtime_info( sx );
-                sxri->markTag = gdcMarkTag;
-        }
-        else
-        {
-                // existing SX; remove it's 
-                if ( sxri->markTag != -1 ) {
-                        gnc_dense_cal_mark_remove( sxd->gdcal, sxri->markTag );
-                        sxri->markTag = gdcMarkTag;
-                }
-        }
-
-
-        text[0] = xaccSchedXactionGetName( sx );
-        text[1] = freqStr->str;
-        text[2] = nextDate->str;
-
-        clist = GTK_CLIST( glade_xml_get_widget( sxd->gxml, SX_LIST ) );
-        gtk_clist_freeze( clist );
-
-        row = gtk_clist_find_row_from_data( clist, (gpointer)sx );
-        if ( sxri->row == -1 ) {
-                /* new item to be inserted */
-                sxri->row = gtk_clist_append( clist, text );
-                gtk_clist_set_row_data( clist, sxri->row, sx );
-        } else {
-                for ( i=0; i<3; i++ ) {
-                        gtk_clist_set_text( clist, sxri->row, i, text[i] );
-                }
-        }
-        gtk_clist_sort( clist );
-        gtk_clist_thaw( clist );
-        g_hash_table_insert( sxd->sxData, (gpointer)sx, (gpointer)sxri );
-        sxri = NULL;
-
-        g_string_free( freqStr,  TRUE );
-        g_string_free( nextDate, TRUE );
-}
-
-/********************************************************************\
- * gnc_register_check_close                                         *
- *                                                                  *
- * Args:   regData - the data struct for this register              *
- * Return: none                                                     *
-\********************************************************************/
-static void
-gnc_sxed_reg_check_close(SchedXactionEditorDialog *sxed)
-{
-        gboolean pending_changes;
-        SplitRegister *reg;
-        const char *message =
-                _("The current template transaction "
-                  "has been changed. "
-                  "Would you like to record the changes?");
-        
-        reg = gnc_ledger_display_get_split_register (sxed->ledger);
-        pending_changes = gnc_split_register_changed (reg);
-        if (!pending_changes) {
-                return;
-        }
-
-        if (gnc_verify_dialog(sxed->dialog, TRUE, message)) {
-                Transaction *trans;
-                trans = gnc_split_register_get_current_trans( reg );
-                if ( !gnc_split_register_save( reg, TRUE ) )
-                        return;
-                
-                gnc_split_register_redraw( reg );
-        } else {
-                gnc_split_register_cancel_cursor_trans_changes (reg);
-        }
-}
-
-static gboolean
-editor_component_sx_equality( gpointer find_data,
-                              gpointer user_data )
-{
-        return ( (SchedXaction*)find_data
-                 == ((SchedXactionEditorDialog*)user_data)->sx );
-}
-
-static
-void
-gnc_sxd_row_click_handler( GtkCList *clist,
-                           gint col,
-                           gpointer ud )
-{
-        SchedXactionDialog *sxd = (SchedXactionDialog*)ud;
-
-        if ( col == sxd->currentSortCol ) {
-                g_assert( sxd->currentSortType == GTK_SORT_ASCENDING
-                          || sxd->currentSortType == GTK_SORT_DESCENDING );
-                switch ( sxd->currentSortType ) {
-                case GTK_SORT_ASCENDING:
-                        sxd->currentSortType = GTK_SORT_DESCENDING;
-                        break;
-                case GTK_SORT_DESCENDING:
-                        sxd->currentSortType = GTK_SORT_ASCENDING;
-                        break;
-                default:
-                        PERR( "Unknown current sort type %d",
-                              sxd->currentSortType );
-                }
-                /* By defn, the current sort_compare method is correct. */
-                gtk_clist_set_sort_column( clist, col );
-                gtk_clist_set_sort_type( clist, sxd->currentSortType );
-                gtk_clist_sort( clist );
-                return;
-        }
-
-        sxd->currentSortCol = col;
-        gnc_sxd_set_sort_compare( clist, sxd->currentSortCol );
-        sxd->currentSortType = GTK_SORT_ASCENDING;
-        gtk_clist_set_sort_column( clist, sxd->currentSortCol );
-        gtk_clist_set_sort_type( clist, sxd->currentSortType );
-        gtk_clist_sort( clist );
-}
-
-static
-gint
-gnc_sxd_clist_compare_sx_name( GtkCList *cl, gconstpointer a, gconstpointer b )
-{
-        SchedXaction *sxa, *sxb;
-
-        sxa = (SchedXaction*)(((GtkCListRow*)a)->data);
-        sxb = (SchedXaction*)(((GtkCListRow*)b)->data);
-        g_assert( sxa || sxb );
-        if ( !sxa ) {
-                return 1;
-        }
-        if ( !sxb ) {
-                return -1;
-        }
-        return strcmp( xaccSchedXactionGetName( sxa ),
-                       xaccSchedXactionGetName( sxb ) );
-}
-
-static
-gint
-gnc_sxd_clist_compare_sx_freq( GtkCList *cl,
-                               gconstpointer a,
-                               gconstpointer b )
-{
-        SchedXaction *sxa, *sxb;
-
-        g_assert( a || b );
-        if ( !a ) return 1;
-        if ( !b ) return -1;
-        sxa = (SchedXaction*)((GtkCListRow*)a)->data;
-        sxb = (SchedXaction*)((GtkCListRow*)b)->data;
-        g_assert( sxa || sxb );
-        if ( !sxa ) return 1;
-        if ( !sxb ) return -1;
-        return gnc_freq_spec_compare( xaccSchedXactionGetFreqSpec( sxa ),
-                                      xaccSchedXactionGetFreqSpec( sxb ) );
-}
-
-static
-gint
-gnc_sxd_clist_compare_sx_next_occur( GtkCList *cl,
-                                     gconstpointer a,
-                                     gconstpointer b )
-{
-        SchedXaction *sxa, *sxb;
-        GDate gda, gdb;
-
-        sxa = (SchedXaction*)((GtkCListRow*)a)->data;
-        sxb = (SchedXaction*)((GtkCListRow*)b)->data;
-
-        g_assert( sxa || sxb );
-        if ( !sxa ) {
-                return 1;
-        }
-        if ( !sxb ) {
-                return -1;
-        }
-        g_assert( sxa && sxb );
-
-        gda = xaccSchedXactionGetNextInstance( sxa, NULL );
-        gdb = xaccSchedXactionGetNextInstance( sxb, NULL );
-
-        if ( ! ( g_date_valid(&gda) && g_date_valid(&gdb) ) ) {
-                return 0;
-        }
-        if ( !g_date_valid(&gda) ) {
-                return 1;
-        }
-        if ( !g_date_valid(&gdb) ) {
-                return -1;
-        }
-        return g_date_compare( &gda, &gdb );
-}
-
-
-static
-void
-gnc_sxd_set_sort_compare( GtkCList *cl, gint col )
-{
-        gint (*fn)( GtkCList *, gconstpointer, gconstpointer );
-
-        fn = NULL;
-        switch ( col ) {
-        case 0: /* SX name */
-                fn = gnc_sxd_clist_compare_sx_name;
-                break;
-        case 1: /* SX frequency */
-                fn = gnc_sxd_clist_compare_sx_freq;
-                break;
-        case 2: /* next-occur date */
-                fn = gnc_sxd_clist_compare_sx_next_occur;
-                break;
-        default: /* ?? */
-                DEBUG( "invalid column value %d", col );
-                g_assert( FALSE );
-        }
-        gtk_clist_set_compare_func( cl, NULL );
-        gtk_clist_set_compare_func( cl, fn );
-}
-
-typedef enum { NO_END, DATE_END, COUNT_END } END_TYPE;
-
-static
-void
-gnc_sxed_update_cal( SchedXactionEditorDialog *sxed )
-{
-        int i;
-        FreqSpec *fs;
-        GDate d;
-        END_TYPE endType;
-        GDate endDate;
-        int numRemain;
-
-        endType = NO_END;
-        numRemain = -1;
-        /* figure out the end restriction */
-        if ( gtk_toggle_button_get_active( sxed->optEndDate ) ) {
-                time_t tt;
-                struct tm *tmpTm;
-                endType = DATE_END;
-                tt = gnc_date_edit_get_date( sxed->endDateEntry );
-                tmpTm = g_new0( struct tm, 1 );
-                *tmpTm = *(localtime( &tt ));
-                g_date_set_day( &endDate, tmpTm->tm_mday );
-                g_date_set_month( &endDate, tmpTm->tm_mon+1 );
-                g_date_set_year( &endDate, tmpTm->tm_year + 1900 );
-                g_free( tmpTm );
-        } else if ( gtk_toggle_button_get_active( sxed->optEndNone ) ) {
-                endType = NO_END;
-        } else if ( gtk_toggle_button_get_active( sxed->optEndCount ) ) {
-                endType = COUNT_END;
-		numRemain =
-		  gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
-
-        } else {
-                g_assert( FALSE );
-        }
-
-        if ( sxed->markId != -1 ) {
-                gnc_dense_cal_mark_remove( sxed->example_cal, sxed->markId );
-                sxed->markId = -1;
-        }
-
-        fs = xaccFreqSpecMalloc( gnc_get_current_book() );
-        gnc_frequency_save_state( sxed->gncfreq, fs, &d );
-        g_date_subtract_days( &d, 1 );
-        xaccFreqSpecGetNextInstance( fs, &d, &d );
-
-        /* Deal with the fact that this SX may have been run before [the
-         * calendar should only show upcoming instances]... */
-        {
-                GDate *lastInst;
-
-                lastInst = xaccSchedXactionGetLastOccurDate( sxed->sx );
-                if ( g_date_valid( lastInst )
-                     && g_date_valid( &d )
-                     && g_date_compare( lastInst, &d ) != 0 ) {
-                        d = *lastInst;
-                        xaccFreqSpecGetNextInstance( fs, &d, &d );
-                }
-        }
-
-        if ( !g_date_valid( &d ) ) {
-                /* Nothing to do. */
-                xaccFreqSpecFree( fs );
-                return;
-        }
-
-        i = 0;
-        gnc_dense_cal_set_month( sxed->example_cal, g_date_get_month( &d ) );
-        gnc_dense_cal_set_year(  sxed->example_cal, g_date_get_year( &d ) );
-        while ( (i < EX_CAL_NUM_MONTHS * 31)
-                && g_date_valid( &d )
-                /* Restrict based on end date */
-                && ( endType == NO_END
-                     || ( endType == DATE_END
-                          && g_date_compare( &d, &endDate ) <= 0 )
-                     || ( endType == COUNT_END
-                          && i < numRemain ) ) ) {
-                *(sxed->cal_marks[i++]) = d;
-                xaccFreqSpecGetNextInstance( fs, &d, &d );
-        }
-        if ( i <= 0 ) {
-                xaccFreqSpecFree( fs );
-                return;
-        }
-
-        { 
-                gchar *name;
-                GString *info;
-
-                name = gtk_editable_get_chars( sxed->nameEntry, 0, -1 );
-                if ( strlen( name ) == 0 ) {
-                        g_free(name);
-                        name = NULL;
-                }
-                info = g_string_sized_new( 16 );
-                xaccFreqSpecGetFreqStr( fs, info );
-                sxed->markId = gnc_dense_cal_mark( sxed->example_cal, i,
-                                                   sxed->cal_marks,
-                                                   name, info->str );
-                gtk_widget_queue_draw( GTK_WIDGET( sxed->example_cal ) );
-
-                g_string_free( info, TRUE );
-                if ( name != NULL )
-                {
-                        g_free( name );
-                }
-        }
-
-        xaccFreqSpecFree( fs );
-}
-
-static
-void
-gnc_sxed_freq_changed( GNCFrequency *gf, gpointer ud )
-{
-        gnc_sxed_update_cal( (SchedXactionEditorDialog*)ud );
-}
-
-static
-void
-sxed_excal_update_adapt( GtkObject *o, gpointer ud )
-{
-        gnc_sxed_update_cal( (SchedXactionEditorDialog*)ud );
-}
-
-void on_sx_check_toggled (GtkWidget *togglebutton, gpointer user_data);
-
-void
-on_sx_check_toggled (GtkWidget *togglebutton,
-		     gpointer user_data)
-{
-  GtkWidget *widget;
-  gboolean create; // , notify;
-
-  /* The gnc_glade_lookup_widget() function works because all of these
-   * widgets come from the same glade file. */
-  widget = gnc_glade_lookup_widget(togglebutton,
-	"gconf/dialogs/scheduled_trans/transaction_editor/create_auto");
-  create = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
-  widget = gnc_glade_lookup_widget(togglebutton,
-	"gconf/dialogs/scheduled_trans/transaction_editor/notify");
-  gtk_widget_set_sensitive(widget, create);
-}
-
-typedef struct _acct_deletion_handler_data
-{
-  GList *affected_sxes;
-  GtkWidget *dialog;
-} acct_deletion_handler_data;
-
-static void
-_open_editors(GtkDialog *dialog, gint response_code, gpointer data)
-{
-  acct_deletion_handler_data *adhd = (acct_deletion_handler_data *)data;
-  gtk_widget_hide_all(adhd->dialog);
-  {
-    GList *sx_iter;
-    for (sx_iter = adhd->affected_sxes; sx_iter; sx_iter = sx_iter->next)
-    {
-      gnc_ui_scheduled_xaction_editor_dialog_create(NULL, 
-                                                    (SchedXaction*)sx_iter->data,
-                                                    FALSE);
-    }
-  }
-  g_list_free(adhd->affected_sxes);
-  gtk_widget_destroy(GTK_WIDGET(adhd->dialog));
-  g_free(adhd);
-}
-
-static void
-_sx_engine_event_handler(QofEntity *ent, QofEventId event_type, gpointer user_data, gpointer evt_data)
-{
-  Account *acct;
-  QofBook *book;
-  GList *affected_sxes;
-
-  if (!(event_type & QOF_EVENT_DESTROY))
-    return;
-  if (!GNC_IS_ACCOUNT(ent))
-    return;
-  acct = GNC_ACCOUNT(ent);
-  book = qof_instance_get_book(QOF_INSTANCE(acct));
-  affected_sxes = gnc_sx_get_sxes_referencing_account(book, acct);
-
-  if (g_list_length(affected_sxes) == 0)
-     return;
-
-  {
-    GList *sx_iter;
-    acct_deletion_handler_data *data;
-    GladeXML *xml;
-    GtkWidget *dialog;
-    GtkListStore *name_list;
-    GtkTreeView *list;
-    GtkTreeViewColumn *name_column;
-    GtkCellRenderer *renderer;
-
-    xml = gnc_glade_xml_new("sched-xact.glade", "Account Deletion");
-    dialog = glade_xml_get_widget(xml, "Account Deletion");
-    list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "sx_list"));
-
-    data = (acct_deletion_handler_data*)g_new0(acct_deletion_handler_data, 1);
-    data->dialog = dialog;
-    data->affected_sxes = affected_sxes;
-    name_list = gtk_list_store_new(1, G_TYPE_STRING);
-    for (sx_iter = affected_sxes; sx_iter != NULL; sx_iter = sx_iter->next)
-    {
-      SchedXaction *sx;
-      GtkTreeIter iter;
-      gchar *sx_name;
-
-      sx = (SchedXaction*)sx_iter->data;
-      sx_name = xaccSchedXactionGetName(sx);
-      gtk_list_store_append(name_list, &iter);
-      gtk_list_store_set(name_list, &iter, 0, sx_name, -1);
-    }
-    gtk_tree_view_set_model(list, GTK_TREE_MODEL(name_list));
-    g_object_unref(G_OBJECT(name_list));
-
-    renderer = gtk_cell_renderer_text_new();
-    name_column = gtk_tree_view_column_new_with_attributes(_("Name"),
-                                                           renderer,
-                                                           "text", 0, NULL);
-    gtk_tree_view_append_column(list, name_column);
-
-    g_signal_connect(G_OBJECT(dialog), "response",
-                     G_CALLBACK(_open_editors), data);
-
-    gtk_widget_show_all(GTK_WIDGET(dialog));
-  }
-}
-
-void
-gnc_ui_sx_initialize (void)
-{
-  _sx_engine_event_handler_id = qof_event_register_handler(_sx_engine_event_handler, NULL);
-
-  gnc_hook_add_dangler(HOOK_BOOK_OPENED,
-		       (GFunc)gnc_sx_sxsincelast_book_opened, NULL);
-  gnc_preferences_add_page (SX_GLADE_FILE,
-			    "sx_prefs",
-			    _("Scheduled Transactions"));
-}

Deleted: gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,67 +0,0 @@
-/********************************************************************\
- * dialog-scheduledxaction.h : dialogs for scheduled transactions   *
- * Copyright (C) 2001 Joshua Sled <jsled at asynchronous.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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
-\********************************************************************/
-
-#ifndef DIALOG_SCHEDULEDXACTION_H
-#define DIALOG_SCHEDULEDXACTION_H
-
-#include "SchedXaction.h"
-
-#define DIALOG_SCHEDXACTION_CM_CLASS "dialog-scheduledtransactions"
-#define DIALOG_SCHEDXACTION_EDITOR_CM_CLASS "dialog-scheduledtransaction-editor"
-
-#define SXED_GCONF_SECTION "dialogs/scheduled_trans/transaction_editor"
-#define KEY_CREATE_AUTO	"create_auto"
-#define KEY_NOTIFY	"notify"
-#define KEY_CREATE_DAYS	"create_days"
-#define KEY_REMIND_DAYS	"remind_days"
-
-struct _SchedXactionDialog;
-struct _SchedXactionEditorDialog;
-
-typedef struct _SchedXactionDialog SchedXactionDialog;
-typedef struct _SchedXactionEditorDialog SchedXactionEditorDialog;
-
-SchedXactionDialog * gnc_ui_scheduled_xaction_dialog_create(void);
-void gnc_ui_scheduled_xaction_dialog_destroy(SchedXactionDialog *sxd);
-#ifdef __GTK_CLIST_H__
-void row_select_handler( GtkCList *clist, gint row, gint col,
-                         GdkEventButton *event, gpointer d );
-void row_unselect_handler( GtkCList *clist, gint row, gint col,
-                         GdkEventButton *event, gpointer d );
-#endif
-
-void gnc_sxd_list_refresh( SchedXactionDialog *sxd );
-
-SchedXactionEditorDialog *
-gnc_ui_scheduled_xaction_editor_dialog_create( SchedXactionDialog *sxd,
-					       SchedXaction *sx,
-                                               gboolean newSX );
-
-void gnc_ui_scheduled_xaction_editor_dialog_destroy( SchedXactionEditorDialog *sxd );
-
-/**
- * Sets up a book opened hook.  The function called may open a "since
- * last run" dialog based upon the user's preferences.
- **/
-void gnc_ui_sx_initialize (void);
-
-#endif

Copied: gnucash/branches/gda-dev/src/gnome/dialog-sx-editor.c (from rev 15827, gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.c)
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.c	2007-04-05 03:10:26 UTC (rev 15827)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sx-editor.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,1734 @@
+/********************************************************************\
+ * dialog-sx-editor.c : dialog for scheduled transaction editing    *
+ * Copyright (C) 2001,2002,2006 Joshua Sled <jsled at asynchronous.org>*
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of version 2 of the GNU General Public *
+ * License as published by the Free Software Foundation.            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+\********************************************************************/
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+#include "glib-compat.h"
+#include <locale.h>
+#include <time.h>
+
+#include "qof.h"
+#include "gnc-book.h"
+#include "Account.h"
+#include "FreqSpec.h"
+#include "SchedXaction.h"
+#include "SX-book.h"
+#include "dialog-preferences.h"
+#include "dialog-sx-editor.h"
+#include "dialog-utils.h"
+#include "gnc-book.h"
+#include "gnc-component-manager.h"
+#include "gnc-date.h"
+#include "gnc-date-edit.h"
+#include "gnc-dense-cal.h"
+#include "gnc-dense-cal-store.h"
+#include "gnc-embedded-window.h"
+#include "gnc-engine.h"
+#include "gnc-frequency.h"
+#include "gnc-gconf-utils.h"
+#include "gnc-gui-query.h"
+#include "gnc-hooks.h"
+#include "gnc-ledger-display.h"
+#include "gnc-plugin-page.h"
+#include "gnc-plugin-page-register.h"
+#include "gnc-ui.h"
+#include "gnc-ui-util.h"
+#include "gnucash-sheet.h"
+
+#include "gnc-split-reg.h"
+
+#include "gnc-sx-instance-model.h"
+#include "dialog-sx-since-last-run.h"
+
+#ifdef HAVE_LANGINFO_D_FMT
+#include <langinfo.h>
+#endif
+
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.sx.editor"
+
+static gint _sx_engine_event_handler_id = -1;
+
+#define SX_EDITOR_GLADE_NAME "Scheduled Transaction Editor"
+
+#define SXED_WIN_PREFIX "sx_editor_win"
+#define SXED_NAME_ENTRY "sxe_name"
+#define SXED_LAST_OCCUR_LABEL "last_occur_label"
+#define ENABLED_OPT "enabled_opt"
+#define AUTOCREATE_OPT "autocreate_opt"
+#define NOTIFY_OPT "notify_opt"
+#define ADVANCE_OPT "advance_opt"
+#define ADVANCE_DAYS_SPIN "advance_days"
+#define REMIND_OPT "remind_opt"
+#define REMIND_DAYS_SPIN "remind_days"
+#define END_DATE_BOX "end_date_hbox"
+#define END_SPIN "end_spin"
+#define REMAIN_SPIN "remain_spin"
+
+#define SX_GLADE_FILE "sched-xact.glade"
+
+#define END_NEVER_OPTION 0
+#define END_DATE_OPTION  1
+#define NUM_OCCUR_OPTION 2
+
+#define NUM_LEDGER_LINES_DEFAULT 6
+
+#define EX_CAL_NUM_MONTHS 6
+#define EX_CAL_MO_PER_COL 2
+
+#define GNC_D_WIDTH 25
+#define GNC_D_BUF_WIDTH 26
+
+/** Datatypes ***********************************************************/
+
+typedef enum _EndTypeEnum {
+    END_NEVER,
+    END_DATE,
+    END_OCCUR,
+} EndType;
+
+struct _GncSxEditorDialog
+{
+    GladeXML *gxml;
+    GtkWidget *dialog;
+    SchedXaction *sx;
+    /* If this is a new scheduled transaction or not. */
+    int newsxP;
+
+    /* The various widgets in the dialog */
+    GNCLedgerDisplay *ledger;
+
+    GncFrequency *gncfreq;
+    GncDenseCalStore *dense_cal_model;
+    GncDenseCal *example_cal;
+
+    GtkEditable *nameEntry;
+
+    GtkLabel *lastOccurLabel;
+
+    GtkToggleButton *enabledOpt;
+    GtkToggleButton *autocreateOpt;
+    GtkToggleButton *notifyOpt;
+    GtkToggleButton *advanceOpt;
+    GtkSpinButton *advanceSpin;
+    GtkToggleButton *remindOpt;
+    GtkSpinButton *remindSpin;
+
+    GtkToggleButton *optEndDate;
+    GtkToggleButton *optEndNone;
+    GtkToggleButton *optEndCount;
+    GtkEntry *endCountSpin;
+    GtkEntry *endRemainSpin;
+    GNCDateEdit *endDateEntry;
+
+    char *sxGUIDstr;
+
+    GncEmbeddedWindow *embed_window;
+    GncPluginPage *plugin_page;
+};
+
+/** Prototypes **********************************************************/
+
+static void schedXact_editor_create_freq_sel( GncSxEditorDialog *sxed );
+static void schedXact_editor_create_ledger( GncSxEditorDialog *sxed );
+static void schedXact_editor_populate( GncSxEditorDialog * );
+
+static void gnc_sxed_record_size( GncSxEditorDialog *sxed );
+static void gnc_sxed_get_widgets( GncSxEditorDialog *sxed );
+static void endgroup_rb_toggled( GtkButton *b, gpointer d );
+static void set_endgroup_toggle_states( GncSxEditorDialog *sxed, EndType t );
+static void advance_toggle( GtkButton *b, GncSxEditorDialog *sxed );
+static gboolean gnc_sxed_check_consistent( GncSxEditorDialog *sxed );
+static gboolean gnc_sxed_check_changed( GncSxEditorDialog *sxed );
+static void gnc_sxed_save_sx( GncSxEditorDialog *sxed );
+static void gnc_sxed_freq_changed( GncFrequency *gf, gpointer ud );
+static void sxed_excal_update_adapt( GtkObject *o, gpointer ud );
+static void gnc_sxed_update_cal(GncSxEditorDialog *sxed);
+
+static void gnc_sxed_reg_check_close(GncSxEditorDialog *sxed);
+
+static gint sxed_close_event( GtkDialog *dlg, gpointer ud );
+
+static gboolean sxed_confirmed_cancel( GncSxEditorDialog *sxed );
+
+static gboolean editor_component_sx_equality( gpointer find_data,
+                                              gpointer user_data );
+
+static GtkActionEntry gnc_sxed_menu_entries [] =
+{
+    { "EditAction", NULL, N_("_Edit"), NULL, NULL, NULL },
+    { "TransactionAction", NULL, N_("_Transaction"), NULL, NULL, NULL },
+    { "ViewAction", NULL, N_("_View"), NULL, NULL, NULL },
+    { "ActionsAction", NULL, N_("_Actions"), NULL, NULL, NULL },
+};
+static guint gnc_sxed_menu_n_entries = G_N_ELEMENTS (gnc_sxed_menu_entries);
+
+/** Implementations *****************************************************/
+
+static void
+sxed_close_handler(gpointer user_data)
+{
+    GncSxEditorDialog *sxed = user_data;
+
+    gnc_sxed_reg_check_close(sxed);
+    gnc_sxed_record_size(sxed);
+    gtk_widget_destroy(sxed->dialog);
+    /* The data will be cleaned up in the destroy handler. */
+}
+
+/**
+ * @return TRUE if the user does want to cancel, FALSE if not.  If TRUE is
+ * returned, the register's changes have been cancelled.
+ **/
+static gboolean
+sxed_confirmed_cancel(GncSxEditorDialog *sxed)
+{
+    SplitRegister *reg;
+
+    reg = gnc_ledger_display_get_split_register( sxed->ledger );
+    /* check for changes */
+    if ( gnc_sxed_check_changed( sxed ) ) {
+        const char *sx_changed_msg =
+            _( "This SX has changed; are you "
+               "sure you want to cancel?" );
+        if (!gnc_verify_dialog(sxed->dialog, FALSE, sx_changed_msg)) {
+            return FALSE;
+        }
+    }
+    /* cancel ledger changes */
+    gnc_split_register_cancel_cursor_trans_changes( reg );
+    return TRUE;
+}
+
+static void
+editor_cancel_button_clicked( GtkButton *b, GncSxEditorDialog *sxed )
+{
+    /* close */
+    if (!sxed_confirmed_cancel(sxed))
+        return;
+
+    gnc_close_gui_component_by_data( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
+                                     sxed );
+}
+
+static
+void
+editor_help_button_clicked(GtkButton *b, GncSxEditorDialog *sxed)
+{
+    gnc_gnome_help(HF_HELP, HL_SXEDITOR);
+}
+
+static
+void
+editor_ok_button_clicked( GtkButton *b, GncSxEditorDialog *sxed )
+{
+    GNCBook *book;
+    SchedXactions *sxes;
+
+    if ( !gnc_sxed_check_consistent( sxed ) ) 
+        return;
+
+    gnc_sxed_save_sx( sxed );
+
+    /* add to list */
+    // @@fixme -- forget 'new'-flag: check for existance.
+    if ( sxed->newsxP ) {
+        book = gnc_get_current_book ();
+        sxes = gnc_book_get_schedxactions(book);
+        gnc_sxes_add_sx(sxes, sxed->sx);
+        sxed->newsxP = FALSE;
+    }
+
+    /* cleanup */
+    gnc_close_gui_component_by_data( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
+                                     sxed );
+}
+
+/**
+ * Checks to see if the SX has been modified from it's previously-saved
+ * state.
+ * @return TRUE if this is a 'new' SX, or if the SX has changed from it's
+ *   previous configuration.
+ **/
+static gboolean
+gnc_sxed_check_changed( GncSxEditorDialog *sxed )
+{
+    if ( sxed->newsxP )
+        return TRUE;
+
+    /* name */
+    {
+        char *name;
+
+        name = gtk_editable_get_chars( GTK_EDITABLE(sxed->nameEntry), 0, -1 );
+        if ( strlen(name) == 0 ) {
+            return TRUE;
+                        
+        }
+        if ( (xaccSchedXactionGetName(sxed->sx) == NULL)
+             || (strcmp( xaccSchedXactionGetName(sxed->sx),
+                         name ) != 0) ) {
+            return TRUE;
+        }
+    }
+
+    /* end options */
+    {
+        /* dialog says... no end */
+        if ( gtk_toggle_button_get_active( sxed->optEndNone ) ) {
+            if ( xaccSchedXactionHasEndDate(sxed->sx)
+                 || xaccSchedXactionHasOccurDef(sxed->sx) ) {
+                return TRUE;
+            }
+        }
+
+        /* dialog says... end date */
+        if ( gtk_toggle_button_get_active( sxed->optEndDate ) ) {
+            GDate sxEndDate, dlgEndDate;
+
+            if ( ! xaccSchedXactionHasEndDate( sxed->sx ) ) {
+                return TRUE;
+            }
+            sxEndDate = *xaccSchedXactionGetEndDate( sxed->sx );
+            g_date_set_time_t( &dlgEndDate,
+                               gnc_date_edit_get_date( sxed->
+                                                       endDateEntry ) );
+
+            if ( g_date_compare( &sxEndDate, &dlgEndDate ) != 0 ) {
+                return TRUE;
+            }
+        }
+
+        /* dialog says... num occur */
+        if ( gtk_toggle_button_get_active( sxed->optEndCount ) ) {
+            gint sxNumOccur, sxNumRem, dlgNumOccur, dlgNumRem;
+
+            if ( ! xaccSchedXactionGetNumOccur( sxed->sx ) ) {
+                return TRUE;
+            }
+
+            dlgNumOccur  =
+                gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endCountSpin) );
+
+            dlgNumRem =
+                gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
+
+            sxNumOccur = xaccSchedXactionGetNumOccur( sxed->sx );
+            sxNumRem = xaccSchedXactionGetRemOccur( sxed->sx );
+
+            if ( (dlgNumOccur != sxNumOccur)
+                 || (dlgNumRem != sxNumRem) ) {
+                return TRUE;
+            }
+        }
+    }
+
+    /* SX options [autocreate, notify, reminder, advance] */
+    {
+        gboolean dlgEnabled,
+            dlgAutoCreate, 
+            dlgNotify, 
+            sxEnabled,
+            sxAutoCreate, 
+            sxNotify;
+        gint dlgAdvance, sxAdvance;
+        gint dlgRemind, sxRemind;
+
+        dlgEnabled =
+            gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->
+                                                            enabledOpt) );
+        dlgAutoCreate =
+            gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->
+                                                            autocreateOpt) );
+        dlgNotify =
+            gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->
+                                                            notifyOpt) );
+
+        sxEnabled = xaccSchedXactionGetEnabled( sxed->sx );
+        if ( ! ((dlgEnabled == sxEnabled)) ) {
+            return TRUE;
+        }
+
+        xaccSchedXactionGetAutoCreate( sxed->sx, &sxAutoCreate, &sxNotify );
+        if ( ! ((dlgAutoCreate == sxAutoCreate)
+                && (dlgNotify == sxNotify)) ) {
+            return TRUE;
+        }
+
+        dlgAdvance = 0;
+        if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->advanceOpt) ) ) {
+            dlgAdvance =
+                gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(sxed->
+                                                                  advanceSpin) );
+        }
+        sxAdvance = xaccSchedXactionGetAdvanceCreation( sxed->sx );
+        if ( dlgAdvance != sxAdvance ) {
+            return TRUE;
+        }
+
+        dlgRemind = 0;
+        if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sxed->remindOpt) ) ) {
+            dlgRemind =
+                gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(sxed->remindSpin) );
+        }
+        sxRemind = xaccSchedXactionGetAdvanceReminder( sxed->sx );
+        if ( dlgRemind != sxRemind ) {
+            return TRUE;
+        }
+    }
+
+    {
+        GList *dialog_schedule = NULL;
+        GDate dialog_start_date, sx_start_date;
+        gchar *dialog_schedule_str, *sx_schedule_str;
+        gboolean schedules_are_the_same, start_dates_are_the_same;
+
+        g_date_clear(&dialog_start_date, 1);
+        gnc_frequency_save_to_recurrence(sxed->gncfreq, &dialog_schedule, &dialog_start_date);
+        dialog_schedule_str = recurrenceListToString(dialog_schedule);
+        recurrenceListFree(&dialog_schedule);
+
+        sx_start_date = *xaccSchedXactionGetStartDate(sxed->sx);
+        sx_schedule_str = recurrenceListToString(gnc_sx_get_schedule(sxed->sx));
+
+        g_debug("dialog schedule [%s], sx schedule [%s]",
+                dialog_schedule_str, sx_schedule_str);
+
+        schedules_are_the_same = (strcmp(dialog_schedule_str, sx_schedule_str) == 0);
+        g_free(dialog_schedule_str);
+        g_free(sx_schedule_str);
+
+        start_dates_are_the_same = (g_date_compare(&dialog_start_date, &sx_start_date) == 0);
+
+        if (!schedules_are_the_same || !start_dates_are_the_same)
+            return TRUE;
+    }
+
+    /* template transactions */
+    {
+        SplitRegister *sr =
+            gnc_ledger_display_get_split_register( sxed->ledger );
+
+        if ( gnc_split_register_changed( sr ) ) {
+            return TRUE;
+        }
+    }
+    return FALSE;
+}
+
+
+/**
+ * Holds the credit- and debit-sum for a given Transaction, as used in
+ * gnc_sxed_check_consistent.
+ **/
+typedef struct _txnCreditDebitSums {
+    gnc_numeric creditSum;
+    gnc_numeric debitSum;
+} txnCreditDebitSums;
+
+static
+void
+set_sums_to_zero( gpointer key,
+                  gpointer val,
+                  gpointer ud )
+{
+    txnCreditDebitSums *tcds = (txnCreditDebitSums*)val;
+    tcds->creditSum = gnc_numeric_zero();
+    tcds->debitSum  = gnc_numeric_zero();
+}
+
+static
+void
+free_sums( gpointer key,
+           gpointer val,
+           gpointer ud )
+{
+    txnCreditDebitSums *tcds = (txnCreditDebitSums*)val;
+    g_free( tcds );
+}
+
+static void
+check_credit_debit_balance( gpointer key,
+                            gpointer val,
+                            gpointer ud )
+{
+    txnCreditDebitSums *tcds = (txnCreditDebitSums*)val;
+    gboolean *unbalanced = (gboolean*)ud;
+    *unbalanced |= !(gnc_numeric_zero_p(
+                         gnc_numeric_sub_fixed( tcds->debitSum,
+                                                tcds->creditSum ) ));
+
+    if (qof_log_check(G_LOG_DOMAIN, QOF_LOG_DEBUG))
+    {
+        if ( gnc_numeric_zero_p( gnc_numeric_sub_fixed( tcds->debitSum,
+                                                        tcds->creditSum ) ) ) {
+            g_debug( "%p | true [%s - %s = %s]",
+                     key,
+                     gnc_numeric_to_string( tcds->debitSum ),
+                     gnc_numeric_to_string( tcds->creditSum ),
+                     gnc_numeric_to_string(gnc_numeric_sub_fixed( tcds->debitSum,
+                                                                  tcds->creditSum )) );
+        } else {
+            g_debug( "%p | false [%s - %s = %s]",
+                     key,
+                     gnc_numeric_to_string( tcds->debitSum ),
+                     gnc_numeric_to_string( tcds->creditSum ),
+                     gnc_numeric_to_string(gnc_numeric_sub_fixed( tcds->debitSum,
+                                                                  tcds->creditSum )) );
+        }
+    }
+}
+
+/**
+ * Checks to make sure that the SX is in a reasonable state to save.
+ * @return true if checks out okay, false otherwise.
+ **/
+static
+gboolean
+gnc_sxed_check_consistent( GncSxEditorDialog *sxed )
+{
+    gboolean multi_commodity = FALSE;
+    gnc_commodity *base_cmdty = NULL;
+    gint ttVarCount, splitCount;
+    GList *schedule = NULL;
+
+    /* Do checks on validity and such, interrupting the user if
+     * things aren't right.
+     *
+     * Features...
+     * X support formulas [?!]
+     * X balancing the SX if contain numeric-only formula data.
+     *   X agreement with create-automagically/notification controls
+     * X the 'will ever be valid' check should take num-occur vals into
+     *   account.
+     * X SX name is unique
+     * X SX has a name
+     * X "weekly" FS has some days set.
+     * X "once" with reasonable start/end dates.
+     *   X This doesn't work at the time the 'weekly' one was fixed with
+     *     user-confirmation, below; the once SX is always valid.
+     * [X more generically, creating a "not scheduled" SX is probably not
+     *   right... ]
+     */
+
+    ttVarCount = 0;
+    splitCount = 0;
+    {
+        static const int NUM_ITERS_WITH_VARS = 5;
+        static const int NUM_ITERS_NO_VARS = 1;
+        int numIters, i;
+        GHashTable *vars, *txns;
+        GList *splitList = NULL;
+        char *str;
+        kvp_frame *f;
+        kvp_value *v;
+        Split *s;
+        Transaction *t;
+        gnc_numeric tmp;
+        gboolean unbalanceable;
+        gpointer unusedKey, unusedValue;
+
+        unbalanceable = FALSE; /* innocent until proven guilty */
+        vars = g_hash_table_new( g_str_hash, g_str_equal );
+        txns = g_hash_table_new( g_direct_hash, g_direct_equal );
+        numIters = NUM_ITERS_NO_VARS;
+        /**
+         * Plan:
+         * . Do a first pass to get the variables.
+         * . Set each variable to random values.
+         * . see if we balance after that
+         *   . true: all good
+         *   . false: indicate to user, allow decision.
+         */
+
+        /* FIXME: This _really_ shouldn't require a modification of the
+         * SX just to get the var names... */
+        gnc_split_register_save ( gnc_ledger_display_get_split_register(sxed->ledger),
+                                  FALSE );
+        /* numeric-formulas-get-balanced determination */
+        gnc_sx_get_variables( sxed->sx, vars );
+
+        ttVarCount = g_hash_table_size( vars );
+        if ( ttVarCount != 0 ) {
+            /* balance with random variable bindings some number
+             * of times in an attempt to ferret out
+             * un-balanceable transactions.
+             * 
+             * NOTE: The Real Way to do this is with some
+             * symbolic math to eliminate the variables.  This is
+             * hard, and we don't do it.  This solution will
+             * suffice for now, and perhaps for the lifetime of
+             * the software. --jsled */
+            numIters = NUM_ITERS_WITH_VARS;
+        }
+
+        srand(time(NULL));
+        for ( i=0; i < numIters && !unbalanceable; i++ ) {
+            gnc_sx_randomize_variables(vars);
+            g_hash_table_foreach( txns, set_sums_to_zero, NULL );
+            tmp = gnc_numeric_zero();
+
+            splitList = xaccSchedXactionGetSplits( sxed->sx );
+            splitCount += g_list_length( splitList );
+
+            for ( ; splitList; splitList = splitList->next )
+            {
+                GUID *acct_guid;
+                Account *acct;
+                gnc_commodity *split_cmdty;
+                txnCreditDebitSums *tcds;
+
+                s = (Split*)splitList->data;
+                t = xaccSplitGetParent( s );
+
+                if ( !(tcds =
+                       (txnCreditDebitSums*)g_hash_table_lookup( txns,
+                                                                 (gpointer)t )) )
+                {
+                    tcds = g_new0( txnCreditDebitSums, 1 );
+                    tcds->creditSum = gnc_numeric_zero();
+                    tcds->debitSum  = gnc_numeric_zero();
+                    g_hash_table_insert( txns, (gpointer)t, (gpointer)tcds );
+                }
+
+                f = xaccSplitGetSlots( s );
+
+                /* contains the guid of the split's actual account. */
+                v = kvp_frame_get_slot_path(f,
+                                            GNC_SX_ID,
+                                            GNC_SX_ACCOUNT,
+                                            NULL);
+                acct_guid = kvp_value_get_guid( v );
+                acct = xaccAccountLookup( acct_guid, gnc_get_current_book ());
+                split_cmdty = xaccAccountGetCommodity(acct);
+                if (base_cmdty == NULL)
+                {
+                    base_cmdty = split_cmdty;
+                }
+                multi_commodity |= !gnc_commodity_equal(split_cmdty, base_cmdty);
+                                        
+                v = kvp_frame_get_slot_path( f,
+                                             GNC_SX_ID,
+                                             GNC_SX_CREDIT_FORMULA,
+                                             NULL );
+                if ( v
+                     && (str = kvp_value_get_string(v))
+                     && strlen( str ) != 0 ) {
+                    if ( gnc_sx_parse_vars_from_formula( str, vars, &tmp ) < 0 ) {
+                        GString *errStr;
+
+                        errStr = g_string_sized_new( 32 );
+                        g_string_printf( errStr,
+                                         _( "Couldn't parse credit formula for "
+                                            "split \"%s\"." ),
+                                         xaccSplitGetMemo( s ) );
+                        gnc_error_dialog( GTK_WIDGET(sxed->dialog),
+                                          errStr->str );
+                        g_string_free( errStr, TRUE );
+
+                        return FALSE;
+                    }
+                    tcds->creditSum =
+                        gnc_numeric_add( tcds->creditSum, tmp, 100,
+                                         (GNC_DENOM_AUTO | GNC_DENOM_LCD) );
+                    tmp = gnc_numeric_zero();
+                }
+                v = kvp_frame_get_slot_path( f,
+                                             GNC_SX_ID,
+                                             GNC_SX_DEBIT_FORMULA,
+                                             NULL );
+                if ( v
+                     && (str = kvp_value_get_string(v))
+                     && strlen(str) != 0 ) {
+                    if ( gnc_sx_parse_vars_from_formula( str, vars, &tmp ) < 0 ) {
+                        GString *errStr;
+
+                        errStr = g_string_sized_new( 32 );
+                        g_string_printf( errStr,
+                                         _( "Couldn't parse debit formula for "
+                                            "split \"%s\"." ),
+                                         xaccSplitGetMemo( s ) );
+                        gnc_error_dialog( GTK_WIDGET(sxed->dialog),
+                                          (gchar*)errStr->str );
+                        g_string_free( errStr, TRUE );
+
+                        return FALSE;
+                    }
+                    tcds->debitSum = gnc_numeric_add( tcds->debitSum, tmp, 100,
+                                                      (GNC_DENOM_AUTO | GNC_DENOM_LCD) );
+                    tmp = gnc_numeric_zero();
+                }
+            }
+
+            g_hash_table_foreach( txns,
+                                  check_credit_debit_balance,
+                                  &unbalanceable );
+        }
+
+        /* Subtract out pre-defined vars */
+        if (g_hash_table_lookup_extended(vars, "i",
+                                         &unusedKey,
+                                         &unusedValue))
+        {
+            ttVarCount -= 1;
+        }
+
+        g_hash_table_foreach(vars, (GHFunc)gnc_sx_variable_free, NULL);
+        g_hash_table_destroy(vars);
+
+        g_hash_table_foreach( txns, free_sums, NULL );
+        g_hash_table_destroy( txns );
+
+        if ( unbalanceable
+             && !gnc_verify_dialog( sxed->dialog, FALSE,
+                                    "%s",
+                                    _("The Scheduled Transaction Editor "
+                                      "cannot automatically balance "
+                                      "this transaction. "
+                                      "Should it still be "
+                                      "entered?") ) ) {
+            return FALSE;
+        }
+    }
+
+    /* read out data back into SchedXaction object. */
+    /* FIXME: this is getting too deep; split out. */
+    {
+        gchar *name, *nameKey;
+        gboolean nameExists, nameHasChanged;
+        GList *sxList;
+
+        name = gtk_editable_get_chars( GTK_EDITABLE(sxed->nameEntry), 0, -1 );
+        if ( strlen(name) == 0 ) {
+            const char *sx_has_no_name_msg =
+                _( "Please name the Scheduled Transaction." );
+            gnc_error_dialog( sxed->dialog, sx_has_no_name_msg );
+            g_free( name );
+            return FALSE;
+                        
+        }
+
+        nameExists = FALSE;
+        nameKey = g_utf8_collate_key(name, -1);
+        nameHasChanged =
+            (xaccSchedXactionGetName(sxed->sx) == NULL)
+            || (strcmp( xaccSchedXactionGetName(sxed->sx), name ) != 0);
+        for ( sxList =
+                  gnc_book_get_schedxactions(gnc_get_current_book())->sx_list;
+              nameHasChanged && !nameExists && sxList;
+              sxList = sxList->next ) {
+            char *existingName, *existingNameKey;
+            existingName =
+                xaccSchedXactionGetName( (SchedXaction*)sxList->
+                                         data );
+            existingNameKey = g_utf8_collate_key(existingName, -1);
+            nameExists |= ( strcmp(nameKey, existingNameKey) == 0 );
+            g_free( existingNameKey );
+        }
+        if ( nameHasChanged && nameExists ) {
+            const char *sx_has_existing_name_msg =
+                _( "A Scheduled Transaction with the "
+                   "name \"%s\" already exists. "
+                   "Are you sure you want to name "
+                   "this one the same?" );
+            if ( ! gnc_verify_dialog( sxed->dialog, FALSE,
+                                      sx_has_existing_name_msg,
+                                      name) ) {
+                g_free( nameKey );
+                g_free( name );
+                return FALSE;
+            }
+        }
+        g_free( nameKey );
+        g_free( name );
+    }
+
+    // @@fixme: similar to below, check the commodities involved, and disallow autocreation
+    {
+        gboolean autocreateState, notifyState;
+
+        autocreateState =
+            gtk_toggle_button_get_active(
+                GTK_TOGGLE_BUTTON(sxed->autocreateOpt) );
+        notifyState =
+            gtk_toggle_button_get_active(
+                GTK_TOGGLE_BUTTON(sxed->notifyOpt) );
+
+        if (((ttVarCount > 0) || multi_commodity) && autocreateState) {
+            gnc_warning_dialog(sxed->dialog,
+                               _("Scheduled Transactions with variables "
+                                 "cannot be automatically created."));
+            return FALSE;
+        }
+
+        /* Fix for part of Bug#121740 -- auto-create transactions are
+         * only valid if there's actually a transaction to create. */
+        if ( autocreateState && splitCount == 0 ) {
+            gnc_warning_dialog( sxed->dialog,
+                                _("Scheduled Transactions without a template "
+                                  "transaction cannot be automatically created.") );
+            return FALSE;
+        }
+    }
+
+    /* deal with time. */
+    {
+        GDate startDate, endDate, nextDate;
+
+        if ( !gtk_toggle_button_get_active(sxed->optEndDate)
+             && !gtk_toggle_button_get_active(sxed->optEndCount)
+             && !gtk_toggle_button_get_active(sxed->optEndNone) ) {
+            const char *sx_end_spec_msg =
+                _( "Please provide a valid end selection." );
+            gnc_error_dialog( sxed->dialog, sx_end_spec_msg );
+            return FALSE;
+        }
+
+        if ( gtk_toggle_button_get_active(sxed->optEndCount)) {
+            gint occur, rem;
+
+            occur  =
+                gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endCountSpin) );
+
+            rem =
+                gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
+
+            if ( occur == 0 ) {
+                const char *sx_occur_count_zero_msg =
+                    _( "There must be some number of occurrences." );
+                gnc_error_dialog( sxed->dialog,
+                                  sx_occur_count_zero_msg );
+                return FALSE;
+            }
+
+            if ( rem > occur ) {
+                const char *sx_occur_counts_wrong_msg =
+                    _( "The number of remaining occurrences "
+                       "(%d) is greater than the number of "
+                       "total occurrences (%d)." );
+                gnc_error_dialog( sxed->dialog,
+                                  sx_occur_counts_wrong_msg,
+                                  rem, occur );
+                return FALSE;
+            }
+
+        }
+
+        g_date_clear( &endDate, 1 );
+        if ( gtk_toggle_button_get_active(sxed->optEndDate) ) {
+            g_date_set_time_t( &endDate,
+                               gnc_date_edit_get_date( sxed->
+                                                       endDateEntry ) );
+        }
+
+        g_date_clear(&nextDate, 1);
+        gnc_frequency_save_to_recurrence(sxed->gncfreq, &schedule, &startDate);
+        if (g_list_length(schedule) > 0)
+        {
+            g_date_subtract_days(&startDate, 1);
+            recurrenceListNextInstance(schedule, &startDate, &nextDate);
+        }
+        recurrenceListFree(&schedule);
+
+        if (!g_date_valid(&nextDate)
+            || (g_date_valid(&endDate) && (g_date_compare(&nextDate, &endDate) > 0)))
+        {
+            const char *invalid_sx_check_msg =
+                _("You have attempted to create a Scheduled "
+                  "Transaction which will never run. Do you "
+                  "really want to do this?");
+            if (!gnc_verify_dialog(sxed->dialog, FALSE, invalid_sx_check_msg))
+                return FALSE;
+        }
+    }
+    return TRUE;
+}
+
+/**
+ * Saves the contents of the SX.  This assumes that gnc_sxed_check_consistent
+ * has returned true.
+ **/
+static
+void
+gnc_sxed_save_sx( GncSxEditorDialog *sxed )
+{
+    /* name */
+    {
+        char *name;
+
+        name = gtk_editable_get_chars( sxed->nameEntry, 0, -1 );
+        xaccSchedXactionSetName( sxed->sx, name );
+        g_free( name );
+    }
+
+    /* date */
+    {
+        GDate gdate;
+
+        if ( gtk_toggle_button_get_active(sxed->optEndDate) ) {
+            /* get the end date data */
+            g_date_set_time_t( &gdate,
+                               gnc_date_edit_get_date(
+                                   sxed->endDateEntry ) );
+            xaccSchedXactionSetEndDate( sxed->sx, &gdate );
+            /* set the num occurances data */
+            xaccSchedXactionSetNumOccur( sxed->sx, 0 );
+        } else if ( gtk_toggle_button_get_active(sxed->optEndCount) ) {
+            gint num;
+
+            /* get the occurances data */
+            num  =
+                gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endCountSpin) );
+            xaccSchedXactionSetNumOccur( sxed->sx, num );
+
+            num =
+                gtk_spin_button_get_value_as_int ( GTK_SPIN_BUTTON(sxed->endRemainSpin) );
+            xaccSchedXactionSetRemOccur( sxed->sx, num );
+
+            g_date_clear( &gdate, 1 );
+            xaccSchedXactionSetEndDate( sxed->sx, &gdate );
+        } else if ( gtk_toggle_button_get_active( sxed->optEndNone ) ) {
+            xaccSchedXactionSetNumOccur( sxed->sx, 0 );
+            g_date_clear( &gdate, 1 );
+            xaccSchedXactionSetEndDate( sxed->sx, &gdate );
+        } else {
+            g_critical("no valid end specified\n");
+        }
+    }
+
+    /* Enabled states */
+    {
+        gboolean enabledState;
+
+        enabledState = gtk_toggle_button_get_active( sxed->enabledOpt );
+        xaccSchedXactionSetEnabled( sxed->sx, enabledState );
+    }
+
+    /* Auto-create/notification states */
+    {
+        gboolean autocreateState, notifyState;
+
+        autocreateState = gtk_toggle_button_get_active( sxed->autocreateOpt );
+        notifyState = gtk_toggle_button_get_active( sxed->notifyOpt );
+        /* "Notify" only makes sense if AutoCreate is actived;
+         * enforce that here. */
+        xaccSchedXactionSetAutoCreate( sxed->sx,
+                                       autocreateState,
+                                       (autocreateState & notifyState) );
+    }
+
+    /* days in advance */
+    {
+        int daysInAdvance;
+
+        daysInAdvance = 0;
+        if ( gtk_toggle_button_get_active( sxed->advanceOpt ) ) {
+            daysInAdvance =
+                gtk_spin_button_get_value_as_int( sxed->advanceSpin );
+        }
+        xaccSchedXactionSetAdvanceCreation( sxed->sx, daysInAdvance );
+
+        daysInAdvance = 0;
+        if ( gtk_toggle_button_get_active( sxed->remindOpt ) ) {
+            daysInAdvance =
+                gtk_spin_button_get_value_as_int( sxed->remindSpin );
+        }
+        xaccSchedXactionSetAdvanceReminder( sxed->sx, daysInAdvance );
+    }
+
+    /* start date and freq spec */
+    {
+        FreqSpec *fs;
+        GDate gdate;
+        GString *str;
+        GList *schedule = NULL;
+
+        fs = xaccSchedXactionGetFreqSpec( sxed->sx );
+        gnc_frequency_save_state( sxed->gncfreq, fs, &gdate );
+
+        str = g_string_new( "" );
+        xaccFreqSpecGetFreqStr( fs, str );
+        g_debug("freq spec: %s", str->str);
+        g_string_free(str, TRUE);
+
+        gnc_frequency_save_to_recurrence(sxed->gncfreq, &schedule, &gdate);
+        gnc_sx_set_schedule(sxed->sx, schedule);
+        {
+            gchar *recurrence_str = recurrenceListToCompactString(schedule);
+            g_debug("recurrences parsed [%s]", recurrence_str);
+            g_free(recurrence_str);
+        }
+
+        /* now that we have it, set the start date */
+        xaccSchedXactionSetStartDate( sxed->sx, &gdate );
+    }
+}
+
+static void
+enabled_toggled( GtkObject *o, GncSxEditorDialog *sxed )
+{
+    return;
+} 
+
+static void
+autocreate_toggled( GtkObject *o, GncSxEditorDialog *sxed )
+{
+    if ( !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(o)) ) {
+        gtk_toggle_button_set_active( sxed->notifyOpt, FALSE );
+    }
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->notifyOpt),
+                              gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(o) ) );
+}
+
+static void
+advance_toggle( GtkButton *o, GncSxEditorDialog *sxed )
+{
+    gchar *spinName;
+    GtkWidget *spin;
+
+    spinName = (gchar*)g_object_get_data( G_OBJECT(o), "whichOneAmI" );
+    spin = glade_xml_get_widget( sxed->gxml, spinName );
+    if ( !spin ) {
+        g_critical("Error getting widget with name \"%s\"", spinName);
+        return;
+    }
+    gtk_widget_set_sensitive( spin,
+                              gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(o) ) );
+    /* FIXME: this doesn't do what we want... :( */
+    gtk_editable_set_editable( GTK_EDITABLE(spin), TRUE );
+}
+
+/* Local destruction of dialog */
+static void
+scheduledxaction_editor_dialog_destroy(GtkObject *object, gpointer data)
+{
+    GncSxEditorDialog *sxed = data;
+
+    if (sxed == NULL)
+        return;
+
+    gnc_unregister_gui_component_by_data
+        (DIALOG_SCHEDXACTION_EDITOR_CM_CLASS, sxed);
+
+    gnc_embedded_window_close_page(sxed->embed_window, sxed->plugin_page);
+    gtk_widget_destroy(GTK_WIDGET(sxed->embed_window));
+    sxed->embed_window = NULL;
+    sxed->plugin_page = NULL;
+    sxed->ledger = NULL;
+
+    g_free (sxed->sxGUIDstr);
+    sxed->sxGUIDstr = NULL;
+
+    if ( sxed->newsxP ) {
+        /* FIXME: WTF???
+         *
+         * "WTF" explaination: in the "new" click from the caller, we
+         * set this flag.  When "ok" is pressed on the dialog, we set
+         * this flag to false, and thus leave the SX live.  If
+         * "Cancel" is clicked, the flag will still be true, and this
+         * SX will be cleaned, here. -- jsled
+         */
+        xaccSchedXactionFree( sxed->sx );
+    }
+    sxed->sx = NULL;
+
+    g_free (sxed);
+}
+
+static
+gint
+sxed_close_event( GtkDialog *dlg, gpointer ud )
+{
+    GncSxEditorDialog *sxed = (GncSxEditorDialog*)ud;
+
+    /* We've already processed the SX, likely because of "ok" being
+     * clicked. */
+    if ( sxed->sx == NULL ) {
+        return FALSE;
+    }
+
+    if ( ! sxed_confirmed_cancel( sxed ) ) {
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static
+void
+gnc_sxed_get_widgets( GncSxEditorDialog *sxed )
+{
+    GtkWidget *w;
+
+    w = glade_xml_get_widget( sxed->gxml, SXED_NAME_ENTRY );
+    sxed->nameEntry = GTK_EDITABLE(w);
+    w = glade_xml_get_widget( sxed->gxml, SXED_LAST_OCCUR_LABEL );
+    sxed->lastOccurLabel = GTK_LABEL(w);
+    w = glade_xml_get_widget( sxed->gxml, ENABLED_OPT );
+    sxed->enabledOpt = GTK_TOGGLE_BUTTON(w);
+    w = glade_xml_get_widget( sxed->gxml, AUTOCREATE_OPT );
+    sxed->autocreateOpt = GTK_TOGGLE_BUTTON(w);
+    w = glade_xml_get_widget( sxed->gxml, NOTIFY_OPT );
+    sxed->notifyOpt = GTK_TOGGLE_BUTTON(w);
+    w = glade_xml_get_widget( sxed->gxml, ADVANCE_OPT );
+    sxed->advanceOpt = GTK_TOGGLE_BUTTON(w);
+    w = glade_xml_get_widget( sxed->gxml, ADVANCE_DAYS_SPIN );
+    sxed->advanceSpin = GTK_SPIN_BUTTON(w);
+    w = glade_xml_get_widget( sxed->gxml, REMIND_OPT );
+    sxed->remindOpt = GTK_TOGGLE_BUTTON(w);
+    w = glade_xml_get_widget( sxed->gxml, REMIND_DAYS_SPIN );
+    sxed->remindSpin = GTK_SPIN_BUTTON(w);
+
+    w = glade_xml_get_widget( sxed->gxml, "rb_enddate" );
+    sxed->optEndDate = GTK_TOGGLE_BUTTON(w);
+
+    w = glade_xml_get_widget( sxed->gxml, "rb_noend" );
+    sxed->optEndNone = GTK_TOGGLE_BUTTON(w);
+
+    w = glade_xml_get_widget( sxed->gxml, "rb_num_occur" );
+    sxed->optEndCount = GTK_TOGGLE_BUTTON(w);
+
+    w = glade_xml_get_widget( sxed->gxml, END_SPIN );
+    sxed->endCountSpin = GTK_ENTRY(w);
+
+    w = glade_xml_get_widget( sxed->gxml, REMAIN_SPIN );
+    sxed->endRemainSpin = GTK_ENTRY(w);
+
+}
+
+GncSxEditorDialog *
+gnc_ui_scheduled_xaction_editor_dialog_create(SchedXaction *sx,
+                                              gboolean newSX)
+{
+    GncSxEditorDialog *sxed;
+    GtkWidget *button;
+    int i;
+    GList *dlgExists = NULL;
+
+    static struct widgetSignalCallback {
+        char     *name;
+        char     *signal;
+        void     (*fn)();
+        gpointer objectData;
+    } widgets[] = {
+        { "ok_button",      "clicked", editor_ok_button_clicked,     NULL },
+        { "cancel_button",  "clicked", editor_cancel_button_clicked, NULL },
+        { "help_button",    "clicked", editor_help_button_clicked,   NULL },
+
+        { "rb_noend",       "toggled", endgroup_rb_toggled,          GINT_TO_POINTER(END_NEVER_OPTION) },
+        { "rb_enddate",     "toggled", endgroup_rb_toggled,          GINT_TO_POINTER(END_DATE_OPTION) },
+        { "rb_num_occur",   "toggled", endgroup_rb_toggled,          GINT_TO_POINTER(NUM_OCCUR_OPTION) },
+
+        { REMAIN_SPIN ,     "value-changed", sxed_excal_update_adapt, NULL },
+
+        { ENABLED_OPT,      "toggled", enabled_toggled,              NULL },
+        { AUTOCREATE_OPT,   "toggled", autocreate_toggled,           NULL },
+        { ADVANCE_OPT,      "toggled", advance_toggle,               (gpointer)ADVANCE_DAYS_SPIN },
+        { REMIND_OPT,       "toggled", advance_toggle,               (gpointer)REMIND_DAYS_SPIN },
+
+        { NULL,             NULL,      NULL,                         NULL }
+    };
+
+    dlgExists = gnc_find_gui_components( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
+                                         editor_component_sx_equality,
+                                         sx );
+    if ( dlgExists != NULL ) {
+        g_debug( "dialog already exists; using that one." );
+        sxed = (GncSxEditorDialog*)dlgExists->data;
+        gtk_window_present( GTK_WINDOW(sxed->dialog) );
+        g_list_free( dlgExists );
+        return sxed;
+    }
+
+    sxed         = g_new0( GncSxEditorDialog, 1 );
+    sxed->gxml   = gnc_glade_xml_new( SX_GLADE_FILE,
+                                      SX_EDITOR_GLADE_NAME );
+    sxed->dialog = glade_xml_get_widget( sxed->gxml, SX_EDITOR_GLADE_NAME );
+
+    sxed->sx     = sx;
+    sxed->newsxP = newSX;
+    /* Setup the end-date GNC widget */
+    {
+        GtkWidget *endDateBox =
+            glade_xml_get_widget( sxed->gxml, END_DATE_BOX );
+        sxed->endDateEntry =
+            GNC_DATE_EDIT(gnc_date_edit_new( time(NULL),
+                                             FALSE, FALSE ));
+        gtk_widget_show(GTK_WIDGET(sxed->endDateEntry));
+        g_signal_connect( sxed->endDateEntry,
+                          "date-changed",
+                          G_CALLBACK( sxed_excal_update_adapt ),
+                          sxed );
+        gtk_box_pack_start( GTK_BOX(endDateBox),
+                            GTK_WIDGET(sxed->endDateEntry),
+                            TRUE, TRUE, 0 );
+    }
+
+    /* NOTE: this must occur before processing the widget list, defined
+     * above, so the gpointers stored with the advance_ and remind_opts
+     * are correct. */
+    gnc_sxed_get_widgets( sxed );
+
+    gnc_register_gui_component( DIALOG_SCHEDXACTION_EDITOR_CM_CLASS,
+                                NULL, /* no refresh handler */
+                                sxed_close_handler,
+                                sxed );
+
+    g_signal_connect( sxed->dialog, "close",
+                      G_CALLBACK(sxed_close_event), sxed );
+    g_signal_connect( sxed->dialog, "destroy",
+                      G_CALLBACK(scheduledxaction_editor_dialog_destroy),
+                      sxed );
+
+    for ( i=0; widgets[i].name != NULL; i++ ) {
+        button = glade_xml_get_widget( sxed->gxml, widgets[i].name );
+        if ( widgets[i].objectData != NULL ) {
+            g_object_set_data( G_OBJECT(button), "whichOneAmI",
+                               widgets[i].objectData );
+        }
+        g_signal_connect( button, widgets[i].signal,
+                          G_CALLBACK( widgets[i].fn ), sxed );
+    }
+
+    /* For some reason the Glade-specified sensitivity settings are not
+     * being honored... ? */
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->notifyOpt), FALSE );
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->advanceSpin), FALSE );
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->remindSpin), FALSE );
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->endCountSpin), FALSE );
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->endRemainSpin), FALSE );
+
+    gtk_editable_set_editable( GTK_EDITABLE(sxed->advanceSpin), TRUE );
+    gtk_editable_set_editable( GTK_EDITABLE(sxed->remindSpin), TRUE );
+        
+    /* Allow resize */
+    gtk_window_set_resizable (GTK_WINDOW(sxed->dialog), TRUE);
+
+    gnc_restore_window_size(SXED_GCONF_SECTION, GTK_WINDOW(sxed->dialog));
+
+    /* create the frequency-selection macrowidget and example
+     * [dense-]calendar. */
+    schedXact_editor_create_freq_sel( sxed );
+    /* create the template-transaction ledger window */
+    schedXact_editor_create_ledger( sxed );
+    /* populate */
+    schedXact_editor_populate( sxed );
+
+    /* Do not call show_all here. Screws up the gtkuimanager code */
+    gtk_widget_show(sxed->dialog);
+
+    /* Refresh the cal and the ledger */
+    gtk_widget_queue_resize( GTK_WIDGET( sxed->example_cal ) );
+    gnc_ledger_display_refresh( sxed->ledger );
+
+    return sxed;
+}
+
+static
+void
+gnc_sxed_record_size( GncSxEditorDialog *sxed )
+{
+    gnc_save_window_size( SXED_GCONF_SECTION, GTK_WINDOW(sxed->dialog) );
+}
+
+static
+void
+schedXact_editor_create_freq_sel( GncSxEditorDialog *sxed )
+{
+    GtkBox *b;
+
+    b = GTK_BOX(glade_xml_get_widget( sxed->gxml, "gncfreq_hbox" ));
+    sxed->gncfreq =
+        GNC_FREQUENCY(gnc_frequency_new_from_recurrence(gnc_sx_get_schedule(sxed->sx),
+                                                        xaccSchedXactionGetStartDate(sxed->sx)));
+    g_assert(sxed->gncfreq);
+    g_signal_connect( sxed->gncfreq, "changed",
+                      G_CALLBACK(gnc_sxed_freq_changed),
+                      sxed );
+    gtk_container_add( GTK_CONTAINER(b), GTK_WIDGET(sxed->gncfreq) );
+
+    b = GTK_BOX(glade_xml_get_widget( sxed->gxml, "example_cal_hbox" ));
+    sxed->dense_cal_model = gnc_dense_cal_store_new(EX_CAL_NUM_MONTHS*31);
+    sxed->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model(GNC_DENSE_CAL_MODEL(sxed->dense_cal_model)));
+    g_assert(sxed->example_cal);
+    gnc_dense_cal_set_num_months( sxed->example_cal, EX_CAL_NUM_MONTHS );
+    gnc_dense_cal_set_months_per_col( sxed->example_cal, EX_CAL_MO_PER_COL );
+    gtk_container_add( GTK_CONTAINER(b), GTK_WIDGET(sxed->example_cal) );
+    gtk_widget_show( GTK_WIDGET(sxed->example_cal) );
+}
+
+static
+void
+schedXact_editor_create_ledger( GncSxEditorDialog *sxed )
+{
+    SplitRegister *splitreg;
+    GtkWidget *main_vbox;
+
+    /* Create the ledger */
+    /* THREAD-UNSAFE */
+    sxed->sxGUIDstr = g_strdup( guid_to_string(
+                                    xaccSchedXactionGetGUID(sxed->sx) ) );
+    sxed->ledger = gnc_ledger_display_template_gl( sxed->sxGUIDstr );
+    splitreg = gnc_ledger_display_get_split_register( sxed->ledger );
+
+    /* First the embedded window */
+    main_vbox = glade_xml_get_widget( sxed->gxml, "register_vbox" );
+    sxed->embed_window =
+        gnc_embedded_window_new("SXWindowActions",
+                                gnc_sxed_menu_entries,
+                                gnc_sxed_menu_n_entries,
+                                "gnc-sxed-window-ui.xml",
+                                sxed->dialog,
+                                FALSE, /* no accelerators */
+                                sxed);
+    gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET(sxed->embed_window),
+                        TRUE, TRUE, 0);
+
+    /* Now create the register plugin page. */
+    sxed->plugin_page = gnc_plugin_page_register_new_ledger (sxed->ledger);
+    gnc_plugin_page_set_ui_description (sxed->plugin_page,
+                                        "gnc-sxed-window-ui-full.xml");
+    gnc_plugin_page_register_set_options (sxed->plugin_page,
+                                          NULL, NULL,
+                                          NUM_LEDGER_LINES_DEFAULT, FALSE );
+    gnc_embedded_window_open_page (sxed->embed_window, sxed->plugin_page);
+
+    /* configure... */
+    /* don't use double-line */
+    gnc_split_register_config(splitreg,
+                              splitreg->type, splitreg->style,
+                              FALSE);
+    gnc_split_register_set_auto_complete(splitreg, FALSE);
+
+    /* don't show present/future divider [by definition, not necessary] */
+    gnc_split_register_show_present_divider( splitreg, FALSE );
+}
+
+static
+void
+schedXact_editor_populate( GncSxEditorDialog *sxed )
+{
+    char *name;
+    time_t tmpDate;
+    SplitRegister *splitReg;
+    struct tm *tmpTm;
+    GDate *gd;
+    gint daysInAdvance;
+    gboolean enabledState, autoCreateState, notifyState;
+
+    name = xaccSchedXactionGetName(sxed->sx);
+    if ( name != NULL ) {
+        gtk_entry_set_text( GTK_ENTRY(sxed->nameEntry), name  );
+    }
+    {
+        gd = xaccSchedXactionGetLastOccurDate( sxed->sx );
+        if ( g_date_valid( gd ) ) {
+            gchar dateBuf[ MAX_DATE_LENGTH+1 ];
+            qof_print_gdate( dateBuf,MAX_DATE_LENGTH, gd );
+            gtk_label_set_text( sxed->lastOccurLabel, dateBuf );
+        } else {
+            gtk_label_set_text( sxed->lastOccurLabel, _( "(never)" ) );
+        }
+        gd = NULL;
+    }
+
+    gd = xaccSchedXactionGetEndDate( sxed->sx );
+    if ( g_date_valid( gd ) ) {
+        gtk_toggle_button_set_active( sxed->optEndDate, TRUE );
+        /* fill in date data. */
+        tmpTm = g_new0( struct tm, 1 );
+        g_date_to_struct_tm( gd, tmpTm );
+        tmpDate = mktime( tmpTm );
+        g_free( tmpTm );
+        gnc_date_edit_set_time( sxed->endDateEntry, tmpDate );
+
+        set_endgroup_toggle_states( sxed, END_DATE );
+    } else if ( xaccSchedXactionHasOccurDef( sxed->sx ) ) {
+        gint numOccur = xaccSchedXactionGetNumOccur( sxed->sx );
+        gint numRemain = xaccSchedXactionGetRemOccur( sxed->sx );
+
+        gtk_toggle_button_set_active( sxed->optEndCount, TRUE );
+
+        gtk_spin_button_set_value ( GTK_SPIN_BUTTON(sxed->endCountSpin), numOccur );
+        gtk_spin_button_set_value ( GTK_SPIN_BUTTON(sxed->endRemainSpin), numRemain );
+
+        set_endgroup_toggle_states( sxed, END_OCCUR );
+    } else {
+        gtk_toggle_button_set_active( sxed->optEndNone, TRUE );
+        set_endgroup_toggle_states( sxed, END_NEVER );
+    }
+
+    enabledState = xaccSchedXactionGetEnabled( sxed->sx );
+    gtk_toggle_button_set_active( sxed->enabledOpt, enabledState );
+
+    /* Do auto-create/notify setup */
+    if ( sxed->newsxP ) {
+        autoCreateState =
+            gnc_gconf_get_bool( SXED_GCONF_SECTION, KEY_CREATE_AUTO, NULL );
+        notifyState =
+            gnc_gconf_get_bool( SXED_GCONF_SECTION, KEY_NOTIFY, NULL );
+    } else {
+        xaccSchedXactionGetAutoCreate( sxed->sx,
+                                       &autoCreateState,
+                                       &notifyState );
+    }
+    gtk_toggle_button_set_active( sxed->autocreateOpt, autoCreateState );
+    if ( ! autoCreateState ) {
+        notifyState = FALSE;
+    }
+    gtk_toggle_button_set_active( sxed->notifyOpt, notifyState );
+
+
+    /* Do days-in-advance-to-create widget[s] setup. */
+    if ( sxed->newsxP ) {
+        daysInAdvance =
+            gnc_gconf_get_float( SXED_GCONF_SECTION, KEY_CREATE_DAYS, NULL );
+    } else {
+        daysInAdvance =
+            xaccSchedXactionGetAdvanceCreation( sxed->sx );
+    }
+    if ( daysInAdvance != 0 ) {
+        gtk_toggle_button_set_active( sxed->advanceOpt, TRUE );
+        gtk_spin_button_set_value( sxed->advanceSpin,
+                                   (gfloat)daysInAdvance );
+    }
+
+    /* Do days-in-advance-to-remind widget[s] setup. */
+    if ( sxed->newsxP ) {
+        daysInAdvance =
+            gnc_gconf_get_float( SXED_GCONF_SECTION, KEY_REMIND_DAYS, NULL );
+    } else {
+        daysInAdvance =
+            xaccSchedXactionGetAdvanceReminder( sxed->sx );
+    }
+    if ( daysInAdvance != 0 ) {
+        gtk_toggle_button_set_active( sxed->remindOpt, TRUE );
+        gtk_spin_button_set_value( sxed->remindSpin,
+                                   (gfloat)daysInAdvance );
+    }
+
+    if ( sxed->newsxP ) {
+        gnc_sx_set_instance_count( sxed->sx, 1 );
+    }
+
+    /* populate the ledger */
+    { 
+        /* create the split list */
+        GList        *splitList;
+
+        splitList = xaccSchedXactionGetSplits( sxed->sx );
+        if ( splitList != NULL ) {
+            splitReg = gnc_ledger_display_get_split_register
+                ( sxed->ledger );
+            gnc_split_register_load(splitReg, splitList, NULL );
+        } /* otherwise, use the existing stuff. */
+    }
+
+    /* Update the example cal */
+    gnc_sxed_update_cal(sxed);
+}
+
+static
+void
+set_endgroup_toggle_states( GncSxEditorDialog *sxed, EndType type )
+{
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->endDateEntry), (type == END_DATE) );
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->endCountSpin), (type == END_OCCUR) );
+    gtk_widget_set_sensitive( GTK_WIDGET(sxed->endRemainSpin), (type == END_OCCUR) );
+}
+
+static
+void
+endgroup_rb_toggled( GtkButton *b, gpointer d )
+{
+    /* figure out which one */
+    GncSxEditorDialog *sxed;
+    gint id;
+
+    sxed = (GncSxEditorDialog*)d;
+    id = GPOINTER_TO_INT(g_object_get_data( G_OBJECT(b), "whichOneAmI" ));
+
+    switch (id) {
+    case END_NEVER_OPTION:
+        set_endgroup_toggle_states( sxed, END_NEVER );
+        break;
+    case END_DATE_OPTION:
+        set_endgroup_toggle_states( sxed, END_DATE );
+        break;
+    case NUM_OCCUR_OPTION:
+        set_endgroup_toggle_states( sxed, END_OCCUR );
+        break;
+    default:
+        g_critical( "Unknown id %d", id );
+        break;
+    }
+
+    gnc_sxed_update_cal(sxed);
+}
+
+/********************************************************************\
+ * gnc_register_check_close                                         *
+ *                                                                  *
+ * Args:   regData - the data struct for this register              *
+ * Return: none                                                     *
+\********************************************************************/
+static void
+gnc_sxed_reg_check_close(GncSxEditorDialog *sxed)
+{
+    gboolean pending_changes;
+    SplitRegister *reg;
+    const char *message =
+        _("The current template transaction "
+          "has been changed. "
+          "Would you like to record the changes?");
+        
+    reg = gnc_ledger_display_get_split_register (sxed->ledger);
+    pending_changes = gnc_split_register_changed (reg);
+    if (!pending_changes) {
+        return;
+    }
+
+    if (gnc_verify_dialog(sxed->dialog, TRUE, message)) {
+        Transaction *trans;
+        trans = gnc_split_register_get_current_trans( reg );
+        if ( !gnc_split_register_save( reg, TRUE ) )
+            return;
+                
+        gnc_split_register_redraw( reg );
+    } else {
+        gnc_split_register_cancel_cursor_trans_changes (reg);
+    }
+}
+
+static gboolean
+editor_component_sx_equality( gpointer find_data,
+                              gpointer user_data )
+{
+    return ( (SchedXaction*)find_data
+             == ((GncSxEditorDialog*)user_data)->sx );
+}
+
+typedef enum { NO_END, DATE_END, COUNT_END } END_TYPE;
+
+static void
+gnc_sxed_update_cal(GncSxEditorDialog *sxed)
+{
+    GList *recurrences = NULL;
+    GDate start_date, first_date;
+
+    g_date_clear(&start_date, 1);
+
+    gnc_frequency_save_to_recurrence(sxed->gncfreq, &recurrences, &start_date);
+    g_date_subtract_days(&start_date, 1);
+    recurrenceListNextInstance(recurrences, &start_date, &first_date);
+
+    /* Deal with the fact that this SX may have been run before [the
+     * calendar should only show upcoming instances]... */
+    {
+        GDate *last_sx_inst;
+
+        last_sx_inst = xaccSchedXactionGetLastOccurDate(sxed->sx);
+        if (g_date_valid(last_sx_inst)
+            && g_date_valid(&first_date)
+            && g_date_compare(last_sx_inst, &first_date) != 0)
+        {
+            start_date = *last_sx_inst;
+            recurrenceListNextInstance(recurrences, &start_date, &first_date);
+        }
+    }
+
+    if (!g_date_valid(&first_date))
+    {
+        /* Nothing to do. */
+        gnc_dense_cal_store_clear(sxed->dense_cal_model);
+        goto cleanup;
+    }
+
+    gnc_dense_cal_store_update_name(sxed->dense_cal_model, xaccSchedXactionGetName(sxed->sx));
+    {
+        gchar *schedule_desc = recurrenceListToCompactString(recurrences);
+        gnc_dense_cal_store_update_info(sxed->dense_cal_model, schedule_desc);
+        g_free(schedule_desc);
+    }
+
+    gnc_dense_cal_set_month(sxed->example_cal, g_date_get_month(&first_date));
+    gnc_dense_cal_set_year(sxed->example_cal, g_date_get_year(&first_date));
+
+    /* figure out the end restriction */
+    if (gtk_toggle_button_get_active(sxed->optEndDate))
+    {
+        GDate end_date;
+        g_date_set_time_t(&end_date, gnc_date_edit_get_date(sxed->endDateEntry));
+        gnc_dense_cal_store_update_recurrences_date_end(sxed->dense_cal_model, &first_date, recurrences, &end_date);
+    }
+    else if (gtk_toggle_button_get_active(sxed->optEndNone))
+    {
+        gnc_dense_cal_store_update_recurrences_no_end(sxed->dense_cal_model, &first_date, recurrences);
+    }
+    else if (gtk_toggle_button_get_active(sxed->optEndCount))
+    {
+        gint num_remain
+            = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(sxed->endRemainSpin));
+        gnc_dense_cal_store_update_recurrences_count_end(sxed->dense_cal_model, &first_date, recurrences, num_remain);
+    }
+    else
+    {
+        g_error("unknown end condition");
+    }
+
+cleanup:
+    recurrenceListFree(&recurrences);
+}
+
+static void
+gnc_sxed_freq_changed(GncFrequency *gf, gpointer ud)
+{
+    gnc_sxed_update_cal((GncSxEditorDialog*)ud);
+}
+
+static void
+sxed_excal_update_adapt(GtkObject *o, gpointer ud)
+{
+    gnc_sxed_update_cal((GncSxEditorDialog*)ud);
+}
+
+void on_sx_check_toggled (GtkWidget *togglebutton, gpointer user_data);
+
+void
+on_sx_check_toggled (GtkWidget *togglebutton,
+                     gpointer user_data)
+{
+    GtkWidget *widget;
+    gboolean create; // , notify;
+
+    /* The gnc_glade_lookup_widget() function works because all of these
+     * widgets come from the same glade file. */
+    widget = gnc_glade_lookup_widget(togglebutton,
+                                     "gconf/dialogs/scheduled_trans/transaction_editor/create_auto");
+    create = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+    widget = gnc_glade_lookup_widget(togglebutton,
+                                     "gconf/dialogs/scheduled_trans/transaction_editor/notify");
+    gtk_widget_set_sensitive(widget, create);
+}
+
+
+/* ------------------------------------------------------------ */
+/* sx app engine;  move to somewhere appropriate. :/ */
+
+typedef struct _acct_deletion_handler_data
+{
+    GList *affected_sxes;
+    GtkWidget *dialog;
+} acct_deletion_handler_data;
+
+static void
+_open_editors(GtkDialog *dialog, gint response_code, gpointer data)
+{
+    acct_deletion_handler_data *adhd = (acct_deletion_handler_data *)data;
+    gtk_widget_hide_all(adhd->dialog);
+    {
+        GList *sx_iter;
+        for (sx_iter = adhd->affected_sxes; sx_iter; sx_iter = sx_iter->next)
+        {
+            gnc_ui_scheduled_xaction_editor_dialog_create((SchedXaction*)sx_iter->data,
+                                                          FALSE);
+        }
+    }
+    g_list_free(adhd->affected_sxes);
+    gtk_widget_destroy(GTK_WIDGET(adhd->dialog));
+    g_free(adhd);
+}
+
+static void
+_sx_engine_event_handler(QofEntity *ent, QofEventId event_type, gpointer user_data, gpointer evt_data)
+{
+    Account *acct;
+    QofBook *book;
+    GList *affected_sxes;
+
+    if (!(event_type & QOF_EVENT_DESTROY))
+        return;
+    if (!GNC_IS_ACCOUNT(ent))
+        return;
+    acct = GNC_ACCOUNT(ent);
+    book = qof_instance_get_book(QOF_INSTANCE(acct));
+    affected_sxes = gnc_sx_get_sxes_referencing_account(book, acct);
+
+    if (g_list_length(affected_sxes) == 0)
+        return;
+
+    {
+        GList *sx_iter;
+        acct_deletion_handler_data *data;
+        GladeXML *xml;
+        GtkWidget *dialog;
+        GtkListStore *name_list;
+        GtkTreeView *list;
+        GtkTreeViewColumn *name_column;
+        GtkCellRenderer *renderer;
+
+        xml = gnc_glade_xml_new("sched-xact.glade", "Account Deletion");
+        dialog = glade_xml_get_widget(xml, "Account Deletion");
+        list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "sx_list"));
+
+        data = (acct_deletion_handler_data*)g_new0(acct_deletion_handler_data, 1);
+        data->dialog = dialog;
+        data->affected_sxes = affected_sxes;
+        name_list = gtk_list_store_new(1, G_TYPE_STRING);
+        for (sx_iter = affected_sxes; sx_iter != NULL; sx_iter = sx_iter->next)
+        {
+            SchedXaction *sx;
+            GtkTreeIter iter;
+            gchar *sx_name;
+
+            sx = (SchedXaction*)sx_iter->data;
+            sx_name = xaccSchedXactionGetName(sx);
+            gtk_list_store_append(name_list, &iter);
+            gtk_list_store_set(name_list, &iter, 0, sx_name, -1);
+        }
+        gtk_tree_view_set_model(list, GTK_TREE_MODEL(name_list));
+        g_object_unref(G_OBJECT(name_list));
+
+        renderer = gtk_cell_renderer_text_new();
+        name_column = gtk_tree_view_column_new_with_attributes(_("Name"),
+                                                               renderer,
+                                                               "text", 0, NULL);
+        gtk_tree_view_append_column(list, name_column);
+
+        g_signal_connect(G_OBJECT(dialog), "response",
+                         G_CALLBACK(_open_editors), data);
+
+        gtk_widget_show_all(GTK_WIDGET(dialog));
+    }
+}
+
+void
+gnc_ui_sx_initialize (void)
+{
+    _sx_engine_event_handler_id = qof_event_register_handler(_sx_engine_event_handler, NULL);
+
+    gnc_hook_add_dangler(HOOK_BOOK_OPENED,
+                         (GFunc)gnc_sx_sxsincelast_book_opened, NULL);
+    gnc_preferences_add_page (SX_GLADE_FILE,
+                              "sx_prefs",
+                              _("Scheduled Transactions"));
+}

Copied: gnucash/branches/gda-dev/src/gnome/dialog-sx-editor.h (from rev 15827, gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.h)
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-scheduledxaction.h	2007-04-05 03:10:26 UTC (rev 15827)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sx-editor.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,49 @@
+/********************************************************************\
+ * dialog-sx-editor.h : dialog for scheduled transaction editing    *
+ * Copyright (C) 2001,2006 Joshua Sled <jsled at asynchronous.org>     *
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of version 2 of the GNU General Public *
+ * License as published by the Free Software Foundation.            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+\********************************************************************/
+
+#ifndef DIALOG_SX_EDITOR_H
+#define DIALOG_SX_EDITOR_H
+
+#include "SchedXaction.h"
+
+#define DIALOG_SCHEDXACTION_CM_CLASS "dialog-scheduledtransactions"
+#define DIALOG_SCHEDXACTION_EDITOR_CM_CLASS "dialog-scheduledtransaction-editor"
+
+#define SXED_GCONF_SECTION "dialogs/scheduled_trans/transaction_editor"
+#define KEY_CREATE_AUTO "create_auto"
+#define KEY_NOTIFY "notify"
+#define KEY_CREATE_DAYS	"create_days"
+#define KEY_REMIND_DAYS	"remind_days"
+
+typedef struct _GncSxEditorDialog GncSxEditorDialog;
+
+GncSxEditorDialog* gnc_ui_scheduled_xaction_editor_dialog_create(SchedXaction *sx,
+                                                                 gboolean newSX);
+
+void gnc_ui_scheduled_xaction_editor_dialog_destroy(GncSxEditorDialog *sxd);
+
+/**
+ * Sets up a book opened hook.  The function called may open a "since
+ * last run" dialog based upon the user's preferences.
+ **/
+void gnc_ui_sx_initialize (void);
+
+#endif

Modified: gnucash/branches/gda-dev/src/gnome/dialog-sx-from-trans.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-sx-from-trans.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sx-from-trans.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,26 +25,26 @@
 
 #include "config.h"
 
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
-#include "glib-compat.h"
-
-#include "gnc-engine.h"
-#include "SX-book.h"
-#include "SX-book-p.h"
-#include "SX-ttinfo.h"
-#include "SchedXaction.h"
-#include "gnc-component-manager.h"
-#include "dialog-scheduledxaction.h"
+#include "dialog-sx-editor.h"
 #include "dialog-sx-from-trans.h"
 #include "dialog-utils.h"
+#include "glib-compat.h"
+#include "gnc-component-manager.h"
 #include "gnc-date-edit.h"
-#include "qof.h"
+#include "gnc-dense-cal-store.h"
+#include "gnc-dense-cal.h"
+#include "gnc-engine.h"
 #include "gnc-gconf-utils.h"
-#include "gnc-ui.h"
 #include "gnc-ui-util.h"
-#include "gnc-dense-cal.h"
+#include "gnc-ui.h"
+#include "qof.h"
+#include "Recurrence.h"
+#include "SchedXaction.h"
+#include "SX-book.h"
+#include "SX-ttinfo.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
 
 #define SX_GLADE_FILE "sched-xact.glade"
 #define SXFTD_DIALOG_GLADE_NAME "sx_from_real_trans"
@@ -71,18 +71,18 @@
 
 #define SXFTD_RESPONSE_ADVANCED 100 /* 'Advanced' button response code */
 
-static QofLogModule log_module = GNC_MOD_SX;
+static QofLogModule log_module = GNC_MOD_GUI_SX;
 
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN GNC_MOD_GUI_SX
+
 static void sxftd_freq_combo_changed( GtkWidget *w, gpointer user_data );
 static void gnc_sx_trans_window_response_cb(GtkDialog *dialog, gint response, gpointer data);
 
 static void sxftd_destroy( GtkWidget *w, gpointer user_data );
 
-typedef enum { NEVER_END, END_ON_DATE, END_AFTER_N_OCCS, BAD_END } endType;
-
 typedef enum { FREQ_DAILY = 0,  /* I know the =0 is redundant, but I'm using
-                                 * the numeric equivalences explicitly here
-                                 */
+                                 * the numeric equivalences explicitly here */
                FREQ_WEEKLY,
                FREQ_BIWEEKLY,
                FREQ_MONTHLY, 
@@ -97,11 +97,8 @@
   Transaction *trans;
   SchedXaction *sx;
 
+  GncDenseCalStore *dense_cal_model;
   GncDenseCal *example_cal;
-  /** Storage for the maximum possible number of marks we could put on the
-   *  calendar. */
-  GDate **cal_marks;
-  gint mark_id;
 
   GNCDateEdit *startDateGDE, *endDateGDE;
 
@@ -109,7 +106,7 @@
 
 typedef struct
 {
-  endType type;
+  gdcs_end_type type;
   GDate end_date;
   guint n_occurrences;
 } getEndTuple;
@@ -117,9 +114,6 @@
 static void sxftd_update_example_cal( SXFromTransInfo *sxfti );
 static void sxftd_update_excal_adapt( GObject *o, gpointer ud );
 
-/* Stolen from jsled - nice and neat, actually (if a little light on 
- * for typechecking, but we'll be careful) . . . 
- */
 typedef struct
 {
   gchar *name;
@@ -127,11 +121,9 @@
   void (*handlerFn)();
 } widgetSignalHandlerTuple;
 
-
 static void sxftd_ok_clicked(SXFromTransInfo *sxfti);
 static void sxftd_advanced_clicked(SXFromTransInfo *sxfti);
 
-
 static void
 sxfti_attach_callbacks(SXFromTransInfo *sxfti)
 {
@@ -144,7 +136,6 @@
       { SXFTD_END_ON_DATE_BUTTON,   "clicked",      sxftd_update_excal_adapt },
       { SXFTD_N_OCCURRENCES_BUTTON, "clicked",      sxftd_update_excal_adapt },
       { SXFTD_N_OCCURRENCES_ENTRY,  "changed",      sxftd_update_excal_adapt },
-
       { NULL,                  NULL,      NULL }
     };
   
@@ -198,11 +189,19 @@
     guint n_occs;
     w = glade_xml_get_widget(sxfti->gxml, SXFTD_N_OCCURRENCES_ENTRY);
     text = gtk_editable_get_chars(GTK_EDITABLE(w), 0, -1);
-    
-    n_occs = strtoul(text, &endptr, 10);
-    if ( !endptr ) {
-      n_occs = -1;
+
+    if (text == NULL || strlen(text) == 0)
+    {
+        n_occs = 0;
     }
+    else
+    {
+        n_occs = strtoul(text, &endptr, 10);
+        if ( !endptr )
+        {
+            n_occs = -1;
+        }
+    }
 
     g_free(text);
 
@@ -289,59 +288,48 @@
 }
 
 static void
-sxftd_update_fs( SXFromTransInfo *sxfti, GDate *date, FreqSpec *fs )
+sxftd_update_schedule( SXFromTransInfo *sxfti, GDate *date, GList **recurrences)
 {
   gint index;
   GtkWidget *w;
-  FreqSpec *tmpfs;
 
   /* Note that we make the start date the *NEXT* instance, not the
    * present one. */
   w = glade_xml_get_widget(sxfti->gxml, SXFTD_FREQ_COMBO_BOX);
   index = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
 
-  switch(index)
+  switch (index)
   {
-  case FREQ_DAILY:
-    xaccFreqSpecSetDaily(fs, date, 1);
-    xaccFreqSpecSetUIType(fs, UIFREQ_DAILY);
-    break;
+  case FREQ_DAILY: {
+      Recurrence *r = g_new0(Recurrence, 1);
+      recurrenceSet(r, 1, PERIOD_DAY, date);
+      *recurrences = g_list_append(*recurrences, r);
+    } break;
 
   case FREQ_WEEKLY:
-    tmpfs = xaccFreqSpecMalloc(gnc_get_current_book ());
-    xaccFreqSpecSetComposite(fs);
-    xaccFreqSpecSetWeekly(tmpfs, date, 1);
-    xaccFreqSpecSetUIType(fs, UIFREQ_WEEKLY);
-    xaccFreqSpecCompositeAdd(fs,tmpfs);
-    break;
+  case FREQ_BIWEEKLY: {
+      Recurrence *r = g_new0(Recurrence, 1);
+      int mult = (index == FREQ_BIWEEKLY ? 2 : 1);
+      recurrenceSet(r, mult, PERIOD_WEEK, date);
+      *recurrences = g_list_append(*recurrences, r);
+  } break;
 
-  case FREQ_BIWEEKLY:
-    tmpfs = xaccFreqSpecMalloc( gnc_get_current_book() );
-    xaccFreqSpecSetComposite( fs );
-    xaccFreqSpecSetWeekly( tmpfs, date, 2 );
-    xaccFreqSpecSetUIType( fs, UIFREQ_BI_WEEKLY );
-    xaccFreqSpecCompositeAdd( fs, tmpfs );
-    break;
-
   case FREQ_MONTHLY:
-    xaccFreqSpecSetMonthly(fs, date, 1);
-    xaccFreqSpecSetUIType(fs, UIFREQ_MONTHLY);
-    break;
-
   case FREQ_QUARTERLY:
-    xaccFreqSpecSetMonthly(fs, date, 3);
-    xaccFreqSpecSetUIType(fs, UIFREQ_QUARTERLY);
-    break;
+  case FREQ_ANNUALLY: {
+      Recurrence *r = g_new0(Recurrence, 1);
+      int mult = (index == FREQ_MONTHLY
+                  ? 1
+                  : (index == FREQ_QUARTERLY
+                     ? 3
+                     : 12));
+      recurrenceSet(r, mult, PERIOD_MONTH, date);
+      *recurrences = g_list_append(*recurrences, r);
+  } break;
 
-  case FREQ_ANNUALLY:
-    xaccFreqSpecSetMonthly(fs, date, 12);
-    xaccFreqSpecSetUIType(fs, UIFREQ_YEARLY);
-    break;
-
   default:
-    PERR("Nonexistent frequency selected.  This is a bug.");
-    g_assert( FALSE );
-    break;
+       g_critical("nonexistent frequency selected");
+       break;
   }
 }
 
@@ -351,7 +339,7 @@
   GtkWidget *w;
   const char *transName;
   gint pos;
-  FreqSpec *fs;
+  GList *schedule = NULL;
   time_t start_tt;
   struct tm *tmpTm;
   GDate date, nextDate;
@@ -370,20 +358,19 @@
 
   /* Setup the example calendar and related data structures. */
   {
-    int i;
+    int num_marks = SXFTD_EXCAL_NUM_MONTHS * 31;
 
     w = GTK_WIDGET(glade_xml_get_widget( sxfti->gxml, SXFTD_EX_CAL_FRAME ));
-    sxfti->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new());
-    g_assert( sxfti->example_cal );
+    sxfti->dense_cal_model = gnc_dense_cal_store_new(num_marks);
+    sxfti->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model(GNC_DENSE_CAL_MODEL(sxfti->dense_cal_model)));
+    // gobject-2.10: g_object_ref_sink(sxfti->example_cal);
+    g_object_ref(G_OBJECT(sxfti->example_cal));
+    gtk_object_sink(GTK_OBJECT(sxfti->example_cal));
+
+    g_assert(sxfti->example_cal);
     gnc_dense_cal_set_num_months( sxfti->example_cal, SXFTD_EXCAL_NUM_MONTHS );
     gnc_dense_cal_set_months_per_col( sxfti->example_cal, SXFTD_EXCAL_MONTHS_PER_COL );
     gtk_container_add( GTK_CONTAINER(w), GTK_WIDGET(sxfti->example_cal) );
-
-    sxfti->mark_id = -1;
-    sxfti->cal_marks = g_new0( GDate*, (SXFTD_EXCAL_NUM_MONTHS * 31) );
-    for ( i=0; i < SXFTD_EXCAL_NUM_MONTHS * 31; i++ ) {
-      sxfti->cal_marks[i] = g_date_new();
-    }
   }
 
   /* Setup the start and end dates as GNCDateEdits */
@@ -431,9 +418,9 @@
   g_signal_connect( w, "changed",
                     G_CALLBACK(sxftd_freq_combo_changed),
                     sxfti );
-  fs = xaccFreqSpecMalloc( gnc_get_current_book() );
-  sxftd_update_fs( sxfti, &date, fs );
-  xaccFreqSpecGetNextInstance( fs, &date, &nextDate );
+  sxftd_update_schedule( sxfti, &date, &schedule);
+  recurrenceListNextInstance(schedule, &date, &nextDate);
+  recurrenceListFree(&schedule);
 
   tmpTm = g_new0( struct tm, 1 );
   g_date_to_struct_tm( &nextDate, tmpTm );
@@ -461,7 +448,7 @@
   GtkWidget *w;
   gchar *name;
   GDate date;
-  FreqSpec *fs;
+  GList *schedule = NULL;
   getEndTuple end_info;
   guint sxftd_errno = 0; /* 0 == OK, > 0 means dialog needs to be run again */
 
@@ -469,19 +456,16 @@
 
   /* get the name */
   w = glade_xml_get_widget(sxfti->gxml, SXFTD_NAME_ENTRY);
-  
   name = gtk_editable_get_chars(GTK_EDITABLE(w), 0, -1);
-
   xaccSchedXactionSetName(sx, name);
   g_free(name);
 
   g_date_set_time_t( &date, gnc_date_edit_get_date( sxfti->startDateGDE ) );
  
-  fs = xaccFreqSpecMalloc(gnc_get_current_book ());
-  sxftd_update_fs( sxfti, &date, fs );
+  sxftd_update_schedule(sxfti, &date, &schedule);
   if (sxftd_errno == 0) {
-    xaccSchedXactionSetFreqSpec( sx, fs);
-    xaccSchedXactionSetStartDate( sx, &date );
+      gnc_sx_set_schedule(sx, schedule);
+      xaccSchedXactionSetStartDate( sx, &date );
   }
 
   end_info = sxftd_get_end_info(sxfti);
@@ -507,9 +491,9 @@
   gnc_sx_set_instance_count( sx, 1 );
 
   /* Set the autocreate, days-in-advance and remind-in-advance values from
-     options. */
-  {
-    gboolean autoCreateState, notifyState;
+   * options. */
+  { 
+    gboolean autoCreateState, notifyState; 
     gint daysInAdvance;
 
     autoCreateState =
@@ -551,31 +535,24 @@
 sxftd_ok_clicked(SXFromTransInfo *sxfti)
 {
   QofBook *book;
-  GList *sx_list;
+  SchedXactions *sxes;
   guint sx_error = sxftd_compute_sx(sxfti);
 
   if (sx_error != 0
-      && sx_error != SXFTD_ERRNO_UNBALANCED_XACTION) {
-    PERR( "Error in sxftd_compute_sx after ok_clicked [%d]", sx_error );
+      && sx_error != SXFTD_ERRNO_UNBALANCED_XACTION)
+  {
+       g_critical("sxftd_compute_sx after ok_clicked [%d]", sx_error);
   }
-  else {
-    SchedXactionDialog *sxd;
-
+  else
+  {
     if ( sx_error == SXFTD_ERRNO_UNBALANCED_XACTION ) {
             gnc_error_dialog( gnc_ui_get_toplevel(), 
                               _( "The Scheduled Transaction is unbalanced. "
                                  "You are strongly encouraged to correct this situation." ) );
     }
     book = gnc_get_current_book ();
-    sx_list = gnc_book_get_schedxactions(book);
-    sx_list = g_list_append(sx_list, sxfti->sx);
-    gnc_book_set_schedxactions(book, sx_list);
-    sxd = (SchedXactionDialog*)
-            gnc_find_first_gui_component(
-                    DIALOG_SCHEDXACTION_CM_CLASS, NULL, NULL );
-    if ( sxd ) {
-      gnc_sxd_list_refresh( sxd );
-    }
+    sxes = gnc_book_get_schedxactions(book);
+    gnc_sxes_add_sx(sxes, sxfti->sx);
   }
 
   sxftd_close(sxfti, FALSE);
@@ -594,22 +571,22 @@
   GDate date, nextDate;
   time_t tmp_tt;
   struct tm *tmpTm;
-  FreqSpec *fs;
+  GList *schedule = NULL;
 
   tmp_tt = xaccTransGetDate( sxfti->trans );
   g_date_set_time_t( &date, tmp_tt );
-  
-  fs = xaccFreqSpecMalloc( gnc_get_current_book() );
-  sxftd_update_fs( sxfti, &date, fs );
-  xaccFreqSpecGetNextInstance( fs, &date, &nextDate );
 
+  g_date_clear(&nextDate, 1);
+  sxftd_update_schedule(sxfti, &date, &schedule);
+  recurrenceListNextInstance(schedule, &date, &nextDate);
+
   tmpTm = g_new0( struct tm, 1 );
   g_date_to_struct_tm( &nextDate, tmpTm );
   tmp_tt = mktime( tmpTm );
   g_free( tmpTm );
   gnc_date_edit_set_time( sxfti->startDateGDE, tmp_tt );
 
-  xaccFreqSpecFree( fs );
+  recurrenceListFree(&schedule);
   sxftd_update_example_cal( sxfti );
 }
 
@@ -617,27 +594,24 @@
 sxftd_advanced_clicked(SXFromTransInfo *sxfti)
 {
   guint sx_error = sxftd_compute_sx(sxfti);
-  SchedXactionDialog *adv_dlg;
-  SchedXactionEditorDialog *adv_edit_dlg;
+  GncSxEditorDialog *adv_edit_dlg;
   GMainContext *context;
 
   if ( sx_error != 0
        && sx_error != SXFTD_ERRNO_UNBALANCED_XACTION )
   {
-          // unbalanced-xaction is "okay", since this is also checked for by
-          // the advanced editor.
-          PWARN( "something bad happened in sxftd_compute_sx [%d]", sx_error );
-          return;
+       // unbalanced-xaction is "okay", since this is also checked for by
+       // the advanced editor.
+       g_warning("something bad happened in sxftd_compute_sx [%d]", sx_error);
+       return;
   }
   gtk_widget_hide( sxfti->dialog );
   /* force a gui update. */
   context = g_main_context_default();
   while (g_main_context_iteration(context, FALSE));
 
-  adv_dlg = gnc_ui_scheduled_xaction_dialog_create();
   adv_edit_dlg =
-    gnc_ui_scheduled_xaction_editor_dialog_create(adv_dlg, 
-                                                  sxfti->sx,
+    gnc_ui_scheduled_xaction_editor_dialog_create(sxfti->sx,
                                                   TRUE /* newSX */);
   /* close ourself, since advanced editing entails us, and there are sync
    * issues otherwise. */
@@ -647,28 +621,21 @@
 static void
 sxftd_destroy( GtkWidget *w, gpointer user_data )
 {
-  int i;
   SXFromTransInfo *sxfti = (SXFromTransInfo*)user_data;
 
-  for ( i=0; i<SXFTD_EXCAL_NUM_MONTHS*31; i++ ) {
-    g_date_free( sxfti->cal_marks[i] );
-  }
-  g_free( sxfti->cal_marks );
-    
   if ( sxfti->sx ) {
     xaccSchedXactionFree(sxfti->sx);
     sxfti->sx = NULL;
   }
 
+  g_object_unref(G_OBJECT(sxfti->dense_cal_model));
+  g_object_unref(G_OBJECT(sxfti->example_cal));
+
   /* FIXME: do we need to clean up the GladeXML pointer? */
 
   g_free(sxfti);
 }
 
-
-/**
- *
- **/
 static void
 gnc_sx_trans_window_response_cb (GtkDialog *dialog,
                                 gint response,
@@ -677,26 +644,25 @@
 	SXFromTransInfo *sxfti = (SXFromTransInfo *)data;
 
 	ENTER(" dialog %p, response %d, sx %p", dialog, response, sxfti);
-        switch (response) {
-                case GTK_RESPONSE_OK:
-                        DEBUG(" OK");
-			sxftd_ok_clicked(sxfti);
-			break;
-		case SXFTD_RESPONSE_ADVANCED:
-			DEBUG(" ADVANCED");
-			sxftd_advanced_clicked(sxfti);
-			break;
-                case GTK_RESPONSE_CANCEL:
-                default:
-                        DEBUG(" CANCEL");
-			sxftd_close(sxfti, TRUE);
-                        break;
+    switch (response) {
+    case GTK_RESPONSE_OK:
+         g_debug(" OK");
+         sxftd_ok_clicked(sxfti);
+         break;
+    case SXFTD_RESPONSE_ADVANCED:
+         g_debug(" ADVANCED");
+         sxftd_advanced_clicked(sxfti);
+         break;
+    case GTK_RESPONSE_CANCEL:
+    default:
+         g_debug(" CANCEL");
+         sxftd_close(sxfti, TRUE);
+         break;
 
 	}
 	LEAVE(" ");
 }
 
-
 /**
  * Update the example calendar; make sure to take into account the end
  * specification.
@@ -706,14 +672,10 @@
 {
   struct tm *tmpTm;
   time_t tmp_tt;
-  GDate date, startDate;
-  unsigned int i;
-  FreqSpec *fs;
+  GDate date, startDate, nextDate;
+  GList *schedule = NULL;
   getEndTuple get;
-  gchar *name;
-  GString *info;
 
-  fs = xaccFreqSpecMalloc( gnc_get_current_book() );
   get = sxftd_get_end_info( sxfti );
 
   tmp_tt = gnc_date_edit_get_date( sxfti->startDateGDE );
@@ -725,55 +687,54 @@
   g_date_set_year( &date, tmpTm->tm_year+1900 );
   g_free( tmpTm );
 
-  sxftd_update_fs( sxfti, &date, fs );
+  sxftd_update_schedule(sxfti, &date, &schedule);
 
   /* go one day before what's in the box so we can get the correct start
    * date. */
   g_date_subtract_days(&date, 1);
-  xaccFreqSpecGetNextInstance( fs, &date, &date );
+  g_date_clear(&nextDate, 1);
+  recurrenceListNextInstance(schedule, &date, &nextDate);
   startDate = date;
 
-  i = 0;
-  while ( (i < (SXFTD_EXCAL_NUM_MONTHS * 31))
-          && g_date_valid( &date )
-          /* Do checking against end restriction. */
-          && ( ( get.type == NEVER_END )
-               || ( get.type == END_ON_DATE
-                    && g_date_compare( &date, &(get.end_date) ) <= 0 )
-               || ( get.type == END_AFTER_N_OCCS
-                    && i < get.n_occurrences ) ) ) {
+  {
+      GtkWidget *w;
+      gchar *name;
+      /* get the name */
+      w = glade_xml_get_widget(sxfti->gxml, SXFTD_NAME_ENTRY);
+      name = gtk_editable_get_chars(GTK_EDITABLE(w), 0, -1);
+      gnc_dense_cal_store_update_name(sxfti->dense_cal_model, name);
+      g_free(name);
+  }
 
-    *sxfti->cal_marks[i++] = date;
-    xaccFreqSpecGetNextInstance( fs, &date, &date );
+  {
+      gchar *schedule_desc;
+      schedule_desc = recurrenceListToCompactString(schedule);
+      gnc_dense_cal_store_update_info(sxfti->dense_cal_model, schedule_desc);
+      g_free(schedule_desc);
   }
-  /* remove old marks */
-  if ( sxfti->mark_id != -1 ) {
-    gnc_dense_cal_mark_remove( sxfti->example_cal, sxfti->mark_id );
-    sxfti->mark_id = -1;
+
+  switch (get.type)
+  {
+  case NEVER_END:
+    gnc_dense_cal_store_update_recurrences_no_end(sxfti->dense_cal_model, &startDate, schedule);
+    break;
+  case END_ON_DATE:
+    gnc_dense_cal_store_update_recurrences_date_end(sxfti->dense_cal_model, &startDate, schedule, &get.end_date);
+    break;
+  case END_AFTER_N_OCCS:
+    gnc_dense_cal_store_update_recurrences_count_end(sxfti->dense_cal_model, &startDate, schedule, get.n_occurrences);
+    break;
+  default:
+      g_warning("unknown get.type [%d]\n", get.type);
+    break;
   }
-  if ( i > 0 ) {
-    GtkWidget *w;
-    gnc_dense_cal_set_month( sxfti->example_cal,
-                             g_date_get_month( &startDate ) );
-    gnc_dense_cal_set_year( sxfti->example_cal,
-                            g_date_get_year( &startDate ) );
-    w = glade_xml_get_widget( sxfti->gxml, SXFTD_NAME_ENTRY );
-    name = gtk_editable_get_chars( GTK_EDITABLE(w), 0, -1 );
-    info = g_string_sized_new( 16 );
-    xaccFreqSpecGetFreqStr( fs, info );
-    sxfti->mark_id =
-      gnc_dense_cal_mark( sxfti->example_cal,
-                          i, sxfti->cal_marks,
-                          name, info->str );
-    gtk_widget_queue_draw( GTK_WIDGET(sxfti->example_cal) );
-    g_free( name );
-    g_string_free( info, TRUE );
-  }
 
-  xaccFreqSpecFree( fs );
+  gnc_dense_cal_set_month( sxfti->example_cal, g_date_get_month( &startDate ) );
+  gnc_dense_cal_set_year( sxfti->example_cal, g_date_get_year( &startDate ) );
+  
+  recurrenceListFree(&schedule);
 }
 
-
 /**
  * Callback to update the calendar
  **/
@@ -784,10 +745,6 @@
   sxftd_update_example_cal( sxfti );
 }
 
-
-/**
- *
- **/
 void
 gnc_sx_create_from_trans( Transaction *trans )
 {
@@ -817,7 +774,7 @@
           }
           else
           {
-                  PERR( "Error in sxftd_init: %d", errno );
+               g_error("sxftd_init: %d", errno);
           }
   }
 

Copied: gnucash/branches/gda-dev/src/gnome/dialog-sx-since-last-run.c (from rev 15827, gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.c)
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.c	2007-04-05 03:10:26 UTC (rev 15827)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sx-since-last-run.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,1106 @@
+/********************************************************************\
+ * dialog-sx-since-last-run.c : dialog for scheduled transaction    *
+ * since-last-run processing.                                       *
+ * Copyright (C) 2006 Joshua Sled <jsled at asynchronous.org>          *
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of version 2 of the GNU General Public *
+ * License as published by the Free Software Foundation.            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+\********************************************************************/
+
+#include "config.h"
+#include <glib.h>
+#include <gtk/gtk.h>
+#include <glade/glade-xml.h>
+
+#include "dialog-utils.h"
+#include "gnc-exp-parser.h"
+#include "gnc-sx-instance-model.h"
+#include "dialog-sx-since-last-run.h"
+
+#include "gnc-ui-util.h"
+#include "Query.h"
+#include "QueryNew.h"
+#include "gnc-ledger-display.h"
+#include "gnc-plugin-page-register.h"
+#include "gnc-main-window.h"
+#include "gnc-component-manager.h"
+#include "gnc-gconf-utils.h"
+#include "gnc-gui-query.h"
+
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.sx.slr"
+
+#define GCONF_SECTION "dialogs/scheduled_trans/since_last_run"
+
+struct _GncSxSinceLastRunDialog
+{
+    GtkWidget *dialog;
+    GncSxSlrTreeModelAdapter *editing_model;
+    GtkTreeView *instance_view;
+    GtkToggleButton *review_created_txns_toggle;
+    GList *created_txns;
+};
+
+/* ------------------------------------------------------------ */
+
+static GObjectClass *parent_class = NULL;
+
+struct _GncSxSlrTreeModelAdapter
+{
+    GObject parent;
+
+    /* protected: */
+    gulong updated_cb_id;
+    gboolean disposed;
+
+    GncSxInstanceModel *instances;
+    GtkTreeStore *real;
+};
+
+typedef struct _GncSxSlrTreeModelAdapterClass
+{
+    GObjectClass parent;
+} GncSxSlrTreeModelAdapterClass;
+
+GType gnc_sx_slr_tree_model_adapter_get_type(void);
+static void gnc_sx_slr_tree_model_adapter_class_init(GncSxSlrTreeModelAdapterClass *klass);
+static void gnc_sx_slr_tree_model_adapter_interface_init(gpointer g_iface, gpointer iface_data);
+static void gnc_sx_slr_tree_model_adapter_init(GTypeInstance *instance, gpointer klass);
+GncSxSlrTreeModelAdapter* gnc_sx_slr_tree_model_adapter_new(GncSxInstanceModel *instances);
+static void gnc_sx_slr_tree_model_adapter_dispose(GObject *obj);
+static void gnc_sx_slr_tree_model_adapter_finalize(GObject *obj);
+
+GncSxInstanceModel* gnc_sx_slr_tree_model_adapter_get_instance_model(GncSxSlrTreeModelAdapter *slr_model);
+GncSxInstances* gnc_sx_slr_tree_model_adapter_get_sx_instances(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter);
+static GncSxInstances* _gnc_sx_slr_tree_model_adapter_get_sx_instances(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter, gboolean check_depth);
+/** @return null if the iter is not actually an GncSxInstance. **/
+GncSxInstance* gnc_sx_slr_model_get_instance(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter);
+static GncSxInstance* _gnc_sx_slr_model_get_instance(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter, gboolean check_depth);
+/** @return false if the iter is not actaully an GncSxInstance's variable. **/
+gboolean gnc_sx_slr_model_get_instance_and_variable(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter, GncSxInstance **instance_loc, GncSxVariable **var_loc);
+
+void gnc_sx_slr_model_change_instance_state(GncSxSlrTreeModelAdapter *model, GncSxInstance *instance, GncSxInstanceState new_state);
+void gnc_sx_slr_model_change_variable(GncSxSlrTreeModelAdapter *model, GncSxInstance *instance, GncSxVariable *variable, gnc_numeric *new_value);
+void gnc_sx_slr_model_effect_change(GncSxSlrTreeModelAdapter *model, gboolean auto_create_only, GList **created_transaction_guids, GList **creation_errors);
+
+GtkTreeModel* gnc_sx_get_slr_state_model(void);
+
+#define GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER	      (gnc_sx_slr_tree_model_adapter_get_type ())
+#define GNC_SX_SLR_TREE_MODEL_ADAPTER(obj)	      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER, GncSxSlrTreeModelAdapter))
+#define GNC_SX_SLR_TREE_MODEL_ADAPTER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER, GncSxSlrTreeModelAdapterClass))
+#define GNC_IS_SX_SLR_TREE_MODEL_ADAPTER(obj)	      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER))
+#define GNC_IS_SX_SLR_TREE_MODEL_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER))
+#define GNC_SX_SLR_TREE_MODEL_ADAPTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER, GncSxSlrTreeModelAdapterClass))
+
+/* ------------------------------------------------------------ */
+
+static void _show_created_transactions(GncSxSinceLastRunDialog *app_dialog, GList *created_txn_guids);
+
+static void dialog_response_cb(GtkDialog *dialog, gint response_id, GncSxSinceLastRunDialog *app_dialog);
+
+/* ------------------------------------------------------------ */
+
+static void
+_var_numeric_to_string(gnc_numeric *value, GString **str)
+{
+    *str = g_string_sized_new(5);
+    g_string_printf(*str, "%0.2f", gnc_numeric_to_double(*value));
+}
+
+/* ------------------------------------------------------------ */
+
+GType
+gnc_sx_slr_tree_model_adapter_get_type(void)
+{
+    static GType gsstma_type = 0;
+    if (gsstma_type == 0) {
+        static const GTypeInfo info = {
+            sizeof (GncSxSlrTreeModelAdapterClass),
+            NULL,   /* base_init */
+            NULL,   /* base_finalize */
+            (GClassInitFunc)gnc_sx_slr_tree_model_adapter_class_init,   /* class_init */
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            sizeof (GncSxSlrTreeModelAdapter),
+            0,      /* n_preallocs */
+            (GInstanceInitFunc)gnc_sx_slr_tree_model_adapter_init    /* instance_init */
+        };
+        static const GInterfaceInfo itreeModel_info = {
+            (GInterfaceInitFunc) gnc_sx_slr_tree_model_adapter_interface_init,    /* interface_init */
+            NULL,               /* interface_finalize */
+            NULL                /* interface_data */
+        };
+
+        gsstma_type = g_type_register_static (G_TYPE_OBJECT,
+                                              "GncSxSlrTreeModelAdapterType",
+                                              &info, 0);
+        g_type_add_interface_static(gsstma_type,
+                                    GTK_TYPE_TREE_MODEL,
+                                    &itreeModel_info);
+    }
+    return gsstma_type;
+}
+
+static void
+gnc_sx_slr_tree_model_adapter_class_init(GncSxSlrTreeModelAdapterClass *klass)
+{
+    GObjectClass *obj_class;
+
+    parent_class = g_type_class_peek_parent(klass);
+
+    obj_class = G_OBJECT_CLASS(klass);
+
+    obj_class->dispose = gnc_sx_slr_tree_model_adapter_dispose;
+    obj_class->finalize = gnc_sx_slr_tree_model_adapter_finalize;
+}
+
+static GtkTreeModelFlags
+gsslrtma_get_flags(GtkTreeModel *tree_model)
+{
+    return gtk_tree_model_get_flags(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real));
+}
+
+static gint
+gsslrtma_get_n_columns(GtkTreeModel *tree_model)
+{
+    return gtk_tree_model_get_n_columns(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real));
+}
+
+static GType
+gsslrtma_get_column_type(GtkTreeModel *tree_model, gint index)
+{
+    return gtk_tree_model_get_column_type(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), index);
+}
+
+static gboolean
+gsslrtma_get_iter(GtkTreeModel *tree_model,
+                  GtkTreeIter *iter,
+                  GtkTreePath *path)
+{
+    return gtk_tree_model_get_iter(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter, path);
+}
+
+static GtkTreePath*
+gsslrtma_get_path(GtkTreeModel *tree_model,
+                  GtkTreeIter *iter)
+{
+    return gtk_tree_model_get_path(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static void
+gsslrtma_get_value(GtkTreeModel *tree_model,
+                   GtkTreeIter *iter,
+                   gint column,
+                   GValue *value)
+{
+    gtk_tree_model_get_value(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter, column, value);
+}
+
+static gboolean
+gsslrtma_iter_next(GtkTreeModel *tree_model,
+                   GtkTreeIter *iter)
+{
+    return gtk_tree_model_iter_next(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static gboolean
+gsslrtma_iter_children(GtkTreeModel *tree_model,
+                       GtkTreeIter *iter,
+                       GtkTreeIter *parent)
+{
+    return gtk_tree_model_iter_children(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter, parent);
+}
+
+static gboolean
+gsslrtma_iter_has_child(GtkTreeModel *tree_model,
+                        GtkTreeIter *iter)
+{
+    return gtk_tree_model_iter_has_child(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static gint
+gsslrtma_iter_n_children(GtkTreeModel *tree_model,
+                         GtkTreeIter *iter)
+{
+    return gtk_tree_model_iter_n_children(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static gboolean
+gsslrtma_iter_nth_child(GtkTreeModel *tree_model,
+                        GtkTreeIter *iter,
+                        GtkTreeIter *parent,
+                        gint n)
+{
+    return gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter, parent, n);
+}
+
+static gboolean
+gsslrtma_iter_parent(GtkTreeModel *tree_model,
+                     GtkTreeIter *iter,
+                     GtkTreeIter *child)
+{
+    return gtk_tree_model_iter_parent(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter, child);
+}
+
+static void
+gsslrtma_ref_node(GtkTreeModel *tree_model,
+                  GtkTreeIter *iter)
+{
+    gtk_tree_model_ref_node(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static void
+gsslrtma_unref_node(GtkTreeModel *tree_model,
+                    GtkTreeIter *iter)
+{
+    gtk_tree_model_unref_node(GTK_TREE_MODEL(GNC_SX_SLR_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static void
+gnc_sx_slr_tree_model_adapter_interface_init(gpointer g_iface, gpointer iface_data)
+{
+    GtkTreeModelIface *tree_model = (GtkTreeModelIface*)g_iface;
+    tree_model->get_flags = gsslrtma_get_flags;
+    tree_model->get_n_columns = gsslrtma_get_n_columns;
+    tree_model->get_column_type = gsslrtma_get_column_type;
+    tree_model->get_iter = gsslrtma_get_iter;
+    tree_model->get_path = gsslrtma_get_path;
+    tree_model->get_value = gsslrtma_get_value;
+    tree_model->iter_next = gsslrtma_iter_next;
+    tree_model->iter_children = gsslrtma_iter_children;
+    tree_model->iter_has_child = gsslrtma_iter_has_child;
+    tree_model->iter_n_children = gsslrtma_iter_n_children;
+    tree_model->iter_nth_child = gsslrtma_iter_nth_child;
+    tree_model->iter_parent = gsslrtma_iter_parent;
+    tree_model->ref_node = gsslrtma_ref_node;
+    tree_model->unref_node = gsslrtma_unref_node;
+}
+
+static void
+gsslrtma_proxy_row_changed(GtkTreeModel *treemodel,
+                           GtkTreePath *arg1,
+                           GtkTreeIter *arg2,
+                           gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-changed", arg1, arg2);
+}
+
+static void
+gsslrtma_proxy_row_deleted(GtkTreeModel *treemodel,
+                           GtkTreePath *arg1,
+                           gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-deleted", arg1);
+}
+
+static void
+gsslrtma_proxy_row_has_child_toggled(GtkTreeModel *treemodel,
+                                     GtkTreePath *arg1,
+                                     GtkTreeIter *arg2,
+                                     gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-has-child-toggled", arg1, arg2);
+}
+
+static void
+gsslrtma_proxy_row_inserted(GtkTreeModel *treemodel,
+                            GtkTreePath *arg1,
+                            GtkTreeIter *arg2,
+                            gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-inserted", arg1, arg2);
+}
+
+static void
+gsslrtma_proxy_rows_reordered(GtkTreeModel *treemodel,
+                              GtkTreePath *arg1,
+                              GtkTreeIter *arg2,
+                              gpointer arg3,
+                              gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "rows-reordered", arg1, arg2, arg3);
+}
+
+// model columns
+enum {
+    SLR_MODEL_COL_NAME = 0,
+    SLR_MODEL_COL_INSTANCE_STATE,
+    SLR_MODEL_COL_VARAIBLE_VALUE,
+    SLR_MODEL_COL_INSTANCE_VISIBILITY,
+    SLR_MODEL_COL_VARIABLE_VISIBILITY,
+    SLR_MODEL_COL_INSTANCE_STATE_SENSITIVITY,
+};
+
+static void
+gnc_sx_slr_tree_model_adapter_init(GTypeInstance *instance, gpointer klass)
+{
+    GncSxSlrTreeModelAdapter *adapter = GNC_SX_SLR_TREE_MODEL_ADAPTER(instance);
+    // columns:    thing-name, instance-state, variable-value, instance-visible, variable-visible, instance_state_sensitivity
+    // at depth=0: <sx>,       N/A,            N/A,            N/A               N/A,              N/A
+    // at depth=1: <instance>, <state>,        N/A,            <valid>,          N/A,              <valid>
+    // at depth=2: <variable>, N/A,            <value>,        N/A,              <valid>,          N/A
+    adapter->real = gtk_tree_store_new(6, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+
+    g_signal_connect(adapter->real, "row-changed", G_CALLBACK(gsslrtma_proxy_row_changed), adapter);
+    g_signal_connect(adapter->real, "row-deleted", G_CALLBACK(gsslrtma_proxy_row_deleted), adapter);
+    g_signal_connect(adapter->real, "row-has-child-toggled", G_CALLBACK(gsslrtma_proxy_row_has_child_toggled), adapter);
+    g_signal_connect(adapter->real, "row-inserted", G_CALLBACK(gsslrtma_proxy_row_inserted), adapter);
+    g_signal_connect(adapter->real, "rows-reordered", G_CALLBACK(gsslrtma_proxy_rows_reordered), adapter);
+}
+
+/* @@fixme: i18n. **/
+/* @@fixme: non-staticize. **/
+static char* gnc_sx_instance_state_names[] = {
+    ("Ignored"),
+    ("Postponed"),
+    ("To-Create"),
+    ("Reminder"),
+    ("Created"),
+    NULL
+};
+
+static GtkTreeModel* _singleton_slr_state_model = NULL;
+
+GtkTreeModel*
+gnc_sx_get_slr_state_model(void)
+{
+    if (_singleton_slr_state_model == NULL)
+    {
+        int i;
+        GtkTreeIter iter;
+
+        _singleton_slr_state_model = GTK_TREE_MODEL(gtk_list_store_new(1, G_TYPE_STRING));
+        for (i = 0; i != SX_INSTANCE_STATE_CREATED; i++)
+        {
+            gtk_list_store_insert_with_values(GTK_LIST_STORE(_singleton_slr_state_model),
+                                              &iter,
+                                              SX_INSTANCE_STATE_MAX_STATE + 1,
+                                              0, gnc_sx_instance_state_names[i], -1);
+        }
+    }
+    return _singleton_slr_state_model;
+}
+
+static void
+_consume_excess_rows(GtkTreeStore *store, int last_index, GtkTreeIter *parent_iter, GtkTreeIter *maybe_invalid_iter)
+{
+    if (last_index == -1)
+    {
+        // try to get whatever was there beforehand, if it exists
+        if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(store), maybe_invalid_iter, parent_iter))
+            return;
+    }
+    else
+    {
+        // increment the iter, or bail out.
+        if (!gtk_tree_model_iter_next(GTK_TREE_MODEL(store), maybe_invalid_iter))
+            return;
+    }
+
+    // consume until we're done.
+    while (gtk_tree_store_remove(store, maybe_invalid_iter));
+}
+
+
+static void
+gsslrtma_populate_tree_store(GncSxSlrTreeModelAdapter *model)
+{
+    GtkTreeIter sx_tree_iter;
+    GList *sx_iter;
+    int instances_index = -1;
+
+    for (sx_iter = model->instances->sx_instance_list; sx_iter != NULL; sx_iter = sx_iter->next)
+    {
+        GncSxInstances *instances = (GncSxInstances*)sx_iter->data;
+        FreqSpec *fs;
+        GString *frequency_str;
+        char last_occur_date_buf[MAX_DATE_LENGTH+1];
+        char next_occur_date_buf[MAX_DATE_LENGTH+1];
+
+        frequency_str = g_string_sized_new(32);
+        fs = xaccSchedXactionGetFreqSpec(instances->sx);
+        xaccFreqSpecGetFreqStr(fs, frequency_str);
+
+        {
+            GDate *last_occur = xaccSchedXactionGetLastOccurDate(instances->sx);
+            if (last_occur == NULL || !g_date_valid(last_occur))
+            {
+                g_stpcpy(last_occur_date_buf, "never");
+            }
+            else
+            {
+                qof_print_gdate(last_occur_date_buf,
+                                MAX_DATE_LENGTH,
+                                last_occur);
+            }
+        }
+
+        qof_print_gdate(next_occur_date_buf, MAX_DATE_LENGTH, &instances->next_instance_date);
+
+        if (!gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(model->real), &sx_tree_iter, NULL, ++instances_index))
+        {
+            gtk_tree_store_append(model->real, &sx_tree_iter, NULL);
+        }
+        gtk_tree_store_set(model->real, &sx_tree_iter,
+                           SLR_MODEL_COL_NAME, xaccSchedXactionGetName(instances->sx),
+                           SLR_MODEL_COL_INSTANCE_STATE, NULL,
+                           SLR_MODEL_COL_VARAIBLE_VALUE, NULL,
+                           SLR_MODEL_COL_INSTANCE_VISIBILITY, FALSE,
+                           SLR_MODEL_COL_VARIABLE_VISIBILITY, FALSE,
+                           SLR_MODEL_COL_INSTANCE_STATE_SENSITIVITY, FALSE,
+                           -1);
+        g_string_free(frequency_str, TRUE);
+
+        // Insert instance information
+        {
+            GList *inst_iter;
+            GtkTreeIter inst_tree_iter;
+            char instance_date_buf[MAX_DATE_LENGTH+1];
+            int instance_index = -1;
+
+            for (inst_iter = instances->list; inst_iter != NULL; inst_iter = inst_iter->next)
+            {
+                GncSxInstance *inst = (GncSxInstance*)inst_iter->data;
+                qof_print_gdate(instance_date_buf, MAX_DATE_LENGTH, &inst->date);
+
+                if (!gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(model->real), &inst_tree_iter, &sx_tree_iter, ++instance_index))
+                {
+                    gtk_tree_store_append(model->real, &inst_tree_iter, &sx_tree_iter);
+                }
+                gtk_tree_store_set(model->real, &inst_tree_iter,
+                                   SLR_MODEL_COL_NAME, instance_date_buf,
+                                   SLR_MODEL_COL_INSTANCE_STATE, gnc_sx_instance_state_names[inst->state],
+                                   SLR_MODEL_COL_VARAIBLE_VALUE, NULL,
+                                   SLR_MODEL_COL_INSTANCE_VISIBILITY, TRUE,
+                                   SLR_MODEL_COL_VARIABLE_VISIBILITY, FALSE,
+                                   SLR_MODEL_COL_INSTANCE_STATE_SENSITIVITY, inst->state != SX_INSTANCE_STATE_CREATED,
+                                   -1);
+
+                // Insert variable information
+                {
+                    GList *vars = NULL, *var_iter;
+                    GtkTreeIter var_tree_iter;
+                    gint visible_variable_index = -1;
+
+                    vars = gnc_sx_instance_get_variables(inst);
+                    for (var_iter = vars; var_iter != NULL; var_iter = var_iter->next)
+                    {
+                        GncSxVariable *var = (GncSxVariable*)var_iter->data;
+                        GString *tmp_str;
+
+                        if (!var->editable)
+                            continue;
+
+                        if (gnc_numeric_check(var->value) == GNC_ERROR_OK)
+                        {
+                            _var_numeric_to_string(&var->value, &tmp_str);
+                        }
+                        else
+                        {
+                            tmp_str = g_string_new("(need value)");
+                        }
+
+                        if (!gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(model->real),
+                                                           &var_tree_iter, &inst_tree_iter,
+                                                           ++visible_variable_index))
+                        {
+                            gtk_tree_store_append(model->real, &var_tree_iter, &inst_tree_iter);
+                        }
+                        gtk_tree_store_set(model->real, &var_tree_iter,
+                                           SLR_MODEL_COL_NAME, var->name,
+                                           SLR_MODEL_COL_INSTANCE_STATE, NULL,
+                                           SLR_MODEL_COL_VARAIBLE_VALUE, tmp_str->str,
+                                           SLR_MODEL_COL_INSTANCE_VISIBILITY, FALSE,
+                                           SLR_MODEL_COL_VARIABLE_VISIBILITY, TRUE,
+                                           SLR_MODEL_COL_INSTANCE_STATE_SENSITIVITY, FALSE
+                                           -1);
+                        g_string_free(tmp_str, TRUE);
+                    }
+                    g_list_free(vars);
+
+                    _consume_excess_rows(model->real, visible_variable_index, &inst_tree_iter, &var_tree_iter);
+                }
+            }
+               
+            // if there are more instance iters, remove
+            _consume_excess_rows(model->real, instance_index, &sx_tree_iter, &inst_tree_iter);
+        }
+    }
+    _consume_excess_rows(model->real, instances_index, NULL, &sx_tree_iter);
+}
+
+GncSxInstanceModel*
+gnc_sx_slr_tree_model_adapter_get_instance_model(GncSxSlrTreeModelAdapter *slr_model)
+{
+    return slr_model->instances;
+}
+
+GncSxInstances*
+gnc_sx_slr_tree_model_adapter_get_sx_instances(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter)
+{
+    return _gnc_sx_slr_tree_model_adapter_get_sx_instances(model, iter, TRUE);
+}
+
+static GncSxInstances*
+_gnc_sx_slr_tree_model_adapter_get_sx_instances(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter, gboolean check_depth)
+{
+    GtkTreePath *path;
+    gint *indices, index;
+    path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), iter);
+    if (check_depth && gtk_tree_path_get_depth(path) != 1)
+    {
+        gtk_tree_path_free(path);
+        return NULL;
+    }
+    indices = gtk_tree_path_get_indices(path);
+    index = indices[0];
+    gtk_tree_path_free(path);
+
+    return (GncSxInstances*)g_list_nth_data(model->instances->sx_instance_list, index);
+}
+
+GncSxInstance*
+gnc_sx_slr_model_get_instance(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter)
+{
+    return _gnc_sx_slr_model_get_instance(model, iter, TRUE);
+}
+
+static GncSxInstance*
+_gnc_sx_slr_model_get_instance(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter, gboolean check_depth)
+{
+    GtkTreePath *path;
+    gint *indices, instances_index, instance_index;
+    GncSxInstances *instances;
+    path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), iter);
+    if (check_depth && gtk_tree_path_get_depth(path) != 2)
+    {
+        gtk_tree_path_free(path);
+        return NULL;
+    }
+    indices = gtk_tree_path_get_indices(path);
+    instances_index = indices[0];
+    instance_index = indices[1];
+    gtk_tree_path_free(path);
+
+    instances = (GncSxInstances*)g_list_nth_data(model->instances->sx_instance_list, instances_index);
+    if (instance_index < 0 || instance_index >= g_list_length(instances->list))
+    {
+        return NULL;
+    }
+
+    return (GncSxInstance*)g_list_nth_data(instances->list, instance_index);
+}
+
+gboolean
+gnc_sx_slr_model_get_instance_and_variable(GncSxSlrTreeModelAdapter *model, GtkTreeIter *iter, GncSxInstance **instance_loc, GncSxVariable **var_loc)
+{
+    GtkTreePath *path;
+    gint *indices, variable_index;
+    GncSxInstance *instance;
+    GList *variables;
+
+    instance = _gnc_sx_slr_model_get_instance(model, iter, FALSE);
+    if (instance == NULL)
+    {
+        return FALSE;
+    }
+    variables = gnc_sx_instance_get_variables(instance);
+
+    path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), iter);
+    if (gtk_tree_path_get_depth(path) != 3)
+    {
+        gtk_tree_path_free(path);
+        return FALSE;
+    }
+    indices = gtk_tree_path_get_indices(path);
+    variable_index = indices[2];
+    gtk_tree_path_free(path);
+
+    if (variable_index < 0 || variable_index >= g_list_length(variables))
+    {
+        g_list_free(variables);
+        return FALSE;
+    }
+
+    if (instance_loc != NULL)
+    {
+        *instance_loc = instance;
+    }
+
+    if (var_loc != NULL)
+    {
+        // *var_loc = (GncSxVariable*)g_list_nth_data(variables, variable_index);
+        GList *list_iter = variables;
+        for (; list_iter != NULL; list_iter = list_iter->next)
+        {
+            GncSxVariable *var = (GncSxVariable*)list_iter->data;
+            if (!var->editable)
+                continue;
+            if (variable_index-- == 0)
+            {
+                *var_loc = var;
+                break;
+            }
+        }
+    }
+
+    g_list_free(variables);
+    return TRUE;
+}
+
+void
+gnc_sx_slr_model_change_instance_state(GncSxSlrTreeModelAdapter *model, GncSxInstance *instance, GncSxInstanceState new_state)
+{
+    // @fixme: pop this out a level.
+    gnc_sx_instance_model_change_instance_state(model->instances, instance, new_state);
+}
+
+/**
+ * Special-case list indexing that only refers to "editable" variables. :(
+ **/
+static gint
+_variable_list_index(GList *variables, GncSxVariable *variable)
+{
+    gint index = 0;
+    for (; variables != NULL; variables = variables->next)
+    {
+        GncSxVariable *var = (GncSxVariable*)variables->data;
+        if (!var->editable)
+            continue;
+        if (variable == var)
+            return index;
+        index++;
+    }
+    return -1;
+}
+
+static GtkTreePath*
+_get_path_for_variable(GncSxSlrTreeModelAdapter *model, GncSxInstance *instance, GncSxVariable *variable)
+{
+    GList *variables;
+    int indices[3];
+    GtkTreePath *path;
+
+    indices[0] = g_list_index(model->instances->sx_instance_list, instance->parent);
+    if (indices[0] == -1)
+        return NULL;
+    indices[1] = g_list_index(instance->parent->list, instance);
+    if (indices[1] == -1)
+        return NULL;
+    variables = gnc_sx_instance_get_variables(instance);
+    indices[2] = _variable_list_index(variables, variable);
+    g_list_free(variables);
+    if (indices[2] == -1)
+        return NULL;
+    path = gtk_tree_path_new_from_indices(indices[0], indices[1], indices[2], -1);
+    return path;
+}
+
+void
+gnc_sx_slr_model_change_variable(GncSxSlrTreeModelAdapter *model, GncSxInstance *instance, GncSxVariable *variable, gnc_numeric *new_value)
+{
+    gnc_sx_instance_model_set_variable(model->instances, instance, variable, new_value);
+}
+
+static void
+gsslrtma_added_cb(GncSxInstanceModel *instances, SchedXaction *added_sx, gpointer user_data)
+{
+    GncSxSlrTreeModelAdapter *model = GNC_SX_SLR_TREE_MODEL_ADAPTER(user_data); 
+    // this is wasteful, but fine.
+    gsslrtma_populate_tree_store(model);
+}
+
+static void
+gsslrtma_updated_cb(GncSxInstanceModel *instances, SchedXaction *updated_sx, gpointer user_data)
+{
+    GncSxSlrTreeModelAdapter *model = GNC_SX_SLR_TREE_MODEL_ADAPTER(user_data); 
+    gnc_sx_instance_model_update_sx_instances(instances, updated_sx);
+    gsslrtma_populate_tree_store(model);
+}
+
+static void
+gsslrtma_removing_cb(GncSxInstanceModel *instances, SchedXaction *to_remove_sx, gpointer user_data)
+{
+    GncSxSlrTreeModelAdapter *model = GNC_SX_SLR_TREE_MODEL_ADAPTER(user_data); 
+    GtkTreeIter tree_iter;
+    GList *iter;
+    int index = 0;
+    // get index, create path, remove
+    for (iter = instances->sx_instance_list; iter != NULL; iter = iter->next, index++)
+    {
+        GncSxInstances *instances = (GncSxInstances*)iter->data;
+        if (instances->sx == to_remove_sx)
+            break;
+    }
+    if (iter == NULL)
+        return; // couldn't find sx in our model, which is weird.
+    if (!gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(model->real), &tree_iter, NULL, index))
+        return; // perr(couldn't get something that should exist.
+    gtk_tree_store_remove(model->real, &tree_iter);
+
+    gnc_sx_instance_model_remove_sx_instances(instances, to_remove_sx);
+}
+
+static void
+gnc_sx_slr_tree_model_adapter_dispose(GObject *obj)
+{
+    GncSxSlrTreeModelAdapter *adapter;
+    g_return_if_fail(obj != NULL);
+    adapter = GNC_SX_SLR_TREE_MODEL_ADAPTER(obj);
+    g_return_if_fail(!adapter->disposed);
+    adapter->disposed = TRUE;
+     
+    g_object_unref(G_OBJECT(adapter->instances));
+    adapter->instances = NULL;
+    g_object_unref(G_OBJECT(adapter->real));
+    adapter->real = NULL;
+
+    G_OBJECT_CLASS(parent_class)->dispose(obj);
+}
+
+static void
+gnc_sx_slr_tree_model_adapter_finalize(GObject *obj)
+{
+    g_return_if_fail(obj != NULL);
+    G_OBJECT_CLASS(parent_class)->finalize(obj);
+}
+
+GncSxSlrTreeModelAdapter*
+gnc_sx_slr_tree_model_adapter_new(GncSxInstanceModel *instances)
+{
+    GncSxSlrTreeModelAdapter *rtn;
+    rtn = GNC_SX_SLR_TREE_MODEL_ADAPTER(g_object_new(GNC_TYPE_SX_SLR_TREE_MODEL_ADAPTER, NULL));
+    rtn->instances = instances;
+    g_object_ref(G_OBJECT(rtn->instances));
+    gsslrtma_populate_tree_store(rtn);
+    g_signal_connect(G_OBJECT(rtn->instances), "added", (GCallback)gsslrtma_added_cb, (gpointer)rtn);
+    rtn->updated_cb_id = g_signal_connect(G_OBJECT(rtn->instances), "updated", (GCallback)gsslrtma_updated_cb, (gpointer)rtn);
+    g_signal_connect(G_OBJECT(rtn->instances), "removing", (GCallback)gsslrtma_removing_cb, (gpointer)rtn);
+    return rtn;
+}
+
+void
+gnc_sx_sxsincelast_book_opened(void)
+{
+    GList *auto_created_txns = NULL;
+    GncSxInstanceModel *inst_model;
+    GncSxSummary summary;
+
+    if (!gnc_gconf_get_bool(GCONF_SECTION, "show_at_file_open", NULL))
+        return;
+
+    inst_model = gnc_sx_get_current_instances();
+    gnc_sx_instance_model_summarize(inst_model, &summary);
+    gnc_sx_summary_print(&summary);
+    gnc_sx_instance_model_effect_change(inst_model, TRUE, &auto_created_txns, NULL);
+
+    if (summary.need_dialog)
+    {
+        gnc_ui_sx_since_last_run_dialog(inst_model, auto_created_txns);
+        auto_created_txns = NULL;
+    }
+    else
+    {
+        if (summary.num_auto_create_no_notify_instances != 0)
+        {
+            gnc_info_dialog
+                (NULL,
+                 ngettext 
+                 ("There are no Scheduled Transactions to be entered at this time. "
+                  "(%d transaction automatically created)",
+                  "There are no Scheduled Transactions to be entered at this time. "
+                  "(%d transactions automatically created)",
+                  summary.num_auto_create_no_notify_instances),
+                 summary.num_auto_create_no_notify_instances);
+        }
+    }
+    g_list_free(auto_created_txns);
+    g_object_unref(G_OBJECT(inst_model));
+}
+
+static void
+instance_state_changed_cb(GtkCellRendererText *cell,
+                          const gchar *path,
+                          const gchar *value,
+                          GncSxSinceLastRunDialog *dialog)
+{
+    GtkTreeIter tree_iter;
+    GncSxInstance *inst;
+    int i;
+    GncSxInstanceState new_state;
+     
+    for (i = 0; i < SX_INSTANCE_STATE_CREATED; i++)
+    {
+        if (strcmp(value, gnc_sx_instance_state_names[i]) == 0)
+            break;
+    }
+    if (i == SX_INSTANCE_STATE_CREATED)
+    {
+        g_warning("unknown value [%s]", value);
+        return;
+    }
+    new_state = i;
+
+    if (!gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(dialog->editing_model), &tree_iter, path))
+    {
+        g_warning("unknown path [%s]", path);
+        return;
+    }
+
+    inst = gnc_sx_slr_model_get_instance(dialog->editing_model, &tree_iter);
+    if (inst == NULL)
+    {
+        g_warning("invalid path [%s]", path);
+        return;
+    }
+
+    gnc_sx_slr_model_change_instance_state(dialog->editing_model, inst, new_state);
+}
+
+static void
+variable_value_changed_cb(GtkCellRendererText *cell,
+                          const gchar *path,
+                          const gchar *value,
+                          GncSxSinceLastRunDialog *dialog)
+{
+    GncSxVariable *var;
+    GncSxInstance *inst;
+    GtkTreeIter tree_iter;
+    gnc_numeric parsed_num;
+    char *endStr = NULL;
+
+    g_debug("variable to [%s] at path [%s]", value, path);
+    if (!gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(dialog->editing_model), &tree_iter, path))
+    {
+        g_warning("invalid path [%s]", path);
+        return;
+    }
+
+    if (!gnc_sx_slr_model_get_instance_and_variable(dialog->editing_model, &tree_iter, &inst, &var))
+    {
+        g_critical("path [%s] doesn't correspond to a valid variable", path);
+        return;
+    }
+
+    if (!xaccParseAmount(value, TRUE, &parsed_num, &endStr)
+        || gnc_numeric_check(parsed_num) != GNC_ERROR_OK)
+    {
+        gchar *value_copy = g_strdup(value);
+        g_debug("value=[%s] endStr[%s]", value, endStr);
+        if (strlen(g_strstrip(value_copy)) == 0)
+        {
+            gnc_numeric invalid_num = gnc_numeric_error(GNC_ERROR_ARG);
+            // @fixme? Change to gnc_sx_slr_model_clear_variable(...)?
+            gnc_sx_slr_model_change_variable(dialog->editing_model, inst, var, &invalid_num);
+        }
+        else
+        {
+            g_warning("error parsing value [%s]", value);
+        }
+        g_free(value_copy);
+        return;
+    }
+    gnc_sx_slr_model_change_variable(dialog->editing_model, inst, var, &parsed_num);
+}
+
+GncSxSinceLastRunDialog*
+gnc_ui_sx_since_last_run_dialog(GncSxInstanceModel *sx_instances, GList *auto_created_txn_guids)
+{
+    GncSxSinceLastRunDialog *dialog;
+    GladeXML *glade;
+
+    dialog = g_new0(GncSxSinceLastRunDialog, 1);
+    glade = gnc_glade_xml_new("sched-xact.glade", "since-last-run-dialog");
+    dialog->dialog = glade_xml_get_widget(glade, "since-last-run-dialog");
+
+    dialog->editing_model = gnc_sx_slr_tree_model_adapter_new(sx_instances);
+    // gobject-2.10: g_object_ref_sink(G_OBJECT(dialog->editing_model));
+    g_object_ref(G_OBJECT(dialog->editing_model));
+     
+    dialog->review_created_txns_toggle = GTK_TOGGLE_BUTTON(glade_xml_get_widget(glade, "review_txn_toggle"));
+
+    dialog->created_txns = auto_created_txn_guids;
+     
+    {
+        GtkCellRenderer *renderer;
+        GtkTreeViewColumn *col;
+          
+        dialog->instance_view = GTK_TREE_VIEW(glade_xml_get_widget(glade, "instance_view"));
+        gtk_tree_view_set_model(dialog->instance_view, GTK_TREE_MODEL(dialog->editing_model));
+
+        renderer = gtk_cell_renderer_text_new();
+        col = gtk_tree_view_column_new_with_attributes("SX, Instance, Variable", renderer,
+                                                       "text", SLR_MODEL_COL_NAME,
+                                                       NULL);
+        gtk_tree_view_append_column(dialog->instance_view, col);
+
+        renderer = gtk_cell_renderer_combo_new();
+        g_object_set(G_OBJECT(renderer),
+                     "model", gnc_sx_get_slr_state_model(),
+                     "text-column", 0,
+                     "has-entry", FALSE,
+                     "editable", TRUE,
+                     NULL);
+        g_signal_connect(G_OBJECT(renderer),
+                         "edited",
+                         G_CALLBACK(instance_state_changed_cb),
+                         dialog);
+        col = gtk_tree_view_column_new_with_attributes("Instance State", renderer,
+                                                       "text", SLR_MODEL_COL_INSTANCE_STATE,
+                                                       "visible", SLR_MODEL_COL_INSTANCE_VISIBILITY,
+                                                       // you might think only "sensitive" is required to
+                                                       // control the ability of the combo box to select
+                                                       // a new state, but you'd be wrong.
+                                                       "editable", SLR_MODEL_COL_INSTANCE_STATE_SENSITIVITY,
+                                                       "sensitive", SLR_MODEL_COL_INSTANCE_STATE_SENSITIVITY,
+                                                       NULL);
+        gtk_tree_view_append_column(dialog->instance_view, col);
+
+        renderer = gtk_cell_renderer_text_new();
+        g_object_set(G_OBJECT(renderer),
+                     "editable", TRUE,
+                     NULL);
+        g_signal_connect(G_OBJECT(renderer),
+                         "edited",
+                         G_CALLBACK(variable_value_changed_cb),
+                         dialog);
+        col = gtk_tree_view_column_new_with_attributes("Variable Value", renderer,
+                                                       "text", SLR_MODEL_COL_VARAIBLE_VALUE,
+                                                       "visible", SLR_MODEL_COL_VARIABLE_VISIBILITY,
+                                                       NULL);
+        gtk_tree_view_append_column(dialog->instance_view, col);
+
+        gtk_tree_view_expand_all(dialog->instance_view);
+    }
+
+    g_signal_connect(G_OBJECT(dialog->dialog), "response", G_CALLBACK(dialog_response_cb), dialog);
+
+    gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(dialog->dialog));
+     
+    gtk_widget_show_all(dialog->dialog);
+
+    return dialog;
+}
+
+static void
+_show_created_transactions(GncSxSinceLastRunDialog *app_dialog, GList *created_txn_guids)
+{
+    GNCLedgerDisplay *ledger;
+    GncPluginPage *page;
+    Query *book_query, *guid_query, *query;
+    GList *guid_iter;
+
+    book_query = xaccMallocQuery();
+    guid_query = xaccMallocQuery();
+    xaccQuerySetBook(book_query, gnc_get_current_book());
+    for (guid_iter = created_txn_guids; guid_iter != NULL; guid_iter = guid_iter->next)
+    {
+        xaccQueryAddGUIDMatch(guid_query, (GUID*)guid_iter->data, GNC_ID_TRANS, QUERY_OR);
+    }
+    query = xaccQueryMerge(book_query, guid_query, QUERY_AND);
+
+    // inspired by dialog-find-transactions:do_find_cb:
+    ledger = gnc_ledger_display_query(query, SEARCH_LEDGER, REG_STYLE_JOURNAL);
+    gnc_ledger_display_refresh(ledger);
+    page = gnc_plugin_page_register_new_ledger(ledger);
+    g_object_set(G_OBJECT(page), "page-name", _("Created Transactions"), NULL);
+    gnc_main_window_open_page(NULL, page);
+
+    xaccFreeQuery(query);
+    xaccFreeQuery(book_query);
+    xaccFreeQuery(guid_query);
+}
+
+static GList*
+gnc_sx_slr_model_check_variables(GncSxSlrTreeModelAdapter *editing_model)
+{
+    return gnc_sx_instance_model_check_variables(editing_model->instances);
+}
+
+static void
+dialog_response_cb(GtkDialog *dialog, gint response_id, GncSxSinceLastRunDialog *app_dialog)
+{
+    switch (response_id)
+    {
+    case GTK_RESPONSE_OK:
+        // @@fixme validate current state(GError *errs);
+        // - instance state constraints
+        // - required variable binding
+        // - ability to create transactions
+    {
+        GList *unbound_variables;
+        unbound_variables = gnc_sx_slr_model_check_variables(app_dialog->editing_model);
+        g_message("%d variables unbound", g_list_length(unbound_variables));
+        if (g_list_length(unbound_variables) > 0)
+        {
+            // focus first variable
+            GncSxVariableNeeded *first_unbound;
+            GtkTreePath *variable_path;
+            GtkTreeViewColumn *variable_col;
+            gint variable_view_column = 2;
+            gboolean start_editing = TRUE;
+
+            first_unbound = (GncSxVariableNeeded*)unbound_variables->data;
+            variable_path = _get_path_for_variable(app_dialog->editing_model, first_unbound->instance, first_unbound->variable);
+            variable_col = gtk_tree_view_get_column(app_dialog->instance_view, variable_view_column);
+
+            gtk_tree_view_set_cursor(app_dialog->instance_view, variable_path, variable_col, start_editing);
+
+            gtk_tree_path_free(variable_path);
+            g_list_foreach(unbound_variables, (GFunc)g_free, NULL);
+            g_list_free(unbound_variables);
+            return;
+        }
+    }
+    gnc_suspend_gui_refresh();
+    gnc_sx_slr_model_effect_change(app_dialog->editing_model, FALSE, &app_dialog->created_txns, NULL);
+    gnc_resume_gui_refresh();
+    if (gtk_toggle_button_get_active(app_dialog->review_created_txns_toggle)
+        && g_list_length(app_dialog->created_txns) > 0)
+    {
+        _show_created_transactions(app_dialog, app_dialog->created_txns);
+    }
+    g_list_free(app_dialog->created_txns);
+    app_dialog->created_txns = NULL;
+
+    /* FALLTHROUGH */
+    case GTK_RESPONSE_CANCEL: 
+    case GTK_RESPONSE_DELETE_EVENT:
+        gnc_save_window_size(GCONF_SECTION, GTK_WINDOW(app_dialog->dialog));
+        gtk_widget_destroy(GTK_WIDGET(dialog));
+        g_object_unref(G_OBJECT(app_dialog->editing_model));
+        app_dialog->editing_model = NULL;
+        break;
+    default:
+        g_error("unknown response id [%d]", response_id);
+        break;
+    }
+}
+
+/**
+ * @param auto_create_only Will only affect auto-create transactions; the
+ * rest of the state will be left alone.
+ **/
+void
+gnc_sx_slr_model_effect_change(GncSxSlrTreeModelAdapter *model,
+                               gboolean auto_create_only,
+                               GList **created_transaction_guids,
+                               GList **creation_errors)
+{
+    g_signal_handler_block(model->instances, model->updated_cb_id);
+    gnc_sx_instance_model_effect_change(model->instances, auto_create_only, created_transaction_guids, creation_errors);
+    g_signal_handler_unblock(model->instances, model->updated_cb_id);
+}

Copied: gnucash/branches/gda-dev/src/gnome/dialog-sx-since-last-run.h (from rev 15827, gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.h)
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.h	2007-04-05 03:10:26 UTC (rev 15827)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sx-since-last-run.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,48 @@
+/********************************************************************\
+ * dialog-sx-since-last-run.h : dialog for scheduled transaction    *
+ * since-last-run processing.                                       *
+ * Copyright (C) 2006 Joshua Sled <jsled at asynchronous.org>          *
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of version 2 of the GNU General Public *
+ * License as published by the Free Software Foundation.            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+\********************************************************************/
+
+#ifndef DIALOG_SX_SINCE_LAST_RUN_H
+#define DIALOG_SX_SINCE_LAST_RUN_H
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+
+#include "gnc-sx-instance-model.h"
+#include "gnc-plugin-page-sx-list.h"
+
+typedef struct _GncSxSlrTreeModelAdapter GncSxSlrTreeModelAdapter;
+typedef struct _GncSxSinceLastRunDialog GncSxSinceLastRunDialog;
+
+/**
+ * This encapsulates the "run when file opened" application logic.  As such,
+ * it should probably move to a non-ui file.
+ **/
+void gnc_sx_sxsincelast_book_opened(void);
+
+/**
+ * Create the since-last-run dialog.
+ **/
+GncSxSinceLastRunDialog*  gnc_ui_sx_since_last_run_dialog(GncSxInstanceModel *sx_instances,
+                                                          GList *auto_created_txn_guids);
+
+#endif

Deleted: gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,4039 +0,0 @@
-/********************************************************************\
- * dialog-sxsincelast.c - "since last run" dialog.                  *
- * Copyright (c) 2001,2002 Joshua Sled <jsled at asynchronous.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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
-\********************************************************************/
-
-/**
- * . Page 1: reminders list
- *   . backed by: sxsld->reminderList
- * . Page 2: auto-create notify ledger
- *   . backed by: sxsld->autoCreateList
- * . Page 3: to-create variable bindings
- *   . backed by: sxsld->toCreateData [s/Data/List/]
- * . Page 4: created ledger
- *   . backed by: sxsld->createdList
- * . Page 5: obsolete list
- *   . backed by: sxsld->toRemoveList
- *
- * Detail regarding 'back' processing support.
- * . reminders
- *   . selected
- *     . <standard policy>
- *   . unselected
- *     . if auto-created   : delete
- *     . if to-create      : remove
- * . auto-create           : display
- * . to-create variable bindings
- *   . if bindings changed : reeval/fill credit/debit cells
- *   . if made incomplete  : delete transaction
- * . created               : display
- * . obsolete              : select status [easy]
- **/
-
-#include "config.h"
-
-#include <gnome.h>
-#include <glib.h>
-#include <glib/gi18n.h>
-#include "glib-compat.h"
-#include <limits.h>
-
-#include "Account.h"
-#include "Group.h"
-#include "Query.h"
-#include "QueryNew.h"
-#include "SchedXaction.h"
-#include "Transaction.h"
-#include "Scrub.h"
-#include "SX-book.h"
-#include "SX-book-p.h"
-#include "dialog-utils.h"
-#include "finvar.h"
-#include "gnc-date.h"
-#include "gnc-component-manager.h"
-#include "gnc-engine.h"
-#include "gnc-exp-parser.h"
-#include "gnc-embedded-window.h"
-#include "gnc-gconf-utils.h"
-#include "gnc-main-window.h"
-#include "gnc-numeric.h"
-#include "gnc-plugin-page.h"
-#include "gnc-plugin-page-register.h"
-#include "gnc-ui-util.h"
-#include "gnc-ui.h"
-#include "gnc-gui-query.h"
-#include "split-register.h"
-#include "gnc-ledger-display.h"
-#include "gnucash-sheet.h"
-#include "gnc-split-reg.h"
-
-#include "dialog-sxsincelast.h"
-#include "dialog-scheduledxaction.h"
-
-#ifdef HAVE_LANGINFO_D_FMT
-#include <langinfo.h>
-#endif
-
-#define DIALOG_SXSINCELAST_CM_CLASS "dialog-sxsincelast"
-#define DIALOG_SXSINCELAST_REMIND_CM_CLASS "dialog-sxsincelast-remind"
-#define DIALOG_SXSINCELAST_OBSOLETE_CM_CLASS "dialog-sxsincelast-obsolete"
-
-#define DIALOG_SXSINCELAST_GLADE_NAME "Since Last Run Druid"
-#define SXSLD_DRUID_GLADE_NAME "sincelast_druid"
-#define SXSLD_WIN_PREFIX "sx_sincelast_win"
-#define GCONF_SECTION "dialogs/scheduled_trans/since_last_run"
-
-#define SINCELAST_DRUID   "sincelast_druid"
-#define WHAT_TO_DO_PG "what_to_do"
-#define REMINDERS_PG "reminders_page"
-#define AUTO_CREATE_NOTIFY_PG "auto_create_notify_page"
-#define TO_CREATE_PG "to_create_page"
-#define CREATED_PG "created_page"
-#define OBSOLETE_PG "obsolete_page"
-#define COMMIT_PG "commit_page"
-
-#define SX_OBSOLETE_CLIST "sx_obsolete_clist"
-#define TO_CREATE_LIST "to_create_list"
-#define REMINDER_LIST  "reminders_list"
-#define SX_GLADE_FILE "sched-xact.glade"
-
-#define TO_CREATE_STATUS "to_create_status"
-
-#define SELECT_ALL_BUTTON "select_all_button"
-#define UNSELECT_ALL_BUTTON "unselect_all_button"
-#define OK_BUTTON "ok_button"
-#define CANCEL_BUTTON "cancel_button"
-#define VARIABLE_TABLE "variables_table"
-#define AUTO_CREATE_VBOX "ac_vbox"
-#define TO_CREATE_TXN_VBOX "to_create_txn_vbox"
-#define CREATED_VBOX "created_vbox"
-#define WHAT_TO_DO_VBOX "what_to_do_vbox"
-#define WHAT_TO_DO_PROGRESS "creation_progress"
-#define SX_DISPOSITION_OPT "disposition_opt"
-
-#define TO_CREATE_LIST_WIDTH 2
-#define REMINDER_LIST_WIDTH  3
-#define SX_OBSOLETE_CLIST_WIDTH 3
-
-#define COERCE_VOID_TO_GBOOLEAN(x) ((gboolean)(*#x))
-
-#define IGNORE_TEXT         "Ignored"
-#define POSTPONE_TEXT       "Postponed"
-#define READY_TEXT          "Ready to create"
-#define NEEDS_BINDINGS_TEXT "Needs values for variables"
-
-static QofLogModule log_module = GNC_MOD_SX;
-
-/**
- * Directions for {forward,back}-page determining.
- * @see gnc_sxsld_get_appropriate_page
- **/
-typedef enum {
-        FORWARD, BACK
-} Direction;
-
-/**
- * The states a to-be-created SX can be in...
- * TO_CREATE   : The SX is ready to be created, depending on variable-binding
- *               requirements.
- * IGNORE      : Drop the SX on the floor forever.
- * POSTPONE    : Bring this SX up in the future, but we're not going to
- *               create it right now.
- * [MAX_STATE] : The maximum real value.
- * UNDEF       : Only used for prevState, to indicate that we haven't
- *               processed this instance, yet.
- **/
-typedef enum {
-        TO_CREATE,
-        IGNORE,
-        POSTPONE,
-        MAX_STATE,
-        UNDEF
-} ToCreateState;
-
-typedef struct toCreateTuple_ {
-        SchedXaction *sx;
-        GList /* <toCreateInstance*> */ *instanceList;
-} toCreateTuple;
-
-typedef struct toCreateInstance_ {
-        GDate *date;
-        GHashTable *varBindings;
-        void *sxStateData;
-        GtkCTreeNode *node;
-        toCreateTuple *parentTCT;
-        /* A list of the GUIDs of transactions generated from this TCI [if
-         * any]; this will always be a subset of the
-         * sxsld->createdTxnGUIDList. */
-        GList /* <GUID*> */ *createdTxnGUIDs;
-        gboolean dirty;
-        /** How this was, originally -- for revert processing. **/
-        ToCreateState origState;
-        /** How the user would currently like to process this instance
-         * [within the druid]. */
-        ToCreateState state;
-        /** How we've previously processed this instance [within the druid]. */
-        ToCreateState prevState;
-} toCreateInstance;
-
-/**
- * A tuple of an SX and any upcoming reminders.
- **/
-typedef struct reminderTuple_ {
-        SchedXaction *sx;
-        GList /* <reminderInstanceTuple*> */ *instanceList;
-} reminderTuple;
-
-/**
- * An reminder instance of the containing SX.
- **/
-typedef struct reminderInstanceTuple_ {
-        GDate        *endDate;
-        GDate        *occurDate;
-        void    *sxStateData;
-        gboolean isSelected;
-        reminderTuple *parentRT;
-        toCreateInstance *resultantTCI;
-} reminderInstanceTuple;
-
-typedef struct toDeleteTuple_ {
-        SchedXaction *sx;
-        GDate *endDate;
-        gboolean isSelected;
-} toDeleteTuple;
-
-typedef struct creation_helper_userdata_ {
-        /* the to-create tuple */
-        toCreateInstance *tci;
-        /* a pointer to a GList to append the GUIDs of newly-created
-         * Transactions to, or NULL */
-        GList **createdGUIDs;
-        /* a pointer to a GList<GString*> of error-messages encountered while
-         * creating the transactions. **/
-        GList **creation_errors;
-} createData;
-
-/**
- * The since-last-run dialog is a Gnome Druid which steps through the various
- * parts of scheduled transaction since-last-run processing; these parts are:
- *
- * 1. Display and select SX reminders for creation
- * 2. Show/allow editing of auto-created + notification-request SXes
- * 3. Show to-create SXes, allowing variable binding
- * 4. Show created SXes, allowing editing
- * 5. Allow deletion of any obsolete SXes
- *
- * Pages which aren't relevant are skipped; this is handled in the 'prep'
- * signal handler: e.g., a since-last dialog with only obsolete SXes would go
- * through the 'prep' methods of all it's pages to reach the Obsolete page.
- **/
-typedef struct _sxSinceLastData {
-        GtkWidget *sincelast_window;
-        GnomeDruid *sincelast_druid;
-        GladeXML *gxml;
-
-        GtkProgressBar *prog;
-        GtkStatusbar *toCreateFormula;
-        guint formulaCtxId;
-        GtkStatusbar *toCreateStatus;
-        guint statusCtxId;
-
-        /* The currently-selected to-create instance. */
-        toCreateInstance *curSelTCI;
-
-        /* Multi-stage processing-related stuff... */
-        GList /* <toCreateTuple*> */ *autoCreateList;
-        GList /* <toCreateTuple*> */ *toCreateList;
-        GList /* <reminderTuple*> */ *reminderList;
-        GList /* <toDeleteTuple*> */ *toRemoveList;
-
-        /********** "Cancel"-related stuff... **********/
-        
-        /** A HashTable of SX mapped to initial temporal data. */
-        GHashTable /* <SchedXaction*,void*> */ *sxInitStates;
-
-        /** The list of the GUIDs of _all_ transactions we've created. */
-        GList /* <GUID*> */            *createdTxnGUIDList;
-
-        /* The count of selected reminders. */
-        gint remindSelCount;
-
-        /* The count of auto-created transactions. */
-        gint autoCreatedCount;
-
-	GncEmbeddedWindow   *ac_window;
-	GncPluginPage       *ac_register;
-        GNCLedgerDisplay    *ac_ledger;
-
-	GncEmbeddedWindow   *created_window;
-	GncPluginPage       *created_register;
-        GNCLedgerDisplay    *created_ledger;
-
-	GncEmbeddedWindow   *to_create_window;
-	GncPluginPage       *to_create_register;
-        GNCLedgerDisplay    *to_create_ledger;
-
-} sxSinceLastData;
-
-static void sxsincelast_init( sxSinceLastData *sxsld );
-static void create_autoCreate_ledger( sxSinceLastData *sxsld );
-static void create_created_ledger( sxSinceLastData *sxsld );
-static void create_to_create_ledger( sxSinceLastData *sxsld );
-static void gnc_sxsld_commit_ledgers( sxSinceLastData *sxsld );
-
-#if 0
-static void sxsld_jump_to_real_txn( GtkAction *action, sxSinceLastData *sxsld );
-#endif
-
-static gint sxsincelast_populate( sxSinceLastData *sxsld );
-static void sxsincelast_druid_cancelled( GnomeDruid *druid, gpointer ud );
-static void sxsincelast_close_handler( gpointer ud );
-
-static GnomeDruidPage* gnc_sxsld_get_appropriate_page( sxSinceLastData *sxsdl,
-                                                       GnomeDruidPage *from,
-                                                       Direction dir );
-static gboolean gnc_sxsld_wtd_appr( sxSinceLastData *sxsld );
-static gboolean gnc_sxsld_remind_appr( sxSinceLastData *sxsld );
-static gboolean gnc_sxsld_tocreate_appr( sxSinceLastData *sxsld );
-static gboolean gnc_sxsld_autocreate_appr( sxSinceLastData *sxsld );
-static gboolean gnc_sxsld_created_appr( sxSinceLastData *sxsld );
-static gboolean gnc_sxsld_obsolete_appr( sxSinceLastData *sxsld );
-static gboolean gnc_sxsld_commit_appr( sxSinceLastData *sxsld );
-
-static void sxsincelast_entry_changed( GtkEditable *e, gpointer ud );
-static void sxsincelast_destroy( GtkObject *o, gpointer ud );
-static void sxsincelast_save_size( sxSinceLastData *sxsld );
-static void create_transactions_on(SchedXaction *sx,
-                                   GDate *gd,
-                                   toCreateInstance *tci,
-                                   GList **createdGUIDs,
-                                   GList **creation_errors);
-static gint create_each_transaction_helper( Transaction *t, void *d );
-/* External for what reason ... ? */
-void sxsl_get_sx_vars( SchedXaction *sx, GHashTable *varHash );
-static void hash_to_sorted_list( GHashTable *hashTable, GList **gl );
-static void andequal_numerics_set( gpointer key,
-                                   gpointer value,
-                                   gpointer data );
-/* External for bad reasons, I think...? */
-void print_vars_helper( gpointer key,
-                        gpointer value,
-                        gpointer user_data );
-static void clean_sincelast_data( sxSinceLastData *sxsld );
-static void clean_variable_table( sxSinceLastData *sxsld );
-
-static void process_auto_create_list(GList *, sxSinceLastData *sxsld, GList **creation_errors);
-static void add_to_create_list_to_gui( GList *, sxSinceLastData *sxsld );
-static void add_reminders_to_gui( GList *, sxSinceLastData *sxsld );
-static void add_dead_list_to_gui( GList *, sxSinceLastData *sxsld );
-static void processSelectedReminderList( GList *, sxSinceLastData * );
-
-static void sxsincelast_tc_row_sel( GtkCTree *ct,
-                                    GList *nodelist,
-                                    gint column,
-                                    gpointer user_data);
-
-static void sxsincelast_tc_row_unsel( GtkCTree *ct,
-                                      GList *nodelist,
-                                      gint column,
-                                      gpointer user_data);
-
-static void sxsld_remind_row_toggle( GtkCTree *ct, GList *node,
-                                     gint column, gpointer user_data );
-static void sxsld_obsolete_row_toggle( GtkCList *cl, gint row, gint col,
-                                       GdkEventButton *event, gpointer ud );
-
-static void sxsld_disposition_changed( GtkMenuShell *b, gpointer d );
-static void sxsld_set_sensitive_tci_controls( sxSinceLastData *sxsld,
-                                              gboolean sensitive );
-
-static void gnc_sxsld_revert_reminders( sxSinceLastData *sxsld,
-                                        GList *toRevertList );
-static gboolean processed_valid_reminders_listP( sxSinceLastData *sxsld );
-static void create_bad_reminders_msg( gpointer data, gpointer ud );
-static gboolean inform_or_add( sxSinceLastData *sxsld, reminderTuple *rt, gboolean okFlag,
-                               GList *badList, GList **goodList );
-
-static void sx_obsolete_select_all_clicked( GtkButton *button,
-                                            gpointer user_data );
-static void sx_obsolete_unselect_all_clicked( GtkButton *button,
-                                              gpointer user_data );
-
-static void gnc_sxsld_free_tci( toCreateInstance *tci );
-static void gnc_sxsld_free_toCreateTuple_list( GList *l );
-static void gnc_sxsld_free_sxState( gpointer key,
-                                    gpointer value,
-                                    gpointer userdata );
-static void gnc_sxsld_free_entry_numeric( GObject *o, gpointer ud );
-
-static gint sxsld_process_to_create_instance(sxSinceLastData *sxsld,
-                                             toCreateInstance *tci,
-                                             GList **creation_errors);
-static void sxsld_revert_to_create_txns( sxSinceLastData *sxsld,
-                                         toCreateInstance *tci );
-static gint sxsld_create_to_create_txns(sxSinceLastData *sxsld,
-                                        toCreateInstance *tci,
-                                        GList **creation_errors);
-static gint sxsld_get_future_created_txn_count( sxSinceLastData *sxsld );
-static void creation_errors_dialog(GList *creation_errors);
-static void creation_errors_free(GList *creation_errors);
-
-static GtkActionEntry gnc_sxsld_menu_entries [] =
-{
-	/* Toplevel */
-	{ "EditAction", NULL, N_("_Edit"), NULL, NULL, NULL },
-	{ "TransactionAction", NULL, N_("_Transaction"), NULL, NULL, NULL },
-	{ "ViewAction", NULL, N_("_View"), NULL, NULL, NULL },
-	{ "ActionsAction", NULL, N_("_Actions"), NULL, NULL, NULL },
-};
-static guint gnc_sxsld_menu_n_entries = G_N_ELEMENTS (gnc_sxsld_menu_entries);
-
-/**
- * Used to wrap for the book-open hook, where the book filename is given.
- **/
-void
-gnc_sx_sxsincelast_book_opened (void)
-{
-  gint ret;
-
-  if (!gnc_gconf_get_bool(GCONF_SECTION, "show_at_file_open", NULL))
-    return;
-
-  ret = gnc_ui_sxsincelast_dialog_create();
-  if ( ret < 0 ) {
-    gnc_info_dialog
-      (NULL,
-       ngettext 
-       ("There are no Scheduled Transactions to be entered at this time. "
-        "(%d transaction automatically created)",
-        "There are no Scheduled Transactions to be entered at this time. "
-        "(%d transactions automatically created)",
-        -(ret)),
-       -(ret));
-  }
-}
-
-
-static gboolean
-show_handler (const char *class, gint component_id,
-              gpointer user_data, gpointer iter_data)
-{
-        GtkWidget *window = user_data;
-
-        if (!window)
-                return(FALSE);
-        gtk_window_present (GTK_WINDOW(window));
-        return(TRUE);
-}
-
-/**
- * @return The magnitude of the return value is the number of auto-created,
- * no-notification scheduled transactions created.  This value is positive if
- * there are additionally other SXes which need user interaction and the
- * Druid has been displayed, or negative if there are not, and no Druid
- * window was realized.  In the case where there the dialog has been
- * displayed but no auto-create-no-notify transactions have been created,
- * INT_MAX [limits.h] is returned.  0 is treated as negative, with no
- * transactions created and no dialog displayed.  The caller can use this
- * value as appropriate to inform the user.
- *
- * [e.g., for book-open-hook: do nothing; for menu-selection: display an info
- *  dialog stating there's nothing to do.]
- **/
-gint
-gnc_ui_sxsincelast_dialog_create()
-{
-        int autoCreateCount;
-        sxSinceLastData        *sxsld;
-
-        if (gnc_forall_gui_components (DIALOG_SXSINCELAST_CM_CLASS,
-                                       show_handler, NULL))
-                return 0;
-
-
-        sxsld = g_new0( sxSinceLastData, 1 );
-
-        sxsld->toCreateList = sxsld->reminderList = sxsld->toRemoveList = NULL;
-        sxsld->sxInitStates = g_hash_table_new( g_direct_hash, g_direct_equal );
-
-        autoCreateCount = sxsincelast_populate( sxsld );
-        if ( autoCreateCount <= 0 ) {
-                g_free( sxsld );
-                return autoCreateCount;
-        }
-
-        sxsld->gxml = gnc_glade_xml_new( SX_GLADE_FILE,
-                                         DIALOG_SXSINCELAST_GLADE_NAME );
-        sxsld->sincelast_window =
-                glade_xml_get_widget( sxsld->gxml,
-                                      DIALOG_SXSINCELAST_GLADE_NAME );
-        sxsld->sincelast_druid =
-                GNOME_DRUID( glade_xml_get_widget( sxsld->gxml,
-                                                   SXSLD_DRUID_GLADE_NAME ) );
-        sxsincelast_init( sxsld );
-        return autoCreateCount;
-}
-
-static void 
-clist_set_all_cols_autoresize( GtkCList *cl, guint n_cols )
-{
-        guint col;
-        for( col = 0; col< n_cols; col++ ) {
-                gtk_clist_set_column_auto_resize (cl, col, TRUE);
-        }
-        return;
-}
-
-typedef struct {
-        char *name;
-        char *signal;
-        void (*handlerFn)();
-} widgetSignalHandlerTuple;
-
-typedef struct {
-        char     *pageName;
-        void     (*prepareHandlerFn)();
-        gboolean (*backHandlerFn)();
-        gboolean (*nextHandlerFn)();
-        void     (*finishHandlerFn)();
-        gboolean (*cancelHandlerFn)();
-} druidSignalHandlerTuple;
-   
-static void
-dialog_widgets_attach_handlers(GladeXML *dialog_xml, 
-                               widgetSignalHandlerTuple *handler_info, 
-                               sxSinceLastData *sxsld)
-{
-        int i;
-        GtkWidget *w;
-
-        for (i = 0; handler_info[i].name != NULL; i++)
-        {
-                w = glade_xml_get_widget(dialog_xml, handler_info[i].name);
-                g_signal_connect( G_OBJECT(w), handler_info[i].signal, 
-				  G_CALLBACK(handler_info[i].handlerFn),
-				  sxsld);
-        }
-}
-
-static void
-druid_pages_attach_handlers( GladeXML *dialog_xml,
-                             druidSignalHandlerTuple *handler_info,
-                             sxSinceLastData *sxsld )
-{
-        int i;
-        GtkWidget *w;
-
-        for(i = 0; handler_info[i].pageName != NULL; i++)
-        {
-                w = glade_xml_get_widget(dialog_xml, handler_info[i].pageName);
-                if ( handler_info[i].prepareHandlerFn ) {
-                        g_signal_connect( G_OBJECT(w), "prepare",
-					  G_CALLBACK(handler_info[i].
-						     prepareHandlerFn),
-					  sxsld);
-                }
-                if ( handler_info[i].backHandlerFn ) {
-                        g_signal_connect( G_OBJECT(w), "back",
-					  G_CALLBACK(handler_info[i].
-						     backHandlerFn),
-					  sxsld);
-                }
-                if ( handler_info[i].nextHandlerFn ) {
-                        g_signal_connect( G_OBJECT(w), "next",
-					  G_CALLBACK(handler_info[i].
-						     nextHandlerFn),
-					  sxsld);
-                }
-                if ( handler_info[i].finishHandlerFn ) {
-                        g_signal_connect( G_OBJECT(w), "finish",
-					  G_CALLBACK(handler_info[i].
-						     finishHandlerFn),
-					  sxsld);
-                }
-                if ( handler_info[i].cancelHandlerFn ) {
-                        g_signal_connect( G_OBJECT(w), "cancel",
-					  G_CALLBACK(handler_info[i].
-						     cancelHandlerFn),
-					  sxsld);
-                }
-        }
-}
-
-static void
-sxsincelast_druid_cancelled( GnomeDruid *druid, gpointer ud )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        gtk_widget_hide( sxsld->sincelast_window );
-        sxsincelast_close_handler( sxsld );
-}
-
-/**
- * Using the specified direction, gets the next appropriate page.  Returns
- * NULL if there is no approrpiate page to go to.
- **/
-static
-GnomeDruidPage*
-gnc_sxsld_get_appropriate_page( sxSinceLastData *sxsld,
-                                GnomeDruidPage *from,
-                                Direction dir )
-{
-        static struct {
-                gchar *pageName;
-                gboolean (*pageAppropriate)( sxSinceLastData *sxsld );
-        } pages[] = {
-                { WHAT_TO_DO_PG,         gnc_sxsld_wtd_appr },
-                { REMINDERS_PG,          gnc_sxsld_remind_appr },
-                { AUTO_CREATE_NOTIFY_PG, gnc_sxsld_autocreate_appr },
-                { TO_CREATE_PG,          gnc_sxsld_tocreate_appr },
-                { CREATED_PG,            gnc_sxsld_created_appr },
-                { OBSOLETE_PG,           gnc_sxsld_obsolete_appr },
-                { COMMIT_PG,             gnc_sxsld_commit_appr },
-                { NULL,                  NULL }
-        };
-        int modifier;
-        int cur;
-        GtkWidget *pg;
-
-        pg = NULL;
-        /* get the current page index via lame linear search. */
-        for ( cur = 0; pages[cur].pageName != NULL; cur++ ) {
-                pg = glade_xml_get_widget( sxsld->gxml, pages[cur].pageName );
-                if ( GTK_WIDGET(from) == pg ) {
-                        break;
-                }
-        }
-        g_assert( pages[cur].pageName != NULL );
-
-        modifier = ( dir == FORWARD ? 1 : -1 );
-        /* Find the approrpriate "next" page; start trying the first possible
-         * "next" page. */
-        cur += modifier;
-        while ( cur >= 0
-                && pages[cur].pageName != NULL
-                && !(*pages[cur].pageAppropriate)( sxsld ) ) {
-                cur += modifier;
-        }
-
-        if ( cur < 0
-             || pages[cur].pageName == NULL ) {
-                return NULL;
-        }
-        return GNOME_DRUID_PAGE( glade_xml_get_widget( sxsld->gxml,
-                                                       pages[cur].pageName ) );
-}
-
-static
-gboolean
-gnc_sxsld_wtd_appr( sxSinceLastData *sxsld )
-{
-        /* It's never appropriate to return here. */
-        return FALSE;
-}
-
-static
-gboolean
-gnc_sxsld_remind_appr( sxSinceLastData *sxsld )
-{
-        return (g_list_length( sxsld->reminderList ) != 0);
-}
-
-static
-gboolean
-gnc_sxsld_tocreate_appr( sxSinceLastData *sxsld )
-{
-        return (g_list_length( sxsld->toCreateList ) != 0);
-}
-
-static
-gboolean
-gnc_sxsld_autocreate_appr( sxSinceLastData *sxsld )
-{
-        return (sxsld->autoCreatedCount > 0);
-}
-
-static
-gboolean
-gnc_sxsld_created_appr( sxSinceLastData *sxsld )
-{
-        return ((g_list_length(sxsld->createdTxnGUIDList)
-                 - sxsld->autoCreatedCount) > 0);
-}
-
-static
-gboolean
-gnc_sxsld_obsolete_appr( sxSinceLastData *sxsld )
-{
-        return (g_list_length( sxsld->toRemoveList ) != 0);
-}
-
-static
-gboolean
-gnc_sxsld_commit_appr( sxSinceLastData *sxsld )
-{
-	/* Always show this page */
-        return TRUE;
-}
-
-static
-gboolean
-gen_back( GnomeDruidPage *druid_page,
-          gpointer arg1, gpointer ud )
-{
-        GnomeDruidPage *gdp;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        if ( !(gdp = gnc_sxsld_get_appropriate_page( sxsld, druid_page, BACK )) ) {
-                DEBUG( "No appropriate page to go to." );
-                return TRUE;
-        }
-        gnome_druid_set_page( sxsld->sincelast_druid, gdp );
-        return TRUE;
-}
-
-static
-gboolean
-gen_next( GnomeDruidPage *druid_page,
-          gpointer arg1, gpointer ud )
-{
-        GnomeDruidPage *gdp;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        if ( !(gdp = gnc_sxsld_get_appropriate_page( sxsld, druid_page, FORWARD )) ) {
-                DEBUG( "No appropriate page to go to." );
-                return TRUE;
-        }
-        gnome_druid_set_page( sxsld->sincelast_druid, gdp );
-        return TRUE;
-}
-
-static void
-whattodo_prep( GnomeDruidPage *druid_page,
-               gpointer arg1, gpointer ud )
-{
-}
-
-static
-void 
-reminders_prep( GnomeDruidPage *druid_page,
-                gpointer arg1, gpointer ud )
-{
-        GtkWidget *w;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        w = glade_xml_get_widget( sxsld->gxml, REMINDER_LIST );
-        gtk_clist_freeze( GTK_CLIST(w) );
-        gtk_clist_clear( GTK_CLIST(w) );
-        add_reminders_to_gui( sxsld->reminderList, sxsld );
-        gtk_clist_thaw( GTK_CLIST(w) );
-        gnome_druid_set_buttons_sensitive(
-                sxsld->sincelast_druid,
-                ( gnc_sxsld_get_appropriate_page( sxsld,
-                                                  druid_page,
-                                                  BACK )
-                  != NULL ),
-                TRUE, TRUE, TRUE );
-        /* FIXME: this isn't quite right; see the comment in
-         * sxsld_remind_row_toggle */
-        gnome_druid_set_show_finish( sxsld->sincelast_druid,
-                                     !gnc_sxsld_get_appropriate_page( sxsld,
-                                                                      druid_page,
-                                                                      FORWARD ) );
-}
-
-static
-gboolean 
-reminders_next( GnomeDruidPage *druid_page,
-                gpointer arg1, gpointer ud )
-{
-        GnomeDruidPage *gdp;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        if ( !processed_valid_reminders_listP( sxsld ) ) {
-                return TRUE;
-        }
-        if ( !(gdp = gnc_sxsld_get_appropriate_page( sxsld,
-                                                     druid_page,
-                                                     FORWARD )) ) {
-                DEBUG( "no valid page to switch to" );
-                return TRUE;
-        }
-        gnome_druid_set_page( sxsld->sincelast_druid, gdp );
-        return TRUE;
-}
-
-static
-gboolean 
-reminders_back( GnomeDruidPage *druid_page,
-                gpointer arg1, gpointer ud )
-{
-        GnomeDruidPage *gdp;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        if ( !processed_valid_reminders_listP( sxsld ) ) {
-                return TRUE;
-        }
-        if ( !(gdp = gnc_sxsld_get_appropriate_page( sxsld, 
-                                                     druid_page,
-                                                     BACK )) ) {
-                DEBUG( "no valid page to switch to" );
-                return TRUE;
-        }
-        gnome_druid_set_page( sxsld->sincelast_druid, gdp );
-        return TRUE;
-}
-
-static
-gboolean
-created_back( GnomeDruidPage *druid_page,
-              gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld;
-
-        sxsld = (sxSinceLastData*)ud;
-        gnc_split_register_save(
-                gnc_ledger_display_get_split_register(sxsld->created_ledger),
-                TRUE );
-        return gen_back( druid_page, arg1, ud );
-}
-
-static
-gboolean
-created_next( GnomeDruidPage *druid_page,
-              gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld;
-
-        sxsld = (sxSinceLastData*)ud;
-        gnc_split_register_save(
-                gnc_ledger_display_get_split_register(sxsld->created_ledger),
-                TRUE );
-        return gen_next( druid_page, arg1, ud );
-}
-
-static
-void
-created_prep( GnomeDruidPage *druid_page,
-               gpointer arg1, gpointer ud )
-{
-        GList *tctList, *tciList, *guidList;
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-        Query *bookQuery, *guidQuery, *q;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        bookQuery = xaccMallocQuery();
-        guidQuery = xaccMallocQuery();
-        xaccQuerySetBook( bookQuery, gnc_get_current_book() );
-        /* Create the appropriate query for the Created ledger; go through
-         * the to-create list's instances and add all the created Txn
-         * GUIDs. */
-        for ( tctList = sxsld->toCreateList;
-              tctList;
-              tctList = tctList->next ) {
-                tct = (toCreateTuple*)tctList->data;
-                for ( tciList = tct->instanceList;
-                      tciList;
-                      tciList = tciList->next ) {
-                        tci = (toCreateInstance*)tciList->data;
-                        for ( guidList = tci->createdTxnGUIDs;
-                              guidList;
-                              guidList = guidList->next ) {
-                                xaccQueryAddGUIDMatch( guidQuery,
-                                                       (GUID*)guidList->data,
-                                                       GNC_ID_TRANS,
-                                                       QUERY_OR );
-                        }
-                }
-        }
-        q = xaccQueryMerge( bookQuery, guidQuery, QUERY_AND );
-        gnc_suspend_gui_refresh();
-        gnc_ledger_display_set_query( sxsld->created_ledger, q );
-        gnc_ledger_display_refresh( sxsld->created_ledger );
-        gnc_resume_gui_refresh();
-        xaccFreeQuery( q );
-        xaccFreeQuery( bookQuery );
-        xaccFreeQuery( guidQuery );
-
-        gnome_druid_set_buttons_sensitive(
-                sxsld->sincelast_druid,
-                ( gnc_sxsld_get_appropriate_page( sxsld,
-                                                  druid_page,
-                                                  BACK )
-                  != NULL ),
-                TRUE, TRUE, TRUE );
-
-        if ( !gnc_sxsld_get_appropriate_page( sxsld,
-                                              druid_page,
-                                              FORWARD ) ) {
-                gnome_druid_set_show_finish( sxsld->sincelast_druid, TRUE );
-        }
-}
-
-static void
-obsolete_prep( GnomeDruidPage *druid_page,
-               gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-        add_dead_list_to_gui( sxsld->toRemoveList, sxsld );
-
-        gnome_druid_set_buttons_sensitive(
-                sxsld->sincelast_druid,
-                ( gnc_sxsld_get_appropriate_page( sxsld,
-                                                  druid_page,
-                                                  BACK )
-                  != NULL ),
-                TRUE, TRUE, TRUE );
-}
-
-static void
-commit_prep( GnomeDruidPage *druid_page,
-	     gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        gnome_druid_set_buttons_sensitive(
-                sxsld->sincelast_druid,
-                ( gnc_sxsld_get_appropriate_page( sxsld,
-                                                  druid_page,
-                                                  BACK )
-                  != NULL ),
-                TRUE, TRUE, TRUE );
-}
-
-static
-gboolean
-auto_create_back( GnomeDruidPage *druid_page,
-                  gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld;
-
-        sxsld = (sxSinceLastData*)ud;
-        gnc_split_register_save(
-                gnc_ledger_display_get_split_register(sxsld->ac_ledger),
-                TRUE );
-        return gen_back( druid_page, arg1, ud );
-}
-
-static
-gboolean
-auto_create_next( GnomeDruidPage *druid_page,
-                  gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld;
-
-        sxsld = (sxSinceLastData*)ud;
-        gnc_split_register_save(
-                gnc_ledger_display_get_split_register(sxsld->ac_ledger),
-                TRUE );
-        return gen_next( druid_page, arg1, ud );
-}
-
-static
-void
-auto_create_prep( GnomeDruidPage *druid_page,
-                  gpointer arg1, gpointer ud )
-{
-        GList *tctList, *tciList, *guidList;
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-        Query *bookQuery, *guidQuery, *q;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        bookQuery = xaccMallocQuery();
-        guidQuery = xaccMallocQuery();
-        xaccQuerySetBook( bookQuery, gnc_get_current_book() );
-        /* Create the appropriate query for the auto-create-notify ledger; go
-         * through the auto-create list's instances and add all the created
-         * Txn GUIDs. */
-        for ( tctList = sxsld->autoCreateList;
-              tctList;
-              tctList = tctList->next ) {
-                gboolean unused, notifyState;
-
-                tct = (toCreateTuple*)tctList->data;
-                xaccSchedXactionGetAutoCreate( tct->sx, &unused, &notifyState );
-                if ( !notifyState ) {
-                        continue;
-                }
-
-                for ( tciList = tct->instanceList;
-                      tciList;
-                      tciList = tciList->next ) {
-                        tci = (toCreateInstance*)tciList->data;
-                        for ( guidList = tci->createdTxnGUIDs;
-                              guidList;
-                              guidList = guidList->next ) {
-                                xaccQueryAddGUIDMatch( guidQuery,
-                                                       (GUID*)guidList->data,
-                                                       GNC_ID_TRANS,
-                                                       QUERY_OR );
-                        }
-                }
-        }
-        q = xaccQueryMerge( bookQuery, guidQuery, QUERY_AND );
-        gnc_suspend_gui_refresh();
-        gnc_ledger_display_set_query( sxsld->ac_ledger, q );
-        gnc_ledger_display_refresh( sxsld->ac_ledger );
-        gnc_resume_gui_refresh();
-        xaccFreeQuery( q );
-        xaccFreeQuery( bookQuery );
-        xaccFreeQuery( guidQuery );
-
-        gnome_druid_set_buttons_sensitive(
-                sxsld->sincelast_druid,
-                ( gnc_sxsld_get_appropriate_page( sxsld,
-                                                  druid_page,
-                                                  BACK )
-                  != NULL ),
-                TRUE, TRUE, TRUE );
-
-        if ( !gnc_sxsld_get_appropriate_page( sxsld,
-                                              druid_page,
-                                              FORWARD ) ) {
-                gnome_druid_set_show_finish( sxsld->sincelast_druid, TRUE );
-        }
-}
-
-static
-void
-to_create_prep( GnomeDruidPage *druid_page,
-                gpointer arg1, gpointer ud )
-{
-        GtkWidget *w;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        w = glade_xml_get_widget( sxsld->gxml, TO_CREATE_LIST );
-        gtk_clist_freeze( GTK_CLIST(w) );
-        gtk_clist_clear( GTK_CLIST(w) );
-        clean_variable_table( sxsld );
-        add_to_create_list_to_gui( sxsld->toCreateList, sxsld );
-        gtk_clist_thaw( GTK_CLIST(w) );
-        
-        gnome_druid_set_buttons_sensitive(
-                sxsld->sincelast_druid,
-                ( gnc_sxsld_get_appropriate_page( sxsld,
-                                                  druid_page,
-                                                  BACK )
-                  != NULL ),
-                TRUE, TRUE, TRUE );
-        /* Setup next/finish button based on the number of ready-to-go
-         * to-create transactions */
-        gnome_druid_set_show_finish(
-                sxsld->sincelast_druid,
-                ( (sxsld_get_future_created_txn_count(sxsld)
-                   - sxsld->autoCreatedCount) == 0 ) );
-}
-
-static
-void
-sxsld_revert_to_create_txns( sxSinceLastData *sxsld,
-                             toCreateInstance *tci )
-{
-        GList *l = NULL;
-        
-        gnc_suspend_gui_refresh();
-        for ( l = tci->createdTxnGUIDs;
-              l; l = l->next ) {
-                Transaction *t;
-                t = xaccTransLookup( (GUID*)l->data,
-                                     gnc_get_current_book() );
-                g_assert( t );
-                xaccTransBeginEdit( t );
-                xaccTransDestroy( t );
-                xaccTransCommitEdit( t );
-
-                /* Remove from master list, too. */
-                sxsld->createdTxnGUIDList =
-                        g_list_remove(
-                                sxsld->createdTxnGUIDList,
-                                l->data );
-        }
-        g_list_free( tci->createdTxnGUIDs );
-        tci->createdTxnGUIDs = NULL;
-        gnc_resume_gui_refresh();
-}
-
-/**
- * @return The count of created transactions.
- **/
-static
-gint
-sxsld_create_to_create_txns(sxSinceLastData *sxsld,
-                            toCreateInstance *tci,
-                            GList **creation_errors)
-{
-        gint toRet = 0;
-        GList *l = NULL;
-        GList *created = NULL;
-
-        /* Don't process instances we've already created transactions for
-         * [list_length > 0], which haven't otherwise changed [!dirty]. */
-        if ( g_list_length( tci->createdTxnGUIDs ) != 0 ) {
-                /* If we've created it and the variables
-                 * haven't changed, skip it. */
-                if ( ! tci->dirty ) {
-                        return toRet;
-                }
-                /* Otherwise, destroy the transactions and
-                 * re-create them below. */
-
-                /* FIXME: this would be better if we could
-                 * re-used the existing txns we've already
-                 * gone through the pain of creating. */
-                sxsld_revert_to_create_txns( sxsld, tci );
-        }
-
-        create_transactions_on(tci->parentTCT->sx,
-                               tci->date,
-                               tci,
-                               &created,
-                               creation_errors);
-        tci->dirty = FALSE;
-
-        /* Add to the Query for that register. */
-        for ( l = created; l; l = l->next ) {
-                tci->createdTxnGUIDs =
-                        g_list_append( tci->createdTxnGUIDs,
-                                       (GUID*)l->data );
-                toRet++;
-        }
-        sxsld->createdTxnGUIDList =
-                g_list_concat( sxsld->createdTxnGUIDList, created );
-        return toRet;
-}
-
-/**
- * Do the correct thing for the given toCreateInstance, taking into account
- * what we've done to it before [tci->prevState].  That is: if we previously
- * processed the instance as to-create/as-scheduled, and now we're postponing
- * it, we should remove the previously-created transactions and now add the
- * instance to the postponed list.  See the code for full details on the
- * policy here.
- *
- * @return The count of created transactions.
- **/
-static
-gint
-sxsld_process_to_create_instance(sxSinceLastData *sxsld,
-                                 toCreateInstance *tci,
-                                 GList **creation_errors)
-{
-        gint toRet = 0;
-
-        /* Undo the previous work. */
-        switch ( tci->prevState ) {
-        case IGNORE:
-                switch ( tci->state ) {
-                case IGNORE:
-                        /* Keep ignoring. */
-                        break;
-                case POSTPONE:
-                        /* remove from postponed list. */
-                        gnc_sx_remove_defer_instance( tci->parentTCT->sx,
-                                                      tci->sxStateData );
-                        break;
-                case TO_CREATE:
-                        /* del prev txns. */
-                        sxsld_revert_to_create_txns( sxsld, tci );
-                        break;
-                default:
-                        g_assert( FALSE );
-                }
-                break;
-        case POSTPONE:
-                if ( tci->state != POSTPONE ) {
-                        /* remove from postponed list. */
-                        gnc_sx_remove_defer_instance( tci->parentTCT->sx,
-                                                      tci->sxStateData );
-                }
-                break;
-        case TO_CREATE:
-                if ( tci->state != TO_CREATE ) {
-                        /* del prev txns. */
-                        sxsld_revert_to_create_txns( sxsld, tci );
-                }
-                break;
-        case UNDEF:
-                /* Fine; do nothing. */
-                break;
-        default:
-                g_assert( FALSE );
-                break;
-        }
-
-        /* Now, process the currently-requested state. */
-        switch ( tci->state ) {
-        case IGNORE:
-                /* Fine ... just ignore it. */
-                break;
-        case POSTPONE:
-                if ( tci->prevState == POSTPONE ) {
-                        break;
-                }
-                /* add to the postponed list. */
-                { 
-                        char tmpBuf[ MAX_DATE_LENGTH+1 ];
-                        qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, tci->date );
-                        DEBUG( "Adding defer instance on %s for %s",
-                               tmpBuf,
-                               xaccSchedXactionGetName( tci->parentTCT->sx ) );
-                }
-                gnc_sx_add_defer_instance( tci->parentTCT->sx, tci->sxStateData );
-                break;
-        case TO_CREATE:
-                /* Go ahead and create... */
-                toRet = sxsld_create_to_create_txns(sxsld, tci, creation_errors);
-                break;
-        default:
-                g_assert( FALSE );
-                break;
-        }
-
-        tci->prevState = tci->state;
-
-        /* Increment the SX state regardless of what happens above.  The last
-         * generated SX instance is the new final state of the SX in all
-         * cases [ignored, postponed or created]. */
-        {
-                gint tmp;
-                GDate *last_occur;
-                SchedXaction *sx;
-
-                sx = tci->parentTCT->sx;
-
-                /* Only set the last-occur-date, instance count and remaining
-                 * occurances if this instance is later than presently-last
-                 * definition in the SX; no matter what happens in the SX
-                 * dialog, the last instance processed sets the last-occur
-                 * date [and other params] to its instance date [and other
-                 * params]. */
-                last_occur = xaccSchedXactionGetLastOccurDate( sx );
-                /* If we don't have anything to do, then just return. */
-                if ( g_date_valid( last_occur )
-                     && g_date_compare( last_occur, tci->date ) > 0 ) {
-                        return toRet;
-                }
-                xaccSchedXactionSetLastOccurDate( sx, tci->date );
-
-                /* Handle an interesting corner case of postponing or
-                 * ignoring the first instance. We only want to incrment the
-                 * counters for newly-discovered-as-to-be-created SXes.
-                 */
-                if ( tci->origState == UNDEF ) {
-                        tmp = gnc_sx_get_instance_count( sx, NULL );
-                        gnc_sx_set_instance_count( sx, tmp+1 );
-                        if ( xaccSchedXactionHasOccurDef( sx ) ) {
-                                tmp = xaccSchedXactionGetRemOccur(sx);
-                                xaccSchedXactionSetRemOccur( sx, tmp-1 );
-                        }
-                }
-        }
-
-        return toRet;
-}
-
-static
-gboolean
-sxsld_process_to_create_page( sxSinceLastData *sxsld )
-{
-        GtkCTree *ct;
-        GList *tcList, *tcInstList, *creation_errors;
-        gboolean allVarsBound;
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-
-        ct = GTK_CTREE( glade_xml_get_widget( sxsld->gxml, TO_CREATE_LIST ) );
-
-        /* First: check to make sure all TCTs are 'ready' [and return if not].
-         * Second: create the entries based on the variable bindings. */
-        tcList = sxsld->toCreateList;
-        if ( tcList == NULL ) {
-                DEBUG( "No transactions to create..." );
-                return FALSE;
-        }
-
-        for ( ; tcList ; tcList = tcList->next ) {
-                tct = (toCreateTuple*)tcList->data;
-                for ( tcInstList = tct->instanceList;
-                      tcInstList;
-                      tcInstList = tcInstList->next ) {
-                        tci = (toCreateInstance*)tcInstList->data;
-
-                        if ( tci->state == IGNORE
-                             || tci->state == POSTPONE ) {
-                                continue;
-                        }
-
-                        allVarsBound = TRUE;
-                        g_hash_table_foreach( tci->varBindings,
-                                              andequal_numerics_set,
-                                              &allVarsBound );
-                        if ( !allVarsBound ) {
-                                char tmpBuf[ MAX_DATE_LENGTH+1 ];
-                                qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, tci->date );
-                                /* FIXME: this should be better-presented to the user. */
-                                DEBUG( "SX %s on date %s still has unbound variables.",
-                                       xaccSchedXactionGetName(tci->parentTCT->sx), tmpBuf );
-                                gtk_ctree_select( ct, tci->node );
-                                return TRUE;
-                        }
-                }
-        }
-
-        /* At this point we can assume there are to-create transactions and
-         * either the instances are being postponed/ignored, or all variables
-         * are bound. */
-
-        tcList = sxsld->toCreateList;
-        g_assert( tcList != NULL );
-
-        creation_errors = NULL;
-        gnc_suspend_gui_refresh();
-        for ( ; tcList ; tcList = tcList->next ) {
-                tct = (toCreateTuple*)tcList->data;
-
-                for ( tcInstList = tct->instanceList;
-                      tcInstList;
-                      tcInstList = tcInstList->next ) {
-
-                        tci = (toCreateInstance*)tcInstList->data;
-                        sxsld_process_to_create_instance(sxsld, tci, &creation_errors);
-                }
-        }
-        gnc_resume_gui_refresh();
-        if (g_list_length(creation_errors) > 0)
-        {
-                creation_errors_dialog(creation_errors);
-                creation_errors_free(creation_errors);
-        }
-        return FALSE;
-}
-
-static
-gboolean
-to_create_next( GnomeDruidPage *druid_page,
-                gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld;
-        GnomeDruidPage *nextPg;
-
-        sxsld = (sxSinceLastData*)ud;
-
-        /* Do the actual work processing the page. */
-        if ( sxsld_process_to_create_page( sxsld ) ) {
-                return TRUE;
-        }
-
-        /* Figure out the next page, now, given the changes we've made above.
-         * This will get us a fix for Bug#95734. */
-        nextPg = gnc_sxsld_get_appropriate_page( sxsld,
-                                                 GNOME_DRUID_PAGE( druid_page ),
-                                                 FORWARD );
-        /* We've made the "adjust buttons on disposition-change" fix
-         * which will make this assertion true. */
-        g_assert( nextPg != NULL );
-        gnome_druid_set_page( sxsld->sincelast_druid, nextPg );
-
-        return TRUE;
-}
-
-static void
-gnc_sxsld_finish( GnomeDruidPage *druid_page,
-                  gpointer arg1, gpointer ud )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-        GList *sxList, *toDelPtr, *elt;
-        GtkCList *cl;
-        gint row;
-        toDeleteTuple *tdt;
-
-        gtk_widget_hide( sxsld->sincelast_window );
-
-        gnc_sxsld_commit_ledgers( sxsld );
-
-        /* If we're finishing from the to-create page, then process the page
-         * contents. */
-        if ( druid_page ==
-             GNOME_DRUID_PAGE( glade_xml_get_widget( sxsld->gxml,
-                                                     TO_CREATE_PG ) ) ) {
-                DEBUG( "Stopped on to-create-pg" );
-                sxsld_process_to_create_page( sxsld );
-        }
-
-        /* Deal with the selected obsolete list elts. */
-        cl = GTK_CLIST( glade_xml_get_widget( sxsld->gxml,
-                                              SX_OBSOLETE_CLIST ) );
-
-        if ( g_list_length( cl->selection ) > 0 ) {
-                SchedXactionDialog *sxd;
-                sxList = gnc_book_get_schedxactions( gnc_get_current_book() );
-
-                gnc_suspend_gui_refresh();
-                for ( toDelPtr = cl->selection;
-                      toDelPtr;
-                      toDelPtr = toDelPtr->next ) {
-
-                        row = GPOINTER_TO_INT(toDelPtr->data);
-                        tdt = (toDeleteTuple*)gtk_clist_get_row_data( cl, row );
-                        elt = g_list_find( sxList, tdt->sx );
-                        sxList = g_list_remove_link( sxList, elt );
-
-                        xaccSchedXactionFree( (SchedXaction*)elt->data );
-                }
-                gnc_resume_gui_refresh();
-
-                gnc_book_set_schedxactions( gnc_get_current_book(), sxList );
-
-                sxd = (SchedXactionDialog*)
-                        gnc_find_first_gui_component(
-                                DIALOG_SCHEDXACTION_CM_CLASS, NULL, NULL );
-                if ( sxd ) {
-                        gnc_sxd_list_refresh( sxd );
-                }
-        }
-
-        sxsincelast_close_handler( sxsld );
-}
-
-static void
-restore_sx_temporal_state( gpointer key,
-                           gpointer value,
-                           gpointer user_data )
-{
-        SchedXaction *sx;
-        sxSinceLastData *sxsld;
-
-        sxsld = (sxSinceLastData*)user_data;
-
-        sx = (SchedXaction*)key;
-        gnc_sx_revert_to_temporal_state( sx, (void*)value );
-}
-
-static gboolean 
-cancel_check( GnomeDruidPage *druid_page,
-              gpointer arg1, gpointer ud )
-{
-        GList *l;
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-        char *lastrun_cancel_check_msg =
-          _( "Canceling the Since-Last-Run dialog "
-             "will revert all changes. "
-             "Are you sure you want to lose all "
-             "Scheduled Transaction changes?" );
-
-        /* FIXME: This may now be a bug, as we might have changed the SX
-         * states. */
-        if ( g_list_length( sxsld->createdTxnGUIDList ) == 0 ) {
-                /* There's nothing to cancel, so just do so... */
-                return FALSE;
-        }
-
-        if ( !gnc_verify_dialog( sxsld->sincelast_window, TRUE,
-                                 lastrun_cancel_check_msg ) ) {
-                return TRUE;
-        }
-
-        /* Cancel policy:
-         * . deleted SXes
-         *   . reborn
-         * . created transactions
-         *   . deleted
-         *   . SXes reset
-         * . auto-created transactions
-         *   . deleted
-         *   . SXes reset
-         * . reminders -> created
-         *   . Trans deleted
-         *   . SXes reset
-         * SXes reset [we use the temporal-state-data to take care of this]
-         *   . end_date || num_remain_instances
-         *   . last_occur_date
-         */
-
-        gnc_suspend_gui_refresh();
-
-        /* destroy created transactions */
-        if ( g_list_length( sxsld->createdTxnGUIDList ) > 0 ) {
-                Transaction *t = NULL;
-                for ( l = sxsld->createdTxnGUIDList; l; l = l->next ) {
-                        t = xaccTransLookup( (GUID*)l->data,
-                                             gnc_get_current_book() );
-                        /* we used to assert, but since we allow the user a
-                         * register, they may have deleted 't' from their
-                         * view.  Thus, if we can't find it, don't die; fixes
-                         * Bug#103182. */
-                        if ( t != NULL )
-                        {
-                          xaccTransBeginEdit( t );
-                          xaccTransDestroy( t );
-                          xaccTransCommitEdit( t );
-                          t = NULL;
-                        }
-                }
-        }
-
-        /* Remove postponed SXes from their postponed lists, unless they were
-         * originally postponed. */
-        {
-                GList *tcList, *tciList;
-                toCreateTuple *tct;
-                toCreateInstance *tci;
-
-                for ( tcList = sxsld->toCreateList;
-                      tcList;
-                      tcList = tcList->next ) {
-                        tct = (toCreateTuple*)tcList->data;
-                        for ( tciList = tct->instanceList;
-                              tciList;
-                              tciList = tciList->next ) {
-                                tci = (toCreateInstance*)tciList->data;
-                                if ( tci->prevState == POSTPONE
-                                     && tci->origState    != POSTPONE ) {
-                                        /* Any valid [non-null] 'prevState !=
-                                         * POSTPONE' sx temporal state
-                                         * pointers will be destroyed at the
-                                         * destruction of the dialog [the
-                                         * non-cancel case], so if we need to
-                                         * deal with those here, we should do
-                                         * so.
-                                         */
-                                        gnc_sx_remove_defer_instance( tct->sx, tci->sxStateData );
-                                        gnc_sx_destroy_temporal_state( tci->sxStateData );
-                                        tci->sxStateData = NULL;
-                                }
-                        }
-                }
-        }
-
-        /* Restore the temporal state of all SXes. 
-         * This is in sxInitStates [a bunch of opaque void *'s ... which
-         * should be freed when we're done to prevent a memory leak.] */
-        g_hash_table_foreach( sxsld->sxInitStates,
-                              restore_sx_temporal_state,
-                              (gpointer)sxsld );
-        /* This will get destroyed when the dialog is, which will happen
-         * shortly after this return. */
-
-        gnc_resume_gui_refresh();
-        return FALSE;
-}
-
-
-static void
-sxsincelast_init( sxSinceLastData *sxsld )
-{
-        GtkWidget *w;
-        GObject *o;
-        GnomeDruidPage *nextPage;
-        GList *creation_errors;
-        int i;
-        static widgetSignalHandlerTuple widgets[] = {
-                { SINCELAST_DRUID, "cancel",  sxsincelast_druid_cancelled },
-
-                { REMINDER_LIST, "tree-select-row",   sxsld_remind_row_toggle },
-                { REMINDER_LIST, "tree-unselect-row", sxsld_remind_row_toggle },
-                
-                { TO_CREATE_LIST, "tree-select-row",   sxsincelast_tc_row_sel },
-                { TO_CREATE_LIST, "tree-unselect-row", sxsincelast_tc_row_unsel },
-
-                { SX_OBSOLETE_CLIST, "select-row",   sxsld_obsolete_row_toggle },
-                { SX_OBSOLETE_CLIST, "unselect-row", sxsld_obsolete_row_toggle },
-
-                { SELECT_ALL_BUTTON,   "clicked",
-                  sx_obsolete_select_all_clicked },
-                { UNSELECT_ALL_BUTTON, "clicked",
-                  sx_obsolete_unselect_all_clicked },
-
-                { NULL, NULL, NULL }
-        };
-
-        static druidSignalHandlerTuple pages[] = {
-                { WHAT_TO_DO_PG,
-                  whattodo_prep, NULL, NULL,
-                  NULL, cancel_check },
-
-                { REMINDERS_PG,
-                  reminders_prep, reminders_back, reminders_next,
-                  gnc_sxsld_finish, cancel_check },
-
-                { AUTO_CREATE_NOTIFY_PG,
-                  auto_create_prep, auto_create_back, auto_create_next,
-                  gnc_sxsld_finish, cancel_check },
-
-                { TO_CREATE_PG,
-                  to_create_prep, gen_back, to_create_next,
-                  gnc_sxsld_finish, cancel_check },
-
-                { CREATED_PG,
-                  created_prep, created_back, created_next,
-                  gnc_sxsld_finish, cancel_check },
-
-                { OBSOLETE_PG,
-                  obsolete_prep, gen_back, gen_next,
-                  gnc_sxsld_finish, cancel_check },
-
-                { COMMIT_PG,
-                  commit_prep, gen_back, gen_next,
-                  gnc_sxsld_finish, cancel_check },
-
-                { NULL, NULL, NULL, NULL, NULL, NULL }
-        };
-
-        static const struct optionMenuTuple {
-                char *name;
-                void (*fn)();
-        } optionMenus[] = {
-                { SX_DISPOSITION_OPT, sxsld_disposition_changed },
-                { NULL, NULL }
-        };
-
-
-        gnc_register_gui_component( DIALOG_SXSINCELAST_CM_CLASS,
-                                    NULL,
-                                    sxsincelast_close_handler,
-                                    sxsld->sincelast_window );
-
-        g_signal_connect( G_OBJECT(sxsld->sincelast_window), "destroy",
-			  G_CALLBACK( sxsincelast_destroy ), sxsld );
-
-        dialog_widgets_attach_handlers(sxsld->gxml, widgets, sxsld);
-        druid_pages_attach_handlers( sxsld->gxml, pages, sxsld );
-
-        /* gnc-init the option menu[s]. */
-        for ( i=0; optionMenus[i].name != NULL; i++ ) {
-                w = glade_xml_get_widget( sxsld->gxml, optionMenus[i].name );
-                gnc_option_menu_init( w );
-                o = G_OBJECT(gtk_option_menu_get_menu(GTK_OPTION_MENU(w)));
-                g_signal_connect( o, "selection-done",
-				  G_CALLBACK( optionMenus[i].fn ),
-				  sxsld );
-        }
-
-        /* set all to-create clist columns to auto-resize. */
-        w = glade_xml_get_widget( sxsld->gxml, TO_CREATE_LIST );
-        clist_set_all_cols_autoresize(GTK_CLIST(w), TO_CREATE_LIST_WIDTH);
-        w = glade_xml_get_widget( sxsld->gxml, REMINDER_LIST );
-        clist_set_all_cols_autoresize(GTK_CLIST(w), REMINDER_LIST_WIDTH);
-        w = glade_xml_get_widget( sxsld->gxml, SX_OBSOLETE_CLIST );
-        clist_set_all_cols_autoresize(GTK_CLIST(w), SX_OBSOLETE_CLIST_WIDTH);
-
-        sxsld->prog = GTK_PROGRESS_BAR(glade_xml_get_widget( sxsld->gxml,
-                                                             WHAT_TO_DO_PROGRESS ));
-
-        sxsld->toCreateStatus =
-                GTK_STATUSBAR(
-                        glade_xml_get_widget( sxsld->gxml, TO_CREATE_STATUS ) );
-        sxsld->statusCtxId =
-                gtk_statusbar_get_context_id( sxsld->toCreateStatus,
-                                              /* Sure, we're overusing this
-                                               * string, but I don't see why
-                                               * the Statusbar even
-                                               * cares... */
-                                              TO_CREATE_STATUS );
-
-	/* The last druid page is blank without this call. */
-        gtk_widget_show_all( sxsld->sincelast_window );
-
-        create_autoCreate_ledger( sxsld );
-        create_created_ledger( sxsld );
-        create_to_create_ledger( sxsld );
-
-	gnc_restore_window_size(GCONF_SECTION, GTK_WINDOW(sxsld->sincelast_window));
-
-	/* Do not call show_all here. Screws up the gtkuimanager code */
-        gtk_widget_show( sxsld->sincelast_window );
-
-        creation_errors = NULL;
-        process_auto_create_list(sxsld->autoCreateList, sxsld, &creation_errors);
-        if (g_list_length(creation_errors) > 0)
-        {
-                creation_errors_dialog(creation_errors);
-                creation_errors_free(creation_errors);
-        }
-
-        w = glade_xml_get_widget( sxsld->gxml, WHAT_TO_DO_PG );
-        nextPage = gnc_sxsld_get_appropriate_page( sxsld,
-                                                   GNOME_DRUID_PAGE(w),
-                                                   FORWARD );
-
-        /* If there's nowhere to go, then we shouldn't have been started at
-         * all [ie., ..._populate should have returned FALSE]. */
-        g_assert( nextPage );
-
-        gnome_druid_set_page( sxsld->sincelast_druid, nextPage );
-}
-
-static
-void
-sxsincelast_save_size( sxSinceLastData *sxsld )
-{
-  gnc_save_window_size( GCONF_SECTION, GTK_WINDOW(sxsld->sincelast_window) );
-}
-
-static void
-generate_instances(SchedXaction *sx,
-                   GDate *end,
-                   GDate *reminderEnd,
-                   GList **instanceList,
-                   GList **reminderList,
-                   GList **deadList)
-{
-        GDate gd;
-        toCreateInstance *tci;
-        reminderTuple *rt;
-        reminderInstanceTuple *rit;
-        void *seqStateData;
-
-        g_assert( g_date_valid(end) );
-        g_assert( g_date_valid(reminderEnd) );
-
-        g_date_clear(&gd, 1);
-
-        /* Process valid next instances. */
-        seqStateData = gnc_sx_create_temporal_state( sx );
-        //gd = xaccSchedXactionGetNextInstance( sx, seqStateData );
-        gd = xaccSchedXactionGetInstanceAfter( sx, &gd, seqStateData );
-        while ( g_date_valid(&gd)
-                && g_date_compare( &gd, end ) <= 0 ) {
-
-                tci = g_new0( toCreateInstance, 1 );
-
-                tci->dirty     = FALSE;
-                tci->date      = g_date_new();
-                *tci->date     = gd;
-                tci->origState = UNDEF;
-                tci->state     = TO_CREATE;
-                tci->prevState = UNDEF;
-                tci->sxStateData =
-                        gnc_sx_clone_temporal_state( seqStateData );
-                *instanceList  = g_list_append( *instanceList, tci );
-
-                gnc_sx_incr_temporal_state( sx, seqStateData );
-                gd = xaccSchedXactionGetInstanceAfter( sx, &gd, seqStateData );
-        }
-
-        /* Process reminder instances or add to dead list [if we have one] */
-        if ( g_date_valid( &gd ) ) {
-                rt = g_new0( reminderTuple, 1 );
-                rt->sx = sx;
-                rt->instanceList = NULL;
-                while ( g_date_valid(&gd)
-                        && g_date_compare( &gd, reminderEnd ) <= 0 ) {
-
-                        rit = g_new0( reminderInstanceTuple, 1 );
-                        rit->endDate     = g_date_new();
-                        *rit->endDate    = *end;
-                        rit->occurDate   = g_date_new();
-                        *rit->occurDate  = gd;
-                        rit->isSelected  = FALSE;
-                        rit->parentRT    = rt;
-                        rit->sxStateData =
-                                gnc_sx_clone_temporal_state( seqStateData );
-                        rt->instanceList = g_list_append( rt->instanceList, rit );
-
-                        gnc_sx_incr_temporal_state( sx, seqStateData );
-                        gd = xaccSchedXactionGetInstanceAfter( sx, &gd, seqStateData );
-                }
-                if ( rt->instanceList != NULL ) {
-                        *reminderList = g_list_append( *reminderList, rt );
-                } else {
-                        g_free( rt );
-                }
-                rt = NULL;
-        } else if ( deadList ) {
-                toDeleteTuple *tdt;
-
-                tdt = g_new0( toDeleteTuple, 1 );
-                tdt->sx = sx;
-                tdt->endDate = g_date_new();
-                *tdt->endDate = gd;
-                *deadList = g_list_append( *deadList, tdt );
-        } /* else { this else intentionally left blank: drop the SX on the
-           * floor at this point. } */
-
-        gnc_sx_destroy_temporal_state( seqStateData );
-        seqStateData = NULL;
-}
-
-static void
-_free_varBindings_hash_elts( gpointer key, gpointer value, gpointer data )
-{
-        g_assert( key );
-        g_free( key );
-        if ( value ) 
-                g_free( value );
-}
-
-static void
-process_auto_create_list(GList *autoCreateList, sxSinceLastData *sxsld, GList **creation_errors)
-{
-        GList *l;
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-        GList *instances;
-        int count, total;
-
-        count = 0;
-        total = 0;
-        /* get an accurate count of how many SX instances we're going to
-         * create. */
-        for ( l = autoCreateList; l; l = l->next ) {
-                total += g_list_length( ((toCreateTuple*)l->data)->instanceList );
-        }
-        gnc_suspend_gui_refresh();
-
-        for ( ; autoCreateList ; autoCreateList = autoCreateList->next ) {
-                tct = (toCreateTuple*)autoCreateList->data;
-                
-                for ( instances = tct->instanceList;
-                      instances;
-                      instances = instances->next ) {
-                        tci = (toCreateInstance*)instances->data;
-                        sxsld->autoCreatedCount +=
-                                sxsld_process_to_create_instance( sxsld, tci, creation_errors );
-                }
-        }
-        gnc_resume_gui_refresh();
-}
-
-static
-void
-add_to_create_list_to_gui( GList *toCreateList, sxSinceLastData *sxsld )
-{
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-        GtkCTree *ct;
-        GtkCTreeNode *sxNode;
-        GtkCTreeNode *firstToBeProcessedRow;
-        char *rowText[ TO_CREATE_LIST_WIDTH ];
-        GList *insts;
-
-        ct = GTK_CTREE( glade_xml_get_widget( sxsld->gxml, TO_CREATE_LIST ) );
-
-        firstToBeProcessedRow = NULL;
-        for ( ; toCreateList ; toCreateList = toCreateList->next ) {
-                tct = (toCreateTuple*)toCreateList->data;
-
-                rowText[0] = xaccSchedXactionGetName( tct->sx );
-                rowText[1] = "";
-
-                sxNode = gtk_ctree_insert_node( ct, NULL, NULL,
-                                                rowText,
-                                                0, NULL, NULL, NULL, NULL,
-                                                FALSE, TRUE );
-
-                for ( insts = tct->instanceList;
-                      insts;
-                      insts = insts->next ) {
-                        gboolean allVarsBound = FALSE;
-
-                        tci = (toCreateInstance*)insts->data;
-                
-                        /* tct->{sx,date} are already filled in. */
-                        if ( ! tci->varBindings ) {
-                                tci->varBindings = g_hash_table_new( g_str_hash,
-                                                                     g_str_equal );
-
-                                sxsl_get_sx_vars( tci->parentTCT->sx,
-                                                  tci->varBindings );
-                        }
-
-                        rowText[0] = g_new0( char, MAX_DATE_LENGTH+1 );
-                        qof_print_gdate( rowText[0], MAX_DATE_LENGTH, tci->date );
-                        
-
-                        switch ( tci->state ) {
-                        case TO_CREATE:
-                            allVarsBound = TRUE;
-                            g_hash_table_foreach( tci->varBindings,
-                                                  andequal_numerics_set,
-                                                  &allVarsBound );
-                            rowText[1] = ( allVarsBound
-                                           ? _( "Ready to create" ) /* READY_TEXT */ 
-                                           : _( "Needs values for variables" ) /* NEEDS_BINDINGS_TEXT */
-                                    );
-                            break;
-                        case IGNORE:
-                            rowText[1] = _( "Ignored" ) /* IGNORE_TEXT */ ;
-                            break;
-                        case POSTPONE:
-                            rowText[1] = _( "Postponed" ) /* POSTPONE_TEXT */ ;
-                            break;
-                        default:
-                            g_assert( FALSE );
-                        }
-                                
-                        tci->node = gtk_ctree_insert_node( ct, sxNode, NULL,
-                                                           rowText,
-                                                           0, NULL, NULL, NULL, NULL,
-                                                           TRUE, FALSE );
-                        if ( !allVarsBound && !firstToBeProcessedRow ) {
-                                firstToBeProcessedRow = tci->node;
-                        }
-                        gtk_ctree_node_set_row_data( ct, tci->node, tci );
-                        g_free( rowText[0] );
-                }
-        }
-
-        /* Setup the first thing to be processed, or disable controls. */
-        if ( firstToBeProcessedRow ) {
-                gtk_ctree_select( ct, firstToBeProcessedRow );
-                sxsld_set_sensitive_tci_controls( sxsld, TRUE );
-        } else {
-                sxsld_set_sensitive_tci_controls( sxsld, FALSE );
-        }
-}
-
-static
-void
-add_reminders_to_gui( GList *reminderList, sxSinceLastData *sxsld )
-{
-        GtkCTree *ctree;
-        GtkCTreeNode *sxNode, *instNode;
-        char *rowText[REMINDER_LIST_WIDTH];
-        reminderTuple *rt;
-        GList *instances;
-        reminderInstanceTuple *rit;
-        FreqSpec *fs;
-        GString *freqSpecStr;
-
-        ctree = GTK_CTREE( glade_xml_get_widget( sxsld->gxml,
-                                                 REMINDER_LIST ) );
-
-        for ( ; reminderList; reminderList = reminderList->next ) {
-                rt = (reminderTuple*)reminderList->data;
-
-                rowText[0] = xaccSchedXactionGetName( rt->sx );
-                fs = xaccSchedXactionGetFreqSpec( rt->sx );
-                freqSpecStr = g_string_sized_new( 16 );
-                xaccFreqSpecGetFreqStr( fs, freqSpecStr );
-                rowText[1] = freqSpecStr->str;
-                rowText[2] = ""; /* Days Away */
-                sxNode = gtk_ctree_insert_node( ctree, NULL, NULL, rowText,
-                                                0, /* spacing */
-                                                NULL, NULL, NULL, NULL, /* pixmaps */
-                                                FALSE, /* leafP */
-                                                TRUE ); /* expandedP */
-                g_string_free( freqSpecStr, TRUE );
-
-                /* The SX node itself isn't selectable; only the
-                 * instances. */
-                gtk_ctree_node_set_selectable( ctree, sxNode, FALSE );
-                for ( instances = rt->instanceList;
-                      instances;
-                      instances = instances->next ) {
-                        rit = (reminderInstanceTuple*)instances->data;
-
-                        rowText[0] = g_new0( gchar, MAX_DATE_LENGTH+1 );
-                        qof_print_gdate( rowText[0], MAX_DATE_LENGTH, rit->occurDate );
-                        rowText[1] = "";
-                        rowText[2] = g_new0( gchar, 5 ); /* FIXME: appropriate size? */
-                        sprintf( rowText[2], "%d",
-                                 (g_date_get_julian(rit->occurDate)
-                                  - g_date_get_julian(rit->endDate)) );
-
-                        instNode = gtk_ctree_insert_node( ctree, sxNode, NULL,
-                                                          rowText,
-                                                          0, NULL, NULL, NULL, NULL,
-                                                          TRUE, TRUE );
-                        gtk_ctree_node_set_row_data( ctree,
-                                                     instNode,
-                                                     (gpointer)rit );
-                        g_signal_handlers_block_by_func( G_OBJECT(ctree),
-                                                         sxsld_remind_row_toggle,
-                                                         sxsld ); 
-                        if ( rit->isSelected ) {
-                                gtk_ctree_select( ctree, instNode );
-                        }
-                        g_signal_handlers_unblock_by_func( G_OBJECT(ctree),
-                                                           sxsld_remind_row_toggle,
-                                                           sxsld );
-                        g_free( rowText[0] );
-                        g_free( rowText[2] );
-                }
-        }
-}
-
-static void
-add_dead_list_to_gui(GList *removeList, sxSinceLastData *sxsld)
-{
-        GtkCList *cl;
-        char *rowtext[3];
-        int row;
-        GString *tmp_str;
-        toDeleteTuple *tdt;
-        FreqSpec *fs;
-        cl = GTK_CLIST( glade_xml_get_widget( sxsld->gxml,
-                                              SX_OBSOLETE_CLIST ));
-
-        tmp_str = g_string_new(NULL);
-        rowtext[2] = g_strdup( _("Obsolete") );
-
-        gtk_clist_freeze( cl );
-        gtk_clist_clear( cl );
-        g_signal_handlers_block_by_func( G_OBJECT(cl),
-                                         sxsld_obsolete_row_toggle,
-                                         sxsld );
-
-        for ( row = 0; removeList;
-              row++, removeList = removeList->next ) {
-                tdt = (toDeleteTuple*)removeList->data;
-
-                rowtext[0] = xaccSchedXactionGetName( tdt->sx );
-
-                fs = xaccSchedXactionGetFreqSpec( tdt->sx );
-                xaccFreqSpecGetFreqStr( fs, tmp_str );
-                /* XXX are we leaking memory here, by not 
-                 * freeing previous rrowtext[1] ?? */
-                rowtext[1] = tmp_str->str;
-
-                gtk_clist_insert( cl, row, rowtext );
-                gtk_clist_set_row_data( cl, row, tdt );
-                if ( tdt->isSelected ) {
-                        gtk_clist_select_row( cl, row, 0 );
-                }
-        }
-        g_signal_handlers_unblock_by_func( G_OBJECT(cl),
-                                           sxsld_obsolete_row_toggle,
-                                           sxsld );
-        gtk_clist_thaw( cl );
-
-        g_string_free(tmp_str, TRUE);
-        g_free(rowtext[2]);
-}
-
-/**
- * Moves the selected reminders to the appropriate [auto-create or to-create]
- * sections of the since-last-run dialog.
- **/
-static void
-processSelectedReminderList( GList *goodList, sxSinceLastData *sxsld )
-{
-        GList *list = NULL;
-        GList **containingList;
-        reminderInstanceTuple *rit;
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-        gboolean autoCreateOpt, notifyOpt;
-
-        tct = NULL;
-        for ( ; goodList ; goodList = goodList->next ) {
-                rit = (reminderInstanceTuple*)goodList->data;
-
-                /* skip over reminders we've already created [in the
-                 * past]. */
-                if ( rit->resultantTCI )
-                        continue;
-
-                xaccSchedXactionGetAutoCreate( rit->parentRT->sx,
-                                               &autoCreateOpt, &notifyOpt );
-                containingList = ( autoCreateOpt
-                                   ? &sxsld->autoCreateList
-                                   : &sxsld->toCreateList );
-                for ( list = *containingList;
-                      list;
-                      list = list->next ) {
-                        tct = (toCreateTuple*)list->data;
-                        /* Find any already-existing toCreateTuples to add to...*/
-                        if ( tct->sx == rit->parentRT->sx ) {
-                                break;
-                        }
-                }
-                if ( !list ) {
-                        tct = g_new0( toCreateTuple, 1 );
-                        tct->sx = rit->parentRT->sx;
-                        *containingList =
-                                g_list_append( *containingList, tct );
-                }
-
-                tci = g_new0( toCreateInstance, 1 );
-                tci->dirty       = FALSE;
-                tci->parentTCT   = tct;
-                tci->date        = g_date_new();
-                *tci->date       = *rit->occurDate;
-                tci->state       = TO_CREATE;
-                tci->prevState   = UNDEF;
-                tci->origState   = UNDEF;
-                tci->varBindings = NULL;
-                tci->node        = NULL;
-                tci->sxStateData = rit->sxStateData;
-                
-                tct->instanceList =
-                        g_list_append( tct->instanceList, tci );
-                
-                /* special auto-create-opt processing; process it now. */
-                if ( autoCreateOpt ) {
-                        GList *creation_errors = NULL;
-                        list = NULL;
-                        list = g_list_append( list, tct );
-                        process_auto_create_list( list, sxsld, &creation_errors );
-                        list = NULL;
-                }
-
-                /* save the resultant just-created TCI in the RIT in case
-                 * things change later. */
-                rit->resultantTCI = tci;
-        }
-}
-
-/**
- * @see gnc_ui_sxsincelast_dialog_create for the return value definition.
- **/
-static
-gint
-sxsincelast_populate( sxSinceLastData *sxsld )
-{
-        int toRet = 0;
-        gboolean onlyNoNotify = TRUE;
-        GList *sxList, *instanceList, *l, **containingList;
-        SchedXaction *sx;
-        GDate end, endPlusReminders;
-        gint daysInAdvance;
-        gboolean autocreateState, notifyState;
-        toCreateTuple *tct;
-        toCreateInstance *tci;
-
-        instanceList = NULL;
-        sxList = gnc_book_get_schedxactions( gnc_get_current_book () );
-
-        if ( sxList == NULL ) {
-                DEBUG( "No scheduled transactions to populate." );
-                return toRet;
-        }
-
-        for ( ; sxList; sxList = sxList->next ) {
-                sx = (SchedXaction*)sxList->data;
-                
-                /* Store initial state of SX. */
-                if ( g_hash_table_lookup( sxsld->sxInitStates, sx )
-                     != NULL ) {
-                        PERR( "Why are we able to find a SX initial state "
-                              "hash entry for something we're seeing for "
-                              "the first time?" );
-                        return toRet;
-                }
-                {
-                        void *sx_state;
-                        sx_state = gnc_sx_create_temporal_state( sx );
-                        g_hash_table_insert( sxsld->sxInitStates,
-                                             sx, sx_state );
-                        sx_state = NULL;
-                }
-
-		g_date_set_time_t( &end, time(NULL) );
-                daysInAdvance = xaccSchedXactionGetAdvanceCreation( sx );
-                g_date_add_days( &end, daysInAdvance );
-                
-                endPlusReminders = end;
-                daysInAdvance = xaccSchedXactionGetAdvanceReminder(sx);
-                g_date_add_days(&endPlusReminders, daysInAdvance);
-
-                /* Handle postponed instances.
-                 *
-                 * Postponed instances, by definition, are always at the
-                 * front of the instance list.  As well, they're always valid
-                 * instances [not reminders]. */
-
-                /* FIXME: postponed instances _may_ create an obsolete
-                 * instance. */
-                {
-                        GList *postponed, *l;
-
-                        postponed = gnc_sx_get_defer_instances( sx );
-
-                        for ( l = postponed; l; l = l->next ) {
-                                onlyNoNotify = FALSE;
-
-                                tci = g_new0( toCreateInstance, 1 );
-                                tci->sxStateData = (void*)l->data;
-                                tci->date        = g_date_new();
-                                *tci->date       =
-                                        xaccSchedXactionGetNextInstance(
-                                                sx, tci->sxStateData );
-                                tci->dirty       = FALSE;
-                                tci->state       = POSTPONE;
-                                tci->prevState   = POSTPONE;
-                                tci->origState   = POSTPONE;
-
-                                instanceList = g_list_append( instanceList, tci );
-                                tci = NULL;
-                        }
-                        
-                }
-
-                generate_instances(sx,
-                                   &end,
-                                   &endPlusReminders,
-                                   &instanceList,
-                                   &sxsld->reminderList,
-                                   &sxsld->toRemoveList);
-
-                if (instanceList == NULL)
-                        continue;
-
-                xaccSchedXactionGetAutoCreate(sx, &autocreateState, &notifyState);
-                /* Figure out the appropriate list to place the new TCT on. */
-                containingList = ( autocreateState
-                                   ? &sxsld->autoCreateList
-                                   : &sxsld->toCreateList );
-
-                tct = g_new0( toCreateTuple, 1 );
-                tct->sx = sx;
-                for ( l = instanceList ; l; l = l->next ) {
-
-                        /* only count the no-notify txns for this. */
-                        if ( autocreateState && !notifyState ) {
-                                onlyNoNotify &= (!notifyState);
-                                toRet++;
-                        }
-
-                        tci = (toCreateInstance*)l->data;
-                        tci->parentTCT = tct;
-                        
-                        tct->instanceList =
-                                g_list_append( tct->instanceList, tci );
-                }
-
-                g_list_free( instanceList );
-                instanceList = NULL;
-
-                /* abstractly place the TCT onto the afore-determined list. */
-                *containingList = g_list_append( *containingList, tct );
-        }
-
-        /* Return appropriately. */
-        {
-                gboolean stuffToDo = 
-                        ( g_list_length( sxsld->toRemoveList )    > 0
-                          || g_list_length( sxsld->reminderList ) > 0
-                          || g_list_length( sxsld->toCreateList ) > 0 );
-                if ( onlyNoNotify && !stuffToDo ) {
-                        toRet = -(toRet);
-                }
-
-                if ( toRet == 0
-                     && ( stuffToDo
-                          || g_list_length( sxsld->autoCreateList ) > 0 ) ) {
-                        toRet = INT_MAX;
-                }
-        }
-
-        /* if we're about to return a negative value [indicating only
-         * auto-create no-notify txns], then actually create them. */
-        if ( toRet < 0 ) {
-                GList *creation_errors = NULL;
-                process_auto_create_list( sxsld->autoCreateList, sxsld, &creation_errors );
-                if (g_list_length(creation_errors) > 0)
-                {
-                        creation_errors_dialog(creation_errors);
-                        creation_errors_free(creation_errors);
-                }
-        }
-
-        return toRet;
-}
-
-static void
-sxsincelast_close_handler( gpointer ud )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-        
-        gtk_widget_hide( sxsld->sincelast_window );
-        sxsincelast_save_size( sxsld );
-        gtk_widget_destroy( sxsld->sincelast_window );
-        /* The data will be cleaned up in the destroy handler. */
-}
-
-static void
-andequal_numerics_set( gpointer key, gpointer value, gpointer data )
-{
-        gboolean *allVarsBound = data;
-        if ( strcmp( (gchar*)key, "i" ) == 0 ) {
-                return;
-        }
-        *allVarsBound &= (value != NULL);
-}
-
-static void
-sxsincelast_entry_changed( GtkEditable *e, gpointer ud )
-{
-        sxSinceLastData *sxsld;
-        gchar *varName;
-        toCreateInstance *tci;
-        gchar *entryText;
-        gnc_numeric *num, *ourNum;
-        GHashTable *dummyVarHash;
-        static const int MSG_BUF_LEN = 127;
-        char msgBuf[MSG_BUF_LEN+1];
-
-        sxsld = (sxSinceLastData*)ud;
-
-        tci = (toCreateInstance*)g_object_get_data( G_OBJECT(e), "tci" );
-        g_assert( tci == sxsld->curSelTCI );
-
-        varName = (gchar*)g_object_get_data( G_OBJECT(e), "varName" );
-        num = (gnc_numeric*)g_object_get_data( G_OBJECT(e), "numeric" );
-        entryText = gtk_editable_get_chars( e, 0, -1 );
-        dummyVarHash = g_hash_table_new( NULL, NULL );
-        /* FIXME?: Should be using xaccParseAmount instead of
-         * parser_parse_separate_vars? */
-        gtk_statusbar_pop( sxsld->toCreateStatus, sxsld->statusCtxId );
-
-        if ( !gnc_exp_parser_parse_separate_vars( entryText, num,
-                                                  NULL, dummyVarHash ) ) {
-                num = NULL;
-                if ( entryText != NULL
-                     && strlen(entryText) > 0 ) {
-                        snprintf( msgBuf, MSG_BUF_LEN,
-                                  "error parsing entry near \"%s\"", entryText );
-                        gtk_statusbar_push( sxsld->toCreateStatus,
-                                            sxsld->statusCtxId,
-                                            msgBuf );
-                }
-        } else if ( g_hash_table_size( dummyVarHash ) != 0 ) {
-                num = NULL;
-                snprintf( msgBuf, MSG_BUF_LEN,
-                          "No new variables allowed in "
-                          "expression \"%s\"", entryText );
-                gtk_statusbar_push( sxsld->toCreateStatus,
-                                    sxsld->statusCtxId,
-                                    msgBuf );
-        } else if ( gnc_numeric_check( *num ) != GNC_ERROR_OK ) {
-                snprintf( msgBuf, MSG_BUF_LEN,
-                          "Entry \"%s\" is not "
-                          "parseable", entryText );
-                gtk_statusbar_push( sxsld->toCreateStatus,
-                                    sxsld->statusCtxId,
-                                    msgBuf );
-                num = NULL;
-        } else {
-                snprintf( msgBuf, MSG_BUF_LEN,
-                          "%f", gnc_numeric_to_double( *num ) );
-                gtk_statusbar_push( sxsld->toCreateStatus,
-                                    sxsld->statusCtxId,
-                                    msgBuf );
-        }
-
-        g_hash_table_foreach( dummyVarHash,
-                              _free_varBindings_hash_elts,
-                              NULL );
-        g_hash_table_destroy( dummyVarHash );
-
-        {
-                gpointer maybeKey, maybeValue;
-                
-                ourNum = NULL;
-                if ( num ) {
-                        ourNum = g_new0( gnc_numeric, 1 );
-                        *ourNum = *num;
-                }
-                if ( g_hash_table_lookup_extended( tci->varBindings, varName,
-                                                   &maybeKey, &maybeValue ) ) {
-                        g_hash_table_remove( tci->varBindings, maybeKey );
-                        /* only if not null. */
-                        if ( maybeValue ) {
-                                g_free( maybeValue );
-                        }
-                }
-                g_hash_table_insert( tci->varBindings, varName, ourNum );
-                tci->dirty = TRUE;
-        }
-
-        
-        {
-                GtkCTree *ct;
-                gboolean allVarsBound = TRUE;
-
-                /* If there are no un-bound variables, then set the 'ready-to-go'
-                   flag to 'y'. */
-                g_hash_table_foreach( tci->varBindings,
-                                      andequal_numerics_set,
-                                      &allVarsBound );
-                ct = GTK_CTREE(glade_xml_get_widget( sxsld->gxml, TO_CREATE_LIST ));
-                gtk_ctree_node_set_text( ct, tci->node, 1,
-                                         ( allVarsBound
-                                           ? _( READY_TEXT )
-                                           : _( NEEDS_BINDINGS_TEXT ) ) );
-        }
-}
-
-static void
-sxsincelast_destroy( GtkObject *o, gpointer ud )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)ud;
-
-        /* appropriate place to destroy data structures */
-        clean_sincelast_data( sxsld );
-
-        gnc_embedded_window_close_page(sxsld->ac_window, sxsld->ac_register);
-        gtk_widget_destroy(GTK_WIDGET(sxsld->ac_window));
-        sxsld->ac_window = NULL;
-        sxsld->ac_register = NULL;
-        sxsld->ac_ledger = NULL;
-
-        gnc_embedded_window_close_page(sxsld->created_window,
-                                       sxsld->created_register);
-        gtk_widget_destroy(GTK_WIDGET(sxsld->created_window));
-        sxsld->created_window = NULL;
-        sxsld->created_register = NULL;
-        sxsld->created_ledger = NULL;
-
-        gnc_embedded_window_close_page(sxsld->to_create_window,
-                                       sxsld->to_create_register);
-        gtk_widget_destroy(GTK_WIDGET(sxsld->to_create_window));
-        sxsld->to_create_window = NULL;
-        sxsld->to_create_register = NULL;
-        sxsld->to_create_ledger = NULL;
-
-        gnc_unregister_gui_component_by_data( DIALOG_SXSINCELAST_CM_CLASS,
-                                              sxsld->sincelast_window );
-
-        g_free( sxsld );
-}
-
-/**
- * Used to copy the varBinding GHashTable.
- **/
-static
-void
-gnc_sxsl_copy_ea_hash( gpointer key,
-                       gpointer value,
-                       gpointer user_data )
-{
-        gchar *name = (gchar*)key;
-        gnc_numeric *val = (gnc_numeric*)value;
-        gnc_numeric *newVal;
-        GHashTable *table = (GHashTable*)user_data;
-
-        newVal = g_new0( gnc_numeric, 1 );
-        *newVal = gnc_numeric_error( -2 );
-        if ( val )
-                *newVal = *val;
-
-        g_assert( name );
-
-        g_hash_table_insert( table,
-                             (gpointer)g_strdup( name ),
-                             (gpointer)newVal );
-}
-
-static
-void
-gnc_sxsl_del_vars_table_ea( gpointer key,
-                            gpointer value,
-                            gpointer user_data )
-{
-        g_assert( key );
-        if ( key )
-                g_free( (gchar*)key );
-        if ( value )
-                g_free( (gnc_numeric*)value );
-}
-
-static gint
-create_each_transaction_helper( Transaction *t, void *d )
-{
-        Transaction *newT;
-        GList *sList;
-        GList *osList;
-        Split *split;
-        kvp_frame *split_kvpf;
-        kvp_value *kvp_val;
-        gboolean errFlag;
-        createData *createUD;
-        toCreateInstance *tci;
-        gnc_commodity *first_cmdty = NULL;
-        GHashTable *actualVars;
-        gnc_numeric *varIValue;
-
-        errFlag = FALSE;
-
-        /* FIXME: In general, this should [correctly] deal with errors such
-           as not finding the approrpiate Accounts and not being able to
-           parse the formula|credit/debit strings. */
-
-        /* FIXME: when we copy the trans_onto_trans, we don't want to copy
-           the Split's kvp_frames... */
-
-        createUD = (createData*)d;
-        tci = createUD->tci;
-
-        newT = xaccMallocTransaction(gnc_get_current_book ());
-        xaccTransBeginEdit( newT );
-        /* the action and description/memo are in the template */
-        gnc_copy_trans_onto_trans( t, newT, FALSE, FALSE );
-
-        xaccTransSetDate( newT,
-                          g_date_get_day( tci->date ),
-                          g_date_get_month( tci->date ),
-                          g_date_get_year( tci->date ) );
-
-        /* the accounts and amounts are in the kvp_frames of the splits. */
-        osList = xaccTransGetSplitList( t );
-        sList = xaccTransGetSplitList( newT );
-        if ( (osList == NULL) || (sList == NULL) ) {
-                PERR( "\tseen transaction w/o splits. :(" );
-                xaccTransDestroy( newT );
-                xaccTransCommitEdit( newT );
-                return 13;
-        }
-
-        /* Setup the predefined variables for credit/debit formula
-         * processing. */
-        actualVars = g_hash_table_new( g_str_hash, g_str_equal );
-        if ( tci->varBindings != NULL ) {
-                g_hash_table_foreach( tci->varBindings,
-                                      gnc_sxsl_copy_ea_hash, actualVars );
-        }
-        varIValue = g_new0( gnc_numeric, 1 );
-        *varIValue =
-                gnc_numeric_create(
-                        gnc_sx_get_instance_count( tci->parentTCT->sx,
-                                                   tci->sxStateData ),
-                        1 );
-        /* It's really important that we strdup "i" here, so we can
-         * generically cleanup with a simple 'foreach' that blindly frees the
-         * keys, below. */
-        g_hash_table_insert( actualVars, g_strdup("i"), varIValue );
-
-        for ( ; sList && osList; sList = sList->next, osList = osList->next)
-        {
-                Account *acct;
-                gnc_commodity *split_cmdty = NULL;
-
-                split = (Split*)sList->data;
-
-                /* FIXME: Ick.  This assumes that the split lists will be
-                   ordered identically. :( I think it's fair to say they
-                   will, but I'd rather not have to count on it. --jsled */
-                split_kvpf = xaccSplitGetSlots( (Split*)osList->data );
-
-                /* from-transaction of splits */
-                /* This needs to be before the value setting [below] so the
-                 * balance calculations can work. */
-                {
-                        GUID                *acct_guid;
-                        /* contains the guid of the split's actual account. */
-                        kvp_val = kvp_frame_get_slot_path( split_kvpf,
-                                                           GNC_SX_ID,
-                                                           GNC_SX_ACCOUNT,
-                                                           NULL );
-                        if (kvp_val == NULL) {
-                                GString *err = g_string_new("");
-                                g_string_printf(err, "Null account kvp value for SX [%s], cancelling creation.",
-                                                xaccSchedXactionGetName(createUD->tci->parentTCT->sx));
-                                *createUD->creation_errors = g_list_append(*createUD->creation_errors, err);
-                                errFlag = TRUE;
-                                break;
-                        }
-                        acct_guid = kvp_value_get_guid( kvp_val );
-                        acct = xaccAccountLookup( acct_guid, gnc_get_current_book ());
-                        if (acct == NULL)
-                        {
-                                const char *guidStr;
-                                GString *err;
-                                guidStr = guid_to_string((const GUID*)acct_guid);
-                                err = g_string_new("");
-                                g_string_printf(err, "Unknown account for guid [%s], cancelling SX [%s] creation.",
-                                                guidStr, xaccSchedXactionGetName(createUD->tci->parentTCT->sx));
-                                g_free((char*)guidStr);
-                                *createUD->creation_errors = g_list_append(*createUD->creation_errors, err);
-                                errFlag = TRUE;
-                                break;
-                        }
-
-                        split_cmdty = xaccAccountGetCommodity(acct);
-                        if (first_cmdty == NULL)
-                        {
-                                first_cmdty = split_cmdty;
-                                xaccTransSetCurrency(newT, first_cmdty);
-                        }
-
-                        xaccAccountBeginEdit(acct);
-                        xaccAccountInsertSplit(acct, split);
-                }
-
-                /* credit/debit formulas */
-                {
-                        char *str, *parseErrorLoc;
-                        gnc_numeric credit_num, debit_num, final;
-                        int gncn_error;
-
-                        kvp_val = kvp_frame_get_slot_path( split_kvpf,
-                                                           GNC_SX_ID,
-                                                           GNC_SX_CREDIT_FORMULA,
-                                                           NULL);
-                        str = kvp_value_get_string( kvp_val );
-                        credit_num = gnc_numeric_create( 0, 1 );
-                        if (str != NULL && strlen(str) != 0) {
-                                if (!gnc_exp_parser_parse_separate_vars(str, &credit_num,
-                                                                        &parseErrorLoc,
-                                                                        actualVars))
-                                {
-                                        GString *err = g_string_new("");
-                                        g_string_printf(err, "Error parsing SX [%s] credit formula [%s] at [%s]: %s",
-                                                        xaccSchedXactionGetName(createUD->tci->parentTCT->sx),
-                                                        str, parseErrorLoc, gnc_exp_parser_error_string());
-                                        *createUD->creation_errors = g_list_append(*createUD->creation_errors, err);
-                                        credit_num = gnc_numeric_create( 0, 1 );
-                                }
-                        }
-                        
-                        kvp_val = kvp_frame_get_slot_path( split_kvpf,
-                                                           GNC_SX_ID,
-                                                           GNC_SX_DEBIT_FORMULA,
-                                                           NULL);
-                        str = kvp_value_get_string( kvp_val );
-
-                        debit_num = gnc_numeric_create( 0, 1 );
-                        if (str != NULL && strlen(str) != 0) {
-                                if (!gnc_exp_parser_parse_separate_vars(str, &debit_num,
-                                                                        &parseErrorLoc,
-                                                                        actualVars))
-                                {
-                                        GString *err = g_string_new("");
-                                        g_string_printf(err, "Error parsing SX [%s] debit formula [%s] at [%s]: %s",
-                                                        xaccSchedXactionGetName(createUD->tci->parentTCT->sx),
-                                                        str, parseErrorLoc, gnc_exp_parser_error_string());
-                                        *createUD->creation_errors = g_list_append(*createUD->creation_errors, err);
-                                        debit_num = gnc_numeric_create( 0, 1 );
-                                }
-
-                        }
-                        
-                        final = gnc_numeric_sub_fixed( debit_num, credit_num );
-                        
-                        gncn_error = gnc_numeric_check(final);
-                        if (gncn_error != GNC_ERROR_OK) {
-                                GString *err = g_string_new("");
-                                g_string_printf(err, "Error %d in SX [%s] final gnc_numeric value, using 0 instead.", 
-                                                gncn_error,
-                                                xaccSchedXactionGetName(createUD->tci->parentTCT->sx));
-                                *createUD->creation_errors = g_list_append(*createUD->creation_errors, err);
-                                final = gnc_numeric_create(0, 1);
-                        }
-
-                        xaccSplitSetValue(split, final);
-                        if (! gnc_commodity_equal(split_cmdty, first_cmdty))
-                        {
-                                GString *exchange_rate_var_name = g_string_sized_new(16);
-                                gnc_numeric *exchange, amt;
-
-                                /*
-                                GNCPriceDB *price_db = gnc_pricedb_get_db(gnc_get_current_book());
-                                GNCPrice *price;
-
-                                price = gnc_pricedb_lookup_latest(price_db, first_cmdty, split_cmdty);
-                                if (price == NULL)
-                                {
-                                        price = gnc_pricedb_lookup_latest(price_db, split_cmdty, first_cmdty);
-                                        if (price == NULL)
-                                        {
-                                                GString *err = g_string_new("");
-                                                g_string_printf(err, "could not find pricedb entry for commodity-pair (%s, %s).",
-                                                                gnc_commodity_get_mnemonic(first_cmdty),
-                                                                gnc_commodity_get_mnemonic(split_cmdty));
-                                                exchange = gnc_numeric_create(1, 1);
-                                                *createUD->creation_errors = g_list_append(*createUD->creation_errors, err);
-
-                                        }
-                                        else
-                                        {
-                                                exchange = gnc_numeric_div(gnc_numeric_create(1,1),
-                                                                           gnc_price_get_value(price),
-                                                                           1000, GNC_HOW_RND_ROUND);
-                                        }
-                                }
-                                else
-                                {
-                                        exchange = gnc_price_get_value(price);
-                                }
-                                */
-
-                                g_string_printf(exchange_rate_var_name, "%s -> %s",
-                                                gnc_commodity_get_mnemonic(split_cmdty),
-                                                gnc_commodity_get_mnemonic(first_cmdty));
-                                exchange = (gnc_numeric*)g_hash_table_lookup(actualVars, exchange_rate_var_name->str);
-                                if (exchange == NULL)
-                                {
-                                        exchange = g_new0(gnc_numeric, 1);
-                                        *exchange = gnc_numeric_create(0, 1);
-                                }
-                                g_string_free(exchange_rate_var_name, TRUE);
-
-                                amt = gnc_numeric_mul(final, *exchange, 1000, GNC_HOW_RND_ROUND);
-                                xaccSplitSetAmount(split, amt);
-                        }
-                        xaccSplitScrub( split );
-                }
-                xaccAccountCommitEdit( acct );
-        }
-
-        /* Cleanup actualVars table. */
-        {
-                g_hash_table_foreach( actualVars,
-                                      gnc_sxsl_del_vars_table_ea,
-                                      NULL );
-                g_hash_table_destroy( actualVars );
-                actualVars = NULL;
-        }
-
-        if (errFlag) {
-                PERR("Some error in new transaction creation...");
-                xaccTransDestroy(newT);
-                xaccTransCommitEdit(newT);
-                return 13;
-        }
-
-        {
-                kvp_frame *txn_frame;
-                /* set a kvp-frame element in the transaction indicating and
-                 * pointing-to the SX this was created from. */
-                txn_frame = xaccTransGetSlots(newT);
-                kvp_frame_set_guid(txn_frame, "from-sched-xaction", 
-                                   xaccSchedXactionGetGUID(tci->parentTCT->sx));
-        }
-
-        xaccTransCommitEdit(newT);
-
-        if ( createUD->createdGUIDs != NULL ) {
-                *createUD->createdGUIDs =
-                        g_list_append( *(createUD->createdGUIDs),
-                                       (gpointer)xaccTransGetGUID(newT) );
-        }
-
-        return 0;
-}
-
-/**
- * This should be called with the dates in increasing order, or the last call
- * will set the last occur date incorrectly.
- **/
-static void
-create_transactions_on(SchedXaction *sx,
-                       GDate *gd,
-                       toCreateInstance *tci,
-                       GList **createdGUIDs,
-                       GList **creation_errors)
-{
-        createData createUD;
-        AccountGroup *ag;
-        Account *acct;
-        const char *id;
-
-        if (tci) {
-                g_assert(g_date_compare(gd, tci->date) == 0);
-        }
-
-        ag = gnc_book_get_template_group( gnc_get_current_book () );
-        id = guid_to_string( xaccSchedXactionGetGUID(sx) );
-        if ( !(ag && id) ) {
-                return;
-        }
-        /* This looks strange but it's right.  The account is
-           named after the guid string. */
-        acct = xaccGetAccountFromName( ag, id );
-        if (!acct) {
-                return;
-        }
-
-        createUD.tci = tci;
-        createUD.createdGUIDs = createdGUIDs;
-        createUD.creation_errors = creation_errors;
-        xaccAccountForEachTransaction(acct,
-                                      create_each_transaction_helper,
-                                      /*tct*/ &createUD);
-}
-
-static void
-_hashToList( gpointer key, gpointer value, gpointer user_data )
-{
-        *(GList**)user_data = g_list_append( *(GList**)user_data, key );
-}
-
-static void
-hash_to_sorted_list( GHashTable *hashTable, GList **gl )
-{
-        g_hash_table_foreach( hashTable, _hashToList, gl );
-        *gl = g_list_sort( *gl, g_str_equal );
-}
-
-static void
-clear_variable_numerics( gpointer key, gpointer value, gpointer data )
-{
-        g_free( (gnc_numeric*)value );
-        g_hash_table_insert( (GHashTable*)data, key, NULL );
-}
-
-static gint
-_get_vars_helper(Transaction *txn, void *var_hash_data)
-{
-        GHashTable *var_hash = (GHashTable*)var_hash_data;
-        GList *split_list;
-        kvp_frame *kvpf;
-        kvp_value *kvp_val;
-        Split *s;
-        char *str;
-        gnc_commodity *first_cmdty = NULL;
-
-        split_list = xaccTransGetSplitList(txn);
-
-        if ( split_list == NULL ) {
-                return 1;
-        }
-
-        for ( ; split_list ; split_list = split_list->next ) {
-                gnc_commodity *split_cmdty = NULL;
-                GUID *acct_guid;
-                Account *acct;
-
-                s = (Split*)split_list->data;
-                kvpf = xaccSplitGetSlots(s);
-                kvp_val = kvp_frame_get_slot_path(kvpf,
-                                                  GNC_SX_ID,
-                                                  GNC_SX_ACCOUNT,
-                                                  NULL);
-                acct_guid = kvp_value_get_guid( kvp_val );
-                acct = xaccAccountLookup( acct_guid, gnc_get_current_book ());
-                split_cmdty = xaccAccountGetCommodity(acct);
-                if (first_cmdty == NULL)
-                {
-                        first_cmdty = split_cmdty;
-                }
-                
-                if (! gnc_commodity_equal(split_cmdty, first_cmdty))
-                {
-                        gnc_numeric *tmp_num;
-                        GString *var_name = g_string_sized_new(16);
-                        g_string_printf(var_name, "%s -> %s",
-                                        gnc_commodity_get_mnemonic(split_cmdty),
-                                        gnc_commodity_get_mnemonic(first_cmdty));
-                        tmp_num = g_new0(gnc_numeric, 1);
-                        *tmp_num = gnc_numeric_create(0, 1);
-                        g_hash_table_insert(var_hash, g_strdup(var_name->str), tmp_num);
-                        g_string_free(var_name, TRUE);
-                }
-
-                // existing... ------------------------------------------
-                
-                kvp_val = kvp_frame_get_slot_path( kvpf,
-                                                   GNC_SX_ID,
-                                                   GNC_SX_CREDIT_FORMULA,
-                                                   NULL);
-                if ( kvp_val != NULL ) {
-                        str = kvp_value_get_string( kvp_val );
-                        if ( str && strlen(str) != 0 ) {
-                                parse_vars_from_formula( str, var_hash, NULL );
-                        }
-                }
-
-                kvp_val = kvp_frame_get_slot_path( kvpf,
-                                                   GNC_SX_ID,
-                                                   GNC_SX_DEBIT_FORMULA,
-                                                   NULL);
-                if ( kvp_val != NULL ) {
-                        str = kvp_value_get_string( kvp_val );
-                        if ( str && strlen(str) != 0 ) {
-                                parse_vars_from_formula( str, var_hash, NULL );
-                        }
-                }
-        }
-
-        return 0;
-}
-
-void
-sxsl_get_sx_vars( SchedXaction *sx, GHashTable *var_hash )
-{
-        AccountGroup *ag;
-        Account *acct;
-        const char *id;
-
-        ag = gnc_book_get_template_group( gnc_get_current_book () );
-        id = guid_to_string( xaccSchedXactionGetGUID(sx) );
-        /* Get account named after guid string. */
-        acct = xaccGetAccountFromName( ag, id );
-        xaccAccountForEachTransaction(acct,
-                                      _get_vars_helper,
-                                      var_hash);
-
-        g_hash_table_foreach( var_hash,
-                              clear_variable_numerics,
-                              (gpointer)var_hash );
-}
-
-static gboolean
-tct_table_entry_key_handle( GtkWidget *widget, GdkEventKey *event, gpointer ud )
-{
-        gnc_numeric *num;
-        GtkEntry *ent = NULL;
-        GString *str;
-
-        if ( (event->keyval != GDK_Tab)
-             && (event->keyval != GDK_ISO_Left_Tab) ) {
-                return FALSE;
-        }
-
-        /* First, deal with formulas in these cells, replacing their
-         * contents with the eval'd value. */
-        ent = GTK_ENTRY(widget);
-        num = (gnc_numeric*)g_object_get_data( G_OBJECT(ent), "numeric" );
-        str = g_string_new("");
-        g_string_printf( str, "%0.2f", gnc_numeric_to_double( *num ) );
-        gtk_entry_set_text( ent, str->str );
-        g_string_free( str, TRUE );
-
-        /* FIXME: Next, deal with tab-ordering in this page...
-         *
-         * if ( entry isn't last in table )
-         *    return (normal)FALSE
-         * if ( unfilled entry in this table exists )
-         *    change focus to unfilled entry
-         * if ( no more unfilled clist-rows )
-         *    return (normal)FALSE
-         * clist-select next unfilled row
-         *
-         * This doesn't deal with shift-tab very well ... 
-         * And there's a question of if the user will allow us to futz with
-         * their tab-ordering... though it's already pretty screwed up for the
-         * dynamically-changing-table anyways, so they probably won't mind
-         * too much... -- jsled
-         */
-
-        return FALSE;
-}
-
-static
-void
-sxsincelast_tc_row_sel( GtkCTree *ct,
-                        GList *nodelist,
-                        gint column,
-                        gpointer user_data)
-{
-        static const int NUM_COLS = 2;
-        static GtkAttachOptions sopts = GTK_SHRINK;
-        static GtkAttachOptions lxopts = GTK_EXPAND | GTK_FILL;
-        GtkTable *varTable;
-        int tableIdx;
-        GtkWidget *label, *entry;
-        GList *varList;
-        gint varHashSize;
-        GtkCTreeNode *node = GTK_CTREE_NODE( nodelist );
-
-        toCreateInstance *tci;
-        sxSinceLastData *sxsld;
-
-        /* FIXME: this should more gracefully deal with multiple 'row-select'
-         * signals from double/triple-clicks. */
-        sxsld = (sxSinceLastData*)user_data;
-
-        tci = (toCreateInstance*)gtk_ctree_node_get_row_data( ct, node );
-        if ( !tci )
-                return;
-
-        sxsld->curSelTCI = tci;
-        sxsld_set_sensitive_tci_controls( sxsld, TRUE );
-        /* set real sensitivity based on the state of the TCI; when we change
-         * the option menu selection here, it won't fire the selection-done
-         * handler, so we have to force it. */
-
-        {
-                GtkOptionMenu *optMenu;
-
-                optMenu = GTK_OPTION_MENU(
-                        glade_xml_get_widget( sxsld->gxml,
-                                              SX_DISPOSITION_OPT ) );
-                gtk_option_menu_set_history( optMenu,
-                                             sxsld->curSelTCI->state );
-                sxsld_disposition_changed( GTK_MENU_SHELL(
-                                                   gtk_option_menu_get_menu( optMenu ) ),
-                                           sxsld );
-        }
-
-        /* Setup the query for the to-create register to only show the
-         * transaction[s] associated with this lineitem. */
-        {
-                AccountGroup *ag;
-                Account *acct;
-                Query *q;
-                const gchar *sxGUIDstr;
-                SplitRegister *sr;
-
-                q = xaccMallocQuery();
-                xaccQuerySetBook( q, gnc_get_current_book() );
-                ag = gnc_book_get_template_group( gnc_get_current_book() );
-                sxGUIDstr = guid_to_string( xaccSchedXactionGetGUID( tci->parentTCT->sx ) );
-                acct = xaccGetAccountFromName( ag, sxGUIDstr );
-                g_assert( acct != NULL );
-                xaccQueryAddSingleAccountMatch( q, acct, QUERY_AND );
-          
-                gnc_suspend_gui_refresh();
-                gnc_ledger_display_set_query( sxsld->to_create_ledger, q );
-                sr = gnc_ledger_display_get_split_register( sxsld->to_create_ledger );
-                gnc_split_register_set_template_account( sr, acct );
-                gnc_ledger_display_refresh( sxsld->to_create_ledger );
-                gnc_resume_gui_refresh();
-        }
-
-        /* Get the count of variables; potentially remove the system-defined
-         * variables if they're present in the expression. */
-        varHashSize = g_hash_table_size( tci->varBindings );
-        {
-                gpointer *unusedKey, *unusedVal;
-                if ( g_hash_table_lookup_extended( tci->varBindings, "i",
-                                                   (gpointer)&unusedKey,
-                                                   (gpointer)&unusedVal ) ) {
-                        varHashSize -= 1;
-                }
-        }
-
-        if ( varHashSize == 0 ) {
-                return;
-        }
-
-        varList = NULL;
-        hash_to_sorted_list( tci->varBindings, &varList );
-        varTable = GTK_TABLE( glade_xml_get_widget( sxsld->gxml,
-                                                    VARIABLE_TABLE ) );
-        gtk_table_resize( varTable, varHashSize + 1, NUM_COLS );
-
-        tableIdx = 1;
-        for ( ; varList ; varList = varList->next ) {
-                gchar *varName;
-                GString *gstr;
-                const gchar *numValueStr;
-                gnc_numeric *numValue, *tmpNumValue;
-
-                varName = (gchar*)varList->data;
-                if ( strcmp( varName, "i" ) == 0 ) {
-                        continue;
-                }
-
-                gstr = g_string_sized_new(16);
-                g_string_printf( gstr, "%s: ", varName );
-                label = gtk_label_new( gstr->str );
-                gtk_label_set_justify( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );
-                g_string_free( gstr, TRUE );
-
-                entry = gtk_entry_new();
-                g_object_set_data( G_OBJECT(entry), "varName", varName );
-                g_object_set_data( G_OBJECT(entry), "tci", tci );
-                tmpNumValue = g_new0( gnc_numeric, 1 );
-                *tmpNumValue = gnc_numeric_create( 0, 1 );
-                g_object_set_data( G_OBJECT(entry), "numeric", tmpNumValue );
-                if ( tableIdx == varHashSize ) {
-                        /* Set a flag so we can know if we're the last row of
-                         * the table. */
-                        g_object_set_data( G_OBJECT(entry), "lastVisualElt",
-					   (gpointer)1 );
-                }
-
-                gtk_widget_set_size_request( entry, 64, -1 );
-                numValue = (gnc_numeric*)g_hash_table_lookup( tci->varBindings,
-                                                              varName );
-                if ( numValue != NULL ) {
-                        numValueStr =
-                                xaccPrintAmount( *numValue,
-                                                 gnc_default_print_info( FALSE ) );
-                        gtk_entry_set_text( GTK_ENTRY(entry), numValueStr );
-                }
-
-                /* fixme::2002.02.10 jsled testing */
-                g_signal_connect( entry, "key-press-event",
-				  G_CALLBACK( tct_table_entry_key_handle ),
-				  NULL );
-                g_signal_connect( entry, "changed",
-				  G_CALLBACK( sxsincelast_entry_changed ),
-				  sxsld );
-                g_signal_connect( entry, "destroy",
-				  G_CALLBACK(gnc_sxsld_free_entry_numeric),
-				  sxsld );
-
-                gtk_table_attach( varTable, label,
-                                  0, 1, tableIdx, tableIdx + 1,
-                                  lxopts, sopts, 0, 0 );
-                gtk_table_attach( varTable, entry,
-                                  1, 2, tableIdx, tableIdx + 1,
-                                  sopts, sopts, 0, 0 );
-                tableIdx += 1;
-        }
-
-        gtk_widget_show_all( GTK_WIDGET(varTable) );
-}
-
-static void
-clean_variable_table( sxSinceLastData *sxsld )
-{
-        GtkTable *table;
-        GList *children, *toFree, *l;
-        GtkTableChild *child;
-        
-        table = GTK_TABLE( glade_xml_get_widget( sxsld->gxml,
-                                                 VARIABLE_TABLE ) );
-        children = table->children;
-        g_assert( children );
-
-        toFree = NULL;
-        for( ; children ; children = children->next ) {
-                /* Destroy all children after the first [label-continaing]
-                   row... ie, leave the labels in place. */
-                child = (GtkTableChild*)children->data;
-                if ( child->top_attach > 0 ) {
-                        toFree = g_list_append( toFree, child->widget );
-                }
-        }
-
-        gtk_table_resize( table, 1, 2 );
-
-        for ( l = toFree; l; l = l->next ) {
-                gtk_widget_destroy( (GtkWidget*)l->data );
-        }
-        g_list_free( toFree );
-}
-
-static void
-sxsincelast_tc_row_unsel( GtkCTree *ct,
-                          GList *nodelist,
-                          gint column,
-                          gpointer user_data)
-{
-        sxSinceLastData *sxsld;
-
-        sxsld = (sxSinceLastData*)user_data;
-        clean_variable_table( sxsld );
-
-        sxsld->curSelTCI = NULL;
-
-        sxsld_set_sensitive_tci_controls( sxsld, FALSE );
-
-        {
-                Query *q;
-                q = xaccMallocQuery();
-                xaccQueryClear( q );
-                gnc_suspend_gui_refresh();
-                gnc_ledger_display_set_query( sxsld->to_create_ledger, q );
-                gnc_ledger_display_refresh( sxsld->to_create_ledger );
-                gnc_resume_gui_refresh();
-        }
-
-
-        /* we cleanup the gnc_numerics we allocated in the "destroy" signal
-         * handler of the entry [where we attached them] */
-}
-
-void
-print_vars_helper( gpointer key, gpointer value, gpointer user_data )
-{
-        DEBUG( "\"%s\" -> %.8x [%s]",
-               (gchar*)key, GPOINTER_TO_UINT(value),
-               gnc_numeric_to_string( *(gnc_numeric*)value ) );
-}
-
-int
-parse_vars_from_formula( const char *formula,
-                         GHashTable *varHash,
-                         gnc_numeric *result )
-{
-        gnc_numeric *num;
-        char *errLoc;
-        int toRet;
-
-        if ( result ) {
-                num = result;
-        } else {
-                num = g_new0( gnc_numeric, 1 );
-        }
-        
-        toRet = 0;
-        if ( ! gnc_exp_parser_parse_separate_vars( formula, num,
-                                                   &errLoc, varHash ) ) {
-                toRet = -1;
-        }
-
-        if ( !result ) {
-                g_free( num );
-        }
-        return toRet;
-}
-
-/**
- * The following makes me [jsled] somewhat sad, but it works... :I
- *
- * Basic problem: You can't create a SX instance if any after it have already
- * been created [e.g., if an SX has instances on d_0, d_1 and d_2, and you
- * create d_0 and d_2, then d_1 will never get created ... only d_3, d_4,
- * &c.]
- *
- * This code, then, makes sure that the user hasn't skipped a date...
- *
- * Code flow...
- * . If non-consecutive Reminders chosen, disallow.
- * . Else, for each selected reminder, add to to-create list.
- * . Dismiss dialog.
- *
- * While we're doing this, we handle any previously-selected, now-unselected
- * reminders.
- *
- * Returns TRUE if there are processed, valid reminders... FALSE otherwise.
- **/
-static gboolean
-processed_valid_reminders_listP( sxSinceLastData *sxsld )
-{
-        reminderTuple *rt;
-        reminderInstanceTuple *rit;
-        char *rtName;
-        gboolean overallOkFlag, okFlag, prevState;
-        GList *reminderList;
-        GList *reminderInstList;
-        GList *badList;
-        GList *badRecentRun;
-        GList *goodList;
-        GList *toRevertList;
-
-        rtName = NULL;
-        goodList = NULL;
-        overallOkFlag = TRUE;
-
-        okFlag = prevState = TRUE;
-        badList = badRecentRun = NULL;
-        rt = NULL;
-        toRevertList = NULL;
-
-        for ( reminderList = sxsld->reminderList;
-              reminderList;
-              reminderList = reminderList->next ) {
-
-                rt = (reminderTuple*)reminderList->data;
-                okFlag = prevState = TRUE;
-                badList = badRecentRun = NULL;
-                rtName = xaccSchedXactionGetName( rt->sx );
-
-                for ( reminderInstList = rt->instanceList;
-                      reminderInstList;
-                      reminderInstList = reminderInstList->next ) {
-                        rit = (reminderInstanceTuple*)reminderInstList->data;
-
-                        /* If we've previously created this RIT and now it's
-                         * not selected, then prepare to revert it
-                         * [later]. */
-                        if ( !rit->isSelected
-                             && rit->resultantTCI ) {
-                                toRevertList = g_list_append( toRevertList, rit );
-                        }
-
-                        if ( prevState ) {
-                                prevState = rit->isSelected;
-                                if ( !prevState ) {
-                                        badRecentRun = g_list_append( badRecentRun, rit );
-                                }
-                        } else {
-                                if ( rit->isSelected ) {
-                                        okFlag = FALSE;
-                                        if ( g_list_length( badRecentRun ) > 0 ) {
-                                                badList = g_list_concat( badList,
-                                                                         badRecentRun );
-                                                badRecentRun = NULL;
-                                        }
-                                } else {
-                                        badRecentRun =
-                                                g_list_append( badRecentRun, rit );
-                                }
-                        }
-                }
-                overallOkFlag &=
-                        inform_or_add( sxsld, rt, okFlag, badList, &goodList );
-                if ( badList ) {
-                        g_list_free( badList );
-                        badList = NULL;
-                }
-                if ( badRecentRun ) {
-                        g_list_free( badRecentRun );
-                        badRecentRun = NULL;
-                }
-        }
-
-        /* Handle implications of above logic. */
-        if ( !overallOkFlag ) {
-                g_list_free( goodList );
-                goodList = NULL;
-
-                g_list_free( toRevertList );
-                toRevertList = NULL;
-
-                return FALSE;
-        }
-
-        if ( g_list_length( goodList ) > 0 ) {
-                processSelectedReminderList( goodList, sxsld );
-                g_list_free( goodList );
-                goodList = NULL;
-        }
-
-        /* Revert the previously-created and now-unselected RITs. */
-        gnc_sxsld_revert_reminders( sxsld, toRevertList );
-        g_list_free( toRevertList );
-        toRevertList = NULL;
-
-        return TRUE;
-}
-
-
-/**
- * Remove the TCI from it's parent TCT, deleting any created transactions as
- * appropriate. Note: if after removing a TCIs from it's TCT and there are no
- * more instances in the TCT, then the TCT wouldn't have been created except
- * for us, and should be removed itself; we handle this as well.
- **/
-static
-void
-gnc_sxsld_revert_reminders( sxSinceLastData *sxsld,
-                            GList *toRevertList )
-{
-        reminderInstanceTuple *rit;
-        toCreateInstance *tci;
-        toCreateTuple *tct;
-        gboolean autoCreateState, notifyState;
-        GList *l, *m;
-
-        if ( !toRevertList ) {
-                return;
-        }
-
-        for ( l = toRevertList; l; l = l->next ) {
-                /* Navigate to the relevant objects. */
-                rit = (reminderInstanceTuple*)l->data;
-                g_assert( rit );
-                tci = rit->resultantTCI;
-                g_assert( tci );
-                tct = tci->parentTCT;
-                g_assert( tct );
-
-                tct->instanceList = g_list_remove( tct->instanceList, tci );
-
-                if ( g_list_length(tct->instanceList) == 0 ) {
-                        GList **correctList;
-                        /* if there are no instances, remove the TCT as
-                         * well. */
-                        xaccSchedXactionGetAutoCreate( rit->parentRT->sx,
-                                                       &autoCreateState,
-                                                       &notifyState );
-                        correctList = NULL;
-                        if ( autoCreateState ) {
-                                if ( notifyState ) {
-                                        correctList = &sxsld->autoCreateList;
-                                }
-                        } else {
-                                correctList = &sxsld->toCreateList;
-                        }
-
-                        if ( correctList ) 
-                                *correctList = g_list_remove( *correctList, tct );
-                }
-
-                /* destroy any created transactions. */
-                gnc_suspend_gui_refresh();
-                for ( m = tci->createdTxnGUIDs; m; m = m->next ) {
-                        Transaction *t;
-
-                        sxsld->createdTxnGUIDList =
-                                g_list_remove( sxsld->createdTxnGUIDList,
-                                               (GUID*)m->data );
-                        t = xaccTransLookup( (GUID*)m->data,
-                                             gnc_get_current_book() );
-                        g_assert( t );
-                        xaccTransBeginEdit(t);
-                        xaccTransDestroy(t);
-                        xaccTransCommitEdit(t);
-
-                }
-                gnc_resume_gui_refresh();
-
-                /* Free the now-dead TCI; this is buggy and causing
-                 * problems... */
-                gnc_sxsld_free_tci( tci );
-                rit->resultantTCI = NULL;
-        }
-}
-
-
-static void
-sxsld_remind_row_toggle( GtkCTree *ct, GList *node,
-                         gint column, gpointer user_data )
-{
-        GtkCTreeNode *ctn;
-        reminderInstanceTuple *rit;
-        sxSinceLastData *sxsld = (sxSinceLastData*)user_data;
-        GnomeDruidPage *thisPage, *nextPage;
-
-        ctn = GTK_CTREE_NODE( node );
-        rit = (reminderInstanceTuple*)gtk_ctree_node_get_row_data( ct, ctn );
-        if ( rit == NULL ) {
-                PERR( "We got called to toggle a row that "
-                      "we can't find data for..." );
-                return;
-        }
-        rit->isSelected = !rit->isSelected;
-
-        /* Deal with setting up a correct next/finish button for this
-         * page. */
-        sxsld->remindSelCount += ( rit->isSelected ? 1 : -1 );
-        thisPage = GNOME_DRUID_PAGE(glade_xml_get_widget( sxsld->gxml, REMINDERS_PG ));
-        nextPage = gnc_sxsld_get_appropriate_page( sxsld, thisPage, FORWARD );
-        if ( sxsld->remindSelCount == 0
-             || sxsld->remindSelCount == 1 ) {
-                /* If we don't have anywhere to go [read: there's only
-                 * reminders as of yet], and we've selected no reminders. */
-
-                /* FIXME: damnit, this won't work correctly as we really want
-                 * to incorporate the effect of changing the reminder
-                 * selections into this, too. */
-
-                gnome_druid_set_show_finish( sxsld->sincelast_druid,
-                                             ( !nextPage
-                                               && (sxsld->remindSelCount == 0) ) );
-
-        } /* else { This else intentionally left blank; if it's >1, then we
-           * handled the 'next/finish' button on the 0 -> 1 transition. } */
-}
-
-static
-void
-sxsld_obsolete_row_toggle( GtkCList *cl, gint row, gint col,
-                           GdkEventButton *event, gpointer ud )
-{
-        toDeleteTuple *tdt;
-
-        tdt = (toDeleteTuple*)gtk_clist_get_row_data( cl, row );
-        tdt->isSelected = !tdt->isSelected;
-}
-
-/**
- * @return the count of created transactions which would be true after
- * processing the currently-selected state of to-create transactions.  Note
- * that this includes auto-created transactions, which aren't shown in the
- * post-to-create review page.
- **/
-static
-gint
-sxsld_get_future_created_txn_count( sxSinceLastData *sxsld )
-{
-        GList *tctList, *tciList;
-        /* Get a reasonable initial count to modify below. */
-        gint toRet = g_list_length( sxsld->createdTxnGUIDList );
-
-        for ( tctList = sxsld->toCreateList;
-              tctList; tctList = tctList->next ) {
-
-                toCreateTuple *tct = (toCreateTuple*)tctList->data;
-
-                for ( tciList = tct->instanceList;
-                      tciList;
-                      tciList = tciList->next ) {
-
-                        GList *txnSet, *splitList;
-                        toCreateInstance *tci = (toCreateInstance*)tciList->data;
-
-                        if ( tci->state == tci->prevState ) {
-                                continue;
-                        }
-                        
-                        switch ( tci->state ) {
-                        case TO_CREATE:
-                                /* We were postpone or ignore, before ... so
-                                 * add the new txns in. */
-
-                                /* Calculate the size of the transaction-list to be created. */
-                                txnSet = NULL;
-                                splitList = xaccSchedXactionGetSplits( tci->parentTCT->sx );
-                                for ( ; splitList; splitList = splitList->next ) {
-                                        Split *s = (Split*)splitList->data;
-                                        if ( g_list_find( txnSet, xaccSplitGetParent(s) ) == NULL ) {
-                                                txnSet = g_list_append( txnSet, (gpointer)s );
-                                        }
-                                }
-                                toRet += g_list_length( txnSet );
-                                g_list_free( txnSet );
-                                txnSet = NULL;
-                                break;
-                        case IGNORE:
-                        case POSTPONE:
-                                /* We were {postpone,ignore} or to-create,
-                                 * before, so either continue to ignore or
-                                 * subtract out the txns. */
-                                if ( tci->prevState != TO_CREATE ) {
-                                        continue;
-                                }
-                                toRet -= g_list_length( tci->createdTxnGUIDs );
-                                break;
-                        case UNDEF:
-                        case MAX_STATE:
-                                g_assert( "We shouldn't see any of these." );
-                                break;
-                        }
-                }
-        }
-        g_assert( toRet >= 0 );
-        return toRet;
-}
-
-static
-void
-sxsld_disposition_changed( GtkMenuShell *b, gpointer d )
-{
-        sxSinceLastData *sxsld = (sxSinceLastData*)d;
-        ToCreateState newState;
-        gboolean newSensitivity;
-        GtkCTree *ct;
-        char *newCtreeText;
-
-        newState =
-                gnc_option_menu_get_active( 
-                        glade_xml_get_widget( sxsld->gxml,
-                                              SX_DISPOSITION_OPT ));
-        /* Change the state of the TCI */
-        //g_assert( sxsld->curSelTCI != NULL );
-        g_return_if_fail(sxsld->curSelTCI != NULL);
-
-        sxsld->curSelTCI->state = newState;
-
-        newSensitivity = TRUE;
-        newCtreeText = "FIXME";
-
-        switch ( newState ) {
-        case TO_CREATE:
-                newSensitivity = TRUE;
-                {
-                        gboolean allVarsBound = TRUE;
-                        /* If there are no un-bound variables, then set the 'ready-to-go'
-                           flag to 'y'. */
-                        g_hash_table_foreach( sxsld->curSelTCI->varBindings,
-                                              andequal_numerics_set,
-                                              &allVarsBound );
-                        newCtreeText = ( allVarsBound
-                                         ? _( READY_TEXT )
-                                         : _( NEEDS_BINDINGS_TEXT ) );
-                }
-                break;
-        case IGNORE:
-                newSensitivity = FALSE;
-                newCtreeText = _( IGNORE_TEXT );
-                break;
-        case POSTPONE:
-                newSensitivity = FALSE;
-                newCtreeText = _( POSTPONE_TEXT );
-                break;
-        default:
-                g_assert( FALSE );
-                break;
-        }
-
-        gtk_widget_set_sensitive( glade_xml_get_widget( sxsld->gxml,
-                                                        VARIABLE_TABLE ),
-                                  newSensitivity );
-        ct = GTK_CTREE(glade_xml_get_widget( sxsld->gxml, TO_CREATE_LIST ));
-        gtk_ctree_node_set_text( ct, sxsld->curSelTCI->node, 1, newCtreeText );
-
-        /* set the 'next/finish' button appropraitely based on the new
-         * selection. */
-        gnome_druid_set_show_finish( sxsld->sincelast_druid,
-                                     ( ( sxsld_get_future_created_txn_count(sxsld)
-                                         - sxsld->autoCreatedCount )== 0 ) );
-}
-
-/**
- * Makes both the variable table and disposition selection [in]sensitive, as
- * specified.
- **/
-static
-void
-sxsld_set_sensitive_tci_controls( sxSinceLastData *sxsld,
-                                  gboolean sensitive )
-{
-        GtkWidget *w;
-        w = glade_xml_get_widget( sxsld->gxml, SX_DISPOSITION_OPT );
-        gtk_widget_set_sensitive( w, sensitive );
-        w = glade_xml_get_widget( sxsld->gxml, VARIABLE_TABLE );
-        gtk_widget_set_sensitive( w, sensitive );
-}
-
-static void
-create_bad_reminders_msg( gpointer data, gpointer ud )
-{
-        GString *msg;
-        reminderInstanceTuple *rit;
-        static char tmpBuf[ MAX_DATE_LENGTH+1 ];
-
-        rit = (reminderInstanceTuple*)data;
-        msg = (GString*)ud;
-        qof_print_gdate( tmpBuf, MAX_DATE_LENGTH, rit->occurDate );
-        g_string_append_printf( msg, tmpBuf );
-        g_string_append_printf( msg, "\n" );
-}
-
-static gboolean
-inform_or_add( sxSinceLastData *sxsld, reminderTuple *rt, gboolean okFlag,
-               GList *badList, GList **goodList )
-{
-        reminderInstanceTuple *rit;
-        GList *instances;
-        GString *userMsg;
-
-        userMsg = NULL;
-
-        if ( okFlag ) {
-                /* Add selected instances of this rt to
-                 * okay-to-add-to-toCreateList list. */
-                for ( instances = rt->instanceList;
-                      instances;
-                      instances = instances->next ) {
-                        rit = (reminderInstanceTuple*)instances->data;
-                        /* this isn't really all that efficient. */
-                        if ( rit->isSelected ) {
-                                *goodList = g_list_append( *goodList, rit );
-                        }
-                }
-        } else {
-                /* [Add to list for later] dialog issuance to user. */
-
-                userMsg = g_string_sized_new( 128 );
-                g_string_printf( userMsg,
-                                 "You cannot skip instances of "
-                                 "Scheduled Transactions. "
-                                 "The following instances of \"%s\" "
-                                 "must be selected as well:\n\n",
-                                 xaccSchedXactionGetName( rt->sx ) );
-                g_list_foreach( badList, create_bad_reminders_msg, userMsg );
-                gnc_error_dialog( sxsld->sincelast_window, userMsg->str );
-                g_string_free( userMsg, TRUE );
-        }
-
-        return okFlag;
-}
-
-static void
-sx_obsolete_select_all_clicked(GtkButton *button, gpointer user_data)
-{
-        sxSinceLastData* sxsld = user_data;
-  
-        GtkCList *ob_clist = GTK_CLIST(glade_xml_get_widget(sxsld->gxml, 
-                                                            SX_OBSOLETE_CLIST));
-        gtk_clist_select_all( ob_clist );
-}
-
-static void
-sx_obsolete_unselect_all_clicked(GtkButton *button, gpointer user_data)
-{
-        sxSinceLastData* sxsld = user_data;
-  
-        GtkCList *ob_clist = GTK_CLIST(glade_xml_get_widget(sxsld->gxml, 
-                                                            SX_OBSOLETE_CLIST));
-        gtk_clist_unselect_all( ob_clist );
-}
-
-static void
-create_autoCreate_ledger( sxSinceLastData *sxsld )
-{
-        SplitRegister *splitreg;
-        GtkWidget *vbox;
-        Query *q;
-
-        q = xaccMallocQuery();
-        xaccQuerySetBook (q, gnc_get_current_book ());
-        sxsld->ac_ledger = gnc_ledger_display_query( q,
-                                                     GENERAL_LEDGER,
-                                                     REG_STYLE_LEDGER );
-
-	/* First the embedded window */
-        vbox = glade_xml_get_widget( sxsld->gxml, AUTO_CREATE_VBOX );
-	sxsld->ac_window =
-	  gnc_embedded_window_new("SXWindowActions",
-				     gnc_sxsld_menu_entries,
-				     gnc_sxsld_menu_n_entries,
-				     "gnc-sxed-window-ui.xml",
-				     sxsld->sincelast_window,
-				     FALSE, /* no accelerators */
-				     sxsld);
-	gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET(sxsld->ac_window),
-			    TRUE, TRUE, 0);
-
-	/* Then the register in it */
-	sxsld->ac_register = gnc_plugin_page_register_new_ledger(sxsld->ac_ledger);
-	gnc_plugin_page_set_ui_description (sxsld->ac_register,
-					    "gnc-plugin-page-sxregister-ui.xml");
-	gnc_plugin_page_register_set_options (sxsld->ac_register,
-					      NULL, NULL, 4, FALSE);
-	gnc_embedded_window_open_page (sxsld->ac_window, sxsld->ac_register);
-
-	/* Now configure the register */
-        splitreg = gnc_ledger_display_get_split_register( sxsld->ac_ledger );
-        gnc_split_register_config(splitreg,
-                                  splitreg->type, splitreg->style,
-                                  FALSE);
-        gnc_split_register_show_present_divider( splitreg, FALSE );
-}
-
-static void
-create_created_ledger( sxSinceLastData *sxsld )
-{
-        SplitRegister *splitreg;
-        GtkWidget *vbox;
-        Query *q;
-
-        q = xaccMallocQuery();
-        xaccQuerySetBook (q, gnc_get_current_book ());
-        sxsld->created_ledger = gnc_ledger_display_query( q,
-                                                          GENERAL_LEDGER,
-                                                          REG_STYLE_LEDGER );
-
-	/* First the embedded window */
-        vbox = glade_xml_get_widget( sxsld->gxml, CREATED_VBOX );
-	sxsld->created_window =
-	  gnc_embedded_window_new("SXWindowActions",
-				  gnc_sxsld_menu_entries,
-				  gnc_sxsld_menu_n_entries,
-				  "gnc-sxed-window-ui.xml",
-				  sxsld->sincelast_window,
-				  FALSE, /* no accelerators */
-				  sxsld);
-	gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET(sxsld->created_window),
-			    TRUE, TRUE, 0);
-
-	/* Then the register in it */
-	sxsld->created_register = gnc_plugin_page_register_new_ledger(sxsld->created_ledger);
-	gnc_plugin_page_set_ui_description (sxsld->created_register,
-					    "gnc-plugin-page-sxregister-ui.xml");
-	gnc_plugin_page_register_set_options (sxsld->created_register,
-					      NULL, NULL, 4, FALSE);
-	gnc_embedded_window_open_page (sxsld->created_window, sxsld->created_register);
-
-	/* Now configure the register */
-        splitreg = gnc_ledger_display_get_split_register( sxsld->created_ledger );
-        gnc_split_register_config(splitreg,
-                                  splitreg->type, splitreg->style,
-                                  FALSE);
-        gnc_split_register_show_present_divider( splitreg, FALSE );
-}
-
-#if 0
-static
-void
-sxsld_jump_to_real_txn( GtkAction *action, sxSinceLastData *sxsld )
-{
-        SplitRegister *reg;
-	GNCSplitReg *gsr;
-        Account *account;
-        Account *leader;
-        Split *split;
-
-        reg = gnc_ledger_display_get_split_register(sxsld->to_create_ledger);
-	gsr = gnc_ledger_display_get_user_data(sxsld->to_create_ledger);
-
-        split = gnc_split_register_get_current_split (reg);
-        if (split == NULL)
-                return;
-
-        {
-                GUID *acct_guid;
-                kvp_frame *split_kvpf;
-                kvp_value *kvp_val;
-                
-                split_kvpf = xaccSplitGetSlots( split );
-                kvp_val = kvp_frame_get_slot_path( split_kvpf,
-                                                   GNC_SX_ID,
-                                                   GNC_SX_ACCOUNT,
-                                                   NULL );
-                if ( kvp_val == NULL ) {
-                        PERR( "Null kvp_val for account" );
-                }
-                acct_guid = kvp_value_get_guid( kvp_val );
-                account = xaccAccountLookup( acct_guid,
-                                             gnc_get_current_book ());
-        }
-        
-        if (account == NULL)
-                return;
-
-        leader = gnc_ledger_display_leader( gsr->ledger );
-
-        if (account == leader)
-        {
-                split = xaccSplitGetOtherSplit(split);
-                if (split == NULL)
-                        return;
-
-                account = xaccSplitGetAccount(split);
-                if (account == NULL)
-                        return;
-                if (account == leader)
-                        return;
-        }
-
-        {
-		GncPluginPage *new_page;
-                GNCSplitReg *gsr;
-
-		new_page = gnc_plugin_page_register_new (account, FALSE);
-		gnc_main_window_open_page (NULL, new_page);
-		gsr = gnc_plugin_page_register_get_gsr (new_page);
-		gnc_split_reg_jump_to_split(gsr, split);
-        }
-        
-        g_signal_stop_emission_by_name(gsr, "jump");
-}
-#endif
-
-static void
-create_to_create_ledger( sxSinceLastData *sxsld )
-{
-        SplitRegister *splitreg;
-        GtkWidget *vbox;
-        Query *q;
-
-        sxsld->to_create_ledger = gnc_ledger_display_template_gl( NULL );
-        q = xaccMallocQuery();
-        xaccQueryClear( q );
-        gnc_ledger_display_set_query( sxsld->to_create_ledger, q );
-
- 	/* First the embedded window */
-	vbox = glade_xml_get_widget( sxsld->gxml, TO_CREATE_TXN_VBOX );
-	sxsld->to_create_window =
-	  gnc_embedded_window_new("SXWindowActions",
-				  gnc_sxsld_menu_entries,
-				  gnc_sxsld_menu_n_entries,
-				  "gnc-sxed-to-create-window-ui.xml",
-				  sxsld->sincelast_window,
-				  FALSE, /* no accelerators */
-				  sxsld);
-	gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET(sxsld->to_create_window),
-			    TRUE, TRUE, 0);
-
-	/* Then the register in it */
-	sxsld->to_create_register = gnc_plugin_page_register_new_ledger(sxsld->to_create_ledger);
-	gnc_plugin_page_set_ui_description (sxsld->to_create_register,
-					    "gnc-sxed-to-create-window-ui.xml");
-	gnc_plugin_page_register_set_options(sxsld->to_create_register,
-                                             NULL, NULL, 4, TRUE);
-	gnc_embedded_window_open_page (sxsld->to_create_window, sxsld->to_create_register);
-
-	/* Now configure the register */
-        splitreg = gnc_ledger_display_get_split_register( sxsld->to_create_ledger );
-        gnc_split_register_config( splitreg, splitreg->type, splitreg->style,
-                                   FALSE );
-        gnc_split_register_show_present_divider( splitreg, FALSE );
-}
-
-static void
-clean_sincelast_data( sxSinceLastData *sxsld )
-{
-        GList *l, *m;
-
-        /* FIXME: handle the cloned state data for all the instance
-         * structures. */
-
-        /* Free the reminder list */
-        for ( l = sxsld->reminderList; l; l = l->next ) {
-                reminderTuple *rt;
-                reminderInstanceTuple *rit;
-
-                rt = (reminderTuple*)l->data;
-                for ( m = rt->instanceList; m; m = m->next ) {
-                        rit = (reminderInstanceTuple*)m->data;
-                        g_date_free( rit->endDate );
-                        g_date_free( rit->occurDate );
-                        g_free( rit );
-                }
-                g_list_free( rt->instanceList );
-                rt->instanceList = NULL;
-                g_free( rt );
-        }
-        g_list_free( sxsld->reminderList );
-
-        /* Free the auto-create and to-create lists */
-        gnc_sxsld_free_toCreateTuple_list( sxsld->autoCreateList );
-        g_list_free( sxsld->autoCreateList );
-        sxsld->autoCreateList = NULL;
-
-        gnc_sxsld_free_toCreateTuple_list( sxsld->toCreateList );
-        g_list_free( sxsld->toCreateList );
-        sxsld->toCreateList = NULL;
-
-        /* Free the to-remove list */
-        for ( l = sxsld->toRemoveList; l; l = l->next ) {
-                toDeleteTuple *tdt;
-
-                tdt = (toDeleteTuple*)l->data;
-                g_date_free( tdt->endDate );
-                tdt->endDate = NULL;
-
-                g_free( tdt );
-        }
-        g_list_free( sxsld->toRemoveList );
-        sxsld->toRemoveList = NULL;
-
-        /* free the created-txn-guid list */
-        g_list_free( sxsld->createdTxnGUIDList );
-        sxsld->createdTxnGUIDList = NULL;
-
-        /* Free the saved SX temporal states */
-        g_hash_table_foreach( sxsld->sxInitStates,
-                              gnc_sxsld_free_sxState,
-                              NULL );
-        g_hash_table_destroy( sxsld->sxInitStates );
-        sxsld->sxInitStates = NULL;
-
-}
-
-static
-void
-gnc_sxsld_free_tci( toCreateInstance *tci )
-{
-        if ( tci->date ) {
-                g_date_free(tci->date);
-                tci->date = NULL;
-        }
-
-        if ( tci->varBindings ) {
-                g_hash_table_foreach( tci->varBindings,
-                                      _free_varBindings_hash_elts,
-                                      NULL );
-                g_hash_table_destroy( tci->varBindings );
-                tci->varBindings = NULL;
-        }
-
-        /* Handling these original/previous/current-stated things is painful,
-         * but here's the rules...
-         *
-         * If we're not cancelling...
-         * . If ignored, destroy.
-         * . If postponed, DON'T destroy.
-         * . If to-create, destroy.
-         *
-         * If we are cancelling...
-         * . If ignored, destroy.
-         * . If postponed, destroy.
-         *   . UNLESS previously postponed
-         * . If to-create, destroy.
-         *
-         * So, we don't destroy postponed by default, and let the
-         * cancel-specific case handle that destruction [thus the
-         * valid-pointer check].
-         */
-        if ( tci->prevState      != POSTPONE
-             && tci->origState   != POSTPONE
-             && tci->sxStateData != NULL ) {
-                gnc_sx_destroy_temporal_state( tci->sxStateData );
-                tci->sxStateData = NULL;
-        }
-
-        tci->parentTCT = NULL;
-
-        if ( tci->createdTxnGUIDs ) {
-                g_list_free( tci->createdTxnGUIDs );
-                tci->createdTxnGUIDs = NULL;
-        }
-
-        g_free( tci );
-}
-
-/**
- * Frees a list of toCreateTuples, like the autoCreateList and
- * toCreateList.
- **/
-static
-void
-gnc_sxsld_free_toCreateTuple_list( GList *l )
-{
-        GList *m;
-        toCreateTuple *tct;
-
-        for ( ; l; l = l->next ) {
-                tct = (toCreateTuple*)l->data;
-                for ( m = tct->instanceList; m; m = m->next ) {
-                        gnc_sxsld_free_tci( (toCreateInstance*)m->data );
-                }
-                g_list_free( tct->instanceList );
-                tct->instanceList = NULL;
-                g_free( tct );
-        }
-}
-
-static
-void
-gnc_sxsld_free_sxState( gpointer key,
-                        gpointer value,
-                        gpointer userdata )
-{
-        gnc_sx_destroy_temporal_state( (void*)value );
-}
-
-static
-void
-gnc_sxsld_free_entry_numeric( GObject *o, gpointer ud )
-{
-        gnc_numeric *num;
-        num = (gnc_numeric*)g_object_get_data( o, "numeric" );
-        g_free( num );
-}
-
-static
-void
-gnc_sxsld_commit_ledgers( sxSinceLastData *sxsld )
-{
-        gnc_split_register_save(
-                gnc_ledger_display_get_split_register(sxsld->created_ledger),
-                TRUE );
-        gnc_split_register_save(
-                gnc_ledger_display_get_split_register(sxsld->ac_ledger),
-                TRUE );
-}
-
-static
-void
-_adderror(gpointer data, gpointer user_data)
-{
-        GString *dialog_text = (GString*)user_data;
-        g_string_append_printf(dialog_text, "- %s\n", ((GString*)data)->str);
-}
-
-static
-void
-creation_errors_dialog(GList *creation_errors)
-{
-        GString *dialog_text = g_string_new(_("The following errors were encountered while creating the Scheduled Transactions:\n"));
-        g_list_foreach(creation_errors, (GFunc)_adderror, dialog_text);
-        gnc_info_dialog(NULL, "%s", dialog_text->str);
-        g_string_free(dialog_text, TRUE);
-}
-
-static void
-_free_creation_errors(gpointer data, gpointer user_data_unused)
-{
-        g_string_free((GString*)data, TRUE);
-}
-
-static
-void
-creation_errors_free(GList *creation_errors)
-{
-        g_list_foreach(creation_errors, (GFunc)_free_creation_errors, NULL);
-        g_list_free(creation_errors);
-}

Deleted: gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/dialog-sxsincelast.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,60 +0,0 @@
-/********************************************************************\
- * dialog-sxsincelast.h - SchedXaction "Since-Last-Run" dialog      *
- * Copyright (c) 2001 Joshua Sled <jsled at asynchronous.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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
-\********************************************************************/
-
-#ifndef DIALOG_SXSINCELAST_H
-#define DIALOG_SXSINCELAST_H
-
-/**
- * @return The magnitude of the return value is the number of auto-created,
- * no-notification scheduled transactions created.  This value is positive if
- * there are additionally other SXes which need user interaction and the
- * Druid has been displayed, or negative if there are not, and no Druid
- * window was realized.  In the case where there the dialog has been
- * displayed but no auto-create-no-notify transactions have been created,
- * INT_MAX [limits.h] is returned.  0 is treated as negative, with no
- * transactions created and no dialog displayed.  The caller can use this
- * value as appropriate to inform the user.
- *
- * [e.g., for book-open-hook: do nothing; for menu-selection: display an info
- *  dialog stating there's nothing to do.]
- **/
-gint gnc_ui_sxsincelast_dialog_create( void );
-void gnc_sx_sxsincelast_book_opened (void);
-
-/**
- * Returns the varaibles from the Splits of the given SchedXaction as the
- * keys of the given GHashTable.
- **/
-void sxsl_get_sx_vars( SchedXaction *sx, GHashTable *varHash );
-
-/**
- * Returns the variables from the given formula [free-form non-numeric
- * character strings] as the keys of the given GHashTable.
- * @param result can be NULL if you're not interested in the result
- **/
-int parse_vars_from_formula( const char *formula,
-                             GHashTable *varHash,
-                             gnc_numeric *result );
-
-void print_vars_helper( gpointer key, gpointer value, gpointer user_data );
-
-#endif // !defined(DIALOG_SXSINCELAST_H)

Modified: gnucash/branches/gda-dev/src/gnome/druid-acct-period.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/druid-acct-period.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/druid-acct-period.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,8 +28,7 @@
 #include <glib/gi18n.h>
 #include "glib-compat.h"
 
-#include "FreqSpec.h"
-#include "Group.h"
+#include "Recurrence.h"
 #include "Period.h"
 #include "Query.h"
 #include "Scrub.h"
@@ -61,7 +60,7 @@
   GnomeDruidPage *menu_page;
   GnomeDruidPage *book_page;
   GnomeDruidPage *finish_page;
-  GNCFrequency *period_menu;
+  GncFrequency *period_menu;
   GtkLabel  * period_remarks;
   GtkLabel  * close_results;
   GtkLabel  * book_details;
@@ -72,7 +71,7 @@
   char * earliest_str;
   GDate closing_date;
   GDate prev_closing_date;
-  FreqSpec *period;
+  GList *period;
   int close_status;
 
 } AcctPeriodInfo;
@@ -183,7 +182,7 @@
   gnc_unregister_gui_component_by_data (DRUID_ACCT_PERIOD_CM_CLASS, info);
 
   // do we need gnc_frequency_destroy or is this automatic ??
-  xaccFreqSpecFree (info->period);
+  recurrenceListFree(&info->period);
   g_free (info->earliest_str);
   g_free (info);
 }
@@ -216,7 +215,9 @@
   ENTER ("info=%p", info);
 
   /* Pull info from widget, push into freq spec */
-  gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date);
+  //gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date);
+  recurrenceListFree(&info->period);
+  gnc_frequency_save_to_recurrence(info->period_menu, &info->period, &info->closing_date);
 
   /* Count the number of periods that would be generated. */
   g_date_clear (&period_begin, 1);
@@ -234,7 +235,7 @@
                       g_date_get_day(&period_end),
                       g_date_get_year(&period_end));
     period_begin = period_end;
-    xaccFreqSpecGetNextInstance (info->period, &period_begin, &period_end);
+    recurrenceListNextInstance(info->period, &period_begin, &period_end);
   } 
 
   /* Display the results */
@@ -269,7 +270,9 @@
   info->close_status = -1;
 
   /* Pull info from widget, push into freq spec */
-  gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date);
+  //gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date);
+  recurrenceListFree(&info->period);
+  gnc_frequency_save_to_recurrence(info->period_menu, &info->period, &info->closing_date);
 
   qof_print_date_dmy_buff (close_date_str, MAX_DATE_LENGTH, 
                            g_date_get_day(&info->closing_date),
@@ -280,7 +283,7 @@
   ntrans = get_num_xactions_before_date(currbook,
                    gnc_timet_get_day_end_gdate (&info->closing_date));
 
-  nacc = xaccGroupGetNumSubAccounts (xaccGetAccountGroup (currbook));
+  nacc = gnc_account_n_descendants (gnc_book_get_root_account (currbook));
 
   /* Display the book info */
   period_text = 
@@ -349,7 +352,9 @@
   ENTER("info=%p", info);
 
   /* Pull info from widget, push into freq spec */
-  gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date);
+  //gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date);
+  recurrenceListFree(&info->period);
+  gnc_frequency_save_to_recurrence(info->period_menu, &info->period, &info->closing_date);
 
   if (0 <= g_date_compare(&info->prev_closing_date, &info->closing_date))
   {
@@ -390,11 +395,11 @@
 static void
 scrub_all(void)
 {
-  AccountGroup *group = gnc_get_current_group ();
-  xaccGroupScrubOrphans (group);
-  xaccGroupScrubImbalance (group);
+  Account *root = gnc_get_current_root_account ();
+  xaccAccountTreeScrubOrphans (root);
+  xaccAccountTreeScrubImbalance (root);
   // XXX: Lots are disabled
-  //xaccGroupScrubLots (group);
+  // xaccAccountTreeScrubLots (root);
 }
 
 /* =============================================================== */
@@ -459,7 +464,7 @@
 
   /* Find the next closing date ... */
   info->prev_closing_date = info->closing_date;
-  xaccFreqSpecGetNextInstance (info->period, &info->prev_closing_date, &info->closing_date);
+  recurrenceListNextInstance(info->period, &info->prev_closing_date, &info->closing_date);
 
   /* If the next closing date is in the future, then we are done. */
   if (time(NULL) < gnc_timet_get_day_end_gdate (&info->closing_date))
@@ -537,12 +542,15 @@
   info->prev_closing_date = info->closing_date;
   g_date_add_years (&info->closing_date, 1);
 
-  info->period = xaccFreqSpecMalloc( gnc_get_current_book() );
-  xaccFreqSpecSetMonthly (info->period, &info->closing_date, 12);
-  xaccFreqSpecSetUIType (info->period, UIFREQ_YEARLY);
+  {
+      Recurrence *r = g_new0(Recurrence, 1);
+      recurrenceSet(r, 1, PERIOD_MONTH, &info->closing_date);
+      info->period = NULL;
+      info->period = g_list_append(info->period, r);
+  }
 
-  info->period_menu = GNC_FREQUENCY (
-          gnc_frequency_new (info->period, &info->closing_date));
+  info->period_menu = GNC_FREQUENCY(
+          gnc_frequency_new_from_recurrence(info->period, &info->closing_date));
 
   /* Change the text so that its more mainingful for this druid */
   gnc_frequency_set_frequency_label_text(info->period_menu, _("Period:"));

Modified: gnucash/branches/gda-dev/src/gnome/druid-hierarchy.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/druid-hierarchy.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/druid-hierarchy.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,11 +25,11 @@
 
 #include <gnome.h>
 #include <glib/gi18n.h>
+#include <glib/gstdio.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "Group.h"
 #include "gnc-account-merge.h"
 #include "dialog-new-user.h"
 #include "dialog-utils.h"
@@ -88,7 +88,7 @@
   /** Map<Account*,gnc_numeric*> **/
   GHashTable *balance_hash;
 
-  AccountGroup *our_final_group;
+  Account *our_account_tree;
   QofBook *temporary;
 
   gboolean account_list_added;
@@ -202,7 +202,7 @@
     i = strlen(locale);
     ret = g_build_filename(top_dir, locale, (char *)NULL);
 
-    while (stat(ret, &buf) != 0)
+    while (g_stat(ret, &buf) != 0)
     { 
 	i--;
 	if (i<1) 
@@ -375,8 +375,7 @@
 
 	gnc_accounts_dir = gnc_path_get_accountsdir ();
 	locale_dir = gnc_get_ea_locale_dir (gnc_accounts_dir);
- 	list = gnc_load_example_account_list (data->temporary,
-					      locale_dir);
+ 	list = gnc_load_example_account_list (locale_dir);
 	g_free (gnc_accounts_dir);
 	g_free (locale_dir);
 
@@ -456,7 +455,6 @@
 
     /* Build the categories tree if necessary */
     gnc_suspend_gui_refresh ();
-    data->temporary = qof_book_new();
     account_categories_tree_view_prepare (data);
     gnc_resume_gui_refresh ();
   }
@@ -493,7 +491,7 @@
 		buffer = gtk_text_view_get_buffer(data->category_description);
 		gtk_text_buffer_set_text(buffer, gea->long_description, -1);
 
-		tree_view = gnc_tree_view_account_new_with_group (gea->group, FALSE);
+		tree_view = gnc_tree_view_account_new_with_root (gea->root, FALSE);
 		/* Override the normal fixed (user settable) sizing */
 		column = gtk_tree_view_get_column(GTK_TREE_VIEW(tree_view), 0);
 		gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
@@ -555,13 +553,13 @@
  ************************************************************/
 
 static void
-delete_our_final_group (hierarchy_data *data)
+delete_our_account_tree (hierarchy_data *data)
 {
-  if (data->our_final_group != NULL)
+  if (data->our_account_tree != NULL)
   {
-    xaccAccountGroupBeginEdit (data->our_final_group);
-    xaccAccountGroupDestroy (data->our_final_group);
-    data->our_final_group = NULL;
+    xaccAccountBeginEdit (data->our_account_tree);
+    xaccAccountDestroy (data->our_account_tree);
+    data->our_account_tree = NULL;
   }
 }
 
@@ -579,27 +577,27 @@
 
 struct add_group_data_struct
 {
-  AccountGroup *to;
+  Account *to;
   Account *parent;
   gnc_commodity *com;
 };
 
-static gpointer
+static void
 add_groups_for_each (Account *toadd, gpointer data)
 {
   struct add_group_data_struct *dadata = data;
   Account *foundact;
     
-  foundact = xaccGetAccountFromName (dadata->to, xaccAccountGetName(toadd));
+  foundact = gnc_account_lookup_by_name(dadata->to, xaccAccountGetName(toadd));
 
   if (!foundact)
   {
     foundact = clone_account (toadd, dadata->com);
 
     if (dadata->to)
-      xaccGroupInsertAccount (dadata->to, foundact);
+      gnc_account_append_child (dadata->to, foundact);
     else if (dadata->parent)
-      xaccAccountInsertSubAccount (dadata->parent, foundact);
+      gnc_account_append_child (dadata->parent, foundact);
     else
     {
       g_warning ("add_groups_for_each: no valid parent");
@@ -607,47 +605,42 @@
   }
 
   {
-    AccountGroup *addgrp = xaccAccountGetChildren (toadd);
-
-    if (xaccGroupGetNumAccounts(addgrp) > 0)
+    if (gnc_account_n_children(toadd) > 0)
     {
       struct add_group_data_struct downdata;
 
-      downdata.to = xaccAccountGetChildren(foundact);
+      downdata.to = foundact;
       downdata.parent = foundact;
       downdata.com = dadata->com;
 
-      xaccGroupForEachAccount (addgrp, add_groups_for_each,
-                               &downdata, FALSE);
+      gnc_account_foreach_child (toadd, add_groups_for_each, &downdata);
     }
   }
-
-  return NULL;
 }
 
 static void
-add_groups_to_with_random_guids (AccountGroup *into, AccountGroup *from,
-                                 gnc_commodity *com)
+add_new_accounts_with_random_guids (Account *into, Account *from,
+                                    gnc_commodity *com)
 {
   struct add_group_data_struct data;
   data.to = into;
   data.parent = NULL;
   data.com = com;
     
-  xaccGroupForEachAccount (from, add_groups_for_each, &data, FALSE);
+  gnc_account_foreach_child (from, add_groups_for_each, &data);
 }
 
-static AccountGroup *
-hierarchy_merge_groups (GSList *dalist, gnc_commodity *com)
+static Account *
+hierarchy_merge_accounts (GSList *dalist, gnc_commodity *com)
 {
   GSList *mark;
-  AccountGroup *ret = xaccMallocAccountGroup (gnc_get_current_book ());
+  Account *ret = xaccMallocAccount (gnc_get_current_book ());
 
   for (mark = dalist; mark; mark = mark->next)
   {
     GncExampleAccount *xea = mark->data;
 
-    add_groups_to_with_random_guids (ret, xea->group, com);
+    add_new_accounts_with_random_guids (ret, xea->root, com);
   }
 
   return ret;
@@ -718,7 +711,7 @@
 	  string=_("zero");
 	} else {
           GncAccountMergeDisposition disp;
-          disp = determine_merge_disposition(gnc_book_get_group(gnc_get_current_book()), account);
+          disp = determine_merge_disposition(gnc_book_get_root_account(gnc_get_current_book()), account);
           if (disp == GNC_ACCOUNT_MERGE_DISPOSITION_CREATE_NEW)
           {
                   allow_value = !xaccAccountGetPlaceholder(account);
@@ -771,22 +764,22 @@
                             GtkTreeIter *iter,
                             gpointer user_data)
 {
-	Account *account;
+	Account *account, *root;
 	gboolean willbe_placeholder = FALSE;
         GncAccountMergeDisposition disp;
 
 	g_return_if_fail (GTK_TREE_MODEL (model));
 	account = gnc_tree_view_account_get_account_from_iter (model, iter);
-        disp = determine_merge_disposition(gnc_book_get_group(gnc_get_current_book()), account);
+        root = gnc_book_get_root_account(gnc_get_current_book());
+        disp = determine_merge_disposition(root, account);
         switch (disp)
         {
         case GNC_ACCOUNT_MERGE_DISPOSITION_USE_EXISTING: {
                 /* find the existing account, do whatever it is. */
                 gchar *full_name;
                 Account *existing_acct;
-                AccountGroup *root_group = gnc_book_get_group(gnc_get_current_book());
                 full_name = xaccAccountGetFullName(account);
-                existing_acct = xaccGetAccountFromFullName(root_group, full_name);
+                existing_acct = gnc_account_lookup_by_full_name(root, full_name);
                 willbe_placeholder = xaccAccountGetPlaceholder(existing_acct);
                 g_free(full_name);
         } break;
@@ -807,7 +800,7 @@
                                gpointer user_data)
 {
   Account *new_acct;
-  AccountGroup *real_root;
+  Account *real_root;
   GncAccountMergeDisposition disposition;
   char *to_user = "(error; unknown condition)";
 
@@ -819,7 +812,7 @@
     return;
   }
 
-  real_root = gnc_book_get_group(gnc_get_current_book());
+  real_root = gnc_book_get_root_account(gnc_get_current_book());
   disposition = determine_merge_disposition(real_root, new_acct);
   switch (disposition)
   {
@@ -858,18 +851,18 @@
     gtk_widget_destroy(GTK_WIDGET(data->final_account_tree));
     data->final_account_tree = NULL;
   }
-  delete_our_final_group (data);
+  delete_our_account_tree (data);
 
 
   /* Build a new account list */
   actlist = get_selected_account_list (data->categories_tree);
   com = gnc_currency_edit_get_currency (GNC_CURRENCY_EDIT(data->currency_selector));
-  data->our_final_group = hierarchy_merge_groups (actlist, com);
+  data->our_account_tree = hierarchy_merge_accounts (actlist, com);
 
 
   /* Now build a new account tree */
   data->final_account_tree
-    = GNC_TREE_VIEW_ACCOUNT(gnc_tree_view_account_new_with_group (data->our_final_group, FALSE));
+    = GNC_TREE_VIEW_ACCOUNT(gnc_tree_view_account_new_with_root (data->our_account_tree, FALSE));
   tree_view = GTK_TREE_VIEW(data->final_account_tree);
   gnc_tree_view_account_set_name_edited(data->final_account_tree,
                                         gnc_tree_view_account_name_edited_cb);
@@ -927,7 +920,7 @@
   }
 
   // only in the case where there *are* existing accounts...
-  if (xaccGroupGetNumSubAccounts(gnc_book_get_group(gnc_get_current_book())) > 0)
+  if (gnc_account_n_descendants(gnc_book_get_root_account(gnc_get_current_book())) > 0)
   {
     GList *renderers;
     column = gnc_tree_view_add_text_column(GNC_TREE_VIEW(tree_view),
@@ -960,13 +953,13 @@
 {
   gnc_suspend_gui_refresh ();
   delete_hierarchy_dialog (data);
-  delete_our_final_group (data);
+  delete_our_account_tree (data);
   gncp_new_user_finish ();
   g_free(data);
   gnc_resume_gui_refresh ();
 }
 
-static gpointer
+static void
 starting_balance_helper (Account *account, hierarchy_data *data)
 {
   gnc_numeric balance;
@@ -977,8 +970,6 @@
   if (!gnc_numeric_zero_p (balance))
     gnc_account_create_opening_balance (account, balance, time (NULL),
                                         gnc_get_current_book ());
-
-  return NULL;
 }
 
 void
@@ -989,11 +980,11 @@
         GncHierarchyDruidFinishedCallback when_completed;
 	ENTER (" ");
 
-	if (data->our_final_group)
+	if (data->our_account_tree)
         {
-	  xaccGroupForEachAccount (data->our_final_group,
-                                   (AccountCallback)starting_balance_helper,
-				   data, TRUE);
+	  gnc_account_foreach_descendant (data->our_account_tree,
+					  (AccountCb)starting_balance_helper,
+					  data);
         }
 
         // delete before we suspend GUI events, and then muck with the model,
@@ -1004,10 +995,9 @@
 
 	gnc_suspend_gui_refresh ();
 
-        account_group_merge(gnc_get_current_group(), data->our_final_group);
+        account_trees_merge(gnc_get_current_root_account(), data->our_account_tree);
 
-        delete_our_final_group (data);
-        qof_book_destroy(data->temporary);
+        delete_our_account_tree (data);
 
         when_completed = data->when_completed;
 	g_free(data);

Modified: gnucash/branches/gda-dev/src/gnome/druid-loan.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/druid-loan.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/druid-loan.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 /********************************************************************\
  * druid-loan.c : A Gnome Druid for setting up loan-repayment       *
  *     scheduled transactions.                                      *
- * Copyright (C) 2002 Joshua Sled <jsled at asynchronous.org>          *
+ * Copyright (C) 2002,2007 Joshua Sled <jsled at asynchronous.org>     *
  * Copyright (C) 2006 David Hampton <hampton at employees.org>         *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
@@ -35,7 +35,6 @@
 
 #include "SchedXaction.h"
 #include "SX-book.h"
-#include "SX-book-p.h"
 #include "SX-ttinfo.h"
 #include "druid-utils.h"
 #include "gnc-book.h"
@@ -46,7 +45,6 @@
 #include "gnc-component-manager.h"
 #include "dialog-utils.h"
 #include "Account.h"
-#include "FreqSpec.h"
 #include "gnc-ui.h"
 #include "gnc-gdate-utils.h"
 #include "gnc-gui-query.h"
@@ -122,7 +120,7 @@
  * . param account selection should fill in orig/cur principal amounts from
  *   the books.
  * . initialize type freq to monthly.
- * . if LoanType <- !FIXED
+ * . if LoanType <- !GNC_FIXED
  *   . Frequency <- sensitive
  **/
 
@@ -142,8 +140,9 @@
         Account *to;
         Account *from; /* If NULL { If throughEscrowP, then through escrowAcct };
                         * else: undefined. */
-        FreqSpec *fs;  /* If NULL, part of repayment; otherwise: defined
-                        * here. */
+        GList *schedule;
+    /* If NULL, part of repayment; otherwise: defined
+     * here. */
         GDate *startDate;
 } RepayOptData;
 
@@ -159,10 +158,11 @@
 
 static RepayOptDataDefault REPAY_DEFAULTS[] = {
      /* { name, default txn memo, throughEscrowP, specSrcAcctP } */
-     { "Taxes",         "Tax Payment",           TRUE,  FALSE },
-     { "Insurance",     "Insurance Payment",     TRUE,  FALSE  },
-     { "PMI",           "PMI Payment",           TRUE,  FALSE  },
-     { "Other Expense", "Miscellaneous Payment", FALSE, FALSE },
+     { N_("Taxes"),         N_("Tax Payment"),           TRUE,  FALSE },
+     { N_("Insurance"),     N_("Insurance Payment"),     TRUE,  FALSE  },
+     /* Translators: PMI stands for Private Mortgage Insurance. */
+     { N_("PMI"),           N_("PMI Payment"),           TRUE,  FALSE  },
+     { N_("Other Expense"), N_("Miscellaneous Payment"), FALSE, FALSE },
      { NULL }
 };
 
@@ -179,18 +179,18 @@
 } RepayOptUIData;
 
 typedef enum {
-        FIXED = 0,
-        VARIABLE,
-        VARIABLE_3_1 = VARIABLE,
-        VARIABLE_5_1,
-        VARIABLE_7_1,
-        VARIABLE_10_1,
+        GNC_FIXED = 0,
+        GNC_VARIABLE,
+        GNC_VARIABLE_3_1 = GNC_VARIABLE,
+        GNC_VARIABLE_5_1,
+        GNC_VARIABLE_7_1,
+        GNC_VARIABLE_10_1,
         /* ... FIXME */
 } LoanType;
 
 typedef enum {
-        MONTHS = 0,
-        YEARS
+        GNC_MONTHS = 0,
+        GNC_YEARS
 } PeriodSize;
 
 /**
@@ -211,7 +211,7 @@
         gnc_numeric principal;
         float interestRate;
         LoanType type;
-        FreqSpec *loanFreq;
+        GList *loan_schedule;
         GDate *startDate;
         GDate *varStartDate;
         int numPer;
@@ -224,7 +224,7 @@
         Account *repPriAcct;
         Account *repIntAcct;
         Account *escrowAcct;
-        FreqSpec *repFreq;
+        GList *repayment_schedule;
         GDate *repStartDate;
 
         int repayOptCount;
@@ -263,7 +263,7 @@
         GtkSpinButton *prmIrateSpin;
         GtkComboBox   *prmType;
         GtkFrame      *prmVarFrame;
-        GNCFrequency  *prmVarGncFreq;
+        GncFrequency  *prmVarGncFreq;
         GNCDateEdit   *prmStartDateGDE;
         GtkSpinButton *prmLengthSpin;
         GtkComboBox   *prmLengthType;
@@ -283,7 +283,7 @@
         GNCAccountSel *repPrincToGAS;
         GNCAccountSel *repIntToGAS;
         GtkFrame      *repFreqFrame;
-        GNCFrequency  *repGncFreq;
+        GncFrequency  *repGncFreq;
 
         /* pay = payment[s] */
         GtkEntry         *payTxnName;
@@ -301,7 +301,7 @@
         GtkRadioButton   *payTxnFreqPartRb;
         GtkRadioButton   *payTxnFreqUniqRb;
         GtkAlignment     *payFreqAlign;
-        GNCFrequency     *payGncFreq;
+        GncFrequency     *payGncFreq;
 
         /* rev = review */
         GtkComboBox       *revRangeOpt;
@@ -322,8 +322,8 @@
   gchar *name;
   /** The start, last-occurred and end dates. */
   GDate start, last, end;
-  /** The SX FreqSpec */
-  FreqSpec *freq;
+  /** The SX schedule */
+  GList *schedule;
   /** The current 'instance-num' count. */
   gint instNum;
   /** The main/source transaction being created. */
@@ -800,10 +800,13 @@
         ldd->ld.startDate = g_date_new();
         ldd->ld.varStartDate = g_date_new();
         g_date_set_time_t( ldd->ld.startDate, time(NULL) );
-        ldd->ld.loanFreq  = xaccFreqSpecMalloc( gnc_get_current_book() );
-        ldd->ld.repFreq   = xaccFreqSpecMalloc( gnc_get_current_book() );
-        xaccFreqSpecSetMonthly( ldd->ld.repFreq, ldd->ld.startDate, 1 );
-        xaccFreqSpecSetUIType( ldd->ld.repFreq, UIFREQ_MONTHLY );
+        ldd->ld.loan_schedule= NULL;
+        ldd->ld.repayment_schedule = NULL;
+        {
+                Recurrence *r = g_new0(Recurrence, 1);
+                recurrenceSet(r, 1, PERIOD_MONTH, ldd->ld.startDate);
+                ldd->ld.repayment_schedule = g_list_append(ldd->ld.repayment_schedule, r);
+        }
 
         ldd->ld.repMemo = g_strdup( _("Loan") );
         ldd->ld.repAmount = NULL;
@@ -823,13 +826,13 @@
                         = g_new0( RepayOptData, 1 );
 
                 optData->enabled        = FALSE;
-                optData->name           = g_strdup( REPAY_DEFAULTS[i].name );
-                optData->txnMemo        = g_strdup( REPAY_DEFAULTS[i].
-                                                    defaultTxnMemo );
+                optData->name           = g_strdup( _(REPAY_DEFAULTS[i].name) );
+                optData->txnMemo        = g_strdup( _(REPAY_DEFAULTS[i].
+                                                      defaultTxnMemo) );
                 optData->amount         = 0.0;
                 optData->throughEscrowP = REPAY_DEFAULTS[i].escrowDefault;
                 optData->specSrcAcctP   = REPAY_DEFAULTS[i].specSrcAcctDefault;
-                optData->fs             = NULL;
+                optData->schedule       = NULL;
                 optData->startDate      = NULL;
         }
 }
@@ -924,10 +927,10 @@
 {
         g_assert( ldd != NULL );
         g_assert( gstr != NULL );
-        g_string_append_printf( gstr, "pmt( %.5f / 12 : %0.2f : %0.2f : 0 : 0 )",
+        g_string_append_printf( gstr, "pmt( %.5f / 12.0 : %0.2f : %0.2f : 0 : 0 )",
                                 (ldd->ld.interestRate / 100),
                                 ( ldd->ld.numPer
-                                  * ( ldd->ld.perSize == MONTHS ? 1 : 12 ) ) * 1.,
+                                  * ( ldd->ld.perSize == GNC_MONTHS ? 1 : 12 ) ) * 1.,
                                 gnc_numeric_to_double(ldd->ld.principal) );
 }
 
@@ -937,10 +940,10 @@
 {
         g_assert( ldd != NULL );
         g_assert( gstr != NULL );
-        g_string_printf( gstr, "ppmt( %.5f / 12 : i : %0.2f : %0.2f : 0 : 0 )",
+        g_string_printf( gstr, "ppmt( %.5f / 12.0 : i : %0.2f : %0.2f : 0 : 0 )",
                          (ldd->ld.interestRate / 100),
                          ( ldd->ld.numPer
-                           * ( ldd->ld.perSize == MONTHS ? 1 : 12 ) ) * 1.,
+                           * ( ldd->ld.perSize == GNC_MONTHS ? 1 : 12 ) ) * 1.,
                          gnc_numeric_to_double(ldd->ld.principal));
 }
 
@@ -950,10 +953,10 @@
 {
         g_assert( ldd != NULL );
         g_assert( gstr != NULL );
-        g_string_printf( gstr, "ipmt( %.5f / 12 : i : %0.2f : %0.2f : 0 : 0 )",
+        g_string_printf( gstr, "ipmt( %.5f / 12.0 : i : %0.2f : %0.2f : 0 : 0 )",
                          (ldd->ld.interestRate / 100),
                          ( ldd->ld.numPer
-                           * ( ldd->ld.perSize == MONTHS ? 1 : 12 ) ) * 1.,
+                           * ( ldd->ld.perSize == GNC_MONTHS ? 1 : 12 ) ) * 1.,
                          gnc_numeric_to_double( ldd->ld.principal ) );
 }
 
@@ -986,7 +989,7 @@
 
                 g_date_free( ldd->ld.startDate );
                 g_date_free( ldd->ld.varStartDate );
-                xaccFreqSpecFree( ldd->ld.loanFreq );
+                recurrenceListFree(&ldd->ld.loan_schedule);
 
                 if ( ldd->ld.repMemo )
                         g_free( ldd->ld.repMemo );
@@ -1001,8 +1004,8 @@
                         if ( rod->startDate )
                                 g_date_free( rod->startDate );
 
-                        if ( rod->fs )
-                                xaccFreqSpecFree( rod->fs );
+                        if (rod->schedule != NULL)
+                                recurrenceListFree(&rod->schedule);
 
                         g_free( ldd->ld.repayOpts[i] );
                         g_free( ldd->repayOptsUI[i] );
@@ -1053,7 +1056,7 @@
         ldd = (LoanDruidData*)ud;
         index = gtk_combo_box_get_active( ldd->prmType );
         gtk_widget_set_sensitive( GTK_WIDGET(ldd->prmVarFrame),
-                                  index != FIXED );
+                                  index != GNC_FIXED );
 }
 
 static
@@ -1163,10 +1166,11 @@
         ldd->ld.principal = gnc_amount_edit_get_amount( ldd->prmOrigPrincGAE );
         ldd->ld.interestRate = gtk_spin_button_get_value( ldd->prmIrateSpin );
         ldd->ld.type = gtk_combo_box_get_active( ldd->prmType );
-        if ( ldd->ld.type != FIXED ) {
-                gnc_frequency_save_state( ldd->prmVarGncFreq,
-                                          ldd->ld.loanFreq,
-                                          ldd->ld.varStartDate );
+        if ( ldd->ld.type != GNC_FIXED ) {
+                recurrenceListFree(&ldd->ld.loan_schedule);
+                gnc_frequency_save_to_recurrence(ldd->prmVarGncFreq,
+                                                 &ldd->ld.loan_schedule,
+                                                 ldd->ld.varStartDate);
         }
 
         /* start date */
@@ -1186,7 +1190,7 @@
         {
                 ldd->ld.perSize =
                         (gtk_combo_box_get_active( ldd->prmLengthType )
-                         == MONTHS) ? MONTHS : YEARS;
+                         == GNC_MONTHS) ? GNC_MONTHS : GNC_YEARS;
                 ldd->ld.numPer =
                         gtk_spin_button_get_value_as_int( ldd->prmLengthSpin );
                 ldd->ld.numMonRemain =
@@ -1205,10 +1209,10 @@
         gnc_amount_edit_set_amount( ldd->prmOrigPrincGAE, ldd->ld.principal );
         gtk_spin_button_set_value( ldd->prmIrateSpin, ldd->ld.interestRate );
         gtk_combo_box_set_active( ldd->prmType, ldd->ld.type );
-        if ( ldd->ld.type != FIXED ) {
-                gnc_frequency_setup( ldd->prmVarGncFreq,
-                                     ldd->ld.loanFreq,
-                                     ldd->ld.varStartDate );
+        if ( ldd->ld.type != GNC_FIXED ) {
+                gnc_frequency_setup_recurrence(ldd->prmVarGncFreq,
+                                               ldd->ld.loan_schedule,
+                                               ldd->ld.varStartDate);
         }
 
         /* start date */
@@ -1324,9 +1328,10 @@
                                    "\"interest\" account.") );
                 return TRUE;
         }
-        gnc_frequency_save_state( ldd->repGncFreq,
-                                  ldd->ld.repFreq,
-                                  ldd->ld.repStartDate );
+        recurrenceListFree(&ldd->ld.repayment_schedule);
+        gnc_frequency_save_to_recurrence(ldd->repGncFreq,
+                                         &ldd->ld.repayment_schedule,
+                                         ldd->ld.repStartDate);
 
         /* Set the 'from' accounts of the various options to be the
          * Assets-From account, if they're not already something else. */
@@ -1411,9 +1416,9 @@
                                      ldd->ld.repPriAcct );
         gnc_account_sel_set_account( ldd->repIntToGAS,
                                      ldd->ld.repIntAcct );
-        gnc_frequency_setup( ldd->repGncFreq,
-                             ldd->ld.repFreq,
-                             ldd->ld.repStartDate );
+        gnc_frequency_setup_recurrence(ldd->repGncFreq,
+                                       ldd->ld.repayment_schedule,
+                                       ldd->ld.repStartDate);
 }
 
 static
@@ -1477,7 +1482,7 @@
 
         gnc_account_sel_set_account( ldd->payAcctToGAS,   rod->to );
 
-        uniq = (rod->fs != NULL);
+        uniq = (rod->schedule != NULL);
         gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(ldd->payTxnFreqPartRb),
                                       !uniq );
         gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(ldd->payTxnFreqUniqRb),
@@ -1485,8 +1490,7 @@
         gtk_widget_set_sensitive( GTK_WIDGET(ldd->payFreqAlign),
                                   uniq );
         if ( uniq ) {
-                gnc_frequency_setup( ldd->payGncFreq,
-                                     rod->fs, rod->startDate );
+                gnc_frequency_setup_recurrence( ldd->payGncFreq, rod->schedule, rod->startDate );
         }
 
         g_string_free( str, TRUE );
@@ -1548,22 +1552,20 @@
          */
 
         /* neither of these should happen. */
-        g_assert( ! (rod->fs && !rod->startDate) );
-        g_assert( ! (!rod->fs && rod->startDate) );
+        g_assert( ! (rod->schedule && !rod->startDate) );
+        g_assert( ! (!rod->schedule && rod->startDate) );
 
         if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ldd->payTxnFreqUniqRb)) ) {
-                if ( rod->fs == NULL ) {
-                        rod->fs = xaccFreqSpecMalloc( gnc_get_current_book() );
-                }
                 if ( rod->startDate == NULL ) {
                         rod->startDate = g_date_new();
                 }
-                gnc_frequency_save_state( ldd->payGncFreq,
-                                          rod->fs, rod->startDate );
+                recurrenceListFree(&rod->schedule);
+                gnc_frequency_save_to_recurrence(ldd->payGncFreq,
+                                                 &rod->schedule,
+                                                 rod->startDate);
         } else {
-                if ( rod->fs ) {
-                        xaccFreqSpecFree( rod->fs );
-                        rod->fs = NULL;
+                if (rod->schedule) {
+                        recurrenceListFree(&rod->schedule);
                 }
                 if ( rod->startDate ) {
                         g_date_free( rod->startDate );
@@ -1655,17 +1657,18 @@
                 RepayOptData *rod;
                 rod = ldd->ld.repayOpts[ ldd->currentIdx ];
 
-                if ( rod->fs == NULL ) {
-                        rod->fs = xaccFreqSpecMalloc( gnc_get_current_book() );
-                        xaccFreqSpecSetMonthly( rod->fs, ldd->ld.startDate, 1 );
-                        xaccFreqSpecSetUIType( rod->fs, UIFREQ_MONTHLY );
+                if ( rod->schedule == NULL ) {
+                        Recurrence *r = g_new0(Recurrence, 1);
+                        recurrenceSet(r, 1, PERIOD_MONTH, ldd->ld.startDate);
+                        rod->schedule = g_list_append(rod->schedule, r);
                 }
                 if ( rod->startDate == NULL ) {
                         rod->startDate = g_date_new();
                         *rod->startDate = *ldd->ld.startDate;
                 }
-                gnc_frequency_setup( ldd->payGncFreq,
-                                     rod->fs, rod->startDate );
+                gnc_frequency_setup_recurrence(ldd->payGncFreq,
+                                               rod->schedule,
+                                               rod->startDate);
         }
 }
 
@@ -1898,51 +1901,28 @@
 
 }
 
-#if 0
-static
-void
-ld_gnc_ttinfo_free( gpointer data, gpointer ud )
+static int
+ld_calc_sx_instance_num(GDate *start_date, GList *schedule)
 {
-        gnc_ttinfo_free( (TTInfo*)data );
-}
-#endif
+    int instance_count;
+    GDate next_date, today;
 
-static
-int
-ld_calc_current_instance_num( int monthsPassed, FreqSpec *fs )
-{
-        float mult = 1.0;
-        UIFreqType uift;
-        uift = xaccFreqSpecGetUIType( fs );
-        switch ( uift ) {
-        case UIFREQ_WEEKLY:
-        {
-                int wMult, dow;
-                xaccFreqSpecGetWeekly( fs, &wMult, &dow );
-                mult = (4.0 / wMult);
-        }
-        break;
-        case UIFREQ_BI_WEEKLY:
-        case UIFREQ_SEMI_MONTHLY:
-                mult = 2.0;
-                break;
-        case UIFREQ_MONTHLY:
-        case UIFREQ_QUARTERLY:
-        case UIFREQ_TRI_ANUALLY:
-        case UIFREQ_SEMI_YEARLY:
-        case UIFREQ_YEARLY:
-        {
-                int mMult, dom, offset;
-                xaccFreqSpecGetMonthly( fs, &mMult, &dom, &offset );
-                mult = ( 1.0 / mMult );
-        }
-        break;
-        default:
-                PERR( "Wacky loan repayment frequency [%d]", uift );
-                break;
-        }
+    g_date_clear(&next_date, 1);
+    g_date_clear(&today, 1);
+    g_date_set_time_t(&today, time(NULL));
 
-        return floor( monthsPassed * mult );
+    if (g_date_compare(start_date, &today) > 0)
+        return 0;
+
+    instance_count = -1;
+    do
+    {
+        instance_count++;
+        recurrenceListNextInstance(schedule, start_date, &next_date);
+    }
+    while (g_date_compare(&next_date, &today) < 0);
+
+    return instance_count;
 }
 
 static
@@ -1981,11 +1961,12 @@
 ld_create_sx_from_tcSX( LoanDruidData *ldd, toCreateSX *tcSX )
 {
         SchedXaction *sx;
-        GList *ttxnList, *sxList;
+        SchedXactions *sxes;
+        GList *ttxnList;
 
         sx = xaccSchedXactionMalloc( gnc_get_current_book() );
         xaccSchedXactionSetName( sx, tcSX->name );
-        xaccSchedXactionSetFreqSpec( sx, tcSX->freq );
+        gnc_sx_set_schedule(sx, tcSX->schedule);
         xaccSchedXactionSetStartDate( sx, &tcSX->start );
         xaccSchedXactionSetLastOccurDate( sx, &tcSX->last );
         xaccSchedXactionSetEndDate( sx, &tcSX->end );
@@ -2002,9 +1983,8 @@
         xaccSchedXactionSetTemplateTrans( sx, ttxnList,
                                           gnc_get_current_book() );
 
-        sxList = gnc_book_get_schedxactions( gnc_get_current_book() );
-        sxList = g_list_append( sxList, sx );
-        gnc_book_set_schedxactions( gnc_get_current_book(), sxList );
+        sxes = gnc_book_get_schedxactions(gnc_get_current_book());
+        gnc_sxes_add_sx(sxes, sx);
 
         g_list_free( ttxnList );
         ttxnList = NULL;
@@ -2013,7 +1993,7 @@
 /**
  * Does the work to setup the given toCreateSX structure for a specific
  * repayment.  Note that if the RepayOptData doesn't specify a unique
- * FreqSpec, the paymentSX and the tcSX parameters will be the same.
+ * schedule, the paymentSX and the tcSX parameters will be the same.
  **/
 static
 void
@@ -2255,7 +2235,7 @@
 {
         /* The main loan-payment SX.*/
         toCreateSX *paymentSX = NULL;
-        /* A GList of any other repayment SXes with different FreqSpecs. */
+        /* A GList of any other repayment SXes with different schedule. */
         GList *repaySXes = NULL;
         /* The currently-being-referenced toCreateSX. */
         toCreateSX *tcSX;
@@ -2273,11 +2253,11 @@
                 paymentSX->end = *ldd->ld.repStartDate;
                 g_date_add_months( &paymentSX->end, ldd->ld.numMonRemain - 1);
         }
-        paymentSX->freq = ldd->ld.repFreq;
+        paymentSX->schedule = ldd->ld.repayment_schedule;
         /* Figure out the correct current instance-count for the txns in the
          * SX. */
         paymentSX->instNum =
-                (ldd->ld.numPer * ( ldd->ld.perSize == YEARS ? 12 : 1 ))
+                (ldd->ld.numPer * ( ldd->ld.perSize == GNC_YEARS ? 12 : 1 ))
                 - ldd->ld.numMonRemain + 1;
 
         paymentSX->mainTxn = gnc_ttinfo_malloc();
@@ -2431,7 +2411,7 @@
                         continue;
 
                 tcSX = paymentSX;
-                if ( rod->fs != NULL ) {
+                if ( rod->schedule != NULL ) {
                         tcSX = g_new0( toCreateSX, 1 );
                         gstr = g_string_new( ldd->ld.repMemo );
                         g_string_append_printf( gstr, " - %s",
@@ -2443,13 +2423,13 @@
                                 tcSX->end = tcSX->last;
                                 g_date_add_months( &tcSX->end, ldd->ld.numMonRemain );
                         }
-                        tcSX->freq    = rod->fs;
+                        tcSX->schedule = rod->schedule;
                         /* So it won't get destroyed when the close the
                          * Druid. */
-                        tcSX->instNum = ld_calc_current_instance_num( paymentSX->instNum,
-                                                                      rod->fs );
-                        rod->fs       = NULL;
-                        tcSX->mainTxn   = gnc_ttinfo_malloc();
+                        tcSX->instNum =
+                            ld_calc_sx_instance_num(&tcSX->start, rod->schedule);
+                        rod->schedule = NULL;
+                        tcSX->mainTxn = gnc_ttinfo_malloc();
                         gnc_ttinfo_set_currency( tcSX->mainTxn,
                                                  gnc_default_currency() );
                         gnc_ttinfo_set_description( tcSX->mainTxn,
@@ -2564,7 +2544,7 @@
         endDateMath = g_new0( struct tm, 1 );
         g_date_to_struct_tm( ldd->ld.startDate, endDateMath );
         monthsTotal = ( (ldd->ld.numPer - 1)
-                        * ( ldd->ld.perSize == MONTHS ? 1 : 12 ) );
+                        * ( ldd->ld.perSize == GNC_MONTHS ? 1 : 12 ) );
         endDateMath->tm_mon += monthsTotal;
         g_date_set_time_t( end, mktime( endDateMath ) );
         g_free( endDateMath );
@@ -2641,20 +2621,21 @@
 {
         GDate start, end;
         gnc_numeric *rowNumData;
-        GHashTable *schedule;
+        GHashTable *repayment_schedule;
 
         g_date_clear( &start, 1 );
         g_date_clear( &end, 1 );
         ld_get_loan_range( ldd, &start, &end );
 
-        /* The schedule is a hash of GDates to row-of-gnc_numeric[N] data,
-         * where N is the number of columns as determined by the _prep
-         * function, and stored in LoanData::revNumPmts. */
-        schedule = g_hash_table_new( g_date_hash, g_date_equals );
+        /* The repayment_schedule is a hash of GDates to
+         * row-of-gnc_numeric[N] data, where N is the number of columns as
+         * determined by the _prep function, and stored in
+         * LoanData::revNumPmts. */
+        repayment_schedule = g_hash_table_new( g_date_hash, g_date_equals );
 
         /* Do the master repayment */
         {
-                GDate curDate;
+                GDate curDate, nextDate;
                 GString *pmtFormula, *ppmtFormula, *ipmtFormula;
                 int i;
                 GHashTable *ivar;
@@ -2670,20 +2651,21 @@
                 g_date_clear( &curDate, 1 );
                 curDate = start;
                 g_date_subtract_days( &curDate, 1 );
-                xaccFreqSpecGetNextInstance( ldd->ld.repFreq,
-                                             &curDate, &curDate );
+                g_date_clear(&nextDate, 1);
+                recurrenceListNextInstance(ldd->ld.repayment_schedule, &curDate, &nextDate);
                 for ( i=1;
-                      g_date_valid( &curDate )
-                      && g_date_compare( &curDate, &end ) <= 0 ;
+                      g_date_valid( &nextDate )
+                      && g_date_compare( &nextDate, &end ) <= 0 ;
                       i++,
-                      xaccFreqSpecGetNextInstance( ldd->ld.repFreq,
-                                                   &curDate, &curDate ) )
+                      curDate = nextDate,
+                      recurrenceListNextInstance(ldd->ld.repayment_schedule,
+                                                 &curDate, &nextDate))
                 {
                         gnc_numeric ival;
                         gnc_numeric val;
                         char *eloc;
                         rowNumData =
-                                (gnc_numeric*)g_hash_table_lookup( schedule,
+                                (gnc_numeric*)g_hash_table_lookup( repayment_schedule,
                                                                    &curDate );
                         if ( rowNumData == NULL) {
                                 int j;
@@ -2695,7 +2677,7 @@
                                 for ( j=0; j<ldd->ld.revNumPmts; j++ ) {
                                         rowNumData[j] = gnc_numeric_error( GNC_ERROR_ARG );
                                 }
-                                g_hash_table_insert( schedule,
+                                g_hash_table_insert( repayment_schedule,
                                                      (gpointer)dateKeyCopy,
                                                      (gpointer)rowNumData );
                         }
@@ -2740,32 +2722,35 @@
         /* Process any other enabled payments. */
         {
                 int i;
-                GDate curDate;
-                FreqSpec *fs;
+                GDate curDate, nextDate;
+                GList *schedule;
 
                 for ( i=0; i<ldd->ld.repayOptCount; i++ )
                 {
                         if ( ! ldd->ld.repayOpts[i]->enabled )
                                 continue;
 
-                        fs = ( ldd->ld.repayOpts[i]->fs != NULL
-                               ? ldd->ld.repayOpts[i]->fs
-                               : ldd->ld.repFreq );
+                        schedule
+                                = ( ldd->ld.repayOpts[i]->schedule != NULL
+                                    ? ldd->ld.repayOpts[i]->schedule
+                                    : ldd->ld.repayment_schedule );
 
                         g_date_clear( &curDate, 1 );
                         curDate = start;
                         g_date_subtract_days( &curDate, 1 );
-                        xaccFreqSpecGetNextInstance( fs, &curDate, &curDate );
-                        for ( ; g_date_valid( &curDate )
-                                && g_date_compare( &curDate, &end ) <= 0;
-                              xaccFreqSpecGetNextInstance(
-                                      fs, &curDate, &curDate ) )
+                        g_date_clear(&nextDate, 1);
+                        recurrenceListNextInstance(schedule, &curDate, &nextDate );
+                        for ( ; g_date_valid( &nextDate )
+                                && g_date_compare( &nextDate, &end ) <= 0;
+                              curDate = nextDate,
+                              recurrenceListNextInstance(
+                                      schedule, &curDate, &nextDate ) )
                         {
                                 gint gncn_how =
                                         GNC_DENOM_SIGFIGS(2)
                                         | GNC_RND_ROUND;
                                 gnc_numeric val;
-                                rowNumData = (gnc_numeric*)g_hash_table_lookup( schedule,
+                                rowNumData = (gnc_numeric*)g_hash_table_lookup( repayment_schedule,
                                                                                 &curDate );
                                 if ( rowNumData == NULL ) {
                                         int j;
@@ -2777,7 +2762,7 @@
                                         for ( j=0; j<ldd->ld.revNumPmts; j++ ) {
                                                 rowNumData[j] = gnc_numeric_error( GNC_ERROR_ARG );
                                         }
-                                        g_hash_table_insert( schedule,
+                                        g_hash_table_insert( repayment_schedule,
                                                              (gpointer)dateKeyCopy,
                                                              (gpointer)rowNumData );
                                 }
@@ -2801,11 +2786,11 @@
                         g_list_free( ldd->ld.revSchedule );
                         ldd->ld.revSchedule = NULL;
                 }
-                g_hash_table_foreach( schedule, ld_rev_hash_to_list,
+                g_hash_table_foreach( repayment_schedule, ld_rev_hash_to_list,
                                       &ldd->ld.revSchedule );
-                g_hash_table_foreach( schedule, ld_rev_hash_free_date_keys,
+                g_hash_table_foreach( repayment_schedule, ld_rev_hash_free_date_keys,
                                       NULL );
-                g_hash_table_destroy( schedule );
+                g_hash_table_destroy( repayment_schedule );
                 ldd->ld.revSchedule =
                         g_list_sort( ldd->ld.revSchedule, (GCompareFunc)g_date_compare );
         }

Modified: gnucash/branches/gda-dev/src/gnome/druid-merge.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/druid-merge.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/druid-merge.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -38,7 +38,6 @@
 #include "druid-hierarchy.h"
 #include "gnc-ui-util.h"
 #include "Account.h"
-#include "Group.h"
 
 GtkWidget               *druid_hierarchy_window = NULL;
 static GtkWidget        *qsf_import_merge_window = NULL;
@@ -197,12 +196,15 @@
 	}
 }
 
+/* If the account has no parent, shove it into the top level under the root. */
 void reference_parent_cb ( QofEntity* ent, gpointer user_data)
 {
+	Account *root;
+
 	if(!ent) return;
-	if(xaccAccountGetParent((Account*)ent) == NULL) {
-		xaccGroupInsertAccount(xaccGroupGetRoot(
-			xaccGetAccountGroup(targetBook)), (Account*)ent);
+	if(gnc_account_get_parent((Account*)ent) == NULL) {
+		root = gnc_book_get_root_account(targetBook);
+		gnc_account_append_child(root, (Account*)ent);
 	}
 }
 

Modified: gnucash/branches/gda-dev/src/gnome/druid-merge.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome/druid-merge.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/druid-merge.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -81,7 +81,7 @@
 /** \brief 	gncCommodity is not QOF enabled, need to set a default commodity before the merge */
 void currency_transfer_cb ( QofEntity* ent, gpointer user_data);
 
-/** \brief workaround for AccountGroup not being fully QOF enabled. */
+/** \brief workaround for AccountGroup not being fully QOF enabled. Eh? */
 void reference_parent_cb ( QofEntity* ent, gpointer user_data);
 
 /** @} */

Modified: gnucash/branches/gda-dev/src/gnome/druid-stock-split.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/druid-stock-split.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/druid-stock-split.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -27,7 +27,6 @@
 #include <gnome.h>
 #include <glib/gi18n.h>
 
-#include "Group.h"
 #include "Transaction.h"
 #include "dialog-utils.h"
 #include "druid-stock-split.h"
@@ -132,7 +131,7 @@
 
   gtk_list_store_clear (list);
 
-  accounts = xaccGroupGetSubAccountsSorted (gnc_get_current_group ());
+  accounts = gnc_account_get_descendants_sorted (gnc_get_current_root_account ());
   for (node = accounts; node; node = node->next)
   {
     Account *account = node->data;
@@ -226,7 +225,7 @@
                                 xaccAccountGetCommoditySCU (account));
 
   commodity = xaccAccountGetCommodity (account);
-  book = xaccAccountGetBook (account);
+  book = gnc_account_get_book (account);
   db = gnc_book_get_pricedb(book);
 
   prices = gnc_pricedb_lookup_latest_any_currency(db, commodity);

Modified: gnucash/branches/gda-dev/src/gnome/glade/account.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/account.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/account.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -118,6 +119,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -142,6 +147,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -176,6 +185,10 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">name_entry</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -201,6 +214,10 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">code_entry</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -226,6 +243,10 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">description_entry</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -250,6 +271,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -294,6 +319,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -319,6 +348,10 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">notes_text</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -518,6 +551,7 @@
 1/10000
 1/100000
 1/1000000</property>
+			      <property name="add_tearoffs">False</property>
 			      <property name="focus_on_click">True</property>
 			    </widget>
 			  </child>
@@ -571,6 +605,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">type_view</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -595,6 +633,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -619,6 +661,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">2</property>
@@ -643,6 +689,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">3</property>
@@ -667,6 +717,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">3</property>
@@ -696,6 +750,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">True</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -755,6 +811,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -790,6 +850,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -814,6 +878,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -838,6 +906,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -960,6 +1032,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -998,6 +1074,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -1110,6 +1190,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1142,6 +1226,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="hierarchy_druid">
@@ -1186,6 +1271,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1213,6 +1302,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1251,6 +1344,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1296,6 +1393,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1336,6 +1437,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1373,6 +1478,8 @@
 				      <property name="reorderable">True</property>
 				      <property name="enable_search">True</property>
 				      <property name="fixed_height_mode">False</property>
+				      <property name="hover_selection">False</property>
+				      <property name="hover_expand">False</property>
 				    </widget>
 				  </child>
 				</widget>
@@ -1465,6 +1572,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -1556,6 +1667,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1643,6 +1758,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">1</property>
 		  <property name="ypad">1</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">5</property>
@@ -1706,6 +1825,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1797,6 +1917,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -1817,6 +1941,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -1870,6 +1998,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="druid2">
@@ -1913,6 +2042,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1952,6 +2085,7 @@
 			      <property name="items">USD
 GBP
 EUR</property>
+			      <property name="add_tearoffs">False</property>
 			      <property name="focus_on_click">True</property>
 			    </widget>
 			  </child>
@@ -1971,6 +2105,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="type">label_item</property>
@@ -2046,6 +2184,8 @@
 					  <property name="reorderable">False</property>
 					  <property name="enable_search">True</property>
 					  <property name="fixed_height_mode">False</property>
+					  <property name="hover_selection">False</property>
+					  <property name="hover_expand">False</property>
 					</widget>
 				      </child>
 				    </widget>
@@ -2066,6 +2206,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="type">label_item</property>
@@ -2143,6 +2287,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="type">label_item</property>
@@ -2198,6 +2346,8 @@
 				      <property name="reorderable">False</property>
 				      <property name="enable_search">True</property>
 				      <property name="fixed_height_mode">False</property>
+				      <property name="hover_selection">False</property>
+				      <property name="hover_expand">False</property>
 				    </widget>
 				  </child>
 				</widget>
@@ -2218,6 +2368,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="type">label_item</property>
@@ -2273,6 +2427,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">1</property>
 		  <property name="ypad">1</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2299,6 +2457,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -2336,6 +2496,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -2402,6 +2563,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -2429,6 +2594,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2535,6 +2704,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -2559,6 +2732,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -2605,6 +2782,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2647,6 +2828,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -2760,6 +2945,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2866,6 +3055,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -2890,6 +3083,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -2941,6 +3138,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gppat_filter_response_cb" last_modification_time="Fri, 30 Dec 2005 01:57:50 GMT"/>
 
@@ -3019,6 +3217,8 @@
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
 		  <property name="fixed_height_mode">False</property>
+		  <property name="hover_selection">False</property>
+		  <property name="hover_expand">False</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -3101,6 +3301,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -3177,6 +3381,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -3207,6 +3415,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_account_renumber_response_cb" last_modification_time="Sat, 18 Mar 2006 21:52:03 GMT"/>
 
@@ -3281,7 +3490,7 @@
 		      <child>
 			<widget class="GtkLabel" id="label8477439">
 			  <property name="visible">True</property>
-			  <property name="label">_Renumber</property>
+			  <property name="label" translatable="yes">_Renumber</property>
 			  <property name="use_underline">True</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -3291,6 +3500,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -3335,6 +3548,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -3359,6 +3576,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -3405,6 +3626,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -3429,6 +3654,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -3453,6 +3682,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -3499,6 +3732,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/acctperiod.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/acctperiod.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/acctperiod.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="acct_period_druid">
@@ -68,6 +69,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -107,6 +112,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -148,6 +157,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -169,6 +182,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -199,6 +216,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -223,6 +244,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -284,7 +309,7 @@
 		      <property name="max_length">0</property>
 		      <property name="text" translatable="yes"></property>
 		      <property name="has_frame">True</property>
-		      <property name="invisible_char" translatable="yes">*</property>
+		      <property name="invisible_char">*</property>
 		      <property name="activates_default">False</property>
 		    </widget>
 		    <packing>

Modified: gnucash/branches/gda-dev/src/gnome/glade/budget.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/budget.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/budget.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -81,6 +82,8 @@
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
 		  <property name="fixed_height_mode">False</property>
+		  <property name="hover_selection">False</property>
+		  <property name="hover_expand">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -167,6 +170,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -220,6 +224,10 @@
 		  <property name="yalign">0</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -265,6 +273,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -359,6 +371,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -404,6 +420,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -461,6 +481,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -490,6 +514,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="RecurrenceEntryVBox">
@@ -516,6 +541,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -551,6 +580,7 @@
 week(s)
 month(s)
 year(s)</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	    </widget>
 	    <packing>
@@ -586,6 +616,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -684,6 +718,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="SampleOptions">
@@ -704,6 +739,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -734,6 +773,7 @@
       <child>
 	<widget class="GtkComboBoxEntry" id="SampleComboBoxEntry">
 	  <property name="visible">True</property>
+	  <property name="add_tearoffs">False</property>
 	  <property name="has_frame">True</property>
 	  <property name="focus_on_click">True</property>
 	</widget>
@@ -855,6 +895,7 @@
       <child>
 	<widget class="GtkComboBox" id="SampleComboBox">
 	  <property name="visible">True</property>
+	  <property name="add_tearoffs">False</property>
 	  <property name="focus_on_click">True</property>
 	</widget>
 	<packing>
@@ -901,6 +942,8 @@
 	      <property name="reorderable">False</property>
 	      <property name="enable_search">True</property>
 	      <property name="fixed_height_mode">False</property>
+	      <property name="hover_selection">False</property>
+	      <property name="hover_expand">False</property>
 	    </widget>
 	  </child>
 	</widget>
@@ -995,6 +1038,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkLabel" id="label91">
@@ -1009,6 +1053,10 @@
       <property name="yalign">0.5</property>
       <property name="xpad">0</property>
       <property name="ypad">0</property>
+      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+      <property name="width_chars">-1</property>
+      <property name="single_line_mode">False</property>
+      <property name="angle">0</property>
     </widget>
   </child>
 </widget>
@@ -1026,6 +1074,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1092,6 +1141,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1137,6 +1190,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1161,6 +1218,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/chart-export.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/chart-export.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/chart-export.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
   <signal name="response" handler="chart_export_response_cb" last_modification_time="Mon, 23 Jan 2006 04:43:46 GMT"/>
 
@@ -103,6 +104,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -146,6 +151,10 @@
 	      <property name="yalign">0.519999980927</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -169,6 +178,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -192,6 +205,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/commodities.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/commodities.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/commodities.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_commodities_dialog_response" last_modification_time="Wed, 23 Jul 2003 02:18:14 GMT"/>
   <signal name="destroy" handler="gnc_commodities_window_destroy_cb" last_modification_time="Wed, 23 Jul 2003 02:20:32 GMT"/>
@@ -119,6 +120,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -175,6 +180,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -202,6 +211,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/fincalc.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/fincalc.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/fincalc.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
   <signal name="response" handler="fincalc_response_cb" last_modification_time="Sun, 22 Jan 2006 03:12:48 GMT"/>
 
@@ -112,6 +113,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -159,6 +164,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -204,6 +213,10 @@
 			      <property name="yalign">0.75</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -287,6 +300,10 @@
 			      <property name="yalign">0.75</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -368,6 +385,10 @@
 			      <property name="yalign">0.75</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -449,6 +470,10 @@
 			      <property name="yalign">0.75</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -530,6 +555,10 @@
 			      <property name="yalign">0.75</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -669,6 +698,10 @@
 					      <property name="yalign">0.5</property>
 					      <property name="xpad">0</property>
 					      <property name="ypad">0</property>
+					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					      <property name="width_chars">-1</property>
+					      <property name="single_line_mode">False</property>
+					      <property name="angle">0</property>
 					    </widget>
 					    <packing>
 					      <property name="padding">0</property>
@@ -738,6 +771,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -780,6 +817,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -804,6 +845,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">1</property>
@@ -828,6 +873,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -852,6 +901,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -934,6 +987,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -972,6 +1029,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -1009,6 +1070,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -1047,6 +1112,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -1119,6 +1188,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -1143,6 +1216,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -1168,6 +1245,7 @@
 Weekly
 Daily (360)
 Daily (365)</property>
+			  <property name="add_tearoffs">False</property>
 			  <property name="focus_on_click">True</property>
 			</widget>
 			<packing>
@@ -1194,6 +1272,7 @@
 Weekly
 Daily (360)
 Daily (365)</property>
+			  <property name="add_tearoffs">False</property>
 			  <property name="focus_on_click">True</property>
 			</widget>
 			<packing>
@@ -1245,6 +1324,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1330,6 +1410,10 @@
 		  <property name="yalign">1</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1351,6 +1435,10 @@
 		  <property name="yalign">1</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1372,6 +1460,10 @@
 		  <property name="yalign">1</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1393,6 +1485,10 @@
 		  <property name="yalign">1</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/lots.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/lots.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/lots.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="lv_response_cb" last_modification_time="Sun, 22 May 2005 21:32:09 GMT"/>
   <signal name="destroy" handler="lv_window_destroy_cb" last_modification_time="Sun, 22 May 2005 21:17:37 GMT"/>
@@ -90,6 +91,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -163,6 +168,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -192,82 +201,7 @@
 	    </widget>
 	  </child>
 
-<!-- The View button is not implemented, remove it
 	  <child>
-	    <widget class="GtkButton" id="regview button">
-	      <property name="visible">True</property>
-	      <property name="sensitive">False</property>
-	      <property name="tooltip" translatable="yes">Open a register showing the transactions in this lot</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">1</property>
-
-	      <child>
-		<widget class="GtkAlignment" id="alignment3">
-		  <property name="visible">True</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xscale">0</property>
-		  <property name="yscale">0</property>
-		  <property name="top_padding">0</property>
-		  <property name="bottom_padding">0</property>
-		  <property name="left_padding">0</property>
-		  <property name="right_padding">0</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox4">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkImage" id="image3">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-jump-to</property>
-			  <property name="icon_size">4</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label18">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_View</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
- -->
-
-	  <child>
 	    <widget class="GtkButton" id="button5">
 	      <property name="visible">True</property>
 	      <property name="can_default">True</property>
@@ -351,6 +285,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -413,6 +351,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -437,6 +379,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -475,6 +421,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -504,6 +454,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">False</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -550,6 +502,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -591,6 +547,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 
@@ -606,6 +566,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 
@@ -621,6 +585,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 
@@ -636,6 +604,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 
@@ -651,6 +623,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 
@@ -666,6 +642,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 
@@ -681,6 +661,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 		    </widget>

Modified: gnucash/branches/gda-dev/src/gnome/glade/merge.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/merge.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/merge.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="merge_druid">
@@ -92,6 +93,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -137,6 +142,10 @@
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
 				      <property name="mnemonic_widget">MergeUpdate</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				  </child>
 				</widget>
@@ -172,6 +181,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/newuser.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/newuser.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/newuser.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -108,6 +109,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -138,6 +143,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -240,6 +249,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -331,6 +341,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -355,6 +369,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/price.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/price.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/price.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_prices_dialog_response" last_modification_time="Tue, 25 Nov 2003 06:49:39 GMT"/>
   <signal name="destroy" handler="gnc_prices_dialog_window_destroy_cb" last_modification_time="Tue, 25 Nov 2003 07:56:53 GMT"/>
@@ -170,6 +171,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -242,6 +247,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -314,6 +323,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -351,6 +364,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="pedit_dialog_response_cb" last_modification_time="Sun, 22 Jan 2006 20:18:04 GMT"/>
 
@@ -422,6 +436,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -446,6 +464,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -470,6 +492,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -494,6 +520,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">source_entry</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -519,6 +549,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">type_combobox</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -543,6 +577,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -662,6 +700,7 @@
 Last
 Net Asset Value
 Unknown</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	      <signal name="changed" handler="pedit_data_changed_cb" last_modification_time="Sun, 22 Jan 2006 20:04:30 GMT"/>
 	    </widget>
@@ -699,6 +738,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -768,6 +808,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -838,6 +882,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -862,6 +910,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/print.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/print.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/print.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_ui_print_check_response_cb" last_modification_time="Sun, 22 Jan 2006 21:24:04 GMT"/>
 
@@ -111,6 +112,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">check_format_combobox</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -136,6 +141,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">check_position_combobox</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -160,6 +169,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -178,8 +191,9 @@
 Deluxe(tm) Personal Checks US-Letter
 Quicken(tm) Wallet Checks w/ side stub
 Custom</property>
+		  <property name="add_tearoffs">False</property>
 		  <property name="focus_on_click">True</property>
-		  <signal name="changed" handler="gnc_print_check_combobox_changed" last_modification_time="Sat, 28 Jan 2006 04:19:16 GMT"/>
+		  <signal name="changed" handler="gnc_print_check_format_changed" last_modification_time="Sat, 03 Mar 2007 22:06:00 GMT"/>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -197,8 +211,9 @@
 Middle
 Bottom
 Custom</property>
+		  <property name="add_tearoffs">False</property>
 		  <property name="focus_on_click">True</property>
-		  <signal name="changed" handler="gnc_print_check_combobox_changed" last_modification_time="Sat, 28 Jan 2006 04:19:41 GMT"/>
+		  <signal name="changed" handler="gnc_print_check_position_changed" last_modification_time="Sat, 03 Mar 2007 22:06:12 GMT"/>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -229,6 +244,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -238,7 +257,7 @@
 	  <child>
 	    <widget class="GtkTable" id="custom_table">
 	      <property name="visible">True</property>
-	      <property name="n_rows">9</property>
+	      <property name="n_rows">13</property>
 	      <property name="n_columns">3</property>
 	      <property name="homogeneous">False</property>
 	      <property name="row_spacing">0</property>
@@ -257,6 +276,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -281,6 +304,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -306,6 +333,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">payee_x_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -331,6 +362,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">date_x_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -356,6 +391,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">amount_words_x_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -381,6 +420,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">amount_numbers_x_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -395,7 +438,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label708">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Memo:</property>
+		  <property name="label" translatable="yes">_Notes:</property>
 		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_CENTER</property>
@@ -405,7 +448,11 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">memo_x_entry</property>
+		  <property name="mnemonic_widget">notes_x_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -506,7 +553,7 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkSpinButton" id="memo_x_entry">
+		<widget class="GtkSpinButton" id="notes_x_entry">
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
 		  <property name="climb_rate">1</property>
@@ -616,7 +663,7 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkSpinButton" id="memo_y_entry">
+		<widget class="GtkSpinButton" id="notes_y_entry">
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
 		  <property name="climb_rate">1</property>
@@ -644,6 +691,7 @@
 Centimeters
 Millimeters
 Points</property>
+		  <property name="add_tearoffs">False</property>
 		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
@@ -670,6 +718,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">units_combobox</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -716,6 +768,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">translation_x_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -741,6 +797,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">check_rotation_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -793,6 +853,201 @@
 		  <property name="y_options"></property>
 		</packing>
 	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="upper_left">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">The origin point is the upper left-hand corner of the page.</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="lower_left">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">The origin point is the lower left-hand corner of the page.</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">10</property>
+		  <property name="bottom_attach">11</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="rotation_units">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Degrees</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_padding">6</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label847681">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes"> </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">11</property>
+		  <property name="bottom_attach">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="save_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="gnc_print_check_save_button_clicked" last_modification_time="Thu, 15 Mar 2007 03:09:02 GMT"/>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment1">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">0</property>
+		      <property name="yscale">0</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">0</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox1">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">2</property>
+
+			  <child>
+			    <widget class="GtkImage" id="image1">
+			      <property name="visible">True</property>
+			      <property name="stock">gtk-save-as</property>
+			      <property name="icon_size">4</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="label847682">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">_Save format</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">12</property>
+		  <property name="bottom_attach">13</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="tab_expand">False</property>
@@ -813,6 +1068,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/progress.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/progress.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/progress.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkVBox" id="vbox85">
@@ -39,6 +40,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -53,6 +58,7 @@
 	  <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
 	  <property name="fraction">0</property>
 	  <property name="pulse_step">0.10000000149</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/reconcile.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/reconcile.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/reconcile.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -84,6 +85,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -127,6 +132,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">1</property>
@@ -151,6 +160,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -173,6 +186,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -195,6 +212,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/register.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/register.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/register.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -79,6 +80,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -121,6 +126,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -146,6 +155,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">num_spin</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -224,6 +237,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkToolbar" id="toolbar">
@@ -420,6 +434,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkMenuBar" id="register_menubar">
@@ -866,6 +881,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkToolbar" id="gnc_register_toolbar">
@@ -1118,6 +1134,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1185,6 +1202,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1237,6 +1258,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_plugin_page_register_sort_response_cb" last_modification_time="Sun, 12 Jun 2005 01:03:23 GMT"/>
 
@@ -1547,6 +1569,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_plugin_page_register_filter_response_cb" last_modification_time="Sun, 12 Jun 2005 20:35:52 GMT"/>
 
@@ -1645,6 +1668,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1696,6 +1723,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -1833,6 +1864,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -1857,6 +1892,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -1960,6 +1999,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1989,6 +2032,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -2012,6 +2059,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2176,6 +2227,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/sched-xact.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/sched-xact.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/sched-xact.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -77,7 +77,7 @@
       </child>
 
       <child>
-	<widget class="GtkVBox" id="vbox105">
+	<widget class="GtkVBox" id="editor-vbox">
 	  <property name="visible">True</property>
 	  <property name="homogeneous">False</property>
 	  <property name="spacing">0</property>
@@ -223,7 +223,7 @@
 		      <child>
 			<widget class="GtkTable" id="table2">
 			  <property name="visible">True</property>
-			  <property name="n_rows">4</property>
+			  <property name="n_rows">5</property>
 			  <property name="n_columns">2</property>
 			  <property name="homogeneous">False</property>
 			  <property name="row_spacing">0</property>
@@ -244,8 +244,8 @@
 			    <packing>
 			      <property name="left_attach">0</property>
 			      <property name="right_attach">1</property>
-			      <property name="top_attach">2</property>
-			      <property name="bottom_attach">3</property>
+			      <property name="top_attach">3</property>
+			      <property name="bottom_attach">4</property>
 			      <property name="x_options">fill</property>
 			      <property name="y_options"></property>
 			    </packing>
@@ -266,8 +266,8 @@
 			    <packing>
 			      <property name="left_attach">0</property>
 			      <property name="right_attach">1</property>
-			      <property name="top_attach">3</property>
-			      <property name="bottom_attach">4</property>
+			      <property name="top_attach">4</property>
+			      <property name="bottom_attach">5</property>
 			      <property name="x_options">fill</property>
 			      <property name="y_options"></property>
 			    </packing>
@@ -322,8 +322,8 @@
 			    <packing>
 			      <property name="left_attach">1</property>
 			      <property name="right_attach">2</property>
-			      <property name="top_attach">3</property>
-			      <property name="bottom_attach">4</property>
+			      <property name="top_attach">4</property>
+			      <property name="bottom_attach">5</property>
 			      <property name="x_options">fill</property>
 			      <property name="y_options">fill</property>
 			    </packing>
@@ -345,8 +345,8 @@
 			    <packing>
 			      <property name="left_attach">0</property>
 			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
 			      <property name="x_options">fill</property>
 			      <property name="y_options"></property>
 			    </packing>
@@ -401,8 +401,8 @@
 			    <packing>
 			      <property name="left_attach">1</property>
 			      <property name="right_attach">2</property>
-			      <property name="top_attach">2</property>
-			      <property name="bottom_attach">3</property>
+			      <property name="top_attach">3</property>
+			      <property name="bottom_attach">4</property>
 			      <property name="x_options">fill</property>
 			      <property name="y_options">fill</property>
 			    </packing>
@@ -438,13 +438,35 @@
 			    <packing>
 			      <property name="left_attach">0</property>
 			      <property name="right_attach">2</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
 			      <property name="x_padding">24</property>
 			      <property name="x_options">fill</property>
 			      <property name="y_options">fill</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="enabled_opt">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Enabled</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 			</widget>
 		      </child>
 		    </widget>
@@ -1006,159 +1028,113 @@
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
 
   <child>
-    <widget class="GtkVBox" id="gncfreq_vbox">
+    <widget class="GtkEventBox" id="eventbox2">
       <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
+      <property name="visible_window">True</property>
+      <property name="above_child">False</property>
 
       <child>
-	<widget class="GtkTable" id="gncfreq_table">
+	<widget class="GtkVBox" id="gncfreq_vbox">
 	  <property name="visible">True</property>
-	  <property name="n_rows">2</property>
-	  <property name="n_columns">2</property>
 	  <property name="homogeneous">False</property>
-	  <property name="row_spacing">0</property>
-	  <property name="column_spacing">0</property>
+	  <property name="spacing">0</property>
 
 	  <child>
-	    <widget class="GtkLabel" id="freq label">
+	    <widget class="GtkTable" id="gncfreq_table">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Frequency:</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">1</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">5</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
+	      <property name="n_rows">2</property>
+	      <property name="n_columns">2</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">0</property>
 
-	  <child>
-	    <widget class="GtkLabel" id="startdate label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Start Date:</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">1</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">5</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
+	      <child>
+		<widget class="GtkLabel" id="freq label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Frequency:</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_RIGHT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">1</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">5</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
 
-	  <child>
-	    <widget class="GtkComboBox" id="freq_combobox">
-	      <property name="visible">True</property>
-	      <property name="items" translatable="yes">None
+	      <child>
+		<widget class="GtkLabel" id="startdate label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Start Date:</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">1</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">5</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkComboBox" id="freq_combobox">
+		  <property name="visible">True</property>
+		  <property name="items" translatable="yes">None
 Once
 Daily
-Daily [M-F]
 Weekly
-Bi-Weekly
 Semi-Monthly
-Monthly
-Quarterly
-Tri-Yearly
-Semi-Yearly
-Yearly</property>
-	      <property name="focus_on_click">True</property>
+Monthly</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="y_options">fill</property>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
 	    </packing>
 	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
 
-      <child>
-	<widget class="GtkNotebook" id="gncfreq_nb">
-	  <property name="visible">True</property>
-	  <property name="show_tabs">False</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">True</property>
-	  <property name="enable_popup">False</property>
-
 	  <child>
-	    <widget class="GtkLabel" id="label847767">
+	    <widget class="GtkNotebook" id="gncfreq_nb">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Not scheduled</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
+	      <property name="show_tabs">False</property>
+	      <property name="show_border">True</property>
+	      <property name="tab_pos">GTK_POS_TOP</property>
+	      <property name="scrollable">True</property>
+	      <property name="enable_popup">False</property>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847753">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">None</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox114">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">True</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkLabel" id="label847776">
+		<widget class="GtkLabel" id="label847767">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Select occurrence date above.</property>
+		  <property name="label" translatable="yes">Not scheduled</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_CENTER</property>
@@ -1170,206 +1146,48 @@
 		  <property name="ypad">0</property>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="tab_expand">False</property>
+		  <property name="tab_fill">True</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847735">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Once</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox108">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">True</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkHBox" id="hbox115">
+		<widget class="GtkLabel" id="label847753">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847746">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Every </property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">4</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSpinButton" id="daily_spin">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="climb_rate">1</property>
-		      <property name="digits">0</property>
-		      <property name="numeric">True</property>
-		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-		      <property name="snap_to_ticks">True</property>
-		      <property name="wrap">False</property>
-		      <property name="adjustment">1 1 365 1 10 10</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847747">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">days.</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
+		  <property name="label" translatable="yes">None</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="type">tab</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847736">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Daily</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox138">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">True</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkHBox" id="hbox139">
+		<widget class="GtkHBox" id="hbox114">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
+		  <property name="homogeneous">True</property>
 		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label847772">
+		    <widget class="GtkLabel" id="label847776">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Every </property>
+		      <property name="label" translatable="yes">Select occurrence date above.</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">4</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSpinButton" id="dailymf_spin">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="climb_rate">1</property>
-		      <property name="digits">0</property>
-		      <property name="numeric">True</property>
-		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-		      <property name="snap_to_ticks">True</property>
-		      <property name="wrap">False</property>
-		      <property name="adjustment">1 1 365 1 10 10</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847773">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">weeks.</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_CENTER</property>
 		      <property name="wrap">False</property>
 		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
+		      <property name="xalign">0.5</property>
 		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
+		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		    </widget>
 		    <packing>
@@ -1380,193 +1198,55 @@
 		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="tab_expand">False</property>
+		  <property name="tab_fill">True</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="daily_mf">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Daily [M-F]</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox113">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkHBox" id="hbox110">
+		<widget class="GtkLabel" id="label847735">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">True</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847748">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Every</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSpinButton" id="weekly_spin">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="climb_rate">1</property>
-		      <property name="digits">0</property>
-		      <property name="numeric">False</property>
-		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-		      <property name="snap_to_ticks">False</property>
-		      <property name="wrap">False</property>
-		      <property name="adjustment">1 1 100 1 10 10</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847749">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">weeks.</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_FILL</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
+		  <property name="label" translatable="yes">Once</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
 		</widget>
 		<packing>
-		  <property name="padding">5</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="type">tab</property>
 		</packing>
 	      </child>
 
 	      <child>
-		<widget class="GtkFrame" id="frame51">
-		  <property name="border_width">2</property>
+		<widget class="GtkHBox" id="hbox108">
 		  <property name="visible">True</property>
-		  <property name="label_xalign">0.5</property>
-		  <property name="label_yalign">0.5</property>
-		  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+		  <property name="homogeneous">True</property>
+		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox122">
+		    <widget class="GtkHBox" id="hbox115">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
 		      <property name="spacing">0</property>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox114">
+			<widget class="GtkLabel" id="label847746">
 			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_sun">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Sunday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_mon">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Monday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_tue">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Tuesday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
+			  <property name="label" translatable="yes">Every </property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_RIGHT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">1</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">4</property>
+			  <property name="ypad">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1576,67 +1256,16 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox117">
+			<widget class="GtkSpinButton" id="daily_spin">
 			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_wed">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Wednesday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_thu">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Thursday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_fri">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Friday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
+			  <property name="can_focus">True</property>
+			  <property name="climb_rate">1</property>
+			  <property name="digits">0</property>
+			  <property name="numeric">True</property>
+			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			  <property name="snap_to_ticks">True</property>
+			  <property name="wrap">False</property>
+			  <property name="adjustment">1 1 365 1 10 10</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1646,29 +1275,18 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox162">
+			<widget class="GtkLabel" id="label847747">
 			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="wd_check_sat">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Saturday</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
+			  <property name="label" translatable="yes">days.</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_CENTER</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">5</property>
+			  <property name="ypad">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1677,69 +1295,23 @@
 			</packing>
 		      </child>
 		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847969">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Days</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
 		    <packing>
-		      <property name="type">label_item</property>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
 		    </packing>
 		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="tab_expand">False</property>
+		  <property name="tab_fill">True</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847738">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Weekly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox111">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">True</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkLabel" id="label847777">
+		<widget class="GtkLabel" id="label847736">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Select initial date, above.</property>
+		  <property name="label" translatable="yes">Daily</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_CENTER</property>
@@ -1751,58 +1323,24 @@
 		  <property name="ypad">0</property>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="type">tab</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847739">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Bi-Weekly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox112">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkVBox" id="vbox119">
-		  <property name="border_width">5</property>
+		<widget class="GtkVBox" id="vbox113">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
 		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox126">
+		    <widget class="GtkHBox" id="hbox110">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">True</property>
 		      <property name="spacing">0</property>
 
 		      <child>
-			<widget class="GtkLabel" id="label847757">
+			<widget class="GtkLabel" id="label847748">
 			  <property name="visible">True</property>
 			  <property name="label" translatable="yes">Every</property>
 			  <property name="use_underline">False</property>
@@ -1817,20 +1355,20 @@
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
 			</packing>
 		      </child>
 
 		      <child>
-			<widget class="GtkSpinButton" id="semimonthly_spin">
+			<widget class="GtkSpinButton" id="weekly_spin">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="climb_rate">1</property>
 			  <property name="digits">0</property>
 			  <property name="numeric">False</property>
 			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-			  <property name="snap_to_ticks">True</property>
+			  <property name="snap_to_ticks">False</property>
 			  <property name="wrap">False</property>
 			  <property name="adjustment">1 1 100 1 10 10</property>
 			</widget>
@@ -1842,12 +1380,12 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkLabel" id="label847758">
+			<widget class="GtkLabel" id="label847749">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">months.</property>
+			  <property name="label" translatable="yes">weeks.</property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="justify">GTK_JUSTIFY_FILL</property>
 			  <property name="wrap">False</property>
 			  <property name="selectable">False</property>
 			  <property name="xalign">0</property>
@@ -1857,7 +1395,7 @@
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
-			  <property name="expand">False</property>
+			  <property name="expand">True</property>
 			  <property name="fill">True</property>
 			</packing>
 		      </child>
@@ -1870,308 +1408,362 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox127">
+		    <widget class="GtkFrame" id="frame51">
+		      <property name="border_width">2</property>
 		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="label_xalign">0.5</property>
+		      <property name="label_yalign">0.5</property>
+		      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
 
 		      <child>
-			<widget class="GtkLabel" id="label847759">
+			<widget class="GtkHBox" id="hbox122">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">First on the:</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_RIGHT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
 
-		      <child>
-			<widget class="GtkComboBox" id="semimonthly_first">
-			  <property name="visible">True</property>
-			  <property name="items" translatable="yes">1st
-2nd
-3rd
-4th
-5th
-6th
-7th
-8th
-9th
-10th
-11th
-12th
-13th
-14th
-15th
-16th
-17th
-18th
-19th
-20th
-21st
-22nd
-23rd
-24th
-25th
-26th
-27th
-28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-			  <property name="focus_on_click">True</property>
+			  <child>
+			    <widget class="GtkVBox" id="vbox114">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_sun">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Sunday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_mon">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Monday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_tue">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Tuesday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkVBox" id="vbox117">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_wed">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Wednesday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_thu">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Thursday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_fri">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Friday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkVBox" id="vbox162">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="wd_check_sat">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Saturday</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
 			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
 		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">3</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
 
-		  <child>
-		    <widget class="GtkHBox" id="hbox128">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
 		      <child>
-			<widget class="GtkLabel" id="label847760">
+			<widget class="GtkLabel" id="label847969">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">then on the:</property>
+			  <property name="label" translatable="yes">Days</property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_RIGHT</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 			  <property name="wrap">False</property>
 			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
+			  <property name="xalign">0.5</property>
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			</widget>
 			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
+			  <property name="type">label_item</property>
 			</packing>
 		      </child>
-
-		      <child>
-			<widget class="GtkComboBox" id="semimonthly_second">
-			  <property name="visible">True</property>
-			  <property name="items" translatable="yes">1st
-2nd
-3rd
-4th
-5th
-6th
-7th
-8th
-9th
-10th
-11th
-12th
-13th
-14th
-15th
-16th
-17th
-18th
-19th
-20th
-21st
-22nd
-23rd
-24th
-25th
-26th
-27th
-28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-			  <property name="focus_on_click">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
 		    </widget>
 		    <packing>
-		      <property name="padding">3</property>
+		      <property name="padding">0</property>
 		      <property name="expand">False</property>
 		      <property name="fill">False</property>
 		    </packing>
 		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="tab_expand">False</property>
+		  <property name="tab_fill">True</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847740">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Semi-Monthly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
+	      <child>
+		<widget class="GtkLabel" id="label847738">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Weekly</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="type">tab</property>
+		</packing>
+	      </child>
 
-	  <child>
-	    <widget class="GtkHBox" id="hbox113">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkVBox" id="vbox118">
+		<widget class="GtkHBox" id="hbox112">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
 		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox124">
+		    <widget class="GtkVBox" id="vbox119">
+		      <property name="border_width">5</property>
 		      <property name="visible">True</property>
-		      <property name="homogeneous">True</property>
+		      <property name="homogeneous">False</property>
 		      <property name="spacing">0</property>
 
 		      <child>
-			<widget class="GtkLabel" id="label847754">
+			<widget class="GtkHBox" id="hbox126">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Every </property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
+			  <property name="homogeneous">True</property>
+			  <property name="spacing">0</property>
 
-		      <child>
-			<widget class="GtkSpinButton" id="monthly_spin">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="climb_rate">1</property>
-			  <property name="digits">0</property>
-			  <property name="numeric">True</property>
-			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-			  <property name="snap_to_ticks">True</property>
-			  <property name="wrap">True</property>
-			  <property name="adjustment">1 1 100 1 10 10</property>
+			  <child>
+			    <widget class="GtkLabel" id="label847757">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Every</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_RIGHT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">1</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkSpinButton" id="semimonthly_spin">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="climb_rate">1</property>
+			      <property name="digits">0</property>
+			      <property name="numeric">False</property>
+			      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			      <property name="snap_to_ticks">True</property>
+			      <property name="wrap">False</property>
+			      <property name="adjustment">1 1 100 1 10 10</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="label847758">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">months.</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
-			  <property name="padding">0</property>
+			  <property name="padding">5</property>
 			  <property name="expand">False</property>
 			  <property name="fill">False</property>
 			</packing>
 		      </child>
 
 		      <child>
-			<widget class="GtkLabel" id="label847755">
+			<widget class="GtkHBox" id="hbox127">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">months.</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
 
-		  <child>
-		    <widget class="GtkHBox" id="hbox125">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+			  <child>
+			    <widget class="GtkLabel" id="label847759">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">First on the:</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_RIGHT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">1</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 
-		      <child>
-			<widget class="GtkLabel" id="label847756">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">On the</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_RIGHT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">2</property>
-			  <property name="expand">False</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkComboBox" id="monthly_day">
-			  <property name="visible">True</property>
-			  <property name="items" translatable="yes">1st
+			  <child>
+			    <widget class="GtkComboBox" id="semimonthly_first">
+			      <property name="visible">True</property>
+			      <property name="items" translatable="yes">1st
 2nd
 3rd
 4th
@@ -2199,145 +1791,62 @@
 26th
 27th
 28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-			  <property name="focus_on_click">True</property>
+29th (or last)
+30th (or last)
+31st (or last)
+Last Monday
+Last Tuesday
+Last Wednesday
+Last Thursday
+Last Friday
+Last Saturday
+Last Sunday</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
-			  <property name="padding">0</property>
+			  <property name="padding">3</property>
 			  <property name="expand">False</property>
 			  <property name="fill">False</property>
 			</packing>
 		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">5</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847741">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Monthly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
+		      <child>
+			<widget class="GtkHBox" id="hbox128">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
 
-	  <child>
-	    <widget class="GtkVBox" id="vbox120">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
+			  <child>
+			    <widget class="GtkLabel" id="label847760">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">then on the:</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_RIGHT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">1</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
 
-	      <child>
-		<widget class="GtkHBox" id="hbox134">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847766">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Occuring in</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="quarterly_occur">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">Jan, Apr, Jul, Oct
-Feb, May, Aug, Nov
-Mar, Jun, Sep, Dec</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox129">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847761">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">On the</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="quarterly_day">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">1st
+			  <child>
+			    <widget class="GtkComboBox" id="semimonthly_second">
+			      <property name="visible">True</property>
+			      <property name="items" translatable="yes">1st
 2nd
 3rd
 4th
@@ -2365,10 +1874,30 @@
 26th
 27th
 28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-		      <property name="focus_on_click">True</property>
+29th (or last)
+30th (or last)
+31st (or last)
+Last Monday
+Last Tuesday
+Last Wednesday
+Last Thursday
+Last Friday
+Last Saturday
+Last Sunday</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">3</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -2378,287 +1907,147 @@
 		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="tab_expand">False</property>
+		  <property name="tab_fill">True</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847742">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Quarterly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox121">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
 	      <child>
-		<widget class="GtkHBox" id="hbox133">
-		  <property name="border_width">3</property>
+		<widget class="GtkLabel" id="label847740">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847765">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Occuring in</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="triyearly_occur">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">Jan, May, Sep
-Feb, Jun, Oct
-Mar, Jul, Nov</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
+		  <property name="label" translatable="yes">Semi-Monthly</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="type">tab</property>
 		</packing>
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox130">
-		  <property name="border_width">3</property>
+		<widget class="GtkHBox" id="hbox113">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
 		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label847762">
+		    <widget class="GtkVBox" id="vbox118">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">On the</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
 
-		  <child>
-		    <widget class="GtkComboBox" id="triyearly_day">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">1st
-2nd
-3rd
-4th
-5th
-6th
-7th
-8th
-9th
-10th
-11th
-12th
-13th
-14th
-15th
-16th
-17th
-18th
-19th
-20th
-21st
-22nd
-23rd
-24th
-25th
-26th
-27th
-28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
+		      <child>
+			<widget class="GtkHBox" id="hbox124">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">True</property>
+			  <property name="spacing">0</property>
 
-	  <child>
-	    <widget class="GtkLabel" id="label847743">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Tri-Yearly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
+			  <child>
+			    <widget class="GtkLabel" id="label847754">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Every </property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">1</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 
-	  <child>
-	    <widget class="GtkVBox" id="vbox122">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
+			  <child>
+			    <widget class="GtkSpinButton" id="monthly_spin">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="climb_rate">1</property>
+			      <property name="digits">0</property>
+			      <property name="numeric">True</property>
+			      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			      <property name="snap_to_ticks">True</property>
+			      <property name="wrap">True</property>
+			      <property name="adjustment">1 1 100 1 10 10</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
 
-	      <child>
-		<widget class="GtkHBox" id="hbox131">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
+			  <child>
+			    <widget class="GtkLabel" id="label847755">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">months.</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">5</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label847763">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Occuring in</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkHBox" id="hbox125">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
 
-		  <child>
-		    <widget class="GtkComboBox" id="semiyearly_occur">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">Jan, Jul
-Feb, Aug
-Mar, Sep
-Apr, Oct
-May, Nov
-Jun, Dec</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
+			  <child>
+			    <widget class="GtkLabel" id="label847756">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">On the</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_RIGHT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">1</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">2</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 
-	      <child>
-		<widget class="GtkHBox" id="hbox132">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847764">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">On the</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="semiyearly_day">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">1st
+			  <child>
+			    <widget class="GtkComboBox" id="monthly_day">
+			      <property name="visible">True</property>
+			      <property name="items" translatable="yes">1st
 2nd
 3rd
 4th
@@ -2686,657 +2075,75 @@
 26th
 27th
 28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-		      <property name="focus_on_click">True</property>
+29th (or last)
+30th (or last)
+31st (or last)
+Last Monday
+Last Tuesday
+Last Wednesday
+Last Thursday
+Last Friday
+Last Saturday
+Last Sunday</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">5</property>
+			  <property name="expand">False</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label847744">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Semi-Yearly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox123">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox135">
-		  <property name="border_width">5</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">True</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847768">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Every</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
+		      <property name="padding">5</property>
+		      <property name="expand">True</property>
 		      <property name="fill">True</property>
 		    </packing>
 		  </child>
-
-		  <child>
-		    <widget class="GtkSpinButton" id="yearly_spin">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="climb_rate">1</property>
-		      <property name="digits">0</property>
-		      <property name="numeric">True</property>
-		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-		      <property name="snap_to_ticks">True</property>
-		      <property name="wrap">False</property>
-		      <property name="adjustment">1 1 100 1 10 10</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847769">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">year(s).</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="tab_expand">False</property>
+		  <property name="tab_fill">True</property>
 		</packing>
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox136">
-		  <property name="border_width">3</property>
+		<widget class="GtkLabel" id="label847741">
 		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847770">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Month</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="yearly_month">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">January
-February
-March
-April
-May
-June
-July
-August
-September
-October
-November
-December</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
+		  <property name="label" translatable="yes">Monthly</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="type">tab</property>
 		</packing>
 	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox137">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label847771">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Day</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">5</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="yearly_day">
-		      <property name="visible">True</property>
-		      <property name="items" translatable="yes">1st
-2nd
-3rd
-4th
-5th
-6th
-7th
-8th
-9th
-10th
-11th
-12th
-13th
-14th
-15th
-16th
-17th
-18th
-19th
-20th
-21st
-22nd
-23rd
-24th
-25th
-26th
-27th
-28th
-[29th/last]
-[30th/last]
-[31st/last]</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
 	    </widget>
 	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
 	    </packing>
 	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label847745">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Yearly</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_CENTER</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
 	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
       </child>
     </widget>
   </child>
 </widget>
 
-<widget class="GtkDialog" id="Scheduled Transaction List">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Scheduled Transactions</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">640</property>
-  <property name="default_height">480</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox18">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">8</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area18">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="close_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-close</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">0</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkLabel" id="label847992">
-	  <property name="visible">True</property>
-	  <property name="label" translatable="yes">&lt;b&gt;Transactions&lt;/b&gt;</property>
-	  <property name="use_underline">False</property>
-	  <property name="use_markup">True</property>
-	  <property name="justify">GTK_JUSTIFY_LEFT</property>
-	  <property name="wrap">False</property>
-	  <property name="selectable">False</property>
-	  <property name="xalign">0</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xpad">0</property>
-	  <property name="ypad">0</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkAlignment" id="alignment34">
-	  <property name="visible">True</property>
-	  <property name="xalign">0.5</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xscale">1</property>
-	  <property name="yscale">1</property>
-	  <property name="top_padding">0</property>
-	  <property name="bottom_padding">0</property>
-	  <property name="left_padding">12</property>
-	  <property name="right_padding">0</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox123">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="scrolledwindow1">
-		  <property name="visible">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="shadow_type">GTK_SHADOW_IN</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkCList" id="sched_xact_list">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="n_columns">3</property>
-		      <property name="column_widths">127,140,80</property>
-		      <property name="selection_mode">GTK_SELECTION_SINGLE</property>
-		      <property name="show_titles">True</property>
-		      <property name="shadow_type">GTK_SHADOW_IN</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label847750">
-			  <property name="label" translatable="yes">Name</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label847751">
-			  <property name="label" translatable="yes">Frequency</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label847752">
-			  <property name="label" translatable="yes">Next Occurrence</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVButtonBox" id="vbuttonbox1">
-		  <property name="visible">True</property>
-		  <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
-		  <property name="spacing">10</property>
-
-		  <child>
-		    <widget class="GtkButton" id="new_button">
-		      <property name="visible">True</property>
-		      <property name="can_default">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label">gtk-new</property>
-		      <property name="use_stock">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkButton" id="edit_button">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="can_default">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-
-		      <child>
-			<widget class="GtkAlignment" id="alignment24">
-			  <property name="visible">True</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xscale">0</property>
-			  <property name="yscale">0</property>
-			  <property name="top_padding">0</property>
-			  <property name="bottom_padding">0</property>
-			  <property name="left_padding">0</property>
-			  <property name="right_padding">0</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox179">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">2</property>
-
-			      <child>
-				<widget class="GtkImage" id="image1">
-				  <property name="visible">True</property>
-				  <property name="stock">gtk-properties</property>
-				  <property name="icon_size">4</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="label847980">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">_Edit</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkButton" id="delete_button">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="can_default">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label">gtk-delete</property>
-		      <property name="use_stock">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkLabel" id="label847993">
-	  <property name="visible">True</property>
-	  <property name="label" translatable="yes"></property>
-	  <property name="use_underline">False</property>
-	  <property name="use_markup">False</property>
-	  <property name="justify">GTK_JUSTIFY_LEFT</property>
-	  <property name="wrap">False</property>
-	  <property name="selectable">False</property>
-	  <property name="xalign">0.5</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xpad">0</property>
-	  <property name="ypad">0</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkLabel" id="label847970">
-	  <property name="visible">True</property>
-	  <property name="label" translatable="yes">&lt;b&gt;Upcoming&lt;/b&gt;</property>
-	  <property name="use_underline">False</property>
-	  <property name="use_markup">True</property>
-	  <property name="justify">GTK_JUSTIFY_LEFT</property>
-	  <property name="wrap">False</property>
-	  <property name="selectable">False</property>
-	  <property name="xalign">0</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xpad">0</property>
-	  <property name="ypad">0</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkAlignment" id="alignment35">
-	  <property name="visible">True</property>
-	  <property name="xalign">0.5</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xscale">1</property>
-	  <property name="yscale">1</property>
-	  <property name="top_padding">0</property>
-	  <property name="bottom_padding">0</property>
-	  <property name="left_padding">12</property>
-	  <property name="right_padding">0</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="upcoming_cal_hbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<placeholder/>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
 <widget class="GtkDialog" id="sx_from_real_trans">
   <property name="visible">True</property>
   <property name="title" translatable="yes">Make Scheduled Transaction</property>
@@ -3533,7 +2340,6 @@
 Monthly
 Quarterly
 Yearly</property>
-		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">1</property>
@@ -3556,53 +2362,39 @@
 		<widget class="GtkFrame" id="frame78">
 		  <property name="border_width">2</property>
 		  <property name="visible">True</property>
-		  <property name="label_xalign">0.5</property>
+		  <property name="label_xalign">0</property>
 		  <property name="label_yalign">0.5</property>
-		  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+		  <property name="shadow_type">GTK_SHADOW_NONE</property>
 
 		  <child>
-		    <widget class="GtkVBox" id="vbox147">
+		    <widget class="GtkAlignment" id="alignment36">
 		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">10</property>
+		      <property name="right_padding">0</property>
 
 		      <child>
-			<widget class="GtkRadioButton" id="never_end_button">
+			<widget class="GtkVBox" id="vbox147">
 			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Never End</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkHBox" id="end_date_hbox">
-			  <property name="visible">True</property>
 			  <property name="homogeneous">False</property>
 			  <property name="spacing">0</property>
 
 			  <child>
-			    <widget class="GtkRadioButton" id="end_on_date_button">
+			    <widget class="GtkRadioButton" id="never_end_button">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">End Date:</property>
+			      <property name="label" translatable="yes">Never End</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
 			      <property name="active">False</property>
 			      <property name="inconsistent">False</property>
 			      <property name="draw_indicator">True</property>
-			      <property name="group">never_end_button</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -3612,34 +2404,34 @@
 			  </child>
 
 			  <child>
-			    <placeholder/>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
+			    <widget class="GtkHBox" id="end_date_hbox">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
 
-		      <child>
-			<widget class="GtkHBox" id="hbox164">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
+			      <child>
+				<widget class="GtkRadioButton" id="end_on_date_button">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">End Date:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <property name="group">never_end_button</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
 
-			  <child>
-			    <widget class="GtkRadioButton" id="n_occurrences_button">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Number of Occurrences:</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">never_end_button</property>
+			      <child>
+				<placeholder/>
+			      </child>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -3649,36 +2441,64 @@
 			  </child>
 
 			  <child>
-			    <widget class="GnomeEntry" id="entry5">
+			    <widget class="GtkHBox" id="hbox164">
 			      <property name="visible">True</property>
-			      <property name="max_saved">10</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
 
-			      <child internal-child="entry">
-				<widget class="GtkEntry" id="n_occurrences_entry">
+			      <child>
+				<widget class="GtkRadioButton" id="n_occurrences_button">
 				  <property name="visible">True</property>
 				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
+				  <property name="label" translatable="yes">Number of Occurrences:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <property name="group">never_end_button</property>
 				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
 			      </child>
+
+			      <child>
+				<widget class="GnomeEntry" id="entry5">
+				  <property name="visible">True</property>
+				  <property name="max_saved">10</property>
+
+				  <child internal-child="entry">
+				    <widget class="GtkEntry" id="n_occurrences_entry">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				  </child>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
-			      <property name="expand">True</property>
+			      <property name="expand">False</property>
 			      <property name="fill">False</property>
 			    </packing>
 			  </child>
 			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
 		      </child>
 		    </widget>
 		  </child>
@@ -3686,9 +2506,9 @@
 		  <child>
 		    <widget class="GtkLabel" id="label847972">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">End </property>
+		      <property name="label" translatable="yes">&lt;b&gt;End&lt;/b&gt;</property>
 		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
+		      <property name="use_markup">True</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
 		      <property name="wrap">False</property>
 		      <property name="selectable">False</property>
@@ -4789,7 +3609,6 @@
 			  <property name="visible">True</property>
 			  <property name="items" translatable="yes">months
 years</property>
-			  <property name="focus_on_click">True</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -5010,7 +3829,6 @@
 5/1 Year ARM
 7/1 Year ARM
 10/1 Year ARM</property>
-		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">3</property>
@@ -5991,7 +4809,6 @@
 Now + 1 Year
 Whole Loan
 Custom</property>
-				  <property name="focus_on_click">True</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -6696,7 +5513,6 @@
 		  <property name="rules_hint">False</property>
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">False</property>
-		  <property name="fixed_height_mode">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -6717,4 +5533,341 @@
   </child>
 </widget>
 
+<widget class="GtkWindow" id="sx list plugin page content">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">window1</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+  <child>
+    <widget class="GtkVPaned" id="sx-list-vbox">
+      <property name="visible">True</property>
+      <property name="can_focus">True</property>
+      <property name="position">0</property>
+
+      <child>
+	<widget class="GtkVBox" id="vbox183">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="label847992">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">&lt;b&gt;Transactions&lt;/b&gt;</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">True</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkAlignment" id="alignment34">
+	      <property name="visible">True</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xscale">1</property>
+	      <property name="yscale">1</property>
+	      <property name="top_padding">0</property>
+	      <property name="bottom_padding">0</property>
+	      <property name="left_padding">12</property>
+	      <property name="right_padding">0</property>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">12</property>
+
+		  <child>
+		    <widget class="GtkScrolledWindow" id="sx-list-tree-view-container">
+		      <property name="visible">True</property>
+		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+		      <property name="shadow_type">GTK_SHADOW_IN</property>
+		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+		      <child>
+			<placeholder/>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="shrink">True</property>
+	  <property name="resize">False</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="upcoming mumble">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="label847993">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes"></property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label847970">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">&lt;b&gt;Upcoming&lt;/b&gt;</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">True</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkAlignment" id="alignment35">
+	      <property name="visible">True</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xscale">1</property>
+	      <property name="yscale">1</property>
+	      <property name="top_padding">0</property>
+	      <property name="bottom_padding">0</property>
+	      <property name="left_padding">12</property>
+	      <property name="right_padding">0</property>
+
+	      <child>
+		<widget class="GtkHBox" id="upcoming_cal_hbox">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <placeholder/>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="shrink">True</property>
+	  <property name="resize">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="since-last-run-dialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Since Last Run...</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+  <property name="modal">False</property>
+  <property name="default_width">640</property>
+  <property name="default_height">480</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">True</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox25">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area25">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="cancelbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="has_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="okbutton2">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="vbox182">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkScrolledWindow" id="scrolledwindow21">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+	      <property name="shadow_type">GTK_SHADOW_IN</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkTreeView" id="instance_view">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="has_focus">True</property>
+		  <property name="headers_visible">True</property>
+		  <property name="rules_hint">False</property>
+		  <property name="reorderable">False</property>
+		  <property name="enable_search">True</property>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox179">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkFixed" id="fixed1">
+		  <property name="visible">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkCheckButton" id="review_txn_toggle">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">_Review created transactions</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>

Modified: gnucash/branches/gda-dev/src/gnome/glade/stocks.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/stocks.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/stocks.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <signal name="destroy" handler="gnc_stock_split_druid_window_destroy_cb" last_modification_time="Sat, 23 Aug 2003 22:43:04 GMT"/>
 
   <child>
@@ -69,6 +70,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -95,6 +100,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -139,6 +146,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -170,6 +181,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -194,6 +209,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -219,6 +238,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">description_entry</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -277,6 +300,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -301,6 +328,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -325,6 +356,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -457,6 +492,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -487,6 +526,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -512,6 +555,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">memo_entry</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -593,6 +640,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -617,6 +668,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">1</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/tax.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/tax.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/tax.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -86,6 +87,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">2</property>
@@ -176,6 +181,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -204,6 +213,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -241,6 +254,8 @@
 			      <property name="reorderable">True</property>
 			      <property name="enable_search">True</property>
 			      <property name="fixed_height_mode">False</property>
+			      <property name="hover_selection">False</property>
+			      <property name="hover_expand">False</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -322,6 +337,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -350,6 +369,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -558,6 +581,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -579,6 +606,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -600,6 +631,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -621,6 +656,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -698,6 +737,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -743,6 +786,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/glade/userpass.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome/glade/userpass.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/glade/userpass.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -78,6 +79,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -110,6 +115,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">username_entry</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -135,6 +144,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">password_entry</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/gnome/gnc-plugin-basic-commands.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-plugin-basic-commands.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-plugin-basic-commands.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,8 +41,7 @@
 #include "dialog-chart-export.h"
 #include "dialog-fincalc.h"
 #include "dialog-find-transactions.h"
-#include "dialog-scheduledxaction.h"
-#include "dialog-sxsincelast.h"
+#include "dialog-sx-since-last-run.h"
 #include "dialog-totd.h"
 #include "druid-acct-period.h"
 #include "druid-loan.h"
@@ -54,6 +53,7 @@
 #include "gnc-ui.h"
 #include "gnc-window.h"
 #include "gnc-session.h"
+#include "gnc-plugin-page-sx-list.h"
 
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
@@ -221,6 +221,10 @@
 {
   GncPluginBasicCommands *plugin;
 
+  /* We just need to mention it, so the GType is registered and will be
+   * reflected during plugin-page restore. */
+  GNC_TYPE_PLUGIN_PAGE_SX_LIST;
+
   plugin = g_object_new (GNC_TYPE_PLUGIN_BASIC_COMMANDS, NULL);
 
   return GNC_PLUGIN (plugin);
@@ -434,35 +438,53 @@
 static void
 gnc_main_window_cmd_actions_scheduled_transaction_editor (GtkAction *action, GncMainWindowActionData *data)
 {
-  gnc_ui_scheduled_xaction_dialog_create ();
+        GncPluginPage *page = gnc_plugin_page_sx_list_new();
+        gnc_main_window_open_page(NULL, page);
 }
 
 static void
 gnc_main_window_cmd_actions_since_last_run (GtkAction *action, GncMainWindowActionData *data)
 {
   GncMainWindow *window;
-  gint ret;
+  GncSxInstanceModel *sx_instances;
+  GncSxSummary summary;
+  GList *auto_created_txns = NULL;
   const char *nothing_to_do_msg =
     _( "There are no Scheduled Transactions to be entered at this time." );
 	
   g_return_if_fail (data != NULL);
 
   window = data->window;
-  ret = gnc_ui_sxsincelast_dialog_create ();
-  if ( ret == 0 ) {
-    gnc_info_dialog (GTK_WIDGET(&window->gtk_window), nothing_to_do_msg);
-  } else if ( ret < 0 ) {
-    gnc_info_dialog (GTK_WIDGET(&window->gtk_window), ngettext
-		     /* Translators: %d is the number of transactions. This is a
-			ngettext(3) message. */
-		     ("There are no Scheduled Transactions to be entered at this time. "
-		      "(%d transaction automatically created)",
-		      "There are no Scheduled Transactions to be entered at this time. "
-		      "(%d transactions automatically created)",
-		      -(ret)),
-		     -(ret));
-  } /* else { this else [>0 means dialog was created] intentionally left
-     * blank. } */	       
+
+  sx_instances = gnc_sx_get_current_instances();
+  gnc_sx_instance_model_summarize(sx_instances, &summary);
+  gnc_sx_instance_model_effect_change(sx_instances, TRUE, &auto_created_txns, NULL);
+  if (summary.need_dialog)
+  {
+    gnc_ui_sx_since_last_run_dialog(sx_instances, auto_created_txns);
+    auto_created_txns = NULL;
+  }
+  else
+  {
+    if (summary.num_auto_create_no_notify_instances == 0)
+    {
+      gnc_info_dialog(GTK_WIDGET(&window->gtk_window), nothing_to_do_msg);
+    }
+    else
+    {
+      gnc_info_dialog(GTK_WIDGET(&window->gtk_window), ngettext
+                      /* Translators: %d is the number of transactions. This is a
+                         ngettext(3) message. */
+                      ("There are no Scheduled Transactions to be entered at this time. "
+                       "(%d transaction automatically created)",
+                       "There are no Scheduled Transactions to be entered at this time. "
+                       "(%d transactions automatically created)",
+                       summary.num_auto_create_no_notify_instances),
+                      summary.num_auto_create_no_notify_instances);
+    }
+  }
+  g_list_free(auto_created_txns);
+  g_object_unref(G_OBJECT(sx_instances));
 }
 
 static void

Modified: gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-account-tree.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-account-tree.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-account-tree.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,9 +36,6 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
 #include "gnc-plugin-page-account-tree.h"
 #include "gnc-plugin-page-register.h"
 
@@ -670,7 +667,7 @@
 		account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT(view));
 		sensitive = (account != NULL);
 
-		subaccounts = (xaccAccountGetChildren(account) != NULL);
+		subaccounts = (gnc_account_n_children(account) != 0);
 		/* Check here for placeholder accounts, etc. */
 	}
 
@@ -694,7 +691,7 @@
 {
 	Account *account = gnc_plugin_page_account_tree_get_current_account (page);
 
-	gnc_ui_new_account_window_with_default (NULL, account);
+	gnc_ui_new_account_window (gnc_get_current_book(), account);
 }
 
 static void
@@ -848,7 +845,6 @@
   Account *account = gnc_plugin_page_account_tree_get_current_account (page);
   gchar *acct_name;
   GList *splits;
-  AccountGroup *children;
   delete_helper_t delete_res = { FALSE, FALSE };
   GtkWidget *widget;
   GtkWidget *window;
@@ -871,13 +867,12 @@
   }
 
   splits = xaccAccountGetSplitList(account);
-  children = xaccAccountGetChildren(account);
 
   /*
    * If the account has transactions or child accounts then conduct a
    * dialog to allow the user to specify what should be done with them.
    */
-  if ((NULL != splits) || (NULL != children)) {
+  if ((NULL != splits) || (gnc_account_n_children(account) > 0)) {
     GList *filter;
     GladeXML *xml;
     GtkWidget *label;
@@ -926,12 +921,12 @@
     /*
      * Adjust the dialog based on whether the account has children.
      */
-    if (children != NULL) {
+    if (gnc_account_n_children(account) > 0) {
       /*
        * Check for RO txns in descendants
        */
-      xaccGroupForEachAccount(children, delete_account_helper,
-			      &delete_res, TRUE);
+      gnc_account_foreach_descendant_until(account, delete_account_helper,
+			      &delete_res);
       if (delete_res.has_ro_splits) {
 	gtk_widget_destroy(glade_xml_get_widget (xml, "sa_trans_rw"));
 	widget = glade_xml_get_widget (xml, "dtdrb");
@@ -999,7 +994,7 @@
 	lines[++i] = g_strdup_printf("%s", format);
       }
     }
-    if (children) {
+    if (gnc_account_n_children(account) > 0) {
       if (daa) {
 	name = xaccAccountGetFullName(daa);
 	format = _("All of its sub-accounts will be moved to "
@@ -1009,7 +1004,7 @@
 	format = _("All of its subaccounts will be deleted.");
 	lines[++i] = g_strdup_printf("%s", format);
 	if (dta) {
-	  name = xaccAccountGetFullName(ta);
+	  name = xaccAccountGetFullName(dta);
 	  format = _("All sub-account transactions will be moved to "
 		     "the account %s.");
 	  lines[++i] = g_strdup_printf(format, name);
@@ -1042,23 +1037,23 @@
     gtk_widget_destroy(dialog);
 
     if (GTK_RESPONSE_ACCEPT == response) {
+      gnc_set_busy_cursor(NULL, TRUE);
       gnc_suspend_gui_refresh ();
       xaccAccountBeginEdit (account);
       if (NULL != daa) {
 	GList *acct_list, *ptr;
 
 	xaccAccountBeginEdit (daa);
-	acct_list = g_list_copy(xaccGroupGetAccountList(children));
+	acct_list = gnc_account_get_children(account);
 	for (ptr = acct_list; ptr; ptr = g_list_next(ptr))
-	  xaccAccountInsertSubAccount (daa, ptr->data);
+	  gnc_account_append_child (daa, ptr->data);
 	g_list_free(acct_list);
 	xaccAccountCommitEdit (daa);
       } else if (NULL != dta) {
 	/* Move the splits of its subaccounts, if any. */
-	xaccGroupForEachAccount (children,
-				 (gpointer (*)(Account *, gpointer))
-				 xaccAccountMoveAllSplits,
-				 dta, TRUE);
+	gnc_account_foreach_descendant(account,
+				       (AccountCb)xaccAccountMoveAllSplits,
+				       dta);
       }
       if (NULL != ta) {
 	/* Move the splits of the account to be deleted. */
@@ -1070,6 +1065,7 @@
        */
       xaccAccountDestroy (account);
       gnc_resume_gui_refresh ();
+      gnc_unset_busy_cursor(NULL);
     }
   }
   g_free(acct_name);
@@ -1169,7 +1165,8 @@
 	xaccAccountScrubImbalance (account);
 
 	// XXX: Lots are disabled
-	//xaccAccountScrubLots (account);
+        if (g_getenv("GNC_AUTO_SCRUB_LOTS") != NULL)
+ 	    xaccAccountScrubLots(account);
 
 	gnc_resume_gui_refresh ();
 }
@@ -1187,7 +1184,8 @@
 	xaccAccountTreeScrubImbalance (account);
 
 	// XXX: Lots are disabled
-	//xaccAccountTreeScrubLots (account);
+        if (g_getenv("GNC_AUTO_SCRUB_LOTS") != NULL)
+ 	    xaccAccountTreeScrubLots(account);
 
 	gnc_resume_gui_refresh ();
 }
@@ -1195,15 +1193,15 @@
 static void
 gnc_plugin_page_account_tree_cmd_scrub_all (GtkAction *action, GncPluginPageAccountTree *page)
 {
-	AccountGroup *group = gnc_get_current_group ();
+	Account *root = gnc_get_current_root_account ();
 
 	gnc_suspend_gui_refresh ();
 
-	xaccGroupScrubOrphans (group);
-	xaccGroupScrubImbalance (group);
-
+	xaccAccountTreeScrubOrphans (root);
+	xaccAccountTreeScrubImbalance (root);
 	// XXX: Lots are disabled
-	//xaccGroupScrubLots (group);
+        if (g_getenv("GNC_AUTO_SCRUB_LOTS") != NULL)
+            xaccAccountTreeScrubLots(root);
 
 	gnc_resume_gui_refresh ();
 }

Modified: gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-budget.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-budget.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-budget.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,10 +39,6 @@
 #include <glade/glade.h>
 #include "gnc-date-edit.h"
 
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
-
 #include "gnc-plugin-page-register.h"
 #include "gnc-budget.h"
 
@@ -737,7 +733,6 @@
         return TRUE;
 
     ENTER(" ");
-	gnc_budget_begin_edit( priv->budget );
     name = gnc_dialog_get_string(d, "BudgetName");
     if (name) {
         gnc_budget_set_name(priv->budget, name);
@@ -757,8 +752,6 @@
     r = gnc_recurrence_get(gr);
     gnc_budget_set_recurrence(priv->budget, r);
 
-	gnc_budget_commit_edit( priv->budget );
-
     LEAVE(" ");
     return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-register.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-register.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-register.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -38,9 +38,6 @@
 #include "guile-mappings.h"
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
 #include "swig-runtime.h"
 
 #include "gnc-plugin-page-register.h"
@@ -76,8 +73,6 @@
 #include "window-reconcile.h"
 #include "window-report.h"
 
-#include "gtk-compat.h"
-
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
 
@@ -100,6 +95,7 @@
 static gboolean gnc_plugin_page_register_finish_pending (GncPluginPage *page);
 
 static gchar *gnc_plugin_page_register_get_tab_name (GncPluginPage *plugin_page);
+static gchar *gnc_plugin_page_register_get_long_name (GncPluginPage *plugin_page);
 
 /* Callbacks for the "Sort By" dialog */
 void gnc_plugin_page_register_sort_button_cb(GtkToggleButton *button, GncPluginPageRegister *page);
@@ -459,6 +455,10 @@
 	gnc_plugin_page_set_page_name(plugin_page, label);
 	g_free(label);
 
+	label = gnc_plugin_page_register_get_long_name(plugin_page);
+        gnc_plugin_page_set_page_long_name(plugin_page, label);
+        g_free(label);
+
 	q = gnc_ledger_display_get_query (ledger);
 	book_list = qof_query_get_books (q);
 	for (item = book_list; item; item = g_list_next(item))
@@ -831,10 +831,10 @@
   NULL
 };
 
-#define KEY_REGISTER_TYPE	"Register Type"
-#define KEY_ACCOUNT_NAME	"Account Name"
-#define KEY_REGISTER_STYLE	"Register Style"
-#define KEY_DOUBLE_LINE		"Double Line Mode"
+#define KEY_REGISTER_TYPE       "RegisterType"
+#define KEY_ACCOUNT_NAME        "AccountName"
+#define KEY_REGISTER_STYLE      "RegisterStyle"
+#define KEY_DOUBLE_LINE         "DoubleLineMode"
 
 #define LABEL_ACCOUNT		"Account"
 #define LABEL_SUBACCOUNT	"SubAccount"
@@ -997,8 +997,8 @@
     acct_name = g_key_file_get_string(key_file, group_name,
 				      KEY_ACCOUNT_NAME, &error);
     book = qof_session_get_book(gnc_get_current_session());
-    account = xaccGetAccountFromFullName(xaccGetAccountGroup(book),
-					 acct_name);
+    account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
+					      acct_name);
     g_free(acct_name);
     if (account == NULL) {
       LEAVE("Bad account name");
@@ -1159,6 +1159,37 @@
 	return g_strdup(_("unknown"));
 }
 
+static gchar *
+gnc_plugin_page_register_get_long_name (GncPluginPage *plugin_page)
+{
+	GncPluginPageRegisterPrivate *priv;
+	GNCLedgerDisplayType ledger_type;
+  	GNCLedgerDisplay *ld;
+	SplitRegister *reg;
+	Account *leader;
+
+	g_return_val_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page), _("unknown"));
+
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
+	ld = priv->ledger;
+	reg = gnc_ledger_display_get_split_register (ld);
+	ledger_type = gnc_ledger_display_type (ld);
+	leader = gnc_ledger_display_leader (ld);
+
+	switch (ledger_type) {
+	 case LD_SINGLE:
+	  return g_strdup(xaccAccountGetFullName (leader));
+
+	 case LD_SUBACCOUNT:
+	  return g_strdup_printf("%s+", xaccAccountGetFullName (leader));
+
+	 default:
+	  break;
+	}
+
+        return NULL;
+}
+
 /************************************************************/
 /*                     "Sort By" Dialog                     */
 /************************************************************/
@@ -1810,10 +1841,6 @@
   SplitRegister * reg;
   Split         * split;
   Transaction   * trans;
-  const char    * payee;
-  const char    * memo;
-  gnc_numeric   amount;
-  time_t        date;
 
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
@@ -1827,15 +1854,7 @@
 
   if(split && trans)
   {
-    payee  = xaccTransGetDescription(trans);
-    memo   = xaccTransGetNotes(trans);
-    if (memo == NULL)
-      memo = "";
-    amount = xaccSplitGetAmount(split);
-    amount = gnc_numeric_abs (amount);
-    date   = xaccTransGetDate(trans);
-
-    gnc_ui_print_check_dialog_create(plugin_page, payee, amount, date, memo);
+    gnc_ui_print_check_dialog_create(plugin_page, split);
   }
   LEAVE(" ");
 }
@@ -2577,7 +2596,7 @@
 {
   GncPluginPageRegisterPrivate *priv;
   Query *query;
-  AccountGroup *root;
+  Account *root;
   Transaction *trans;
   SplitRegister *reg;
 
@@ -2600,7 +2619,7 @@
   }
 
   gnc_suspend_gui_refresh();
-  root = gnc_get_current_group();
+  root = gnc_get_current_root_account();
   xaccTransScrubOrphans(trans);
   xaccTransScrubImbalance(trans, root, NULL);
   gnc_resume_gui_refresh();
@@ -2613,7 +2632,7 @@
 {
   GncPluginPageRegisterPrivate *priv;
   Query *query;
-  AccountGroup *root;
+  Account *root;
   Transaction *trans;
   Split *split;
   GList *node;
@@ -2630,7 +2649,7 @@
   }
 
   gnc_suspend_gui_refresh();
-  root = gnc_get_current_group();
+  root = gnc_get_current_root_account();
 
   for (node = xaccQueryGetSplits(query); node; node = node->next)
   {

Added: gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,570 @@
+/* 
+ * gnc-plugin-page-sx-list.c
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/** @addtogroup ContentPlugins
+    @{ */
+/** @addtogroup GncPluginPageSxList A SX List Plugin Page
+    @{ */
+/** @brief Functions providing the SX List as a plugin page.
+    @author Josh Sled <jsled at asynchronous.org>
+*/
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include "glib-compat.h"
+#include <glade/glade-xml.h>
+#include "gnc-exp-parser.h"
+#include "gnc-engine.h"
+#include "Transaction.h"
+#include "Split.h"
+#include "gnc-commodity.h"
+#include "gnc-event.h"
+#include "gnc-dense-cal.h"
+#include "gnc-glib-utils.h"
+#include "gnc-icons.h"
+#include "gnc-plugin-page-sx-list.h"
+#include "gnc-tree-view-sx-list.h"
+#include "gnc-sx-instance-model.h"
+#include "gnc-sx-instance-dense-cal-adapter.h"
+#include "gnc-sx-list-tree-model-adapter.h"
+#include "gnc-ui-util.h"
+#include "gnc-main-window.h"
+#include "dialog-utils.h"
+#include "gnc-component-manager.h"
+#include "SX-book.h"
+#include "gnc-book.h"
+#include "dialog-sx-editor.h"
+
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.plugin-page.sx-list"
+
+#define PLUGIN_PAGE_SX_LIST_CM_CLASS "plugin-page-sx-list"
+#define GCONF_SECTION "window/pages/sx_list"
+
+typedef struct GncPluginPageSxListPrivate
+{
+    gboolean disposed;
+
+    GtkWidget* widget;
+    gint gnc_component_id;
+
+    GladeXML* gxml;
+    GncSxInstanceDenseCalAdapter *dense_cal_model;
+    GncDenseCal* gdcal;
+
+    GncSxInstanceModel* instances;
+    GtkTreeView* tree_view;
+} GncPluginPageSxListPrivate;
+
+#define GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_PAGE_SX_LIST, GncPluginPageSxListPrivate))
+
+static GObjectClass *parent_class = NULL;
+
+/************************************************************
+ *                        Prototypes                        *
+ ************************************************************/
+/* Plugin Actions */
+static void gnc_plugin_page_sx_list_class_init (GncPluginPageSxListClass *klass);
+static void gnc_plugin_page_sx_list_init (GncPluginPageSxList *plugin_page);
+static void gnc_plugin_page_sx_list_dispose(GObject *object);
+static void gnc_plugin_page_sx_list_finalize(GObject *object);
+
+static GtkWidget *gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page);
+static void gnc_plugin_page_sx_list_destroy_widget (GncPluginPage *plugin_page);
+static void gnc_plugin_page_sx_list_save_page (GncPluginPage *plugin_page, GKeyFile *file, const gchar *group);
+static GncPluginPage *gnc_plugin_page_sx_list_recreate_page (GtkWidget *window, GKeyFile *file, const gchar *group);
+
+static void gppsl_row_activated_cb(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data);
+
+static void gnc_plugin_page_sx_list_cmd_new(GtkAction *action, GncPluginPageSxList *page);
+static void gnc_plugin_page_sx_list_cmd_edit(GtkAction *action, GncPluginPageSxList *page);
+static void gnc_plugin_page_sx_list_cmd_delete(GtkAction *action, GncPluginPageSxList *page);
+
+/* Command callbacks */
+static GtkActionEntry gnc_plugin_page_sx_list_actions [] = {
+    { "SxListAction", NULL, N_("Scheduled"), NULL, NULL, NULL },
+    { "SxListNewAction", GNC_STOCK_NEW_ACCOUNT, N_("New"), NULL,
+      N_("Create a new scheduled transaction"), G_CALLBACK(gnc_plugin_page_sx_list_cmd_new) },
+    { "SxListEditAction", GNC_STOCK_EDIT_ACCOUNT, N_("Edit"), NULL,
+      N_("Edit the selected scheduled transaction"), G_CALLBACK(gnc_plugin_page_sx_list_cmd_edit) },
+    { "SxListDeleteAction", GNC_STOCK_DELETE_ACCOUNT, N_("Delete"), NULL,
+      N_("Delete the selected scheduled transaction"), G_CALLBACK(gnc_plugin_page_sx_list_cmd_delete) },
+};
+/** The number of actions provided by this plugin. */
+static guint gnc_plugin_page_sx_list_n_actions = G_N_ELEMENTS (gnc_plugin_page_sx_list_actions);
+
+GType
+gnc_plugin_page_sx_list_get_type (void)
+{
+    static GType gnc_plugin_page_sx_list_type = 0;
+
+    if (gnc_plugin_page_sx_list_type == 0) {
+        static const GTypeInfo our_info = {
+            sizeof (GncPluginPageSxListClass),
+            NULL,
+            NULL,
+            (GClassInitFunc) gnc_plugin_page_sx_list_class_init,
+            NULL,
+            NULL,
+            sizeof (GncPluginPageSxList),
+            0,
+            (GInstanceInitFunc) gnc_plugin_page_sx_list_init
+        };
+		
+        gnc_plugin_page_sx_list_type = g_type_register_static (GNC_TYPE_PLUGIN_PAGE,
+                                                               GNC_PLUGIN_PAGE_SX_LIST_NAME,
+                                                               &our_info, 0);
+    }
+
+    return gnc_plugin_page_sx_list_type;
+}
+
+GncPluginPage *
+gnc_plugin_page_sx_list_new (void)
+{
+    GncPluginPageSxList *plugin_page;
+    plugin_page = g_object_new(GNC_TYPE_PLUGIN_PAGE_SX_LIST, NULL);
+    return GNC_PLUGIN_PAGE(plugin_page);
+}
+
+static void
+gnc_plugin_page_sx_list_class_init (GncPluginPageSxListClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+    GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
+
+    parent_class = g_type_class_peek_parent(klass);
+
+    object_class->dispose = gnc_plugin_page_sx_list_dispose;
+    object_class->finalize = gnc_plugin_page_sx_list_finalize;
+
+    gnc_plugin_class->tab_icon        = GNC_STOCK_ACCOUNT;
+    gnc_plugin_class->plugin_name     = GNC_PLUGIN_PAGE_SX_LIST_NAME;
+    gnc_plugin_class->create_widget   = gnc_plugin_page_sx_list_create_widget;
+    gnc_plugin_class->destroy_widget  = gnc_plugin_page_sx_list_destroy_widget;
+    gnc_plugin_class->save_page       = gnc_plugin_page_sx_list_save_page;
+    gnc_plugin_class->recreate_page   = gnc_plugin_page_sx_list_recreate_page;
+
+    g_type_class_add_private(klass, sizeof(GncPluginPageSxListPrivate));
+}
+
+static void
+gnc_plugin_page_sx_list_init (GncPluginPageSxList *plugin_page)
+{
+    GtkActionGroup *action_group;
+    GncPluginPageSxListPrivate *priv;
+    GncPluginPage *parent;
+
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(plugin_page);
+
+    /* Init parent declared variables */
+    parent = GNC_PLUGIN_PAGE(plugin_page);
+    g_object_set(G_OBJECT(plugin_page),
+                 "page-name",      _("Scheduled Transactions"),
+                 "page-uri",       "default:",
+                 "ui-description", "gnc-plugin-page-sx-list-ui.xml",
+                 NULL);
+
+    gnc_plugin_page_add_book(parent, gnc_get_current_book());
+    action_group =
+        gnc_plugin_page_create_action_group(parent,
+                                            "GncPluginPageSxListActions");
+    gtk_action_group_add_actions(action_group,
+                                 gnc_plugin_page_sx_list_actions,
+                                 gnc_plugin_page_sx_list_n_actions,
+                                 plugin_page);
+    /* gnc_plugin_init_short_names (action_group, toolbar_labels); */
+}
+
+static void
+gnc_plugin_page_sx_list_dispose(GObject *object)
+{
+    GncPluginPageSxList *page;
+    GncPluginPageSxListPrivate *priv;
+
+    page = GNC_PLUGIN_PAGE_SX_LIST (object);
+    g_return_if_fail(GNC_IS_PLUGIN_PAGE_SX_LIST (page));
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+    g_return_if_fail(priv != NULL);
+
+    g_return_if_fail(!priv->disposed);
+    priv->disposed = TRUE;
+     
+    g_object_unref(G_OBJECT(priv->dense_cal_model));
+    priv->dense_cal_model = NULL;
+    gtk_widget_unref(GTK_WIDGET(priv->gdcal));
+    priv->gdcal = NULL;
+    g_object_unref(G_OBJECT(priv->instances)); 
+    priv->instances = NULL;
+
+    G_OBJECT_CLASS (parent_class)->dispose(object);
+}
+
+static void
+gnc_plugin_page_sx_list_finalize (GObject *object)
+{
+    GncPluginPageSxList *page;
+    GncPluginPageSxListPrivate *priv;
+
+    page = GNC_PLUGIN_PAGE_SX_LIST (object);
+    g_return_if_fail(GNC_IS_PLUGIN_PAGE_SX_LIST (page));
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+    g_return_if_fail(priv != NULL);
+
+    G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* Virtual Functions */
+static void
+gnc_plugin_page_sx_list_refresh_cb (GHashTable *changes, gpointer user_data)
+{
+    GncPluginPageSxList *page = user_data;
+    GncPluginPageSxListPrivate *priv;
+
+    g_return_if_fail(GNC_IS_PLUGIN_PAGE_SX_LIST(page));
+
+    /* We're only looking for forced updates here. */
+    if (changes)
+        return;
+
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+    gtk_widget_queue_draw(priv->widget);
+}
+
+static void
+gnc_plugin_page_sx_list_close_cb (gpointer user_data)
+{
+    GncPluginPage *plugin_page;
+    GncPluginPageSxList *page;
+
+    plugin_page = GNC_PLUGIN_PAGE(user_data);
+    page = GNC_PLUGIN_PAGE_SX_LIST (plugin_page);
+    gnc_main_window_close_page(plugin_page);
+}
+
+static void
+gppsl_selection_changed_cb(GtkTreeSelection *selection, gpointer user_data)
+{
+    GncPluginPage *page;
+    GtkAction *edit_action, *delete_action;
+    gboolean selection_state = TRUE;
+
+    page = GNC_PLUGIN_PAGE(user_data);
+    edit_action = gnc_plugin_page_get_action(page, "SxListEditAction");
+    delete_action = gnc_plugin_page_get_action(page, "SxListDeleteAction");
+    selection_state
+        = gtk_tree_selection_count_selected_rows(selection) == 0
+        ? FALSE
+        : TRUE;
+    gtk_action_set_sensitive(edit_action, selection_state);
+    gtk_action_set_sensitive(delete_action, selection_state);
+}
+
+static GtkWidget *
+gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
+{
+    GncPluginPageSxList *page;
+    GncPluginPageSxListPrivate *priv;
+
+    page = GNC_PLUGIN_PAGE_SX_LIST(plugin_page);
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+    if (priv->widget != NULL)
+        return priv->widget;
+
+    priv->gxml = gnc_glade_xml_new("sched-xact.glade", "sx-list-vbox");
+    priv->widget = glade_xml_get_widget(priv->gxml, "sx-list-vbox");
+
+    {
+        // gint half_way;
+        // half_way = plugin_page->notebook_page->allocation.height * 0.5;
+        // fixme; get a real value:
+        gtk_paned_set_position(GTK_PANED(priv->widget), 160);
+    }
+
+    {
+        GDate end;
+        g_date_clear(&end, 1);
+        g_date_set_time_t(&end, time(NULL));
+        g_date_add_years(&end, 1);
+        priv->instances = GNC_SX_INSTANCE_MODEL(gnc_sx_get_instances(&end, TRUE));
+    }
+
+    {
+        GtkAction *edit_action, *delete_action;
+        edit_action = gnc_plugin_page_get_action(GNC_PLUGIN_PAGE(page), "SxListEditAction");
+        delete_action = gnc_plugin_page_get_action(GNC_PLUGIN_PAGE(page), "SxListDeleteAction");
+        gtk_action_set_sensitive(edit_action, FALSE);
+        gtk_action_set_sensitive(delete_action, FALSE);
+    }
+
+    {
+        GtkContainer *tree_view_container;
+        GtkTreeSelection *selection;
+
+        tree_view_container = GTK_CONTAINER(glade_xml_get_widget(priv->gxml, "sx-list-tree-view-container"));
+        priv->tree_view = GTK_TREE_VIEW(gnc_tree_view_sx_list_new(priv->instances));
+        g_object_set(G_OBJECT(priv->tree_view),
+                     "gconf-section", GCONF_SECTION,
+                     "show-column-menu", TRUE,
+                     NULL);
+        gtk_container_add(tree_view_container, GTK_WIDGET(priv->tree_view));
+
+        selection = gtk_tree_view_get_selection(priv->tree_view);
+        gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
+        g_signal_connect(G_OBJECT(selection), "changed", (GCallback)gppsl_selection_changed_cb, (gpointer)page);
+        g_signal_connect(G_OBJECT(priv->tree_view), "row-activated", (GCallback)gppsl_row_activated_cb, (gpointer)page);
+    }
+
+    {
+        GtkWidget *w;
+
+        priv->dense_cal_model = gnc_sx_instance_dense_cal_adapter_new(GNC_SX_INSTANCE_MODEL(priv->instances));
+        priv->gdcal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model(GNC_DENSE_CAL_MODEL(priv->dense_cal_model)));
+        // gobject-2.10: g_object_ref_sink(G_OBJECT(priv->gdcal));
+        g_object_ref(G_OBJECT(priv->gdcal));
+        gtk_object_sink(GTK_OBJECT(priv->gdcal));
+
+        gnc_dense_cal_set_months_per_col(priv->gdcal, 4);
+        gnc_dense_cal_set_num_months(priv->gdcal, 12);
+
+        w = glade_xml_get_widget(priv->gxml, "upcoming_cal_hbox");
+        gtk_container_add(GTK_CONTAINER(w), GTK_WIDGET(priv->gdcal));
+        gtk_widget_show_all(w);
+    }
+
+    priv->gnc_component_id = gnc_register_gui_component("plugin-page-sx-list",
+                                                        gnc_plugin_page_sx_list_refresh_cb,
+                                                        gnc_plugin_page_sx_list_close_cb,
+                                                        page);
+     
+    return priv->widget;
+}
+
+static void
+gnc_plugin_page_sx_list_destroy_widget (GncPluginPage *plugin_page)
+{
+    GncPluginPageSxList *page;
+    GncPluginPageSxListPrivate *priv;
+
+    page = GNC_PLUGIN_PAGE_SX_LIST (plugin_page);
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+
+    if (priv->widget) {
+        g_object_unref(G_OBJECT(priv->widget));
+        priv->widget = NULL;
+    }
+
+    if (priv->gnc_component_id) {
+        gnc_unregister_gui_component(priv->gnc_component_id);
+        priv->gnc_component_id = 0;
+    }
+}
+
+/**
+ * Save enough information about this page that it can be recreated next time
+ * the user starts gnucash.
+ * @param page The page to save.
+ * @param key_file A pointer to the GKeyFile data structure where the
+ * page information should be written.
+ * @param group_name The group name to use when saving data.
+ **/
+static void
+gnc_plugin_page_sx_list_save_page (GncPluginPage *plugin_page,
+                                   GKeyFile *key_file,
+                                   const gchar *group_name)
+{
+    GncPluginPageSxList *page;
+    GncPluginPageSxListPrivate *priv;
+
+    g_return_if_fail(GNC_IS_PLUGIN_PAGE_SX_LIST(plugin_page));
+    g_return_if_fail(key_file != NULL);
+    g_return_if_fail(group_name != NULL);
+
+    page = GNC_PLUGIN_PAGE_SX_LIST(plugin_page);
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+
+    g_key_file_set_integer(key_file, group_name, "dense_cal_num_months",
+                           gnc_dense_cal_get_num_months(priv->gdcal)); 
+}
+
+/**
+ * Create a new sx list page based on the information saved during a previous
+ * instantiation of gnucash.
+ *  @param window The window where this page should be installed.
+ *  @param key_file A pointer to the GKeyFile data structure where the
+ *  page information should be read.
+ *  @param group_name The group name to use when restoring data.
+ **/
+static GncPluginPage *
+gnc_plugin_page_sx_list_recreate_page (GtkWidget *window,
+                                       GKeyFile *key_file,
+                                       const gchar *group_name)
+{
+    GncPluginPageSxList *page;
+    GncPluginPageSxListPrivate *priv;
+
+    g_return_val_if_fail(key_file, NULL);
+    g_return_val_if_fail(group_name, NULL);
+
+    /* Create the new page. */
+    page = GNC_PLUGIN_PAGE_SX_LIST(gnc_plugin_page_sx_list_new());
+    priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+
+    /* Install it now so we can them manipulate the created widget */
+    gnc_main_window_open_page(GNC_MAIN_WINDOW(window), GNC_PLUGIN_PAGE(page));
+
+    {
+        GError *err = NULL;
+        gint num_months = g_key_file_get_integer(key_file, group_name, "dense_cal_num_months", &err);
+        if (err == NULL)
+            gnc_dense_cal_set_num_months(priv->gdcal, num_months);
+        else
+            g_error_free(err);
+    }
+
+    return GNC_PLUGIN_PAGE(page);
+}
+
+static void
+gnc_plugin_page_sx_list_cmd_new(GtkAction *action, GncPluginPageSxList *page)
+{
+    SchedXaction *new_sx;
+    gboolean new_sx_flag = TRUE;
+
+    new_sx = xaccSchedXactionMalloc(gnc_get_current_book());
+    {
+        GDate now;
+        Recurrence *r = g_new0(Recurrence, 1);
+        GList *schedule;
+        
+        g_date_clear(&now, 1);
+        g_date_set_time_t(&now, time(NULL));
+        recurrenceSet(r, 1, PERIOD_MONTH, &now);
+        schedule = gnc_sx_get_schedule(new_sx);
+        schedule = g_list_append(schedule, r);
+        gnc_sx_set_schedule(new_sx, schedule);
+    }
+    gnc_ui_scheduled_xaction_editor_dialog_create(new_sx, new_sx_flag);
+}
+
+static void
+_edit_sx(gpointer data, gpointer user_data)
+{
+    gnc_ui_scheduled_xaction_editor_dialog_create((SchedXaction*)data, FALSE);
+}
+
+static SchedXaction*
+_argument_reorder_fn(GtkTreePath* list_path_data, GncTreeViewSxList* user_tree_view)
+{
+    return gnc_tree_view_sx_list_get_sx_from_path(user_tree_view, list_path_data);
+}
+
+static void
+gnc_plugin_page_sx_list_cmd_edit(GtkAction *action, GncPluginPageSxList *page)
+{
+    GncPluginPageSxListPrivate *priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+    GtkTreeSelection *selection;
+    GList *selected_paths, *to_edit;
+    GtkTreeModel *model;
+
+    selection = gtk_tree_view_get_selection(priv->tree_view);
+    selected_paths = gtk_tree_selection_get_selected_rows(selection, &model);
+    if (g_list_length(selected_paths) == 0)
+    {
+        g_warning("no selection edit.");
+        return;
+    }
+
+    to_edit = gnc_g_list_map(selected_paths,
+                             (GncGMapFunc)_argument_reorder_fn,
+                             priv->tree_view);
+    g_list_foreach(to_edit, (GFunc)_edit_sx, NULL);
+    g_list_free(to_edit);
+    g_list_foreach(selected_paths, (GFunc)gtk_tree_path_free, NULL);
+    g_list_free(selected_paths);
+}
+
+static void
+gppsl_row_activated_cb(GtkTreeView *tree_view,
+                       GtkTreePath *path,
+                       GtkTreeViewColumn *column,
+                       gpointer user_data)
+{
+    GncPluginPageSxList *page = GNC_PLUGIN_PAGE_SX_LIST(user_data);
+    GncPluginPageSxListPrivate *priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+
+    SchedXaction *sx = gnc_tree_view_sx_list_get_sx_from_path(GNC_TREE_VIEW_SX_LIST(priv->tree_view), path);
+    gnc_ui_scheduled_xaction_editor_dialog_create(sx, FALSE);
+}
+
+
+static void
+_destroy_sx(gpointer data, gpointer user_data)
+{
+    SchedXactions *sxes;
+    SchedXaction *sx = (SchedXaction*)data;
+    GNCBook *book;
+    book = gnc_get_current_book();
+    sxes = gnc_book_get_schedxactions(book);
+    gnc_sxes_del_sx(sxes, sx);
+    xaccSchedXactionFree(sx);
+}
+
+static void
+gnc_plugin_page_sx_list_cmd_delete(GtkAction *action, GncPluginPageSxList *page)
+{
+    GncPluginPageSxListPrivate *priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
+    GtkTreeSelection *selection;
+    GList *selected_paths, *to_delete = NULL;
+    GtkTreeModel *model;
+
+    /* @@fixme -- add (suppressible?) confirmation dialog */
+    selection = gtk_tree_view_get_selection(priv->tree_view);
+    selected_paths = gtk_tree_selection_get_selected_rows(selection, &model);
+    if (g_list_length(selected_paths) == 0)
+    {
+        g_warning("no selection for delete.");
+        return;
+    }
+
+    to_delete = gnc_g_list_map(selected_paths,
+                               (GncGMapFunc)_argument_reorder_fn,
+                               priv->tree_view);
+    {
+        GList *list;
+        for (list = to_delete; list != NULL; list = list->next)
+        {
+            g_debug("to-delete [%s]\n", xaccSchedXactionGetName((SchedXaction*)list->data));
+        }
+    }
+    g_list_foreach(to_delete, (GFunc)_destroy_sx, NULL);
+    g_list_free(to_delete);
+    g_list_foreach(selected_paths, (GFunc)gtk_tree_path_free, NULL);
+    g_list_free(selected_paths);
+}
+
+/** @} */
+/** @} */

Added: gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-plugin-page-sx-list.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,81 @@
+/* 
+ * gnc-plugin-page-sx-list.h
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/** @addtogroup ContentPlugins
+    @{ */
+/** @addtogroup GncPluginPageSxList An Plugin Page for the SX List.
+    @{ */
+/** @brief Functions providing a list of scheduled transactions as a plugin page.
+    @author Josh Sled <jsled at asynchronous.org>
+*/
+
+#ifndef __GNC_PLUGIN_PAGE_SX_LIST_H
+#define __GNC_PLUGIN_PAGE_SX_LIST_H
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtkwindow.h>
+#include "SchedXaction.h"
+#include "gnc-plugin-page.h"
+
+
+G_BEGIN_DECLS
+
+/* type macros */
+#define GNC_TYPE_PLUGIN_PAGE_SX_LIST            (gnc_plugin_page_sx_list_get_type ())
+#define GNC_PLUGIN_PAGE_SX_LIST(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_PLUGIN_PAGE_SX_LIST, GncPluginPageSxList))
+#define GNC_PLUGIN_PAGE_SX_LIST_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_PAGE_SX_LIST, GncPluginPageSxListClass))
+#define GNC_IS_PLUGIN_PAGE_SX_LIST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_PLUGIN_PAGE_SX_LIST))
+#define GNC_IS_PLUGIN_PAGE_SX_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_PAGE_SX_LIST))
+#define GNC_PLUGIN_PAGE_SX_LIST_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_PAGE_SX_LIST, GncPluginPageSxListClass))
+
+#define GNC_PLUGIN_PAGE_SX_LIST_NAME "GncPluginPageSxList"
+
+/* typedefs & structures */
+typedef struct
+{
+    GncPluginPage gnc_plugin_page;
+} GncPluginPageSxList;
+
+typedef struct
+{
+    GncPluginPageClass gnc_plugin_page;
+} GncPluginPageSxListClass;
+
+/* function prototypes */
+
+/**
+ * Retrieve the type number for an "sx list" plugin page.
+ * @return The type number.
+ */
+GType gnc_plugin_page_sx_list_get_type(void);
+
+/**
+ * @return The newly created plugin page.
+ **/
+GncPluginPage *gnc_plugin_page_sx_list_new(void);
+
+G_END_DECLS
+
+#endif /* __GNC_PLUGIN_PAGE_SX_LIST_H */
+/** @} */
+/** @} */

Modified: gnucash/branches/gda-dev/src/gnome/gnc-split-reg.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-split-reg.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-split-reg.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,7 +5,7 @@
  * Copyright (C) 1998 Rob Browning <rlb at cs.utexas.edu>              *
  * Copyright (C) 1999-2000 Dave Peticolas <dave at krondo.com>         *
  * Copyright (C) 2001 Gnumatic, Inc.                                *
- * Copyright (C) 2002 Joshua Sled <jsled at asynchronous.org>          *
+ * Copyright (C) 2002,2006 Joshua Sled <jsled at asynchronous.org>     *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
  * modify it under the terms of the GNU General Public License as   *
@@ -37,7 +37,7 @@
 #include "QueryNew.h"
 #include "SX-book.h"
 #include "dialog-account.h"
-#include "dialog-scheduledxaction.h"
+#include "dialog-sx-editor.h"
 #include "dialog-sx-from-trans.h"
 #include "gnc-component-manager.h"
 #include "gnc-date-edit.h"
@@ -170,10 +170,10 @@
 FROM_STRING_FUNC(SortType, ENUM_LIST_SORTTYPE)
 AS_STRING_FUNC(SortType, ENUM_LIST_SORTTYPE)
 
-guint
+GType
 gnc_split_reg_get_type( void )
 {
-  static guint gnc_split_reg_type = 0;
+  static GType gnc_split_reg_type = 0;
 
   if (!gnc_split_reg_type)
     {
@@ -483,7 +483,7 @@
   commodity = xaccAccountGetCommodity (account);
   currency = gnc_default_currency ();
 
-  book = xaccAccountGetBook (account);
+  book = gnc_account_get_book (account);
   pdb = gnc_book_get_pricedb (book);
 
   return gnc_pricedb_lookup_latest (pdb, commodity, currency);
@@ -501,7 +501,7 @@
   if (!account) return NULL;
   commodity = xaccAccountGetCommodity (account);
 
-  book = xaccAccountGetBook (account);
+  book = gnc_account_get_book (account);
   pdb = gnc_book_get_pricedb (book);
 
   price_list = gnc_pricedb_lookup_latest_any_currency (pdb, commodity);
@@ -991,7 +991,7 @@
 
   gtk_dialog_add_button(GTK_DIALOG(dialog),
 			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
-  gnc_gtk_dialog_add_button(dialog, N_("_Remove Splits"),
+  gnc_gtk_dialog_add_button(dialog, _("_Remove Splits"),
 			    GTK_STOCK_DELETE, GTK_RESPONSE_ACCEPT);
   response = gnc_dialog_run(GTK_DIALOG(dialog), warning);
   gtk_widget_destroy (dialog);
@@ -1227,7 +1227,7 @@
         GList *sxElts;
         
         /* Get the correct SX */
-        for ( sxElts = gnc_book_get_schedxactions( gnc_get_current_book() );
+        for ( sxElts = gnc_book_get_schedxactions(gnc_get_current_book())->sx_list;
               (!theSX) && sxElts;
               sxElts = sxElts->next ) {
           SchedXaction *sx = (SchedXaction*)sxElts->data;
@@ -1237,8 +1237,7 @@
         }
 
         if ( theSX ) {
-          SchedXactionDialog *sxd = gnc_ui_scheduled_xaction_dialog_create();
-          gnc_ui_scheduled_xaction_editor_dialog_create( sxd, theSX, FALSE );
+          gnc_ui_scheduled_xaction_editor_dialog_create(theSX, FALSE);
           return;
         }
       }

Modified: gnucash/branches/gda-dev/src/gnome/gnc-split-reg.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome/gnc-split-reg.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/gnc-split-reg.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -159,7 +159,7 @@
 /**
  * GTK-related; gets an identifier for the class of GNCSplitRegs.
  **/
-guint gnc_split_reg_get_type(void);
+GType gnc_split_reg_get_type(void);
 
 /**
  * Creates and returns a GNCSplitReg.

Modified: gnucash/branches/gda-dev/src/gnome/lot-viewer.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/lot-viewer.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/lot-viewer.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -431,7 +431,7 @@
       }
       else
       {
-	gtk_list_store_set(store, &iter, LOT_COL_CLOSE, cbuff, _("Open"), -1);
+	gtk_list_store_set(store, &iter, LOT_COL_CLOSE, _("Open"), -1);
       }
 
       /* Title */

Modified: gnucash/branches/gda-dev/src/gnome/reconcile-list.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/reconcile-list.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/reconcile-list.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -144,7 +144,7 @@
 
   include_children = xaccAccountGetReconcileChildrenStatus(account);
   if (include_children)
-    accounts = xaccAccountGetDescendants(account);
+    accounts = gnc_account_get_descendants(account);
 
   /* match the account */
   accounts = g_list_prepend (accounts, account);
@@ -290,7 +290,6 @@
 static void
 gnc_reconcile_list_toggle_children(Account *account, GNCReconcileList *list, Split *split)
 {
-  AccountGroup *account_group;
   GList *child_accounts, *node;
   Transaction *transaction;
 
@@ -301,8 +300,7 @@
    *
    * For each of these splits toggle them all to the same state.
    */
-  account_group = xaccAccountGetChildren(account);
-  child_accounts = xaccGroupGetSubAccounts(account_group);
+  child_accounts = gnc_account_get_descendants(account);
   child_accounts = g_list_prepend(child_accounts, account);
   transaction = xaccSplitGetParent(split);
   for(node = xaccTransGetSplitList(transaction); node; node = node->next)
@@ -331,6 +329,7 @@
     }
     gnc_reconcile_list_toggle_split(current_list, other_split);
   }
+  g_list_free(child_accounts);
 }
 
 static void

Modified: gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in
===================================================================
--- gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -122,5 +122,41 @@
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/print_checks/print_date_format</key>
+      <applyto>/apps/gnucash/dialogs/print_checks/print_date_format</applyto>
+      <owner>gnucash</owner>
+      <type>bool</type>
+      <default>FALSE</default>
+      <locale name="C">
+        <short>Print the date format below the date.</short>
+        <long>Each time the date is printed, print the date format immediately below in 8 point type using the characters Y, M, and D.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/print_checks/default_font</key>
+      <applyto>/apps/gnucash/dialogs/print_checks/default_font</applyto>
+      <owner>gnucash</owner>
+      <type>string</type>
+      <default>sans 10</default>
+      <locale name="C">
+        <short>The default check printing font</short>
+        <long>The default font to use when printing checks.  This value will be overridden by any font specified in a check description file.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/print_checks/blocking_chars</key>
+      <applyto>/apps/gnucash/dialogs/print_checks/blocking_chars</applyto>
+      <owner>gnucash</owner>
+      <type>bool</type>
+      <default>FALSE</default>
+      <locale name="C">
+        <short>Print '***' before and after strings.</short>
+        <long>Print '***' before and after strings.</long>
+      </locale>
+    </schema>
+
   </schemalist>
 </gconfschemafile>

Modified: gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_general.schemas.in
===================================================================
--- gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_general.schemas.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/schemas/apps_gnucash_general.schemas.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -185,6 +185,23 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/gnucash/general/tab_width</key>
+      <applyto>/apps/gnucash/general/tab_width</applyto>
+      <owner>gnucash</owner>
+      <type>float</type>
+      <default>30.0</default>
+      <locale name="C">
+        <short>Width of notebook tabs</short>
+        <long>
+	  This key specifies the maximum width of notebook tabs.
+	  If the text in the tab is longer than this value (the test
+	  is approximate) then the tab label will have the middle cut
+	  and replaced with an ellipsis.
+	</long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/gnucash/general/currency_choice</key>
       <applyto>/apps/gnucash/general/currency_choice</applyto>
       <owner>gnucash</owner>
@@ -494,5 +511,31 @@
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/gnucash/dev/allow_file_incompatibility</key>
+      <applyto>/apps/gnucash/dev/allow_file_incompatibility</applyto>
+      <owner>gnucash</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Allow file incompatability with older versions.</short>
+        <long>If gnucash should allow file incompatability.  If true, then gnucash will (be allowed to) intentionally break file compatability with old versions.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnucash/general/tab_next_recent</key>
+      <applyto>/apps/gnucash/general/tab_next_recent</applyto>
+      <owner>gnucash</owner>
+      <type>bool</type>
+      <default>FALSE</default>
+      <locale name="C">
+        <short>Closing a tab moves to the the most recent tab.</short>
+        <long>
+	  If true, closing a tab moves to the most recently visited tab.  If false, closing a tab moves one tab to the left.
+	</long>
+      </locale>
+    </schema>
+
   </schemalist>
 </gconfschemafile>

Modified: gnucash/branches/gda-dev/src/gnome/top-level.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/top-level.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/top-level.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -33,7 +33,7 @@
 #include "dialog-account.h"
 #include "dialog-commodity.h"
 #include "dialog-options.h"
-#include "dialog-scheduledxaction.h"
+#include "dialog-sx-editor.h"
 #include "dialog-transfer.h"
 #include "dialog-totd.h"
 #include "druid-hierarchy.h"
@@ -119,8 +119,8 @@
   /* href="gnc-register:account=My Bank Account" */
   if (strncmp("account=", location, 8) == 0)
   {
-    account = xaccGetAccountFromFullName (gnc_get_current_group (),
-                                          location + 8);
+    account = gnc_account_lookup_by_full_name (gnc_get_current_root_account (),
+					       location + 8);
   }
 
   /* href="gnc-register:guid=12345678901234567890123456789012" */

Modified: gnucash/branches/gda-dev/src/gnome/ui/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnome/ui/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/ui/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -8,6 +8,7 @@
 	gnc-plugin-file-history-ui.xml \
 	gnc-plugin-register-ui.xml \
 	gnc-plugin-page-register-ui.xml \
+        gnc-plugin-page-sx-list-ui.xml \
 	gnc-plugin-page-sxregister-ui.xml \
 	gnc-sxed-to-create-window-ui.xml \
 	gnc-reconcile-window-ui.xml \

Added: gnucash/branches/gda-dev/src/gnome/ui/gnc-plugin-page-sx-list-ui.xml
===================================================================
--- gnucash/branches/gda-dev/src/gnome/ui/gnc-plugin-page-sx-list-ui.xml	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/ui/gnc-plugin-page-sx-list-ui.xml	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,20 @@
+<ui>
+  <menubar>
+    <placeholder name="AdditionalMenusPlaceholder">
+      <menu action="SxListAction">
+        <menuitem name="SxListNew" action="SxListNewAction"/>
+        <menuitem name="SxListEdit" action="SxListEditAction"/>
+        <menuitem name="SxListDelete" action="SxListDeleteAction"/>
+      </menu>
+    </placeholder>
+  </menubar>
+
+  <toolbar name="DefaultToolbar">
+    <placeholder name="DefaultToolbarPlaceholder">
+      <separator name="ToolbarSep2" />
+      <toolitem name="SxListToolbarNew" action="SxListNewAction"/>
+      <toolitem name="SxListToolbarEdit" action="SxListEditAction"/>
+      <toolitem name="SxListToolbarDelete" action="SxListDeleteAction"/>
+    </placeholder>
+  </toolbar>
+</ui>

Modified: gnucash/branches/gda-dev/src/gnome/window-reconcile.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome/window-reconcile.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome/window-reconcile.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,8 +31,8 @@
 #include "config.h"
 
 #include <gtk/gtk.h>
-#include "gtk-compat.h"
 #include <glib/gi18n.h>
+#include "glib-compat.h"
 
 #include "Scrub.h"
 #include "Scrub3.h"
@@ -1229,7 +1229,8 @@
   xaccAccountTreeScrubImbalance (account);
 
   // XXX: Lots are disabled.
-  //xaccAccountTreeScrubLots (account);
+  if (g_getenv("GNC_AUTO_SCRUB_LOTS") != NULL)
+      xaccAccountTreeScrubLots(account);
 
   gnc_resume_gui_refresh ();
 }
@@ -1285,30 +1286,36 @@
                         gnc_numeric *new_ending,
                         time_t *statement_date)
 {
+  GDate date;
   time_t today;
   struct tm tm;
 
+  g_date_clear(&date, 1);
+
   if (xaccAccountGetReconcileLastDate (account, statement_date))
   {
     int months = 1, days = 0;
 
-    tm = * localtime (statement_date);
+    g_date_set_time_t(&date, *statement_date);
 
-    /* How far should the date be moved?  Args unchanged on failure. */
     xaccAccountGetReconcileLastInterval (account, &months, &days);
 
     if (months) {
-      /*
-       * Add in the months and normalize
-       */
-      date_add_months(&tm, months, TRUE);
+      gboolean was_last_day_of_month = g_date_is_last_of_month(&date);
+
+      g_date_add_months(&date, months);
+
+      /* Track last day of the month, i.e. 1/31 -> 2/28 -> 3/31 */ 
+      if (was_last_day_of_month)
+      {
+        g_date_set_day(&date, g_date_get_days_in_month(g_date_get_month(&date),
+                                                       g_date_get_year(&date)));
+      }
     } else {
-      /*
-       * Add in the days (weeks if multiple of seven).
-       */
-      tm.tm_mday += days;
+      g_date_add_days(&date, days);
     }
-    tm.tm_isdst = -1;
+
+    g_date_to_struct_tm(&date, &tm);
     gnc_tm_set_day_end (&tm);
     *statement_date = mktime (&tm);
 
@@ -1393,7 +1400,7 @@
 
   include_children = xaccAccountGetReconcileChildrenStatus(account);
   if (include_children)
-    accounts = xaccAccountGetDescendants(account);
+    accounts = gnc_account_get_descendants(account);
 
   /* match the account */
   accounts = g_list_prepend (accounts, account);

Modified: gnucash/branches/gda-dev/src/gnome-search/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,3 @@
-PWD := $(shell pwd)
-
 pkglib_LTLIBRARIES = libgncmod-gnome-search.la
 
 AM_CFLAGS = \
@@ -16,8 +14,7 @@
   ${GLADE_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${GLIB_CFLAGS} \
-  ${QOF_CFLAGS} \
-  ${GNOME_PRINT_CFLAGS}
+  ${QOF_CFLAGS}
 
 libgncmod_gnome_search_la_SOURCES = \
   gncmod-gnome-search.c \
@@ -51,19 +48,20 @@
   search-reconciled.h \
   search-string.h
 
+libgncmod_gnome_search_la_LDFLAGS = -avoid-version
+
 libgncmod_gnome_search_la_LIBADD = \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${GUILE_LIBS} \
   ${GNOME_LIBS} \
   ${GTKHTML_LIBS} \
   ${GLADE_LIBS} \
   ${GLIB_LIBS} \
   ${REGEX_LIBS} \
-  ${QOF_LIBS} \
-  ${GNOME_PRINT_LIBS}
+  ${QOF_LIBS}
 
 gladedir = $(GNC_GLADE_DIR)
 glade_DATA = \
@@ -72,3 +70,4 @@
 EXTRA_DIST = \
   ${glade_DATA}
 
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.gui.search\"

Modified: gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -80,10 +80,10 @@
  *
  * Returns the GtkType for the GNCGeneralSearch widget
  */
-guint
+GType
 gnc_general_search_get_type (void)
 {
-	static guint general_search_type = 0;
+	static GType general_search_type = 0;
 
 	if (!general_search_type){
 		static const GTypeInfo our_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/gnc-general-search.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -83,7 +83,7 @@
 					      gpointer searched);
 gpointer   gnc_general_search_get_selected   (GNCGeneralSearch *gsl);
 
-guint      gnc_general_search_get_type       (void);
+GType      gnc_general_search_get_type       (void);
 
 #endif
 

Modified: gnucash/branches/gda-dev/src/gnome-search/gncmod-gnome-search.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/gncmod-gnome-search.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/gncmod-gnome-search.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 /*********************************************************************
  * gncmod-gnome-search
  * GNC Module initialization for the Gnome Search UI
- * 
+ *
  * Copyright (c) 2002 Derek Atkins <warlord at MIT.EDU>
  *
  * This program is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@
 #endif
 
 #include <gtk/gtk.h>
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -36,34 +36,28 @@
 #include "search-core-type.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_gnome_search_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_gnome_search_LTX_gnc_module_current  = 0;
-int libgncmod_gnome_search_LTX_gnc_module_revision = 0;
-int libgncmod_gnome_search_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_gnome_search_LTX_gnc_module_path(void);
-char *libgncmod_gnome_search_LTX_gnc_module_description(void);
-int libgncmod_gnome_search_LTX_gnc_module_init(int refcount);
-int libgncmod_gnome_search_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_gnome_search_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/gnome-search");
 }
 
-char * 
-libgncmod_gnome_search_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("The GnuCash Gnome Search UI");
 }
 
 int
-libgncmod_gnome_search_LTX_gnc_module_init(int refcount) 
+gnc_module_init(int refcount)
 {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
@@ -74,17 +68,17 @@
     return FALSE;
   }
 
-  if(refcount == 0) 
+  if(refcount == 0)
   {
     /* initialize known types */
     gnc_search_core_initialize ();
   }
-  
+
   return TRUE;
 }
 
 int
-libgncmod_gnome_search_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   /* XXX Unload the other modules */
 
   if (refcount == 0) {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-account.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -59,10 +59,10 @@
 static GNCSearchCoreTypeClass *parent_class;
 
 
-guint
+GType
 gnc_search_account_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-account.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -46,7 +46,7 @@
   /* signals */
 };
 
-guint		gnc_search_account_get_type	(void);
+GType		gnc_search_account_get_type	(void);
 GNCSearchAccount	*gnc_search_account_new	(void);
 GNCSearchAccount	*gnc_search_account_matchall_new	(void);
 

Modified: gnucash/branches/gda-dev/src/gnome-search/search-boolean.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-boolean.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-boolean.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -54,10 +54,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_boolean_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-boolean.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-boolean.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-boolean.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -47,7 +47,7 @@
   /* signals */
 };
 
-guint		gnc_search_boolean_get_type	(void);
+GType		gnc_search_boolean_get_type	(void);
 GNCSearchBoolean	*gnc_search_boolean_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/gnome-search/search-date.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-date.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-date.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,10 +58,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_date_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-date.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-date.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-date.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -48,7 +48,7 @@
   /* signals */
 };
 
-guint		gnc_search_date_get_type	(void);
+GType		gnc_search_date_get_type	(void);
 GNCSearchDate	*gnc_search_date_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/gnome-search/search-double.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-double.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-double.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,10 +58,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_double_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-double.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-double.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-double.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -47,7 +47,7 @@
   /* signals */
 };
 
-guint		gnc_search_double_get_type	(void);
+GType		gnc_search_double_get_type	(void);
 GNCSearchDouble	*gnc_search_double_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/gnome-search/search-int64.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-int64.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-int64.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -59,10 +59,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_int64_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-int64.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-int64.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-int64.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -47,7 +47,7 @@
   /* signals */
 };
 
-guint		gnc_search_int64_get_type	(void);
+GType		gnc_search_int64_get_type	(void);
 GNCSearchInt64	*gnc_search_int64_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/gnome-search/search-numeric.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-numeric.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-numeric.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -59,10 +59,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_numeric_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-numeric.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-numeric.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-numeric.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -50,7 +50,7 @@
   /* signals */
 };
 
-guint		gnc_search_numeric_get_type	(void);
+GType		gnc_search_numeric_get_type	(void);
 GNCSearchNumeric	*gnc_search_numeric_new	(void);
 GNCSearchNumeric	*gnc_search_numeric_debcred_new (void);
 

Modified: gnucash/branches/gda-dev/src/gnome-search/search-reconciled.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-reconciled.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-reconciled.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -55,10 +55,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_reconciled_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-reconciled.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-reconciled.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-reconciled.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -47,7 +47,7 @@
   /* signals */
 };
 
-guint		gnc_search_reconciled_get_type	(void);
+GType		gnc_search_reconciled_get_type	(void);
 GNCSearchReconciled	*gnc_search_reconciled_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/gnome-search/search-string.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-string.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-string.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,10 +58,10 @@
 
 static GNCSearchCoreTypeClass *parent_class;
 
-guint
+GType
 gnc_search_string_get_type (void)
 {
-  static guint type = 0;
+  static GType type = 0;
 	
   if (!type) {
     GTypeInfo type_info = {

Modified: gnucash/branches/gda-dev/src/gnome-search/search-string.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search-string.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search-string.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -54,7 +54,7 @@
   /* signals */
 };
 
-guint		gnc_search_string_get_type	(void);
+GType		gnc_search_string_get_type	(void);
 GNCSearchString	*gnc_search_string_new	(void);
 
 /* methods */

Modified: gnucash/branches/gda-dev/src/gnome-search/search.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-search/search.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-search/search.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -87,6 +88,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -197,6 +202,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -218,6 +227,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -310,6 +323,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -375,6 +392,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -545,6 +566,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="type">label_item</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,4 @@
 SUBDIRS = glade schemas . test ui
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-gnome-utils.la
 
@@ -10,26 +9,23 @@
   -I${top_srcdir}/src/gnc-module \
   -I${top_srcdir}/src/engine \
   -I${top_srcdir}/src/backend/file \
-  -I${top_srcdir}/src/network-utils \
   -I${top_srcdir}/src/app-utils \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/lib/libc \
   ${GLIB_CFLAGS} \
   ${GLADE_CFLAGS} \
   ${GTK_CFLAGS} \
-  ${GNOME_PRINT_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${GTKHTML_CFLAGS} \
   ${GUILE_INCS} \
   ${QOF_CFLAGS} \
-  ${GOFFICE_CFLAGS} \
-  ${GSF_CFLAGS}
+  ${GOFFICE_CFLAGS}
 
 libgncmod_gnome_utils_la_SOURCES = \
   QuickFill.c \
   account-quickfill.c \
   cursors.c \
-  argv-list-converters.c \
   dialog-account.c \
   dialog-commodity.c \
   dialog-options.c \
@@ -50,6 +46,8 @@
   gnc-date-edit.c \
   gnc-date-format.c \
   gnc-dense-cal.c \
+  gnc-dense-cal-model.c \
+  gnc-dense-cal-store.c \
   gnc-druid-gnome.c \
   gnc-druid-provider-edge-gnome.c \
   gnc-druid-provider-file-gnome.c \
@@ -75,6 +73,8 @@
   gnc-period-select.c \
   gnc-query-list.c \
   gnc-splash.c \
+  gnc-sx-instance-dense-cal-adapter.c \
+  gnc-sx-list-tree-model-adapter.c \
   gnc-tree-model.c \
   gnc-tree-model-account-types.c \
   gnc-tree-model-account.c \
@@ -84,11 +84,11 @@
   gnc-tree-view-account.c \
   gnc-tree-view-commodity.c \
   gnc-tree-view-price.c \
+  gnc-tree-view-sx-list.c \
   gnc-tree-view.c \
   gnc-window.c \
   gncmod-gnome-utils.c \
   misc-gnome-utils.c \
-  print-session.c \
   search-param.c \
   gnc-dialog.c \
   swig-gnome-utils.c \
@@ -118,6 +118,8 @@
   gnc-date-edit.h \
   gnc-date-format.h \
   gnc-dense-cal.h \
+  gnc-dense-cal-model.h \
+  gnc-dense-cal-store.h \
   gnc-druid-gnome-ui.h \
   gnc-embedded-window.h \
   gnc-file.h \
@@ -140,6 +142,8 @@
   gnc-period-select.h \
   gnc-query-list.h \
   gnc-splash.h \
+  gnc-sx-instance-dense-cal-adapter.h \
+  gnc-sx-list-tree-model-adapter.h \
   gnc-tree-model.h \
   gnc-tree-model-account-types.h \
   gnc-tree-model-account.h \
@@ -149,6 +153,7 @@
   gnc-tree-view-account.h \
   gnc-tree-view-commodity.h \
   gnc-tree-view-price.h \
+  gnc-tree-view-sx-list.h \
   gnc-tree-view.h \
   gnc-window.h \
   misc-gnome-utils.h \
@@ -157,24 +162,23 @@
   window-main-summarybar.h
 
 noinst_HEADERS = \
-  argv-list-converters.h \
   gnc-druid-gnome.h \
   gnc-druid-provider-edge-gnome.h \
   gnc-druid-provider-file-gnome.h \
   gnc-druid-provider-multifile-gnome.h \
   search-param.h
 
+libgncmod_gnome_utils_la_LDFLAGS = -avoid-version
+
 libgncmod_gnome_utils_la_LIBADD = \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/backend/file/libgnc-backend-file-utils.la \
   ${top_builddir}/src/calculation/libgncmod-calculation.la \
-  ${top_builddir}/src/network-utils/libgncmod-network-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   $(top_builddir)/lib/libc/libc-missing.la \
   ${GNOME_LIBS} \
-  ${GNOME_PRINT_LIBS} \
   ${GTKHTML_LIBS} \
   ${GUILE_LIBS} \
   ${GDK_PIXBUF_LIBS} \
@@ -182,14 +186,14 @@
   ${GUILE_LIBS} \
   ${GLIB_LIBS} \
   ${DB_LIBS} \
-  ${GSF_LIBS} \
   ${QOF_LIBS} \
   ${GOFFICE_LIBS} \
   ${REGEX_LIBS} \
   ${LIBXML2_LIBS}
 
 if BUILDING_FROM_SVN
-swig-gnome-utils.c: gnome-utils.i gnc-html.h print-session.h
+swig-gnome-utils.c: gnome-utils.i gnc-html.h \
+                    ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -206,6 +210,14 @@
   ${gncmod_DATA} \
   ${gncscm_DATA}
 
+if GTKHTML_USES_GTKPRINT
+  EXTRA_DIST += print-session.c
+else
+  AM_CFLAGS += ${GNOME_PRINT_CFLAGS}
+  libgncmod_gnome_utils_la_LIBADD += ${GNOME_PRINT_LIBS}
+  libgncmod_gnome_utils_la_SOURCES += print-session.c
+endif
+
 ## We borrow guile's convention and use @-...-@ as the substitution
 ## brackets here, instead of the usual @... at .  This prevents autoconf
 ## from substituting the values directly into the left-hand sides of
@@ -220,7 +232,7 @@
 	@echo "#ifndef GNC_VERSION_H"			>> _gnc-version.h
 	@echo "#define GNC_VERSION_H"			>> _gnc-version.h
 	@echo ""					>> _gnc-version.h
-	@svninfo=`${top_srcdir}/util/gnc-svnversion ${srcdir}` ; \
+	@svninfo=`${top_srcdir}/util/gnc-svnversion ${top_srcdir}` ; \
 	if [ $$? = 0 ] ; then \
 		echo "#define GNUCASH_SVN 1"		>> _gnc-version.h ; \
 	fi
@@ -234,11 +246,11 @@
 	-rm -f _gnc-svninfo.h
 
 _gnc-svninfo.h: Makefile
-	@svninfo=`${top_srcdir}/util/gnc-svnversion ${srcdir}` ; \
+	@svninfo=`${top_srcdir}/util/gnc-svnversion ${top_srcdir}` ; \
 	if [ $$? = 0 ] ; then \
 		if [ -z "$$svninfo" ] ; then \
 			echo "gnc-svnversion failed.  figure out why." ; \
-			echo "can't determine svn revision from ${srcdir}." ; \
+			echo "can't determine svn revision from ${top_srcdir}." ; \
 			exit 1 ; \
 		fi ; \
 		echo "/* Autogenerated. Do not change. */" > _gnc-svninfo.h ; \
@@ -290,3 +302,5 @@
 uninstall-hook:
 	rm -f ${DESTDIR}${pkgdatadir}/gnome
 endif
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.gui\"

Modified: gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -54,7 +54,7 @@
   gboolean load_list_store;
   GtkListStore *list_store;
   QofBook *book;
-  AccountGroup *group;
+  Account *root;
   gint  listener;
   AccountBoolCB dont_add_cb;
   gpointer dont_add_data;
@@ -105,7 +105,7 @@
 
 
 /* Splat the account name into the shared quickfill object */
-static gpointer
+static void
 load_shared_qf_cb (Account *account, gpointer data)
 {
   QFB *qfb = data;
@@ -115,11 +115,11 @@
   if (qfb->dont_add_cb)
   {
      gboolean skip = (qfb->dont_add_cb) (account, qfb->dont_add_data);
-     if (skip) return NULL;
+     if (skip) return;
   }
 
   name = xaccAccountGetFullName (account);
-  if (NULL == name) return NULL;
+  if (NULL == name) return;
   gnc_quickfill_insert (qfb->qf, name, QUICKFILL_ALPHA);
   if (qfb->load_list_store) {
     gtk_list_store_append (qfb->list_store, &iter);
@@ -129,8 +129,6 @@
 			-1);
   }
   g_free(name);
-
-  return NULL;
 }
 
 static void
@@ -142,7 +140,7 @@
   gnc_quickfill_purge(qfb->qf);
   gtk_list_store_clear(qfb->list_store);
   qfb->load_list_store = TRUE;
-  xaccGroupForEachAccount (qfb->group, load_shared_qf_cb, qfb, TRUE);
+  gnc_account_foreach_descendant(qfb->root, load_shared_qf_cb, qfb);
   qfb->load_list_store = FALSE;
 }
 
@@ -151,7 +149,7 @@
  * Essentially same loop as in gnc_load_xfer_cell() above.
  */
 static QFB *
-build_shared_quickfill (QofBook *book, AccountGroup *group, const char * key,
+build_shared_quickfill (QofBook *book, Account *root, const char * key,
                         AccountBoolCB cb, gpointer data)
 {
   QFB *qfb;
@@ -159,7 +157,7 @@
   qfb = g_new0(QFB, 1);
   qfb->qf = gnc_quickfill_new ();
   qfb->book = book;
-  qfb->group = group;
+  qfb->root = root;
   qfb->listener = 0;
   qfb->dont_add_cb = cb;
   qfb->dont_add_data = data;
@@ -171,7 +169,7 @@
 				shared_quickfill_gconf_changed,
 				qfb);
 
-  xaccGroupForEachAccount (group, load_shared_qf_cb, qfb, TRUE);
+  gnc_account_foreach_descendant(root, load_shared_qf_cb, qfb);
   qfb->load_list_store = FALSE;
 
   qfb->listener = 
@@ -183,36 +181,36 @@
 }
 
 QuickFill *
-gnc_get_shared_account_name_quickfill (AccountGroup *group, 
+gnc_get_shared_account_name_quickfill (Account *root, 
                                        const char * key, 
                                        AccountBoolCB cb, gpointer cb_data)
 {
   QFB *qfb;
   QofBook *book;
 
-  book = xaccGroupGetBook (group);
+  book = gnc_account_get_book (root);
   qfb = qof_book_get_data (book, key);
 
   if (qfb) return qfb->qf;
 
-  qfb = build_shared_quickfill (book, group, key, cb, cb_data);
+  qfb = build_shared_quickfill (book, root, key, cb, cb_data);
   return qfb->qf;
 }
 
 GtkListStore *
-gnc_get_shared_account_name_list_store (AccountGroup *group, 
+gnc_get_shared_account_name_list_store (Account *root, 
 					const char * key, 
 					AccountBoolCB cb, gpointer cb_data)
 {
   QFB *qfb;
   QofBook *book;
 
-  book = xaccGroupGetBook (group);
+  book = gnc_account_get_book (root);
   qfb = qof_book_get_data (book, key);
 
   if (qfb) return qfb->list_store;
 
-  qfb = build_shared_quickfill (book, group, key, cb, cb_data);
+  qfb = build_shared_quickfill (book, root, key, cb, cb_data);
   return qfb->list_store;
 }
 
@@ -245,8 +243,8 @@
   ENTER("entity %p, event type %x, user data %p, ecent data %p",
 	entity, event_type, user_data, event_data);
 
-  if (xaccAccountGetRoot(account) != qfb->group) {
-       LEAVE("root group mismatch");
+  if (gnc_account_get_root(account) != qfb->root) {
+       LEAVE("root account mismatch");
     return;
   }
 
@@ -262,7 +260,7 @@
 
       /* Find the account (and all its descendants) in the model.  The
        * full name of all these accounts has changed. */
-      data.accounts = xaccAccountGetDescendants(account);
+      data.accounts = gnc_account_get_descendants(account);
       data.accounts = g_list_prepend(data.accounts, account);
       gtk_tree_model_foreach(GTK_TREE_MODEL(qfb->list_store),
 			     shared_quickfill_find_accounts, &data);
@@ -313,7 +311,7 @@
 
       /* Remove from qf */
       gnc_quickfill_purge(qfb->qf);
-      xaccGroupForEachAccount (qfb->group, load_shared_qf_cb, qfb, TRUE);
+      gnc_account_foreach_descendant(qfb->root, load_shared_qf_cb, qfb);
 
       /* Does the account exist in the model? */
       data.accounts = g_list_append(NULL, account);

Modified: gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/account-quickfill.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -43,7 +43,6 @@
 #include <gtk/gtk.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "QuickFill.h"
 
 typedef gboolean (*AccountBoolCB) (Account *, gpointer);
@@ -57,7 +56,7 @@
  *  the quickfill.  The 'cb_data' is passed to the callback.
  *
  *  The quickfill is created only once; it is then stored with
- *  the QofBook that is the parent of the AccountGroup.  It is
+ *  the QofBook that is the parent of the root account.  It is
  *  automatically destroyed when the QofBook is destroyed.
  *
  *  Multiple, distinct quickfills, for different uses, are allowed. 
@@ -69,12 +68,12 @@
  *  it).  This code does not currently listen to account-destroy
  *  events.
  */
-QuickFill * gnc_get_shared_account_name_quickfill (AccountGroup *group,
+QuickFill * gnc_get_shared_account_name_quickfill (Account *root,
                                                    const char * key,
                                                    AccountBoolCB skip_cb, 
                                                    gpointer cb_data);
 GtkListStore *
-gnc_get_shared_account_name_list_store (AccountGroup *group, 
+gnc_get_shared_account_name_list_store (Account *root,
 					const char * key, 
 					AccountBoolCB cb, gpointer cb_data);
 

Deleted: gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,126 +0,0 @@
-/********************************************************************\
- * argv-list-converters.c                                           *
- * Copyright (C) 2000 Gnumatic, Inc                                 *
- * Copyright (C) 2000 James LewisMoss                               *
- *                                                                  *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
-\********************************************************************/
-
-#include "config.h"
-
-#include <glib.h>
-#include <libguile.h>
-
-#include "argv-list-converters.h"
-
-
-char**
-gnc_scheme_list_to_nulltermcharpp(int prelen, const char **prepend, SCM list)
-{
-    SCM next = list;
-    char **ret;
-    int len = 0;
-    int loc;
-
-    if(SCM_CONSP(list))
-    {
-        int i;
-        len = scm_ilength(list) + prelen;
-        ret = g_new(char *, len + 1);
-        ret[len] = NULL;
-        for(i = 0; i < prelen; i++)
-        {
-            ret[i] = g_strdup(prepend[i]);
-        }
-    }
-    else 
-    {
-        return NULL;
-    }
-
-    loc = prelen;
-    while(SCM_CONSP(next)) 
-    {
-        SCM scm_string = SCM_CAR(next);
-        next = SCM_CDR(next);
-        if(SCM_STRINGP(scm_string))
-        {
-	    const gchar *onestr = SCM_STRING_CHARS(scm_string);
-            ret[loc] = g_strdup (onestr);
-        }
-        else
-        {
-            int i;
-
-            for (i = 0; i < loc; i++)
-              g_free (ret[i]);
-            g_free(ret);
-            return NULL;
-        }
-        loc++;
-    }
-
-    return ret;
-}
-
-SCM
-gnc_argvarr_to_scheme_list(int argc, const char** argv)
-{
-    int i;
-    SCM ret = SCM_EOL;
-
-    for(i = 0; i < argc; i++)
-    {
-      ret = scm_cons(scm_makfrom0str(argv[i]), ret);
-    }
-
-    return scm_reverse(ret);
-}
-
-void
-gnc_free_argv(char** argv)
-{
-    char **now = argv;
-
-    if(!argv)
-    {
-        return;
-    }
-    
-    while(*now != 0)
-    {
-        g_free(*now);
-        now++;
-    }
-    g_free(argv);
-}
-
-int
-argv_length(char** nulltermlist)
-{
-    int ret = 0;
-
-    if(!nulltermlist)
-    {
-        return 0;
-    }
-    
-    while(nulltermlist[ret] != 0)
-        ret++;
-    return ret;
-}

Deleted: gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/argv-list-converters.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,58 +0,0 @@
-/********************************************************************\
- * argv-list-converters.h                                           *
- * Copyright (C) 2000 Gnumatic, Inc                                 *
- * Copyright (C) 2000 James LewisMoss                               *
- *                                                                  *
- * 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       *
- * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
- * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
-\********************************************************************/
-
-#ifndef ARGV_LIST_CONVERTERS_H
-#define ARGV_LIST_CONVERTERS_H
-
-
-/*
- * This function takes a SCM value.  Determines whether it is a list
- * and whether that list contains only strings and returns a null
- * terminated array of strings (char*'s)
- */
-char** gnc_scheme_list_to_nulltermcharpp(int prelen, const char **prepend,
-                                         SCM list);
-
-
-/*
- * This function takes a length and char** and makes a scheme list
- * with similar contents
- */
-SCM gnc_argvarr_to_scheme_list(int argc, const char** argv);
-
-/*
- * Frees the strings and the argv array
- */
-void gnc_free_argv(char** argv);
-
-/*
- * print out the argv array in a nice manner
- */
-void print_argv(char **argv);
-
-/*
- * get the length of null terminated char* array
- */
-int argv_length(char** nulltermlist);
-
-#endif

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-account.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,11 +25,11 @@
 #include "config.h"
 
 #include <gnome.h>
-#ifndef HAVE_GLIB26
-#include "gutils26.h"
-#endif
 #include <glib/gi18n.h>
 #include <math.h>
+#ifdef G_OS_WIN32
+#include <pow.h>
+#endif
 #include <string.h>
 
 #include "Transaction.h"
@@ -70,13 +70,13 @@
 
 typedef struct _AccountWindow
 {
+  QofBook *book;
   gboolean modal;
   GtkWidget *dialog;
 
   AccountDialogType dialog_type;
 
   GUID    account;
-  Account *top_level_account; /* owned by the model */
   Account *created_account;
 
   gchar **subaccount_names;
@@ -161,7 +161,7 @@
   if (!aw)
     return NULL;
 
-  return xaccAccountLookup (&aw->account, gnc_get_current_book ());
+  return xaccAccountLookup (&aw->account, aw->book);
 }
 
 static void
@@ -246,7 +246,8 @@
 
 
 static gboolean
-gnc_account_create_transfer_balance (Account *account,
+gnc_account_create_transfer_balance (QofBook *book,
+                                     Account *account,
                                      Account *transfer,
                                      gnc_numeric balance,
                                      time_t date)
@@ -263,7 +264,7 @@
   xaccAccountBeginEdit (account);
   xaccAccountBeginEdit (transfer);
 
-  trans = xaccMallocTransaction (gnc_get_current_book ());
+  trans = xaccMallocTransaction (book);
 
   xaccTransBeginEdit (trans);
 
@@ -271,7 +272,7 @@
   xaccTransSetDateSecs (trans, date);
   xaccTransSetDescription (trans, _("Opening Balance"));
 
-  split = xaccMallocSplit (gnc_get_current_book ());
+  split = xaccMallocSplit (book);
 
   xaccTransAppendSplit (trans, split);
   xaccAccountInsertSplit (account, split);
@@ -281,7 +282,7 @@
 
   balance = gnc_numeric_neg (balance);
 
-  split = xaccMallocSplit (gnc_get_current_book ());
+  split = xaccMallocSplit (book);
 
   xaccTransAppendSplit (trans, split);
   xaccAccountInsertSplit (transfer, split);
@@ -383,18 +384,11 @@
   xaccAccountSetHidden (account, flag);
 
   parent_account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
-  if (parent_account == aw->top_level_account)
-    parent_account = NULL;
 
-  if (parent_account != NULL)
-  {
-    xaccAccountBeginEdit (parent_account);
-    if (parent_account != xaccAccountGetParentAccount (account))
-      xaccAccountInsertSubAccount (parent_account, account);
-    xaccAccountCommitEdit (parent_account);
-  }
-  else
-    xaccGroupInsertAccount (gnc_get_current_group (), account);
+  if (parent_account == NULL)
+    parent_account = gnc_book_get_root_account(aw->book);
+  if (parent_account != gnc_account_get_parent (account))
+    gnc_account_append_child (parent_account, account);
 
   xaccAccountCommitEdit (account);
 
@@ -417,8 +411,7 @@
 
   if (use_equity)
   {
-    if (!gnc_account_create_opening_balance (account, balance, date,
-                                             gnc_get_current_book ()))
+    if (!gnc_account_create_opening_balance (account, balance, date, aw->book))
     {
       const char *message = _("Could not create opening balance.");
       gnc_error_dialog(aw->dialog, message);
@@ -434,7 +427,7 @@
       return;
     }
 
-    gnc_account_create_transfer_balance (account, transfer, balance, date);
+    gnc_account_create_transfer_balance (aw->book, account, transfer, balance, date);
   }
     LEAVE(" ");
 }
@@ -443,14 +436,13 @@
 static void
 set_children_types (Account *account, GNCAccountType type)
 {
-  AccountGroup *children;
-  GList *iter;
+  GList *children, *iter;
 
-  children = xaccAccountGetChildren (account);
+  children = gnc_account_get_children(account);
   if (children == NULL)
     return;
 
-  for (iter=xaccGroupGetAccountList (children); iter; iter=iter->next) {
+  for (iter=children; iter; iter=iter->next) {
     account = iter->data;
     if (type == xaccAccountGetType(account))
       continue;
@@ -464,6 +456,7 @@
 
     set_children_types (account, type);
   }
+  g_list_free(children);
 }
 
 static void
@@ -473,6 +466,9 @@
 
   g_return_if_fail (aw);
 
+  if (aw->dialog_type == NEW_ACCOUNT)
+      return;
+
   account = aw_get_account (aw);
   g_return_if_fail (account);
 
@@ -505,7 +501,7 @@
     gnc_suspend_gui_refresh ();
 
     parent = aw_get_account (aw);
-    account = xaccMallocAccount (gnc_get_current_book ());
+    account = xaccMallocAccount (aw->book);
     aw->account = *xaccAccountGetGUID (account);
     aw->type = xaccAccountGetType (parent);
 
@@ -521,8 +517,8 @@
                                       commodity);
     gnc_account_commodity_from_type (aw, FALSE);
 
-    gnc_tree_view_account_set_selected_account
-      (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree), parent);
+    gnc_tree_view_account_set_selected_account (
+        GNC_TREE_VIEW_ACCOUNT (aw->parent_tree), parent);
 
     gnc_resume_gui_refresh ();
     LEAVE("1");
@@ -551,8 +547,7 @@
   if (gtk_expander_get_expanded (expander) &&
       !gtk_bin_get_child (GTK_BIN (expander))) {
 
-    view = gnc_tree_view_account_new_with_group (
-      xaccAccountGetChildren (account), FALSE);
+    view = gnc_tree_view_account_new_with_root (account, FALSE);
 
     scrolled_window = gtk_scrolled_window_new (NULL, NULL);
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
@@ -573,7 +568,6 @@
 verify_children_compatible (AccountWindow *aw)
 {
   Account *account;
-  AccountGroup *children;
   GtkWidget *dialog, *vbox, *hbox, *label, *expander;
   gchar *str;
   gboolean result;
@@ -588,9 +582,7 @@
   if (xaccAccountTypesCompatible (xaccAccountGetType (account), aw->type))
     return TRUE;
 
-  children = xaccAccountGetChildren (account);
-  if (!children ||
-      !xaccGroupGetNumAccounts (children))
+  if (gnc_account_n_children(account) == 0)
     return TRUE;
 
   dialog = gtk_dialog_new_with_buttons ("",
@@ -684,7 +676,7 @@
   if (aw_account == NULL)
     return FALSE;
 
-  if (account == aw->top_level_account)
+  if (gnc_account_is_root(account))
     return TRUE;
 
   if (account == aw_account)
@@ -700,14 +692,13 @@
 static gboolean
 gnc_common_ok (AccountWindow *aw)
 {
-  Account *account, *parent;
-  AccountGroup *group;
+  Account *root, *account, *parent;
   gnc_commodity * commodity;
   gchar *fullname, *fullname_parent;
   const gchar *name, *separator;
 
   ENTER("aw %p", aw);
-  group = gnc_get_current_group ();
+  root = gnc_book_get_root_account (aw->book);
 
   separator = gnc_get_account_separator_string();
 
@@ -724,12 +715,12 @@
   parent = gnc_tree_view_account_get_selected_account
     (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
   if (parent == NULL) {
-    account = xaccGetAccountFromFullName(group, name);
+    account = gnc_account_lookup_by_full_name(root, name);
   } else {
     fullname_parent = xaccAccountGetFullName(parent);
     fullname = g_strconcat(fullname_parent, separator, name, NULL);
 
-    account = xaccGetAccountFromFullName(group, fullname);
+    account = gnc_account_lookup_by_full_name(root, fullname);
 
     g_free(fullname_parent);
     g_free(fullname);
@@ -759,7 +750,7 @@
   }
 
   /* check whether the types of child and parent are compatible */
-  if (parent != aw->top_level_account &&
+  if (!gnc_account_is_root(parent) &&
       !xaccAccountTypesCompatible (aw->type, xaccAccountGetType (parent))) {
     const char *message = _("The selected account type is incompatible with "
                             "the one of the selected parent.");
@@ -945,8 +936,6 @@
 
   gnc_unregister_gui_component (aw->component_id);
 
-  aw->top_level_account = NULL;
-
   gnc_resume_gui_refresh ();
 
   if (aw->subaccount_names) {
@@ -976,7 +965,7 @@
   if (!parent_account)
     return;
 
-  if (parent_account == aw->top_level_account) {
+  if (gnc_account_is_root(parent_account)) {
     types = aw->valid_types;
   } else {
     types = aw->valid_types &
@@ -1232,15 +1221,12 @@
 
   box = glade_xml_get_widget (xml, "parent_scroll");
 
-  //  group = gnc_book_get_group (gnc_get_current_book ());
   aw->parent_tree = gnc_tree_view_account_new(TRUE);
   gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(aw->parent_tree));
   gtk_widget_show(GTK_WIDGET(aw->parent_tree));
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->parent_tree));
   g_signal_connect (G_OBJECT (selection), "changed",
                     G_CALLBACK (gnc_account_parent_changed_cb), aw);
-  aw->top_level_account =
-    gnc_tree_view_account_get_top_level (GNC_TREE_VIEW_ACCOUNT(aw->parent_tree));
 
   aw->tax_related_button = glade_xml_get_widget (xml, "tax_related_button");
   aw->placeholder_button = glade_xml_get_widget (xml, "placeholder_button");
@@ -1302,13 +1288,9 @@
   if (!name || *name == '\0')
     name = _("<No name>");
 
-  parent_account = NULL;
-
   parent_account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT (aw->parent_tree));
-  if (parent_account == aw->top_level_account)
-    parent_account = NULL;
 
-  if (parent_account)
+  if (!gnc_account_is_root(parent_account))
   {
     char *parent_name;
     const gchar *separator;
@@ -1421,7 +1403,8 @@
 
 
 static AccountWindow *
-gnc_ui_new_account_window_internal (Account *base_account,
+gnc_ui_new_account_window_internal (QofBook *book,
+                                    Account *base_account,
                                     gchar **subaccount_names,
 				    GList *valid_types,
 				    gnc_commodity * default_commodity,
@@ -1430,18 +1413,16 @@
   gnc_commodity *commodity, *parent_commodity;
   AccountWindow *aw;
   Account *account;
-  GList *list;
 
+  g_return_val_if_fail(book, NULL);
+
   aw = g_new0 (AccountWindow, 1);
 
+  aw->book = book;
   aw->modal = modal;
   aw->dialog_type = NEW_ACCOUNT;
 
-  aw->valid_types = 0;
-  for (list = valid_types; list; list = list->next)
-    aw->valid_types |= (1 << GPOINTER_TO_INT (list->data));
-
-  account = xaccMallocAccount (gnc_get_current_book ());
+  account = xaccMallocAccount (book);
   aw->account = *xaccAccountGetGUID (account);
 
   if (base_account) {
@@ -1477,8 +1458,9 @@
                                     commodity);
   gnc_account_commodity_from_type (aw, FALSE);
 
-  if (base_account == NULL)
-    base_account = aw->top_level_account;
+  if (base_account == NULL) {
+    base_account = gnc_book_get_root_account(book);
+  }
 
   gtk_tree_view_collapse_all (aw->parent_tree);
   gnc_tree_view_account_set_selected_account (
@@ -1504,21 +1486,20 @@
 
 
 static gchar **
-gnc_split_account_name (const char *in_name, Account **base_account)
+gnc_split_account_name (QofBook *book, const char *in_name, Account **base_account)
 {
-  AccountGroup *group;
-  Account *account;
+  Account *root, *account;
   gchar **names, **ptr, **out_names;
   GList *list, *node;
 
-  group = gnc_get_current_group ();
+  root = gnc_book_get_root_account (book);
+  list = gnc_account_get_children(root);
   names = g_strsplit(in_name, gnc_get_account_separator_string(), -1);
 
   for (ptr = names; *ptr; ptr++) {
     /* Stop if there are no children at the current level. */
-    if (group == NULL)
+    if (list == NULL)
       break;
-    list = xaccGroupGetAccountList (group);
 
     /* Look for the first name in the children. */
     for (node = list; node; node = g_list_next(node)) {
@@ -1535,11 +1516,14 @@
     if (node == NULL)
       break;
 
-    group = xaccAccountGetChildren (account);
+    g_list_free(list);
+    list = gnc_account_get_children (account);
   }
 
   out_names = g_strdupv(ptr);
   g_strfreev(names);
+  if (list)
+    g_list_free(list);
   return out_names;
 }
 
@@ -1567,6 +1551,7 @@
                                              gnc_commodity * default_commodity,
                                              Account * parent)
 {
+  QofBook *book;
   AccountWindow *aw;
   Account *base_account = NULL;
   Account *created_account = NULL;
@@ -1576,19 +1561,20 @@
 
   ENTER("name %s, valid %p, commodity %p, account %p",
 	name, valid_types, default_commodity, parent);
+  book = gnc_get_current_book();
   if (!name || *name == '\0')
   {
     subaccount_names = NULL;
     base_account = NULL;
   }
   else
-    subaccount_names = gnc_split_account_name (name, &base_account);
+    subaccount_names = gnc_split_account_name (book, name, &base_account);
 
   if (parent != NULL)
     {
       base_account=parent;
     }
-  aw = gnc_ui_new_account_window_internal (base_account, subaccount_names, 
+  aw = gnc_ui_new_account_window_internal (book, base_account, subaccount_names,
 					   valid_types, default_commodity,
 					   TRUE);
 
@@ -1659,6 +1645,7 @@
 
   aw = g_new0 (AccountWindow, 1);
 
+  aw->book = gnc_account_get_book(account);
   aw->modal = FALSE;
   aw->dialog_type = EDIT_ACCOUNT;
   aw->account = *xaccAccountGetGUID (account);
@@ -1675,9 +1662,9 @@
   gtk_widget_show_all (aw->dialog);
   gtk_widget_hide (aw->opening_balance_page);
 
-  parent = xaccAccountGetParentAccount (account);
+  parent = gnc_account_get_parent (account);
   if (parent == NULL)
-    parent = aw->top_level_account;
+    parent = account;		/* must be at the root */
 
   gtk_tree_view_collapse_all (aw->parent_tree);
   gnc_tree_view_account_set_selected_account (
@@ -1703,33 +1690,24 @@
 /*
  * opens up a window to create a new account
  * 
- * Args:   group - not used
+ * Args:    book - containing book for the new account
+ *        parent - The initial parent for the new account (optional)
  */
 void
-gnc_ui_new_account_window (AccountGroup *this_is_not_used) 
+gnc_ui_new_account_window(QofBook *book, Account *parent)
 {
-  /* FIXME get_current_account went away. */
-  gnc_ui_new_account_window_internal (NULL, NULL, NULL, NULL, FALSE);
-}
+  g_return_if_fail(book != NULL);
+  if (parent && book)
+    g_return_if_fail(gnc_account_get_book(parent) == book);
 
-/*
- * opens up a window to create a new account
- * 
- * Args:   group - not used
- *        parent - The initial parent for the new account
- */
-void
-gnc_ui_new_account_window_with_default(AccountGroup *this_is_not_used,
-                                       Account * parent)
-{
-  gnc_ui_new_account_window_internal (parent, NULL, NULL, NULL, FALSE);
+  gnc_ui_new_account_window_internal (book, parent, NULL, NULL, NULL, FALSE);
 }
 
 void
-gnc_ui_new_account_with_types( AccountGroup *unused,
+gnc_ui_new_account_with_types( QofBook *book,
                                GList *valid_types )
 {
-  gnc_ui_new_account_window_internal( NULL, NULL, valid_types, NULL, FALSE );
+  gnc_ui_new_account_window_internal( book, NULL, NULL, valid_types, NULL, FALSE );
 }
 
 /************************************************************
@@ -1737,7 +1715,7 @@
  ************************************************************/
 
 /*
- * register a callback that get's called when the account has changed
+ * register a callback that gets called when the account has changed
  * so significantly that you need to destroy yourself.  In particular
  * this is used by the ledger display to destroy ledgers when the
  * account type has changed.
@@ -1798,7 +1776,6 @@
 			       gint response,
 			       RenumberDialog *data)
 {
-  AccountGroup *group;
   GList *children, *tmp;
   gchar *str;
   gchar *prefix;
@@ -1806,8 +1783,7 @@
 
   if (response == GTK_RESPONSE_OK) {
     gtk_widget_hide(data->dialog);
-    group = xaccAccountGetChildren(data->parent);
-    children = xaccGroupGetAccountListSorted(group);
+    children = gnc_account_get_children(data->parent);
     prefix = gtk_editable_get_chars(GTK_EDITABLE(data->prefix), 0, -1);
     interval =
       gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data->interval));
@@ -1820,6 +1796,7 @@
       g_free(str);
     }
     gnc_unset_busy_cursor (NULL);
+    g_list_free(children);
   }
 
   gtk_widget_destroy(data->dialog);
@@ -1831,14 +1808,12 @@
 {
   RenumberDialog *data;
   GladeXML *xml;
-  AccountGroup *children;
   GtkWidget *widget;
   gchar *string;
 
   data = g_new(RenumberDialog, 1);
   data->parent = account;
-  children = xaccAccountGetChildren(account);
-  data->num_children = xaccGroupGetNumAccounts(children);
+  data->num_children = gnc_account_n_children(account);
 
   xml = gnc_glade_xml_new ("account.glade", "Renumber Accounts");
   data->dialog = glade_xml_get_widget (xml, "Renumber Accounts");

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-account.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,6 @@
 #define DIALOG_ACCOUNT_H
 
 #include "Account.h"
-#include "Group.h"
 
 /** @addtogroup GUI
     @{ */
@@ -52,28 +51,24 @@
 void gnc_ui_edit_account_window (Account *account);
 
 
-/** Disply a window for creating a new account
- *
- *  @param group This parameter is not used.
- */
-void gnc_ui_new_account_window (AccountGroup *group);
-
-
 /** Disply a window for creating a new account.  This function will
  *  also initially set the parent account of the new account to what
  *  the caller specified.  The user is free, however, to choose any
  *  parent account they wish.
  *
- *  @param group This parameter is not used.
+ *  @param book The book in which the new account should be created.
+ *  This is a required argument.
  *
- *  @param parent The initially selected parent account.
+ *  @param parent The initially selected parent account.  This
+ *  argument is optional, but if supplied must be an account contained
+ *  in the specified book.
  */
-void gnc_ui_new_account_window_with_default (AccountGroup *group,
-					     Account * parent);
+void gnc_ui_new_account_window (QofBook *book, Account *parent);
 
 
 /** Disply a window for creating a new account.  This function will
- *  restrict the available account type values to the list specified by the caller.
+ *  restrict the available account type values to the list specified
+ *  by the caller.
  *
  *  @param unused This parameter is not used.
  *
@@ -81,7 +76,7 @@
  *  which are allowed to be created.  The calling function is
  *  responsible for freeing this list.
  */
-void gnc_ui_new_account_with_types (AccountGroup *unused,
+void gnc_ui_new_account_with_types (QofBook *book,
 				    GList *valid_types);
 /** @} */
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-options.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-options.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-options.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,12 +23,7 @@
 
 #include "config.h"
 
-#ifdef HAVE_GTK26 
 #include <gtk/gtk.h>
-#else
-#undef GNOME_DISABLE_DEPRECATED
-#include <gnome.h>
-#endif
 #include <gdk/gdk.h>
 #include <glib/gi18n.h>
 #include "swig-runtime.h"
@@ -221,7 +216,6 @@
   return;
 }
 
-#ifdef HAVE_GTK26
 static void
 gnc_image_option_update_preview_cb (GtkFileChooser *chooser,
 				    GNCOption *option)
@@ -269,14 +263,6 @@
     return;
   g_object_set_data_full(G_OBJECT(chooser), LAST_SELECTION, filename, g_free);
 }
-#else
-static void
-gnc_image_option_clear_selection_cb (GtkButton *button,
-				     GtkEntry *entry)
-{
-   gtk_entry_set_text(entry, "");
-}
-#endif
 
 /********************************************************************\
  * gnc_option_set_ui_value_internal                                 *
@@ -1999,9 +1985,6 @@
   GtkWidget *value;
   GtkWidget *label;
   GtkWidget *button;
-#ifndef HAVE_GTK26
-  GtkWidget *entry;
-#endif
   gchar *colon_name;
 
   ENTER("option %p(%s), name %s", option, gnc_option_name(option), name);
@@ -2015,7 +1998,6 @@
   button = gtk_button_new_with_label(_("Clear"));
   gtk_tooltips_set_tip(tooltips, button, _("Clear any selected image file."), NULL);
 
-#ifdef HAVE_GTK26
   value = gtk_file_chooser_button_new(_("Select image"),
 				      GTK_FILE_CHOOSER_ACTION_OPEN);
   gtk_tooltips_set_tip(tooltips, value, _("Select an image file."), NULL);
@@ -2031,19 +2013,7 @@
 		   G_CALLBACK(gnc_image_option_update_preview_cb), option);
   g_signal_connect_swapped(G_OBJECT (button), "clicked",
 		   G_CALLBACK(gtk_file_chooser_unselect_all), value);
-#else
-  value = gnome_pixmap_entry_new(NULL, _("Select pixmap"),
-				 FALSE);
-  gtk_tooltips_set_tip(tooltips, value, _("Select an image file."), NULL);
-  gnome_pixmap_entry_set_preview(GNOME_PIXMAP_ENTRY(value), FALSE);
 
-  entry = gnome_pixmap_entry_gtk_entry (GNOME_PIXMAP_ENTRY(value));
-  g_signal_connect(G_OBJECT (entry), "changed",
-		   G_CALLBACK(gnc_option_changed_widget_cb), option);
-  g_signal_connect(G_OBJECT (button), "clicked",
-		   G_CALLBACK(gnc_image_option_clear_selection_cb), entry);
-#endif
-    
   gnc_option_set_widget (option, value);
   gnc_option_set_ui_value(option, FALSE);
 
@@ -2490,7 +2460,6 @@
 
     if (string && *string)
     {
-#ifdef HAVE_GTK26
       gchar *test;
       DEBUG("string = %s", string);
       gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(widget), string);
@@ -2499,12 +2468,6 @@
 			     g_strdup(string), g_free);
       DEBUG("Set %s, retrieved %s", string, test);
       gnc_image_option_update_preview_cb(GTK_FILE_CHOOSER(widget), option);
-#else
-      GtkEntry *entry;
-      DEBUG("string = %s", string);
-      entry = GTK_ENTRY(gnome_pixmap_entry_gtk_entry(GNOME_PIXMAP_ENTRY(widget)));
-      gtk_entry_set_text(entry, string);
-#endif
     }
     LEAVE("FALSE");
     return FALSE;
@@ -2880,7 +2843,6 @@
 static SCM
 gnc_option_get_ui_value_pixmap (GNCOption *option, GtkWidget *widget)
 {
-#ifdef HAVE_GTK26
   gchar *string;
   SCM result;
 
@@ -2890,12 +2852,6 @@
   if (string)
     g_free(string);
   return result;
-#else
-  GnomePixmapEntry * p = GNOME_PIXMAP_ENTRY(widget);
-  char             * string = gnome_pixmap_entry_get_filename(p);
-
-  return (scm_makfrom0str(string ? string : ""));
-#endif
 }
 
 static SCM

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-preferences.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-preferences.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-preferences.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -196,7 +196,6 @@
   ENTER("file %s, widget %s, tab %s full page %d",
 	filename, widgetname, tabname, full_page);
 
-
   add_in = g_malloc(sizeof(addition));
   if (add_in == NULL) {
     g_critical("Unable to allocate memory.\n");
@@ -243,6 +242,7 @@
     g_free(add_in->widgetname);
     g_free(add_in->tabname);
     g_free(add_in);
+    LEAVE("err");
     return;
   } else {
     add_ins = g_slist_append(add_ins, add_in);
@@ -468,6 +468,7 @@
     g_critical("The object name %s in file %s is not a GtkTable.  It cannot "
 	       "be added to the preferences dialog.",
 	       add_in->widgetname, add_in->filename);
+    LEAVE("");
     return;
   }
   g_object_get(G_OBJECT(new_content), "n-columns", &cols, NULL);
@@ -475,6 +476,7 @@
     g_critical("The table %s in file %s does not have four columns.  It cannot "
 	       "be added to the preferences dialog.",
 	       add_in->widgetname, add_in->filename);
+    LEAVE("");
     return;
   }
 
@@ -553,6 +555,91 @@
 /*******************************/
 
 
+/** The user changed a GtkFontButton.  Update gconf.  Font selection
+ *  choices are stored as a string.
+ *
+ *  @internal
+ *
+ *  @param gde A pointer to the GtkFontButton that was changed.
+ *  
+ *  @param user_data Unused.
+ */
+static void
+gnc_prefs_font_button_user_cb (GtkFontButton *fb,
+                               gpointer user_data)
+{
+  const gchar *key, *font;
+
+  g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+  key = gtk_widget_get_name(GTK_WIDGET(fb)) + PREFIX_LEN;
+  font = gtk_font_button_get_font_name(fb);
+
+  DEBUG("font_button %s set", key);
+  gnc_gconf_set_string(key, NULL, font, NULL);
+}
+
+
+/** A GtkFontButton choice was updated in gconf.  Update the user
+ *  visible dialog.
+ *
+ *  @internal
+ *
+ *  @param gde A pointer to the GtkFontButton that changed.
+ *
+ *  @param value The new value of the GtkFontButton.
+ */
+static void
+gnc_prefs_font_button_gconf_cb (GtkFontButton *fb,
+                                GConfEntry *entry)
+{
+  const gchar *font;
+
+  g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+  ENTER("fb %p, entry %p", fb, entry);
+
+  font = gconf_value_get_string(entry->value);
+
+  g_signal_handlers_block_by_func(G_OBJECT(fb),
+				  G_CALLBACK(gnc_prefs_font_button_user_cb),
+				  NULL);
+  gtk_font_button_set_font_name(fb, font);
+  g_signal_handlers_unblock_by_func(G_OBJECT(fb),
+				    G_CALLBACK(gnc_prefs_font_button_user_cb), NULL);
+  LEAVE(" ");
+}
+
+
+/** Connect a GtkFontButton widget to the user callback function.  Set
+ *  the font from its value in gconf.
+ *
+ *  @internal
+ *
+ *  @param gde A pointer to the date_edit that should be connected.
+ */
+static void
+gnc_prefs_connect_font_button (GtkFontButton *fb)
+{
+  const gchar *name, *font;
+
+  g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+
+  /* Lookup font name based upon gconf setting */
+  name = gtk_widget_get_name(GTK_WIDGET(fb)) + PREFIX_LEN;
+  font = gnc_gconf_get_string(name, NULL, NULL);
+
+  gtk_font_button_set_font_name(fb, font);
+  DEBUG(" font_button %s set", name);
+
+  g_signal_connect(G_OBJECT(fb), "font_set",
+		   G_CALLBACK(gnc_prefs_font_button_user_cb), NULL);
+
+  gtk_widget_show_all(GTK_WIDGET(fb));
+}
+
+
+/**********/
+
+
 /** The user clicked on a radio button.  Update gconf.  Radio button
  *  group choices are stored as a string.  The last component of the
  *  widget name is the string that will be stored.  I.E. The widget name
@@ -1053,7 +1140,7 @@
   name = gtk_widget_get_name(GTK_WIDGET(entry)) + PREFIX_LEN;
   text = gnc_gconf_get_string(name, NULL, NULL);
   gtk_entry_set_text(GTK_ENTRY(entry), text ? text : "");
-  DEBUG(" Entry %s set to '%s'", name, text);
+  DEBUG(" Entry %s set to '%s'", name?name:"(null)", text?text:"(null)");
   g_signal_connect(G_OBJECT(entry), "changed",
 		   G_CALLBACK(gnc_prefs_entry_user_cb), NULL);
 }
@@ -1303,6 +1390,9 @@
   } else if (GNC_IS_DATE_EDIT(widget)) {
     DEBUG("  %s - date_edit", name);
     gnc_prefs_connect_date_edit(GNC_DATE_EDIT(widget));
+  } else if (GTK_IS_FONT_BUTTON(widget)) {
+    DEBUG("  %s - entry", name);
+    gnc_prefs_connect_font_button(GTK_FONT_BUTTON(widget));
   } else if (GTK_IS_RADIO_BUTTON(widget)) {
     DEBUG("  %s - radio button", name);
     gnc_prefs_connect_radio_button(GTK_RADIO_BUTTON(widget));
@@ -1493,8 +1583,8 @@
       DEBUG("bad value");
       widget = g_hash_table_find(table, gnc_prefs_nearest_match, group_name);
       if (widget) {
-	DEBUG("forcing %s", gtk_widget_get_name(widget));
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
+           DEBUG("forcing %s", gtk_widget_get_name(widget));
+           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
       }
       g_free(group_name);
       g_free(name);
@@ -1516,6 +1606,9 @@
     } else if (GNC_IS_DATE_EDIT(widget)) {
       DEBUG("widget %p - date_edit", widget);
       gnc_prefs_date_edit_gconf_cb(GNC_DATE_EDIT(widget), entry);
+    } else if (GTK_IS_FONT_BUTTON(widget)) {
+      DEBUG("widget %p - font button", widget);
+      gnc_prefs_font_button_gconf_cb(GTK_FONT_BUTTON(widget), entry);
     } else if (GTK_IS_RADIO_BUTTON(widget)) {
       DEBUG("widget %p - radio button", widget);
       gnc_prefs_radio_button_gconf_cb(GTK_RADIO_BUTTON(widget));

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-totd.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-totd.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-totd.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -144,7 +144,7 @@
 static gboolean
 gnc_totd_initialize (void)
 {
-  gchar *filename, *contents, *new;
+  gchar *filename, *contents, *new, *found;
   gsize length;
   GError *error;
 
@@ -161,6 +161,24 @@
     return FALSE;
   }
 
+  /* Replace maximal substrings of more than two newlines by \n\n,
+   * remove leading and trailing \n\n */
+  while ((found = strstr(contents, "\n\n\n")) != NULL) {
+    *found++ = '\0';
+    while (*found == '\n') found++;
+    if (*contents && *found) {
+      /* put \n\n between the two nonempty parts */
+      new = g_strdup_printf("%s\n\n%s", contents, found);
+      g_free(contents);
+      contents = new;
+    } else if (*found) {
+      /* remove leading newlines */
+      new = g_strdup(found);
+      g_free(contents);
+      contents = new;
+    }
+  }
+
   /* Split into multiple strings */
   tip_list = g_strsplit(contents, "\n\n", 0);
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-transfer.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-transfer.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-transfer.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -47,6 +47,7 @@
 
 
 #define DIALOG_TRANSFER_CM_CLASS "dialog-transfer"
+#define GCONF_SECTION "dialogs/transfer"
 
 #define PRECISION 1000000
 
@@ -446,7 +447,7 @@
 {
   GtkTreeView *tree_view;
   const char *show_inc_exp_message = _("Show the income and expense accounts");
-  GtkWidget *scroll_win, *box;
+  GtkWidget *scroll_win;
   GtkWidget *button;
   GtkTreeSelection *selection;
   gboolean  use_accounting_labels;
@@ -466,9 +467,6 @@
    * trees when in "accountant" mode. -- Herbert Thoma, 2004-01-18
    */
   if(use_accounting_labels) {
-    box = gnc_glade_lookup_widget (xferData->dialog,
-				   (direction == XFER_DIALOG_TO) ?
-				   "left_tree_box" : "right_tree_box");
     button = gnc_glade_lookup_widget (xferData->dialog,
 				      (direction == XFER_DIALOG_TO) ?
 				      "left_show_button" : "right_show_button");
@@ -477,9 +475,6 @@
 					  "left_trans_window" : "right_trans_window");
   }
   else {
-    box = gnc_glade_lookup_widget (xferData->dialog,
-				   (direction == XFER_DIALOG_TO) ?
-				   "right_tree_box" : "left_tree_box");
     button = gnc_glade_lookup_widget (xferData->dialog,
 				      (direction == XFER_DIALOG_TO) ?
 				      "right_show_button" : "left_show_button");
@@ -489,7 +484,7 @@
   }
 
   tree_view = GTK_TREE_VIEW(gnc_tree_view_account_new(FALSE));
-  gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(tree_view));
+  gtk_container_add(GTK_CONTAINER(scroll_win), GTK_WIDGET(tree_view));
   gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT (tree_view),
 				    gnc_xfer_dialog_show_inc_exp_visible_cb,
 				    button, /* user data */
@@ -1648,6 +1643,7 @@
 
   dialog = glade_xml_get_widget (xml, "Transfer Dialog");
   xferData->dialog = dialog;
+  g_object_set_data_full (G_OBJECT (dialog), "xml", xml, g_object_unref);
 
   /* parent */
   if (parent != NULL)
@@ -1824,6 +1820,7 @@
 			 _("To Amount:"));
     }
   }
+  gnc_restore_window_size (GCONF_SECTION, GTK_WINDOW (dialog));
   LEAVE(" ");
 }
 
@@ -1836,6 +1833,7 @@
   ENTER(" ");
   dialog = GTK_WIDGET (xferData->dialog);
 
+  gnc_save_window_size (GCONF_SECTION, GTK_WINDOW (dialog));
   gtk_widget_hide (dialog);
   gnc_xfer_dialog_close_cb(GTK_DIALOG(dialog), xferData);
   gtk_widget_destroy (dialog);
@@ -1868,7 +1866,7 @@
   xferData->transaction_cb = NULL;
 
   if (initial) {
-    book = xaccAccountGetBook (initial);
+    book = gnc_account_get_book (initial);
   } else {
     book = gnc_get_current_book ();
   }

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -37,7 +37,6 @@
 
 #include "dialog-utils.h"
 #include "gnc-commodity.h"
-#include "Group.h"
 #include "gnc-path.h"
 #include "gnc-engine.h"
 #include "gnc-euro.h"
@@ -905,16 +904,12 @@
   GtkWidget *button;
 
   button = gtk_button_new_with_label(label);
-#ifdef HAVE_GTK26
   if (stock_id) {
     GtkWidget *image;
 
     image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
     gtk_button_set_image(GTK_BUTTON(button), image);
   }
-#else
-  gtk_button_set_use_underline(GTK_BUTTON(button), TRUE);
-#endif
   gtk_widget_show_all(button);
   gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, response);
 }
@@ -983,61 +978,3 @@
 
     return response;
 }
-
-#ifndef HAVE_GTK26
-
-/** Find the first GtkLabel in a container. When called on a gtk2.4
- *  message dialog, there is only one label in the dialog so theis
- *  should return it. */
-static void
-find_label (GtkWidget *widget, gpointer data)
-{
-  GtkWidget **label = data;
-
-  if (*label)
-    return;
-
-  if (GTK_IS_LABEL(widget)) {
-    *label = widget;
-    return;
-  }
-
-  if (GTK_IS_CONTAINER(widget)) {
-    gtk_container_foreach(GTK_CONTAINER(widget), find_label, data);
-  }
-}
-
-/** Mimic the gtk2.6 function to add secondary information to a
- *  message dialog. */
-void
-gtk_message_dialog_format_secondary_text(GtkMessageDialog *dialog,
-					 const gchar *format,
-					 ...)
-{
-  GtkWidget *label = NULL;
-  const gchar *current;
-  gchar *primary, *secondary;
-  va_list args;
-
-  gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),
-			find_label, &label);
-  if (!label)
-    return;
-
-  /* Get the current markup. */
-  current = gtk_label_get_label(GTK_LABEL(label));
-
-  /* Format the text to be added. */
-  va_start(args, format);
-  secondary = g_strdup_vprintf(format, args);
-  va_end(args);
-
-  /* Append the two strings, making the first one bold. */
-  primary = g_strdup_printf("<b>%s</b>\n\n%s", current, secondary);
-  gtk_label_set_markup(GTK_LABEL(label), primary);
-
-  g_free(primary);
-  g_free(secondary);
-}
-
-#endif

Modified: gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/dialog-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -152,11 +152,4 @@
 gint
 gnc_dialog_run(GtkDialog *dialog, const gchar *gconf_key);
 
-#ifndef HAVE_GTK26
-void
-gtk_message_dialog_format_secondary_text(GtkMessageDialog *dialog,
-					 const gchar *message_format,
-					 ...) G_GNUC_PRINTF (2, 3);
 #endif
-
-#endif

Modified: gnucash/branches/gda-dev/src/gnome-utils/druid-gconf-setup.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/druid-gconf-setup.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/druid-gconf-setup.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -34,6 +34,7 @@
 
 #include <gnome.h>
 #include <glib/gi18n.h>
+#include <glib/gstdio.h>
 #include <stdlib.h>
 #include <errno.h>
 #include <sys/types.h>
@@ -138,7 +139,7 @@
     g_strfreev(lines);
   }
 
-  output = fopen(path_filename, "a");
+  output = g_fopen(path_filename, "a");
   if (output == NULL) {
     *error = g_error_new (G_FILE_ERROR,
 			  g_file_error_from_errno(errno),
@@ -614,7 +615,7 @@
     return;
   }
 
-#ifdef _WIN32
+#ifdef G_OS_WIN32
   {
     /* automatically update the search path on windows */
     GError *error = NULL;
@@ -631,7 +632,7 @@
       return;
     }
   }
-#endif /* _WIN32 */
+#endif /* G_OS_WIN32 */
 
   xml = gnc_glade_xml_new ("druid-gconf-setup.glade", "GConf Query");
   dialog = glade_xml_get_widget (xml, "GConf Query");

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/commodity.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/commodity.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/commodity.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -100,6 +101,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -137,6 +142,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">namespace_cbe</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -176,6 +185,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">commodity_cbe</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -193,6 +206,7 @@
 	    <widget class="GtkComboBoxEntry" id="namespace_cbe">
 	      <property name="visible">True</property>
 	      <property name="items">Dummy namespace entry</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="has_frame">True</property>
 	      <property name="focus_on_click">True</property>
 	      <signal name="changed" handler="gnc_ui_select_commodity_namespace_changed_cb" last_modification_time="Thu, 08 Jun 2006 23:26:58 GMT"/>
@@ -211,6 +225,7 @@
 	    <widget class="GtkComboBoxEntry" id="commodity_cbe">
 	      <property name="visible">True</property>
 	      <property name="items">Dummy security entry</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="has_frame">True</property>
 	      <property name="focus_on_click">True</property>
 	      <signal name="changed" handler="gnc_ui_select_commodity_changed_cb" last_modification_time="Thu, 08 Jun 2006 23:30:40 GMT"/>
@@ -248,6 +263,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -332,6 +348,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -431,6 +451,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">4</property>
@@ -482,6 +506,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -506,6 +534,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -622,6 +654,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -661,6 +697,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">fullname_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -700,6 +740,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">mnemonic_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -739,6 +783,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">namespace_cbe</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -778,6 +826,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">code_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -816,6 +868,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -877,6 +933,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1092,6 +1152,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -1109,6 +1173,7 @@
 	    <widget class="GtkComboBoxEntry" id="namespace_cbe">
 	      <property name="visible">True</property>
 	      <property name="items">Dummy namespace</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="has_frame">True</property>
 	      <property name="focus_on_click">True</property>
 	      <signal name="changed" handler="gnc_ui_commodity_changed_cb" last_modification_time="Thu, 08 Jun 2006 23:29:20 GMT"/>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-query-list.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-query-list.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-query-list.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -71,6 +72,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">5</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-reset-warnings.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-reset-warnings.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/dialog-reset-warnings.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_reset_warnings_response_cb" last_modification_time="Sun, 17 Jul 2005 01:07:02 GMT"/>
 
@@ -98,6 +99,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -159,6 +164,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -186,6 +195,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -237,6 +250,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gconf-setup.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gconf-setup.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gconf-setup.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -114,6 +115,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -187,6 +192,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -248,6 +257,10 @@
 	      <property name="yalign">0</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -279,6 +292,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <signal name="delete_event" handler="druid_gconf_delete_event" last_modification_time="Sat, 16 Jul 2005 02:04:17 GMT"/>
 
   <child>
@@ -645,6 +659,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -749,6 +767,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -924,6 +946,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -991,6 +1017,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gnc-xml-import.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gnc-xml-import.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/druid-gnc-xml-import.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -100,6 +101,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -194,6 +199,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -233,6 +242,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -272,6 +285,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -379,6 +396,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">True</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -404,6 +423,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -488,6 +511,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -559,6 +586,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -630,6 +661,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -709,6 +744,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -788,6 +824,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">available_encs_view</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -832,6 +872,8 @@
 				  <property name="reorderable">False</property>
 				  <property name="enable_search">True</property>
 				  <property name="fixed_height_mode">False</property>
+				  <property name="hover_selection">False</property>
+				  <property name="hover_expand">False</property>
 				  <signal name="row_activated" handler="gxi_available_enc_activated_cb" last_modification_time="Sat, 08 Apr 2006 01:13:30 GMT"/>
 				</widget>
 			      </child>
@@ -920,6 +962,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">custom_enc_entry</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1036,6 +1082,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">selected_encs_view</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1121,6 +1171,8 @@
 			      <property name="reorderable">False</property>
 			      <property name="enable_search">True</property>
 			      <property name="fixed_height_mode">False</property>
+			      <property name="hover_selection">False</property>
+			      <property name="hover_expand">False</property>
 			      <signal name="row_activated" handler="gxi_selected_enc_activated_cb" last_modification_time="Sat, 08 Apr 2006 01:12:38 GMT"/>
 			    </widget>
 			  </child>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/druid-provider-multifile.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/druid-provider-multifile.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/druid-provider-multifile.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruidPageStandard" id="Multifile Provider Page">
@@ -43,6 +44,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -80,6 +85,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -107,6 +114,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">3</property>
@@ -176,6 +187,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -245,6 +260,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/exchange-dialog.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/exchange-dialog.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/exchange-dialog.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -87,6 +88,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -111,6 +116,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -135,6 +144,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -295,6 +308,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -334,6 +351,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">from_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -373,6 +394,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">to_entry</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -411,6 +436,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-date-format.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-date-format.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-date-format.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkTable" id="date_format_table">
@@ -40,6 +41,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">2</property>
@@ -60,7 +65,7 @@
 	  <property name="max_length">0</property>
 	  <property name="text" translatable="yes">%Y-%m-%d</property>
 	  <property name="has_frame">True</property>
-	  <property name="invisible_char" translatable="yes">*</property>
+	  <property name="invisible_char">*</property>
 	  <property name="activates_default">False</property>
 	  <signal name="changed" handler="gnc_ui_date_format_changed_cb"/>
 	</widget>
@@ -187,6 +192,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">1</property>
@@ -211,6 +220,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">1</property>
@@ -235,6 +248,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">1</property>
@@ -259,6 +276,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">1</property>
@@ -283,6 +304,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">1</property>
@@ -313,6 +338,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -346,6 +375,8 @@
 Locale
 Custom
 </property>
+	  <property name="add_tearoffs">False</property>
+	  <property name="focus_on_click">True</property>
 	  <signal name="changed" handler="gnc_ui_date_format_changed_cb" last_modification_time="Wed, 14 Sep 2005 05:03:24 GMT"/>
 	</widget>
 	<packing>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-gui-query.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-gui-query.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/gnc-gui-query.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -98,6 +99,10 @@
 		  <property name="yalign">0</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -119,6 +124,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -210,6 +219,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -278,6 +288,10 @@
 		  <property name="yalign">0</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -299,6 +313,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -390,6 +408,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -458,6 +477,10 @@
 		  <property name="yalign">0</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -479,6 +502,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/preferences.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/preferences.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/preferences.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_options_dialog_response_cb" last_modification_time="Sun, 17 Aug 2003 21:58:20 GMT"/>
 
@@ -151,6 +152,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_preferences_response_cb" last_modification_time="Thu, 28 Apr 2005 16:35:16 GMT"/>
 
@@ -233,6 +235,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -305,6 +311,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -329,6 +339,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -522,6 +536,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -546,6 +564,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -576,6 +598,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -605,6 +631,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -653,6 +683,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -677,6 +711,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -775,6 +813,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -799,6 +841,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -823,6 +869,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -847,6 +897,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -889,6 +943,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1010,6 +1068,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1034,6 +1096,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1059,6 +1125,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1090,6 +1160,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1118,6 +1192,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1142,6 +1220,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1166,6 +1248,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1190,6 +1276,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1214,6 +1304,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1238,6 +1332,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1262,6 +1360,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -1410,6 +1512,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1434,6 +1540,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1458,6 +1568,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1512,6 +1626,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1541,6 +1659,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1663,6 +1785,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1695,6 +1821,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">gconf/general/retain_days</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1744,6 +1874,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1768,6 +1902,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1793,6 +1931,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">gconf/general/auto_decimal_places</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1889,6 +2031,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1913,6 +2059,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1937,6 +2087,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1961,6 +2115,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1986,6 +2144,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">gconf/dialogs/search/new_search_limit</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2064,6 +2226,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -2071,6 +2237,209 @@
 	  </child>
 
 	  <child>
+	    <widget class="GtkTable" id="table11">
+	      <property name="visible">True</property>
+	      <property name="n_rows">10</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label115">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Checks&lt;/b&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment7">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">1</property>
+		  <property name="yscale">1</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">12</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="gconf/dialogs/print_checks/print_date_format">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Below the actual date, print the format of that date in 8 point type.</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Print _date format</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment6">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">1</property>
+		  <property name="yscale">1</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">12</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label116">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Default _font:</property>
+		      <property name="use_underline">True</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="mnemonic_widget">gconf/dialogs/print_checks/default_font</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkFontButton" id="gconf/dialogs/print_checks/default_font">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="show_style">True</property>
+		  <property name="show_size">True</property>
+		  <property name="use_font">False</property>
+		  <property name="use_size">False</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment8">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">1</property>
+		  <property name="yscale">1</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">12</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="gconf/dialogs/print_checks/blocking_chars">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Print '***' before and after each text field on the check.</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Print _blocking chars</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label114">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Printing</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
 	    <widget class="GtkTable" id="table3">
 	      <property name="border_width">6</property>
 	      <property name="visible">True</property>
@@ -2093,6 +2462,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2141,6 +2514,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2189,6 +2566,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2213,6 +2594,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2405,6 +2790,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2435,6 +2824,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -2464,6 +2857,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2488,6 +2885,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2512,6 +2913,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2611,6 +3016,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">gconf/general/register/number_of_rows</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2637,6 +3046,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">gconf/general/register/max_transactions</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2762,6 +3175,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -2791,6 +3208,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">1</property>
@@ -2908,6 +3329,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2932,6 +3357,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2956,6 +3385,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -3010,6 +3443,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -3020,7 +3457,7 @@
 	    <widget class="GtkTable" id="table5">
 	      <property name="border_width">6</property>
 	      <property name="visible">True</property>
-	      <property name="n_rows">18</property>
+	      <property name="n_rows">20</property>
 	      <property name="n_columns">4</property>
 	      <property name="homogeneous">False</property>
 	      <property name="row_spacing">0</property>
@@ -3041,7 +3478,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">8</property>
 		  <property name="bottom_attach">9</property>
 		  <property name="x_padding">12</property>
@@ -3066,7 +3503,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">7</property>
 		  <property name="bottom_attach">8</property>
 		  <property name="x_padding">12</property>
@@ -3091,7 +3528,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">6</property>
 		  <property name="bottom_attach">7</property>
 		  <property name="x_padding">12</property>
@@ -3116,7 +3553,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">5</property>
 		  <property name="bottom_attach">6</property>
 		  <property name="x_padding">12</property>
@@ -3141,7 +3578,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">4</property>
 		  <property name="bottom_attach">5</property>
 		  <property name="x_padding">12</property>
@@ -3163,10 +3600,14 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">3</property>
 		  <property name="bottom_attach">4</property>
 		  <property name="x_options">fill</property>
@@ -3187,10 +3628,14 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">0</property>
 		  <property name="bottom_attach">1</property>
 		  <property name="x_options">fill</property>
@@ -3211,6 +3656,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -3236,7 +3685,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">1</property>
 		  <property name="bottom_attach">2</property>
 		  <property name="x_padding">12</property>
@@ -3246,6 +3695,29 @@
 	      </child>
 
 	      <child>
+		<widget class="GtkCheckButton" id="gconf/general/tab_next_recent">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Bring the most _recent tab to the front</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <property name="active">False</property>
+		  <property name="inconsistent">False</property>
+		  <property name="draw_indicator">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">12</property>
+		  <property name="bottom_attach">13</property>
+		  <property name="x_padding">12</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
 		<widget class="GtkLabel" id="label110">
 		  <property name="visible">True</property>
 		  <property name="label" translatable="yes"></property>
@@ -3258,12 +3730,16 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
 		  <property name="right_attach">1</property>
-		  <property name="top_attach">12</property>
-		  <property name="bottom_attach">13</property>
+		  <property name="top_attach">14</property>
+		  <property name="bottom_attach">15</property>
 		  <property name="x_options">fill</property>
 		  <property name="y_options"></property>
 		</packing>
@@ -3282,12 +3758,16 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">13</property>
-		  <property name="bottom_attach">14</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">15</property>
+		  <property name="bottom_attach">16</property>
 		  <property name="x_options">fill</property>
 		  <property name="y_options"></property>
 		</packing>
@@ -3308,9 +3788,9 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">14</property>
-		  <property name="bottom_attach">15</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">16</property>
+		  <property name="bottom_attach">17</property>
 		  <property name="x_padding">12</property>
 		  <property name="x_options">fill</property>
 		  <property name="y_options"></property>
@@ -3333,9 +3813,9 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">15</property>
-		  <property name="bottom_attach">16</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">17</property>
+		  <property name="bottom_attach">18</property>
 		  <property name="x_padding">12</property>
 		  <property name="x_options">fill</property>
 		  <property name="y_options"></property>
@@ -3358,9 +3838,9 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">16</property>
-		  <property name="bottom_attach">17</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">18</property>
+		  <property name="bottom_attach">19</property>
 		  <property name="x_padding">12</property>
 		  <property name="x_options">fill</property>
 		  <property name="y_options"></property>
@@ -3383,9 +3863,9 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">17</property>
-		  <property name="bottom_attach">18</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">19</property>
+		  <property name="bottom_attach">20</property>
 		  <property name="x_padding">12</property>
 		  <property name="x_options">fill</property>
 		  <property name="y_options"></property>
@@ -3405,6 +3885,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -3419,7 +3903,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label113">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Close Button&lt;/b&gt;</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Tabs&lt;/b&gt;</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -3429,10 +3913,14 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">10</property>
 		  <property name="bottom_attach">11</property>
 		  <property name="x_options">fill</property>
@@ -3455,7 +3943,7 @@
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
-		  <property name="right_attach">1</property>
+		  <property name="right_attach">4</property>
 		  <property name="top_attach">11</property>
 		  <property name="bottom_attach">12</property>
 		  <property name="x_padding">12</property>
@@ -3463,6 +3951,108 @@
 		  <property name="y_options"></property>
 		</packing>
 	      </child>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment9">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">1</property>
+		  <property name="yscale">1</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">12</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label117">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">_Width:</property>
+		      <property name="use_underline">True</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">13</property>
+		  <property name="bottom_attach">14</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox3">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkSpinButton" id="gconf/general/tab_width">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="climb_rate">1</property>
+		      <property name="digits">0</property>
+		      <property name="numeric">True</property>
+		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+		      <property name="snap_to_ticks">False</property>
+		      <property name="wrap">False</property>
+		      <property name="adjustment">30 1 100 1 10 10</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkLabel" id="label118">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">characters</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">3</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">13</property>
+		  <property name="bottom_attach">14</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options">fill</property>
+		</packing>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="tab_expand">False</property>
@@ -3483,6 +4073,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/totd.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/totd.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/totd.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -20,6 +20,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_totd_dialog_response" last_modification_time="Tue, 03 Jan 2006 03:47:09 GMT"/>
 
@@ -119,6 +120,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -146,6 +151,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -171,9 +180,9 @@
 		      <property name="left_margin">0</property>
 		      <property name="right_margin">0</property>
 		      <property name="indent">0</property>
-		      <property name="text" translatable="no">The text of the tip goes here. Some example placeholder text:
+		      <property name="text">The text of the tip goes here. Some example placeholder text:
 If you are looking for a stable personal finance application, you should use
-the latest "stable" release of GnuCash.  See http://www.gnucash.org</property>
+the latest &quot;stable&quot; release of GnuCash.  See http://www.gnucash.org</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/glade/transfer.glade
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/glade/transfer.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/glade/transfer.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
   <signal name="response" handler="gnc_xfer_dialog_response_cb" last_modification_time="Sun, 27 Jul 2003 17:44:58 GMT"/>
 
@@ -95,6 +96,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -109,7 +114,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="no">    </property>
+		  <property name="label">    </property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -119,6 +124,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -152,6 +161,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -195,6 +208,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -239,6 +256,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -259,7 +280,7 @@
 		      <property name="max_length">0</property>
 		      <property name="text" translatable="yes"></property>
 		      <property name="has_frame">True</property>
-		      <property name="invisible_char" translatable="yes">*</property>
+		      <property name="invisible_char">*</property>
 		      <property name="activates_default">True</property>
 		    </widget>
 		    <packing>
@@ -284,6 +305,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -304,7 +329,7 @@
 		      <property name="max_length">0</property>
 		      <property name="text" translatable="yes"></property>
 		      <property name="has_frame">True</property>
-		      <property name="invisible_char" translatable="yes">*</property>
+		      <property name="invisible_char">*</property>
 		      <property name="activates_default">True</property>
 		    </widget>
 		    <packing>
@@ -329,6 +354,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -349,7 +378,7 @@
 		      <property name="max_length">0</property>
 		      <property name="text" translatable="yes"></property>
 		      <property name="has_frame">True</property>
-		      <property name="invisible_char" translatable="yes">*</property>
+		      <property name="invisible_char">*</property>
 		      <property name="activates_default">True</property>
 		    </widget>
 		    <packing>
@@ -389,7 +418,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="no">    </property>
+		  <property name="label">    </property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -399,6 +428,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -423,6 +456,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -453,6 +490,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -474,6 +515,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -517,7 +562,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label2">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="no">    </property>
+		  <property name="label">    </property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -527,6 +572,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -551,6 +600,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">3</property>
@@ -565,7 +618,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="no">    </property>
+		  <property name="label">    </property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -575,6 +628,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">3</property>
@@ -605,6 +662,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -626,6 +687,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -676,22 +741,7 @@
 		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 		  <child>
-		    <widget class="GtkViewport" id="viewport">
-		      <property name="visible">True</property>
-		      <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-		      <child>
-			<widget class="GtkHBox" id="right_tree_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <placeholder/>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
+		    <placeholder/>
 		  </child>
 		</widget>
 		<packing>
@@ -712,22 +762,7 @@
 		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 		  <child>
-		    <widget class="GtkViewport" id="viewport">
-		      <property name="visible">True</property>
-		      <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-		      <child>
-			<widget class="GtkHBox" id="left_tree_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <placeholder/>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
+		    <placeholder/>
 		  </child>
 		</widget>
 		<packing>
@@ -767,6 +802,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -781,7 +820,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="no">    </property>
+		  <property name="label">    </property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -791,6 +830,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -865,6 +908,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">2</property>
@@ -932,6 +979,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">2</property>

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-account-sel.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-account-sel.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-account-sel.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -171,7 +171,7 @@
 gas_populate_list( GNCAccountSel *gas )
 {
         account_filter_data atnd;
-        AccountGroup *ag;
+        Account *root;
 	Account *acc;
 	GtkTreeIter iter;
 	GtkEntry *entry;
@@ -183,8 +183,8 @@
         currentSel = gtk_editable_get_chars(
                 GTK_EDITABLE(entry), 0, -1 );
 
-        ag = gnc_book_get_group( gnc_get_current_book() );
-        accts = (GList*)xaccGroupGetSubAccountsSorted( ag );
+        root = gnc_book_get_root_account( gnc_get_current_book() );
+        accts = gnc_account_get_descendants_sorted( root );
 
         filteredAccts   = NULL;
         atnd.gas        = gas;
@@ -404,7 +404,7 @@
 	  gnc_ui_new_accounts_from_name_window_with_types ( NULL,
 							    gas->acctTypeFilters );
 	else
-	  gnc_ui_new_account_with_types( NULL, gas->acctTypeFilters );
+	  gnc_ui_new_account_with_types( gnc_get_current_book(), gas->acctTypeFilters );
 }
 
 gint
@@ -442,7 +442,7 @@
       while (acc) {
 	if (acc == target)
 	  break;
-	acc = xaccAccountGetParentAccount(acc);
+	acc = gnc_account_get_parent(acc);
       }
 
       if (acc == target)

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -331,9 +331,9 @@
 		hit = g_new (hour_info_t, 1);
 
 		if (gde->flags & GNC_DATE_EDIT_24_HR)
-			strftime (buffer, sizeof (buffer), "%H:00", mtm);
+			qof_strftime (buffer, sizeof (buffer), "%H:00", mtm);
 		else
-			strftime (buffer, sizeof (buffer), "%I:00 %p ", mtm);
+			qof_strftime (buffer, sizeof (buffer), "%I:00 %p ", mtm);
 		hit->hour = g_strdup (buffer);
 		hit->gde  = gde;
 
@@ -355,11 +355,11 @@
 			mtm->tm_min = j;
 			hit = g_new (hour_info_t, 1);
 			if (gde->flags & GNC_DATE_EDIT_24_HR)
-				strftime (buffer, sizeof (buffer),
-                                          "%H:%M", mtm);
+				qof_strftime (buffer, sizeof (buffer),
+					      "%H:%M", mtm);
 			else
-				strftime (buffer, sizeof (buffer),
-                                          "%I:%M %p", mtm);
+				qof_strftime (buffer, sizeof (buffer),
+					      "%I:%M %p", mtm);
 			hit->hour = g_strdup (buffer);
 			hit->gde  = gde;
 
@@ -505,9 +505,9 @@
 
 	/* Set the time */
 	if (gde->flags & GNC_DATE_EDIT_24_HR)
-		strftime (buffer, sizeof (buffer), "%H:%M", mytm);
+		qof_strftime (buffer, sizeof (buffer), "%H:%M", mytm);
 	else
-		strftime (buffer, sizeof (buffer), "%I:%M %p", mytm);
+		qof_strftime (buffer, sizeof (buffer), "%I:%M %p", mytm);
 	gtk_entry_set_text (GTK_ENTRY (gde->time_entry), buffer);
 }
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-date-edit.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,6 @@
   @NOTATION@
  */
 
-
 #ifndef GNC_DATE_EDIT_H
 #define GNC_DATE_EDIT_H 
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-date-format.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-date-format.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-date-format.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -514,7 +514,7 @@
   /* Visual feedback on what the date will look like. */
   secs_now = time(NULL);
   localtime_r(&secs_now, &today);
-  strftime(date_string, MAX_DATE_LEN, format, &today);
+  qof_strftime(date_string, MAX_DATE_LEN, format, &today);
   gtk_label_set_text(GTK_LABEL(priv->sample_label), date_string);
   g_free(format);
 }

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,132 @@
+/*
+ * gnc-dense-cal-model.c
+ *
+ * Copyright (C) 2006 Joshua Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include "gnc-dense-cal.h"
+#include "gnc-dense-cal-model.h"
+
+enum { GDCM_ADDED, GDCM_UPDATE, GDCM_REMOVE, LAST_SIGNAL };
+static guint gnc_dense_cal_model_signals[LAST_SIGNAL] = { 0 };
+
+static void
+gnc_dense_cal_model_base_init(gpointer g_class)
+{
+    static gboolean initialized = FALSE;
+     
+    if (!initialized)
+    {
+        gnc_dense_cal_model_signals[GDCM_ADDED]
+            = g_signal_new("added",
+                           G_TYPE_FROM_CLASS(g_class),
+                           G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+                           0 /* default offset */,
+                           NULL /* accumulator */,
+                           NULL /* accum. data */,
+                           g_cclosure_marshal_VOID__UINT,
+                           G_TYPE_NONE /* return */,
+                           1 /* n_params */,
+                           G_TYPE_UINT /* param types */
+                );
+
+        gnc_dense_cal_model_signals[GDCM_UPDATE]
+            = g_signal_new("update",
+                           G_TYPE_FROM_CLASS(g_class),
+                           G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+                           0 /* default offset */,
+                           NULL /* accumulator */,
+                           NULL /* accum. data */,
+                           g_cclosure_marshal_VOID__UINT,
+                           G_TYPE_NONE /* return */,
+                           1 /* n_params */,
+                           G_TYPE_UINT /* param types */
+                );
+
+        gnc_dense_cal_model_signals[GDCM_REMOVE]
+            = g_signal_new("removing",
+                           G_TYPE_FROM_CLASS(g_class),
+                           G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+                           0 /* default offset */,
+                           NULL /* accumulator */,
+                           NULL /* accum. data */,
+                           g_cclosure_marshal_VOID__UINT,
+                           G_TYPE_NONE /* return */,
+                           1 /* n_params */,
+                           G_TYPE_UINT /* param types */
+                );
+
+        initialized = TRUE;
+    }
+}
+
+GType
+gnc_dense_cal_model_get_type(void)
+{
+    static GType type = 0;
+    if (type == 0) {
+        static const GTypeInfo info = {
+            sizeof(GncDenseCalModelIface),
+            gnc_dense_cal_model_base_init,   /* base_init */
+            NULL,   /* base_finalize */
+            NULL,   /* class_init */
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            0,
+            0,      /* n_preallocs */
+            NULL    /* instance_init */
+        };
+        type = g_type_register_static(G_TYPE_INTERFACE, "GncDenseCalModel", &info, 0);
+    }
+    return type;
+}
+
+GList*
+gnc_dense_cal_model_get_contained(GncDenseCalModel *model)
+{
+    return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_contained)(model);
+}
+
+gchar*
+gnc_dense_cal_model_get_name(GncDenseCalModel *model, guint tag)
+{
+    return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_name)(model, tag);
+}
+
+gchar*
+gnc_dense_cal_model_get_info(GncDenseCalModel *model, guint tag)
+{
+    return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_info)(model, tag);
+}
+
+gint
+gnc_dense_cal_model_get_instance_count(GncDenseCalModel *model, guint tag)
+{
+    return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_instance_count)(model, tag);
+}
+
+void
+gnc_dense_cal_model_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date)
+{
+    return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_instance)(model, tag, instance_index, date);
+}

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-model.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,66 @@
+/*
+ * gnc-dense-cal-model.h
+ *
+ * Copyright (C) 2006 Joshua Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef _GNC_DENSE_CAL_MODEL_H
+#define _GNC_DENSE_CAL_MODEL_H
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define GNC_TYPE_DENSE_CAL_MODEL (gnc_dense_cal_model_get_type())
+#define GNC_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModel))
+#define GNC_IS_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_DENSE_CAL_MODEL))
+#define GNC_DENSE_CAL_MODEL_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModelIface))
+  
+typedef struct _GncDenseCalModel GncDenseCalModel; /* non existant */
+typedef struct _GncDenseCalModelIface
+{
+    GTypeInterface parent;
+
+    /* signals */
+    void (*insert)(GncDenseCalModel *mdl, gint tag);
+    void (*update)(GncDenseCalModel *mdl, gint tag);
+    void (*remove)(GncDenseCalModel *mdl, gint tag);
+
+    /* virtual table */
+    GList* (*get_contained)(GncDenseCalModel *model);
+    gchar* (*get_name)(GncDenseCalModel *model, guint tag);
+    gchar* (*get_info)(GncDenseCalModel *model, guint tag);
+    gint (*get_instance_count)(GncDenseCalModel *model, guint tag);
+    void (*get_instance)(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date);
+} GncDenseCalModelIface;
+
+GType gnc_dense_cal_model_get_type(void);
+
+/* @fixme: glist mem alloc policy... ? */
+GList* gnc_dense_cal_model_get_contained(GncDenseCalModel *model);
+gchar* gnc_dense_cal_model_get_name(GncDenseCalModel *model, guint tag);
+gchar* gnc_dense_cal_model_get_info(GncDenseCalModel *model, guint tag);
+gint gnc_dense_cal_model_get_instance_count(GncDenseCalModel *model, guint tag);
+void gnc_dense_cal_model_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date);
+
+G_END_DECLS
+
+#endif // _GNC_DENSE_CAL_MODEL_H

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,345 @@
+/*
+ * gnc-dense-cal-store.h
+ *
+ * Copyright (C) 2006 Joshua Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include "glib-compat.h"
+#include "gnc-dense-cal.h"
+#include "gnc-dense-cal-model.h"
+#include "gnc-dense-cal-store.h"
+#include "Recurrence.h"
+
+struct _GncDenseCalStore
+{
+    GObject parent;
+     
+    GDate start_date;
+    gdcs_end_type end_type;
+    GDate end_date;
+    gint n_occurrences;
+    gchar *name;
+    gchar *info;
+    int num_marks;
+    int num_real_marks; 
+    GDate **cal_marks;
+};
+
+struct _GncDenseCalStoreClass
+{
+    GObjectClass parent_class;
+};
+
+static GObjectClass *parent_class = NULL;
+
+static void gnc_dense_cal_store_class_init(GncDenseCalStoreClass *klass);
+
+static void gnc_dense_cal_store_finalize(GObject *obj);
+
+static GList* gdcs_get_contained(GncDenseCalModel *model);
+static gchar* gdcs_get_name(GncDenseCalModel *model, guint tag);
+static gchar* gdcs_get_info(GncDenseCalModel *model, guint tag);
+static gint gdcs_get_instance_count(GncDenseCalModel *model, guint tag);
+static void gdcs_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date);
+
+static void
+gnc_dense_cal_store_class_init(GncDenseCalStoreClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+    parent_class = g_type_class_peek_parent(klass);
+     
+    object_class->finalize = gnc_dense_cal_store_finalize;
+}
+
+static void
+gnc_dense_cal_store_iface_init(gpointer g_iface, gpointer iface_data)
+{
+    GncDenseCalModelIface *iface = (GncDenseCalModelIface*)g_iface;
+    iface->get_contained = gdcs_get_contained;
+    iface->get_name = gdcs_get_name;
+    iface->get_info = gdcs_get_info;
+    iface->get_instance_count = gdcs_get_instance_count;
+    iface->get_instance = gdcs_get_instance;
+}
+ 
+GType
+gnc_dense_cal_store_get_type(void)
+{
+    static GType type = 0;
+    if (type == 0)
+    {
+        static const GTypeInfo info = {
+            sizeof (GncDenseCalStoreClass),
+            NULL,   /* base_init */
+            NULL,   /* base_finalize */
+            (GClassInitFunc)gnc_dense_cal_store_class_init,   /* class_init */
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            sizeof(GncDenseCalStore),
+            0,      /* n_preallocs */
+            NULL    /* instance_init */
+        };
+        static const GInterfaceInfo iDenseCalModelInfo = {
+            (GInterfaceInitFunc)gnc_dense_cal_store_iface_init,
+            NULL, /* interface finalize */
+            NULL, /* interface data */
+        };
+        type = g_type_register_static(G_TYPE_OBJECT, "GncDenseCalStore", &info, 0);
+        g_type_add_interface_static(type,
+                                    GNC_TYPE_DENSE_CAL_MODEL,
+                                    &iDenseCalModelInfo);
+    }
+    return type;
+}
+
+GncDenseCalStore*
+gnc_dense_cal_store_new(int num_marks)
+{
+    GncDenseCalStore *model = g_object_new(GNC_TYPE_DENSE_CAL_STORE, NULL);
+    model->num_marks = num_marks;
+    model->cal_marks = g_new0(GDate*, num_marks);
+    {
+        int i = 0;
+        for (i = 0; i < model->num_marks; i++)
+        {
+            model->cal_marks[i] = g_date_new();
+        }
+    }
+    model->num_real_marks = 0;
+    g_date_clear(&model->start_date, 1);
+    g_date_set_time_t(&model->start_date, time(NULL));
+    model->end_type = NEVER_END;
+    g_date_clear(&model->end_date, 1);
+    g_date_set_time_t(&model->end_date, time(NULL));
+    model->n_occurrences = 0;
+    return model;
+}
+
+void
+gnc_dense_cal_store_clear(GncDenseCalStore *model)
+{
+    model->num_real_marks = 0;
+    g_signal_emit_by_name(model, "update", GUINT_TO_POINTER(1));
+}
+
+void
+gnc_dense_cal_store_update_name(GncDenseCalStore *model, gchar *name)
+{
+    if (model->name != NULL)
+    {
+        g_free(model->name);
+    }
+    model->name = g_strdup(name);
+    g_signal_emit_by_name(model, "update", GUINT_TO_POINTER(1));
+}
+
+void
+gnc_dense_cal_store_update_info(GncDenseCalStore *model, gchar *info)
+{
+    if (model->info != NULL)
+    {
+        g_free(model->info);
+    }
+    model->info = g_strdup(info);
+    g_signal_emit_by_name(model, "update", GUINT_TO_POINTER(1));
+}
+
+static void
+gdcs_generic_update(GncDenseCalStore *trans, GDate *start, FreqSpec *fs)
+{
+    int i;
+    GDate date;
+
+    date = *start;
+    /* go one day before what's in the box so we can get the correct start
+     * date. */
+    g_date_subtract_days(&date, 1);
+    xaccFreqSpecGetNextInstance(fs, &date, &date);
+
+    i = 0;
+    while ((i < trans->num_marks)
+           && g_date_valid(&date)
+           /* Do checking against end restriction. */
+           && ((trans->end_type == NEVER_END)
+               || (trans->end_type == END_ON_DATE
+                   && g_date_compare(&date, &trans->end_date) <= 0)
+               || (trans->end_type == END_AFTER_N_OCCS
+                   && i < trans->n_occurrences)))
+    {
+        *trans->cal_marks[i++] = date;
+        xaccFreqSpecGetNextInstance(fs, &date, &date);
+    }
+    trans->num_real_marks = (i == 0 ? 0 : (i-1));
+    g_signal_emit_by_name(trans, "update", GUINT_TO_POINTER(1));
+}
+
+static void
+gdcs_generic_update_recurrences(GncDenseCalStore *trans, GDate *start, GList *recurrences)
+{
+    int i;
+    GDate date, next;
+
+    date = *start;
+    /* go one day before what's in the box so we can get the correct start
+     * date. */
+    g_date_subtract_days(&date, 1);
+    recurrenceListNextInstance(recurrences, &date, &next);
+
+    i = 0;
+    while ((i < trans->num_marks)
+           && g_date_valid(&next)
+           /* Do checking against end restriction. */
+           && ((trans->end_type == NEVER_END)
+               || (trans->end_type == END_ON_DATE
+                   && g_date_compare(&next, &trans->end_date) <= 0)
+               || (trans->end_type == END_AFTER_N_OCCS
+                   && i < trans->n_occurrences)))
+    {
+        *trans->cal_marks[i++] = next;
+        date = next;
+        recurrenceListNextInstance(recurrences, &date, &next);
+    }
+    trans->num_real_marks = (i == 0 ? 0 : (i-1));
+    g_signal_emit_by_name(trans, "update", GUINT_TO_POINTER(1));
+}
+
+void
+gnc_dense_cal_store_update_no_end(GncDenseCalStore *model, GDate *start, FreqSpec *fs)
+{
+    model->end_type = NEVER_END;
+    gdcs_generic_update(model, start, fs);
+}
+
+void
+gnc_dense_cal_store_update_count_end(GncDenseCalStore *model, GDate *start, FreqSpec *fs, int num_occur)
+{
+    model->end_type = END_AFTER_N_OCCS;
+    model->n_occurrences = num_occur;
+    gdcs_generic_update(model, start, fs);
+}
+
+void
+gnc_dense_cal_store_update_date_end(GncDenseCalStore *model, GDate *start, FreqSpec *fs, GDate *end_date)
+{
+    model->end_type = END_ON_DATE;
+    model->end_date = *end_date;
+    gdcs_generic_update(model, start, fs);
+}
+
+void
+gnc_dense_cal_store_update_recurrences_no_end(GncDenseCalStore *model, GDate *start, GList *recurrences)
+{
+    model->end_type = NEVER_END;
+    gdcs_generic_update_recurrences(model, start, recurrences);
+}
+
+void
+gnc_dense_cal_store_update_recurrences_count_end(GncDenseCalStore *model, GDate *start, GList *recurrences, int num_occur)
+{
+    model->end_type = END_AFTER_N_OCCS;
+    model->n_occurrences = num_occur;
+    gdcs_generic_update_recurrences(model, start, recurrences);
+}
+
+void
+gnc_dense_cal_store_update_recurrences_date_end(GncDenseCalStore *model, GDate *start, GList *recurrences, GDate *end_date)
+{
+    model->end_type = END_ON_DATE;
+    model->end_date = *end_date;
+    gdcs_generic_update_recurrences(model, start, recurrences);
+}
+
+static GList*
+gdcs_get_contained(GncDenseCalModel *model)
+{
+    GList *rtn = NULL;
+    rtn = g_list_append(rtn, GUINT_TO_POINTER(1));
+    return rtn;
+}
+
+static gchar*
+gdcs_get_name(GncDenseCalModel *model, guint tag)
+{
+    GncDenseCalStore *mdl = GNC_DENSE_CAL_STORE(model);
+    // assert(tag == 1)
+    return mdl->name;
+}
+
+static gchar*
+gdcs_get_info(GncDenseCalModel *model, guint tag)
+{
+    GncDenseCalStore *mdl = GNC_DENSE_CAL_STORE(model);
+    // assert(tag == 1)
+    return mdl->info;
+}
+
+static gint
+gdcs_get_instance_count(GncDenseCalModel *model, guint tag)
+{
+    GncDenseCalStore *mdl = GNC_DENSE_CAL_STORE(model);
+    // assert(tag == 1)
+    return mdl->num_real_marks;
+}
+
+static void
+gdcs_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date)
+{
+    GncDenseCalStore *mdl = GNC_DENSE_CAL_STORE(model);
+    // assert(tag == 1)
+    // assert 0 < instance_index < model->num_marks;
+    *date = *mdl->cal_marks[instance_index];
+}
+
+static void
+gnc_dense_cal_store_finalize(GObject *obj)
+{
+    int i;
+    GncDenseCalStore *store;
+    g_return_if_fail(obj != NULL);
+
+    store = GNC_DENSE_CAL_STORE(obj);
+
+    if (store->name != NULL)
+    {
+        g_free(store->name);
+        store->name = NULL;
+    }
+
+    if (store->info != NULL)
+    {
+        g_free(store->info);
+        store->info = NULL;
+    }
+
+    for (i = 0; i < store->num_marks; i++)
+    {
+        g_free(store->cal_marks[i]);
+        store->cal_marks[i] = NULL;
+    }
+    if (store->cal_marks != NULL)
+    {
+        g_free(store->cal_marks);
+        store->cal_marks = NULL;
+    }
+
+    G_OBJECT_CLASS(parent_class)->finalize(obj);
+}

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal-store.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,63 @@
+/*
+ * gnc-dense-cal-store.h
+ *
+ * Copyright (C) 2006 Joshua Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef _GNC_DENSE_CAL_STORE_H
+#define _GNC_DENSE_CAL_STORE_H
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include <FreqSpec.h>
+#include "gnc-dense-cal-model.h"
+#include "gnc-dense-cal.h"
+
+G_BEGIN_DECLS
+
+#define GNC_TYPE_DENSE_CAL_STORE (gnc_dense_cal_store_get_type())
+#define GNC_DENSE_CAL_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_DENSE_CAL_STORE, GncDenseCalStore))
+#define GNC_DENSE_CAL_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_DENSE_CAL_STORE, GncDenseCalStoreClass))
+#define GNC_IS_DENSE_CAL_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_DENSE_CAL_STORE))
+#define GNC_IS_DENSE_CAL_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_DENSE_CAL_STORE))
+#define GNC_DENSE_CAL_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_DENSE_CAL_STORE, GncDenseCalStore))
+  
+typedef enum { NEVER_END, END_ON_DATE, END_AFTER_N_OCCS, BAD_END } gdcs_end_type;
+
+typedef struct _GncDenseCalStore GncDenseCalStore;
+typedef struct _GncDenseCalStoreClass GncDenseCalStoreClass;
+
+GType gnc_dense_cal_store_get_type(void);
+GncDenseCalStore* gnc_dense_cal_store_new(int num_marks);
+void gnc_dense_cal_store_clear(GncDenseCalStore *model);
+void gnc_dense_cal_store_update_name(GncDenseCalStore *model, gchar* name);
+void gnc_dense_cal_store_update_info(GncDenseCalStore *model, gchar* info);
+
+void gnc_dense_cal_store_update_no_end(GncDenseCalStore *model, GDate *start, FreqSpec *fs);
+void gnc_dense_cal_store_update_count_end(GncDenseCalStore *model, GDate *start, FreqSpec *fs, int num_occur);
+void gnc_dense_cal_store_update_date_end(GncDenseCalStore *model, GDate *start, FreqSpec *fs, GDate *end_date);
+
+void gnc_dense_cal_store_update_recurrences_no_end(GncDenseCalStore *model, GDate *start, GList *recurrences);
+void gnc_dense_cal_store_update_recurrences_count_end(GncDenseCalStore *model, GDate *start, GList *recurrences, int num_occur);
+void gnc_dense_cal_store_update_recurrences_date_end(GncDenseCalStore *model, GDate *start, GList *recurrences, GDate *end_date);
+
+G_END_DECLS
+
+#endif // _GNC_DENSE_CAL_STORE_H

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 /********************************************************************\
  * gnc-dense-cal.c : a custom densely-dispalyed calendar widget     *
- * Copyright (C) 2002 Joshua Sled <jsled at asynchronous.org>          *
+ * Copyright (C) 2002,2006 Joshua Sled <jsled at asynchronous.org>     *
  *                                                                  *
  * This program is free software; you can redistribute it and/or    *
  * modify it under the terms of the GNU General Public License as   *
@@ -22,28 +22,17 @@
 
 #include "config.h"
 
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
 #include "glib-compat.h"
-#include <math.h>
-
 #include "gnc-dense-cal.h"
-
-/* For PERR, only... */
+#include "gnc-dense-cal-model.h"
 #include "gnc-engine.h"
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <math.h>
+#include <stdlib.h>
 
 /**
- * Todo:
- * . marking
- *   . color-per-marker (configurable)
- *   X all-or-nothing
- * \ handle errors properly
- * X mouse-over -> "hottip"
- * X rotated month labels
- * X weeksPerCol -> monthsPerCol
- **/
-
-/**
  * Marking ...
  *
  * We want a facility to mark multiple days on the calendar.  This facility
@@ -84,103 +73,98 @@
 
 static const gchar* MARK_COLOR = "Yellow";
 
-static const gchar* MARKS_LOST_SIGNAL_NAME = "marks_lost";
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.dense-cal"
 
-/* SIGNALS */
-enum gnc_dense_cal_signal_enum {
-  MARKS_LOST_SIGNAL,
-  LAST_SIGNAL
-};
+static void gnc_dense_cal_class_init(GncDenseCalClass *class);
+static void gnc_dense_cal_init(GncDenseCal *dcal);
+static void gnc_dense_cal_finalize(GObject *object);
+static void gnc_dense_cal_dispose(GObject *object);
+static void gnc_dense_cal_realize(GtkWidget *widget, gpointer user_data);
+static void gnc_dense_cal_configure(GtkWidget *widget, GdkEventConfigure *event, gpointer user_data);
+static void gnc_dense_cal_draw_to_buffer(GncDenseCal *dcal);
+static gboolean gnc_dense_cal_expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data);
 
-static guint gnc_dense_cal_signals[LAST_SIGNAL] = { 0 };
+static void gdc_reconfig(GncDenseCal *dcal);
 
-static QofLogModule log_module = GNC_MOD_SX;
+static void gdc_free_all_mark_data(GncDenseCal *dcal);
 
-static void gnc_dense_cal_class_init (GncDenseCalClass *class);
-static void gnc_dense_cal_init (GncDenseCal *dcal);
-static void gnc_dense_cal_finalize (GObject *object);
-static void gnc_dense_cal_dispose (GObject *object);
-static void gnc_dense_cal_realize (GtkWidget *widget);
-static void gnc_dense_cal_draw_to_buffer( GncDenseCal *dcal );
-static gint gnc_dense_cal_expose( GtkWidget      *widget,
-                                  GdkEventExpose *event );
+static void _gdc_compute_min_size(GncDenseCal *dcal,
+                                  guint *min_width, guint *min_height);
+static void _gdc_set_cal_min_size_req(GncDenseCal *dcal);
+static gint gnc_dense_cal_motion_notify(GtkWidget      *widget,
+                                        GdkEventMotion *event);
+static gint gnc_dense_cal_button_press(GtkWidget *widget,
+                                       GdkEventButton *evt);
 
-static void gdc_reconfig( GncDenseCal *dcal );
+static void _gdc_view_option_changed(GtkComboBox *widget, gpointer user_data);
 
-static void gdc_free_all_mark_data( GncDenseCal *dcal );
+static inline int day_width_at(GncDenseCal *dcal, guint xScale);
+static inline int day_width(GncDenseCal *dcal);
+static inline int day_height_at(GncDenseCal *dcal, guint yScale);
+static inline int day_height(GncDenseCal *dcal);
+static inline int week_width_at(GncDenseCal *dcal, guint xScale);
+static inline int week_width(GncDenseCal *dcal);
+static inline int week_height_at(GncDenseCal *dcal, guint yScale);
+static inline int week_height(GncDenseCal *dcal);
+static inline int col_width_at(GncDenseCal *dcal, guint xScale);
+static inline int col_width(GncDenseCal *dcal);
 
-static void gnc_dense_cal_size_request( GtkWidget      *widget,
-                                        GtkRequisition *requisition);
-static void gnc_dense_cal_size_allocate( GtkWidget     *widget,
-                                         GtkAllocation *allocation );
-static gint gnc_dense_cal_motion_notify( GtkWidget      *widget,
-                                         GdkEventMotion *event );
-static gint gnc_dense_cal_button_press( GtkWidget *widget,
-                                        GdkEventButton *evt );
-
-static inline int day_width_at( GncDenseCal *dcal, guint xScale );
-static inline int day_width( GncDenseCal *dcal );
-static inline int day_height_at( GncDenseCal *dcal, guint yScale );
-static inline int day_height( GncDenseCal *dcal );
-static inline int week_width_at( GncDenseCal *dcal, guint xScale );
-static inline int week_width( GncDenseCal *dcal );
-static inline int week_height_at( GncDenseCal *dcal, guint yScale );
-static inline int week_height( GncDenseCal *dcal );
-static inline int col_width_at( GncDenseCal *dcal, guint xScale );
-static inline int col_width( GncDenseCal *dcal );
-
-static inline int col_height( GncDenseCal *dcal );
-static inline int num_cols( GncDenseCal *dcal );
+static inline int col_height(GncDenseCal *dcal);
+static inline int num_cols(GncDenseCal *dcal);
 /**
  * Returns the total number of weeks to display in the calendar [irrespective
  * of columns/weeks-per-col].
  **/
-static inline int num_weeks( GncDenseCal *dcal );
+static inline int num_weeks(GncDenseCal *dcal);
 /**
  * Returns the number of weeks per column.  Note that this is the number of
  * weeks needed to display the longest column.
  **/
-static int num_weeks_per_col( GncDenseCal *dcal );
+static int num_weeks_per_col(GncDenseCal *dcal);
 
 /* hotspot calculation */
-static gint wheres_this( GncDenseCal *dcal, int x, int y );
+static gint wheres_this(GncDenseCal *dcal, int x, int y);
 
-static void recompute_x_y_scales( GncDenseCal *dcal );
-static void recompute_mark_storage( GncDenseCal *dcal );
-static void recompute_extents( GncDenseCal *dcal );
-static void populate_hover_window( GncDenseCal *dcal, gint doc );
+static void recompute_x_y_scales(GncDenseCal *dcal);
+static void recompute_mark_storage(GncDenseCal *dcal);
+static void recompute_extents(GncDenseCal *dcal);
+static void populate_hover_window(GncDenseCal *dcal, gint doc);
 
-static void month_coords( GncDenseCal *dcal, int monthOfCal, GList **outList );
-static void doc_coords( GncDenseCal *dcal, int dayOfCal,
-                        int *x1, int *y1, int *x2, int *y2 );
+static void month_coords(GncDenseCal *dcal, int monthOfCal, GList **outList);
+static void doc_coords(GncDenseCal *dcal, int dayOfCal,
+                       int *x1, int *y1, int *x2, int *y2);
 
-static GtkWidgetClass *parent_class = NULL;
+static void gdc_mark_add(GncDenseCal *dcal, guint tag, gchar *name, gchar *info, guint size, GDate **dateArray);
+static void gdc_mark_remove(GncDenseCal *dcal, guint mark_to_remove);
 
-/*static const gchar* MONTH_NAMES[] = {
-  "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-  };*/
+static void gdc_add_tag_markings(GncDenseCal *cal, guint tag);
+static void gdc_add_markings(GncDenseCal *cal);
+static void gdc_remove_markings(GncDenseCal *cal);
+
+static GObject *parent_class = NULL;
+
 #define MONTH_NAME_BUFSIZE 5
 /* Takes the number of months since January, in the range 0 to
  * 11. Returns the abbreviated month name according to the current
- * locale. (i18n'd version of the above static character array.) */
+ * locale.*/
 static const gchar *month_name(int mon) 
 {
-        static gchar buf[MONTH_NAME_BUFSIZE];
-        GDate *date;
+    static gchar buf[MONTH_NAME_BUFSIZE];
+    GDate date;
+    gint arbitrary_year = 1977;
 
-        memset(buf, 0, MONTH_NAME_BUFSIZE);
-        date = g_date_new();
-        g_date_set_month(date, mon);
-        g_date_strftime(buf, MONTH_NAME_BUFSIZE-1, "%b", date);
-        g_date_free(date);
-
-        return buf;
+    memset(buf, 0, MONTH_NAME_BUFSIZE);
+    g_date_clear(&date, 1);
+     
+    g_date_set_year(&date, arbitrary_year);
+    g_date_set_day(&date, 1);
+    // g_date API is 1..12 (not 0..11)
+    g_date_set_month(&date, mon+1);
+    g_date_strftime(buf, MONTH_NAME_BUFSIZE-1, "%b", &date);
+     
+    return buf;
 }
-/* FIXME: i18n 
-   static const gchar *dayLabels[7] = {
-   "Su", "M", "Tu", "W", "Th", "F", "Sa"
-   };*/
 /* Takes the number of days since Sunday, in the range 0 to 6. Returns
  * the abbreviated weekday name according to the current locale. */
 static const gchar *day_label(int wday)
@@ -189,1069 +173,1124 @@
     struct tm my_tm;
     int i;
     
-    memset( buf, 0, MONTH_NAME_BUFSIZE );
-    memset( &my_tm, 0, sizeof( struct tm ) );
+    memset(buf, 0, MONTH_NAME_BUFSIZE);
+    memset(&my_tm, 0, sizeof(struct tm));
     my_tm.tm_wday = wday;
-    i = strftime (buf, MONTH_NAME_BUFSIZE-1, "%a", &my_tm);
+    i = qof_strftime (buf, MONTH_NAME_BUFSIZE-1, "%a", &my_tm);
     /* Wild hack to use only the first two letters */
     buf[2]='\0';
     return buf;
 }
 
-
 GType
-gnc_dense_cal_get_type ()
+gnc_dense_cal_get_type()
 {
-        static GType dense_cal_type = 0;
+    static GType dense_cal_type = 0;
 
-        if (dense_cal_type == 0) {
-                static const GTypeInfo dense_cal_info = {
-                                sizeof (GncDenseCalClass),
-				NULL,
-				NULL,
-                                (GClassInitFunc) gnc_dense_cal_class_init,
-				NULL,
-				NULL,
-                                sizeof (GncDenseCal),
-				0,  /* n_preallocs */
-                                (GInstanceInitFunc) gnc_dense_cal_init,
-                                NULL
-		};
+    if (dense_cal_type == 0) {
+        static const GTypeInfo dense_cal_info = {
+            sizeof (GncDenseCalClass),
+            NULL,
+            NULL,
+            (GClassInitFunc) gnc_dense_cal_class_init,
+            NULL,
+            NULL,
+            sizeof (GncDenseCal),
+            0,
+            (GInstanceInitFunc) gnc_dense_cal_init,
+            NULL
+        };
 
-                dense_cal_type = g_type_register_static(GTK_TYPE_WIDGET,
-						"GncDenseCal",
-						&dense_cal_info, 0);
-        }
+        dense_cal_type = g_type_register_static(GTK_TYPE_VBOX,
+                                                "GncDenseCal",
+                                                &dense_cal_info, 0);
+    }
 
-        return dense_cal_type;
+    return dense_cal_type;
 }
 
 static void
-gnc_dense_cal_class_init (GncDenseCalClass *klass)
+gnc_dense_cal_class_init(GncDenseCalClass *klass)
 {
-        GObjectClass *object_class;
-        GtkWidgetClass *widget_class;
+    GObjectClass *object_class;
+    GtkWidgetClass *widget_class;
 
-        object_class =  G_OBJECT_CLASS (klass);
-        widget_class = GTK_WIDGET_CLASS (klass);
+    object_class = G_OBJECT_CLASS (klass);
+    widget_class = GTK_WIDGET_CLASS (klass);
 
-        parent_class = g_type_class_peek_parent (klass);
+    parent_class = g_type_class_peek_parent (klass);
 
-        gnc_dense_cal_signals[MARKS_LOST_SIGNAL] =
-                g_signal_new (MARKS_LOST_SIGNAL_NAME,
-			      G_OBJECT_CLASS_TYPE (object_class),
-                              G_SIGNAL_RUN_LAST,
-                              G_STRUCT_OFFSET (GncDenseCalClass, marks_lost_cb),
-			      NULL, NULL,
-			      g_cclosure_marshal_VOID__VOID,
-			      G_TYPE_NONE,
-			      0);
+    object_class->finalize = gnc_dense_cal_finalize;
+    object_class->dispose = gnc_dense_cal_dispose;
 
-        object_class->finalize = gnc_dense_cal_finalize;
-        object_class->dispose = gnc_dense_cal_dispose;
+    widget_class->motion_notify_event = gnc_dense_cal_motion_notify;
+    widget_class->button_press_event = gnc_dense_cal_button_press;
+}
 
-        widget_class->realize = gnc_dense_cal_realize;
-        widget_class->expose_event = gnc_dense_cal_expose;
-        widget_class->size_request = gnc_dense_cal_size_request;
-        widget_class->size_allocate = gnc_dense_cal_size_allocate;
-        widget_class->motion_notify_event = gnc_dense_cal_motion_notify;
-        widget_class->button_press_event = gnc_dense_cal_button_press;
+enum _GdcViewOptsColumns
+{
+    VIEW_OPTS_COLUMN_LABEL = 0,
+    VIEW_OPTS_COLUMN_NUM_MONTHS
+};
+
+static GtkListStore *_cal_view_options = NULL;
+static GtkListStore*
+_gdc_get_view_options(void)
+{
+    if (_cal_view_options == NULL)
+    {
+        _cal_view_options = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
+        gtk_list_store_insert_with_values(_cal_view_options, NULL, G_MAXINT, 0, _("12 months"), 1, 12, -1);
+        gtk_list_store_insert_with_values(_cal_view_options, NULL, G_MAXINT, 0, _("6 months"), 1, 6, -1);
+        gtk_list_store_insert_with_values(_cal_view_options, NULL, G_MAXINT, 0, _("4 months"), 1, 4, -1);
+        gtk_list_store_insert_with_values(_cal_view_options, NULL, G_MAXINT, 0, _("3 months"), 1, 3, -1);
+        gtk_list_store_insert_with_values(_cal_view_options, NULL, G_MAXINT, 0, _("2 months"), 1, 2, -1);
+        gtk_list_store_insert_with_values(_cal_view_options, NULL, G_MAXINT, 0, _("1 month"), 1, 1, -1);
+    }
+
+    return _cal_view_options;
 }
 
 static void
-gnc_dense_cal_init (GncDenseCal *dcal)
+gnc_dense_cal_init(GncDenseCal *dcal)
 {
-        gboolean colorAllocSuccess;
+    gboolean colorAllocSuccess;
 
-        dcal->disposed = FALSE;
-        dcal->initialized = FALSE;
-        dcal->markData = NULL;
-        dcal->numMarks = 0;
-        dcal->marks = NULL;
-        dcal->lastMarkTag = 0;
+    gtk_widget_push_composite_child();
 
-        dcal->showPopup = FALSE;
+    {
+        GtkTreeModel *options;
+        GtkCellRenderer *text_rend;
+        
+        options = GTK_TREE_MODEL(_gdc_get_view_options());
+        dcal->view_options = GTK_COMBO_BOX(gtk_combo_box_new_with_model(options));
+        gtk_combo_box_set_active(GTK_COMBO_BOX(dcal->view_options), 0);
+        text_rend = GTK_CELL_RENDERER(gtk_cell_renderer_text_new());
+        gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dcal->view_options), text_rend, TRUE);
+        gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(dcal->view_options),
+                                      text_rend, "text", VIEW_OPTS_COLUMN_LABEL);
+        g_signal_connect(G_OBJECT(dcal->view_options), "changed", G_CALLBACK(_gdc_view_option_changed), (gpointer)dcal);
+    }
+
+    {
+        GtkHBox *hbox = GTK_HBOX(gtk_hbox_new(FALSE, 0));
+        GtkAlignment *label_align;
+        GtkLabel *label;
+        float right_align = 1.0, mid_align = 0.5, fill_x = 0.0, fill_y = 1.0;
+
+        label = GTK_LABEL(gtk_label_new(_("View:")));
+        label_align = GTK_ALIGNMENT(gtk_alignment_new(right_align, mid_align, fill_x, fill_y));
+        gtk_container_add(GTK_CONTAINER(label_align), GTK_WIDGET(label));
+        gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(label_align), TRUE, TRUE, 0);
+        gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(dcal->view_options), FALSE, FALSE, 0);
+        
+        gtk_box_pack_start(GTK_BOX(dcal), GTK_WIDGET(hbox), FALSE, FALSE, 0);
+    }
+
+    dcal->cal_drawing_area = GTK_DRAWING_AREA(gtk_drawing_area_new());
+    gtk_widget_add_events(GTK_WIDGET(dcal->cal_drawing_area), (GDK_EXPOSURE_MASK
+                                                               | GDK_BUTTON_PRESS_MASK
+                                                               | GDK_BUTTON_RELEASE_MASK
+                                                               | GDK_POINTER_MOTION_MASK
+                                                               | GDK_POINTER_MOTION_HINT_MASK));
+    gtk_box_pack_start(GTK_BOX(dcal), GTK_WIDGET(dcal->cal_drawing_area), TRUE, TRUE, 0);
+    g_signal_connect(G_OBJECT(dcal->cal_drawing_area), "expose_event", G_CALLBACK(gnc_dense_cal_expose), (gpointer)dcal);
+    g_signal_connect(G_OBJECT(dcal->cal_drawing_area), "realize", G_CALLBACK(gnc_dense_cal_realize), (gpointer)dcal);
+    g_signal_connect(G_OBJECT(dcal->cal_drawing_area), "configure_event", G_CALLBACK(gnc_dense_cal_configure), (gpointer)dcal);
+
+    dcal->disposed = FALSE;
+    dcal->initialized = FALSE;
+    dcal->markData = NULL;
+    dcal->numMarks = 0;
+    dcal->marks = NULL;
+    dcal->lastMarkTag = 0;
+
+    dcal->showPopup = FALSE;
   
-        dcal->transPopup = GTK_WINDOW( gtk_window_new( GTK_WINDOW_POPUP ) );
-        {
-                GtkWidget *vbox, *hbox;
-                GtkWidget *l;
-                GtkCList *cl;
-                static gchar *CLIST_TITLES[2];
-		CLIST_TITLES[0] = _("Name");
-		CLIST_TITLES[1] = _("Frequency");
+    dcal->transPopup = GTK_WINDOW(gtk_window_new(GTK_WINDOW_POPUP));
+    {
+        GtkWidget *vbox, *hbox;
+        GtkWidget *l;
+        GtkListStore *tree_data;
+        GtkTreeView *tree_view;
 
-                vbox = gtk_vbox_new( FALSE, 5 );
-                hbox = gtk_hbox_new( FALSE, 5 );
+        vbox = gtk_vbox_new(FALSE, 5);
+        hbox = gtk_hbox_new(FALSE, 5);
 
-                l = gtk_label_new( _("Date: ") );
-                gtk_container_add( GTK_CONTAINER(hbox), l );
-                l = gtk_label_new( "YY/MM/DD" );
-                g_object_set_data( G_OBJECT(dcal->transPopup), "dateLabel", l );
-                gtk_container_add( GTK_CONTAINER(hbox), l );
-                gtk_container_add( GTK_CONTAINER(vbox), hbox );
+        l = gtk_label_new(_("Date: "));
+        gtk_container_add(GTK_CONTAINER(hbox), l);
+        l = gtk_label_new("YY/MM/DD");
+        g_object_set_data(G_OBJECT(dcal->transPopup), "dateLabel", l);
+        gtk_container_add(GTK_CONTAINER(hbox), l);
+        gtk_container_add(GTK_CONTAINER(vbox), hbox);
 
-                gtk_container_add( GTK_CONTAINER(vbox), gtk_hseparator_new() );
+        gtk_container_add(GTK_CONTAINER(vbox), gtk_hseparator_new());
 
-                cl = GTK_CLIST(gtk_clist_new_with_titles(2, (gchar**)CLIST_TITLES));
-                gtk_clist_set_column_auto_resize( cl, 0, TRUE );
-                gtk_clist_set_column_auto_resize( cl, 1, TRUE );
-                g_object_set_data( G_OBJECT(dcal->transPopup), "clist", cl );
-                gtk_container_add( GTK_CONTAINER(vbox), GTK_WIDGET(cl) );
+        tree_data = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
+        tree_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(tree_data)));
+        gtk_tree_view_insert_column_with_attributes(tree_view, -1, _("Name"), gtk_cell_renderer_text_new(), "text", 0, NULL);
+        gtk_tree_view_insert_column_with_attributes(tree_view, -1, _("Frequency"), gtk_cell_renderer_text_new(), "text", 1, NULL);
+        g_object_set_data(G_OBJECT(dcal->transPopup), "model", tree_data);
+        gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(tree_view));
 
-                gtk_container_add( GTK_CONTAINER(dcal->transPopup), vbox );
+        gtk_container_add(GTK_CONTAINER(dcal->transPopup), vbox);
 
-                gtk_widget_realize( GTK_WIDGET(dcal->transPopup) );
-        }
+        gtk_widget_realize(GTK_WIDGET(dcal->transPopup));
+    }
 
-        gdk_color_parse( MONTH_THIS_COLOR,  &dcal->weekColors[MONTH_THIS] );
-        gdk_color_parse( MONTH_THAT_COLOR,  &dcal->weekColors[MONTH_THAT] );
-        if ( gdk_colormap_alloc_colors( gdk_colormap_get_system(),
-                                        dcal->weekColors,
-                                        MAX_COLORS, TRUE, TRUE,
-                                        &colorAllocSuccess ) > 0 ) {
-                /* FIXME : handle [more] properly */
-                PERR( "Error allocating colors\n" );
-        }
+    gdk_color_parse(MONTH_THIS_COLOR,  &dcal->weekColors[MONTH_THIS]);
+    gdk_color_parse(MONTH_THAT_COLOR,  &dcal->weekColors[MONTH_THAT]);
+    if (gdk_colormap_alloc_colors(gdk_colormap_get_system(),
+                                  dcal->weekColors,
+                                  MAX_COLORS, TRUE, TRUE,
+                                  &colorAllocSuccess) > 0)
+    {
+        g_error("error allocating colors");
+    }
 
-        /* Deal with the various label sizes. */
+    /* Deal with the various label sizes. */
+    {
+        gint i;
+        gint maxWidth, maxHeight;
+        GtkStyle *style;
+        PangoLayout *layout;
+        PangoFontDescription *font_desc;
+        gint font_size;
+        gint font_size_reduction_units = 1;
+
+        layout = gtk_widget_create_pango_layout(GTK_WIDGET(dcal), NULL);
+
+        style = gtk_widget_get_style(GTK_WIDGET(dcal));
+
+        font_desc = pango_font_description_copy(style->font_desc);
+        font_size = pango_font_description_get_size(font_desc);
+        font_size -= font_size_reduction_units * PANGO_SCALE;
+        pango_font_description_set_size(font_desc, font_size);
+        gtk_widget_modify_font(GTK_WIDGET(dcal), font_desc);
+        pango_font_description_free(font_desc);
+          
+        maxWidth = maxHeight = 0;
+        for (i=0; i<12; i++)
         {
-                gint i;
-                gint maxWidth, maxHeight, maxAscent, maxLBearing;
-                gint lbearing, rbearing, width, ascent, descent;
-		GtkStyle *style;
+            gint w, h;
+            pango_layout_set_text(layout, month_name(i), -1);
+            pango_layout_get_pixel_size(layout, &w, &h);
+            maxWidth = MAX(maxWidth, w);
+            maxHeight = MAX(maxHeight, h);
+        }
 
-		/* FIXME GNOME 2 port (rework the complete font code) */
-                style = gtk_widget_get_style(GTK_WIDGET(dcal));
+        // these two were reversed, before...
+        dcal->label_width    = maxWidth;
+        dcal->label_height   = maxHeight;
+          
+        g_object_unref(layout);
+    }
 
-                dcal->dayLabelFont = gtk_style_get_font(style);
-                gdk_font_ref( dcal->dayLabelFont );
-                g_assert( dcal->dayLabelFont );
+    dcal->month = G_DATE_JANUARY;
+    dcal->year  = 1970;
 
-                dcal->monthLabelFont = gtk_style_get_font(style);
-                g_assert(dcal->monthLabelFont);
-                gdk_font_ref(dcal->monthLabelFont);
+    dcal->numMonths = 12;
+    dcal->monthsPerCol = 3;
+    dcal->leftPadding = 2;
+    dcal->topPadding = 2;
 
-                maxWidth = maxHeight = maxAscent = maxLBearing = 0;
-                for ( i=0; i<12; i++ ) {
-                        gint w, h;
-                        gdk_string_extents( dcal->monthLabelFont, month_name(i),
-                                            &lbearing, &rbearing, &width,
-                                            &ascent, &descent );
-                        w = rbearing - lbearing + 1;
-                        h = ascent + descent;
-                        maxLBearing = MAX( maxLBearing, ABS(lbearing) );
-                        maxWidth = MAX( maxWidth, w );
-                        maxHeight = MAX( maxHeight, h );
-                        maxAscent = MAX( maxAscent, ascent );
-                }
-                dcal->label_width    = maxHeight + 1;
-                dcal->label_height   = maxWidth;
-                dcal->label_lbearing = maxLBearing;
-                dcal->label_ascent   = maxAscent;
-                dcal->needInitMonthLabels = TRUE;
-        }
+    {
+        GDate *now = g_date_new();
+        g_date_set_time_t(now, time(NULL));
+        gnc_dense_cal_set_month(dcal, g_date_get_month(now));
+        gnc_dense_cal_set_year(dcal, g_date_get_year(now));
+        g_date_free(now);
+    }
 
-        dcal->month = G_DATE_JANUARY;
-        dcal->year  = 1970;
+    recompute_extents(dcal);
+    recompute_mark_storage(dcal);
 
-        dcal->numMonths = 12;
-        dcal->monthsPerCol = 3;
-        dcal->leftPadding = 2;
-        dcal->topPadding = 2;
+    /* Compute initial scaling factors; will be increased when we're
+     * allocated enough space to scale up. */
+    {
+        PangoLayout *layout;
+        int width_88, height_88;
+        int width_XXX, height_XXX;
 
-        {
-                GDate *tmpDate;
+        layout = gtk_widget_create_pango_layout(GTK_WIDGET(dcal), NULL);
 
-                tmpDate = g_date_new();
-                g_date_set_time_t( tmpDate, time(NULL) );
-                gnc_dense_cal_set_month( dcal, g_date_get_month(tmpDate) );
-                gnc_dense_cal_set_year( dcal, g_date_get_year(tmpDate) );
-                g_date_free( tmpDate );
-        }
+        pango_layout_set_text(layout, "88", -1);
+        pango_layout_get_pixel_size(layout, &width_88, &height_88);
 
-        recompute_extents( dcal );
-        recompute_mark_storage( dcal );
+        pango_layout_set_text(layout, "XXX", -1);
+        pango_layout_get_pixel_size(layout, &width_XXX, &height_XXX);
 
-        /* Now that we're "sure" of our configuration, compute initial
-         * scaling factors; will be increased when we're allocated enough
-         * space to scale up. */
-        dcal->min_x_scale = dcal->x_scale =
-                MAX( gdk_string_width( dcal->monthLabelFont, "88" ),
-                     gdk_string_width( dcal->dayLabelFont, "88" ) + 2 );
-        dcal->min_y_scale = dcal->y_scale =
-                MAX( floor( (float)gdk_string_width( dcal->monthLabelFont,
-                                                     "XXX" )
-                            / 3.0 ),
-                     gdk_string_height( dcal->dayLabelFont, "88" ) + 2 );
-        dcal->dayLabelHeight = gdk_string_height( dcal->monthLabelFont, "88" );
-        dcal->initialized = TRUE;
+        dcal->min_x_scale = dcal->x_scale = width_88 + 2;
+        dcal->min_y_scale = dcal->y_scale = MAX(floor((float)width_XXX / 3.), height_88 + 2);
+               
+        dcal->dayLabelHeight = height_88;
+
+        g_object_unref(layout);
+    }
+
+    dcal->initialized = TRUE;
+
+    gtk_widget_pop_composite_child();
+
+    gtk_widget_show_all(GTK_WIDGET(dcal));
 }
 
+static void
+_gdc_set_cal_min_size_req(GncDenseCal *dcal)
+{
+    guint min_width, min_height;
+
+    _gdc_compute_min_size(dcal, &min_width, &min_height);
+    gtk_widget_set_size_request(GTK_WIDGET(dcal->cal_drawing_area), min_width, min_height);
+}
+
 GtkWidget*
 gnc_dense_cal_new(void)
 {
-        GncDenseCal *dcal;
-        dcal = g_object_new(GNC_TYPE_DENSE_CAL, NULL, NULL);
+    GncDenseCal *dcal;
+    dcal = g_object_new(GNC_TYPE_DENSE_CAL, NULL);
+    return GTK_WIDGET(dcal);
+}
 
-        return GTK_WIDGET (dcal);
+GtkWidget*
+gnc_dense_cal_new_with_model(GncDenseCalModel *model)
+{
+    GncDenseCal *cal = GNC_DENSE_CAL(gnc_dense_cal_new());
+    gnc_dense_cal_set_model(cal, model);
+    return GTK_WIDGET(cal);
 }
 
 static void
-recompute_first_of_month_offset( GncDenseCal *dcal )
+recompute_first_of_month_offset(GncDenseCal *dcal)
 {
-        GDate *tmpDate;
+    GDate *tmpDate;
 
-        tmpDate = g_date_new_dmy( 1, dcal->month, dcal->year );
-        dcal->firstOfMonthOffset = g_date_get_weekday( tmpDate ) % 7;
-        g_date_free( tmpDate );
+    tmpDate = g_date_new_dmy(1, dcal->month, dcal->year);
+    dcal->firstOfMonthOffset = g_date_get_weekday(tmpDate) % 7;
+    g_date_free(tmpDate);
 }
 
 void
-gnc_dense_cal_set_month( GncDenseCal *dcal, GDateMonth mon )
+gnc_dense_cal_set_month(GncDenseCal *dcal, GDateMonth mon)
 {
-        dcal->month = mon;
-        recompute_first_of_month_offset( dcal );
-        recompute_extents( dcal );
-        if ( GTK_WIDGET_REALIZED( dcal ) ) {
-                recompute_x_y_scales( dcal );
-                gnc_dense_cal_draw_to_buffer( dcal );
-                gtk_widget_queue_draw( GTK_WIDGET(dcal) );
-        }
+    dcal->month = mon;
+    recompute_first_of_month_offset(dcal);
+    recompute_extents(dcal);
+    if (GTK_WIDGET_REALIZED(dcal))
+    {
+        recompute_x_y_scales(dcal);
+        gnc_dense_cal_draw_to_buffer(dcal);
+        gtk_widget_queue_draw(GTK_WIDGET(dcal->cal_drawing_area));
+    }
 }
 
 void
-gnc_dense_cal_set_year( GncDenseCal *dcal, guint year )
+gnc_dense_cal_set_year(GncDenseCal *dcal, guint year)
 {
-        dcal->year = year;
-        recompute_first_of_month_offset( dcal );
-        recompute_extents( dcal );
-        if ( GTK_WIDGET_REALIZED( dcal ) ) {
-                recompute_x_y_scales( dcal );
-                gnc_dense_cal_draw_to_buffer( dcal );
-                gtk_widget_queue_draw( GTK_WIDGET(dcal) );
-        }
+    dcal->year = year;
+    recompute_first_of_month_offset(dcal);
+    recompute_extents(dcal);
+    if (GTK_WIDGET_REALIZED(dcal))
+    {
+        recompute_x_y_scales(dcal);
+        gnc_dense_cal_draw_to_buffer(dcal);
+        gtk_widget_queue_draw(GTK_WIDGET(dcal->cal_drawing_area));
+    }
 }
 
 void
-gnc_dense_cal_set_num_months( GncDenseCal *dcal, guint num_months )
+gnc_dense_cal_set_num_months(GncDenseCal *dcal, guint num_months)
 {
-        dcal->numMonths = num_months;
-        recompute_extents( dcal );
-        recompute_mark_storage( dcal );
-        if ( GTK_WIDGET_REALIZED( dcal ) ) {
-                recompute_x_y_scales( dcal );
-                gnc_dense_cal_draw_to_buffer( dcal );
-                gtk_widget_queue_draw( GTK_WIDGET(dcal) );
+    {
+        GtkListStore *options = _gdc_get_view_options();
+        GtkTreeIter view_opts_iter, iter_closest_to_req;
+        int closest_index_distance = G_MAXINT;
+
+        // find closest list value to num_months
+        if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(options), &view_opts_iter))
+        {
+            g_critical("no view options?");
+            return;
         }
-}
+        
+        do
+        {
+            gint months_val, delta_months;
 
-void
-gnc_dense_cal_set_months_per_col( GncDenseCal *dcal, guint monthsPerCol )
-{
-        dcal->monthsPerCol = monthsPerCol;
+            gtk_tree_model_get(GTK_TREE_MODEL(options), &view_opts_iter, VIEW_OPTS_COLUMN_NUM_MONTHS, &months_val, -1);
+            delta_months = abs(months_val - num_months);
+            if (delta_months < closest_index_distance)
+            {
+                iter_closest_to_req = view_opts_iter;
+                closest_index_distance = delta_months;
+            }
+        } while (closest_index_distance != 0
+                 && (gtk_tree_model_iter_next(GTK_TREE_MODEL(options), &view_opts_iter)));
+
+        // set iter on view
+        g_signal_handlers_block_by_func(dcal->view_options, _gdc_view_option_changed, dcal);
+        gtk_combo_box_set_active_iter(GTK_COMBO_BOX(dcal->view_options), &iter_closest_to_req);
+        g_signal_handlers_unblock_by_func(dcal->view_options, _gdc_view_option_changed, dcal);
+    }
+
+    dcal->numMonths = num_months;
+    recompute_extents(dcal);
+    recompute_mark_storage(dcal);
+    if (GTK_WIDGET_REALIZED(dcal))
+    {
         recompute_x_y_scales(dcal);
+        gnc_dense_cal_draw_to_buffer(dcal);
+        gtk_widget_queue_draw(GTK_WIDGET(dcal->cal_drawing_area));
+    }
 }
 
 guint
-gnc_dense_cal_get_num_months( GncDenseCal *dcal )
+gnc_dense_cal_get_num_months(GncDenseCal *dcal)
 {
-        return dcal->numMonths;
+    return dcal->numMonths;
 }
 
+void
+gnc_dense_cal_set_months_per_col(GncDenseCal *dcal, guint monthsPerCol)
+{
+    dcal->monthsPerCol = monthsPerCol;
+    recompute_x_y_scales(dcal);
+}
+
 GDateMonth
-gnc_dense_cal_get_month( GncDenseCal *dcal )
+gnc_dense_cal_get_month(GncDenseCal *dcal)
 {
-        return dcal->month;
+    return dcal->month;
 }
 
 GDateYear
-gnc_dense_cal_get_year( GncDenseCal *dcal )
+gnc_dense_cal_get_year(GncDenseCal *dcal)
 {
-        return dcal->year;
+    return dcal->year;
 }
 
 static void
 gnc_dense_cal_dispose (GObject *object)
 {
-        int i;
-        GncDenseCal *dcal;
-        g_return_if_fail (object != NULL);
-        g_return_if_fail (GNC_IS_DENSE_CAL (object));
+    GncDenseCal *dcal;
+    g_return_if_fail(object != NULL);
+    g_return_if_fail(GNC_IS_DENSE_CAL(object));
 
-        dcal = GNC_DENSE_CAL(object);
+    dcal = GNC_DENSE_CAL(object);
 
-	if(dcal->disposed)
-		return;
+    if (dcal->disposed)
+        return;
+    dcal->disposed = TRUE;
 
-	dcal->disposed = TRUE;
+    if (GTK_WIDGET_REALIZED(dcal->transPopup))
+    {
+        gtk_widget_hide(GTK_WIDGET(dcal->transPopup));
+        gtk_widget_destroy(GTK_WIDGET(dcal->transPopup));
+        dcal->transPopup = NULL;
+    }
 
-        if ( GTK_WIDGET_REALIZED( dcal->transPopup ) ) {
-                gtk_widget_hide( GTK_WIDGET(dcal->transPopup) );
-                gtk_widget_destroy( GTK_WIDGET(dcal->transPopup) );
-                dcal->transPopup = NULL;
-        }
+    if (dcal->drawbuf)
+    {
+        g_object_unref(dcal->drawbuf);
+        dcal->drawbuf = NULL;
+    }
 
-        if ( dcal->drawbuf ) {
-                g_object_unref( dcal->drawbuf );
-		dcal->drawbuf = NULL;
-	}
+    /* FIXME: we have a bunch of cleanup to do, here. */
 
-        /* FIXME: we have a bunch of cleanup to do, here. */
-        /* monthLabelFont, dayLabelFont */
-        if ( dcal->monthLabelFont ) {
-		gdk_font_unref( dcal->monthLabelFont );
-		dcal->monthLabelFont = NULL;
-	}
-        if ( dcal->dayLabelFont ) {
-		gdk_font_unref( dcal->dayLabelFont );
-		dcal->dayLabelFont = NULL;
-	}
-        /* month labels */
-	if ( dcal->monthLabels[0] ) {
-        	for ( i=0; i < 12; i++ ) {
-                	g_object_unref( dcal->monthLabels[i] );
-                	dcal->monthLabels[i] = NULL;
-		}
-        }
-        /* mark data */
-        gdc_free_all_mark_data( dcal );
+    gdc_free_all_mark_data(dcal);
 
-        if (G_OBJECT_CLASS (parent_class)->dispose)
-                (* G_OBJECT_CLASS (parent_class)->dispose) (object);
+    g_object_unref(G_OBJECT(dcal->model));
+
+    if (G_OBJECT_CLASS (parent_class)->dispose)
+        G_OBJECT_CLASS(parent_class)->dispose(object);
 }
 
 static void
 gnc_dense_cal_finalize (GObject *object)
 {
-        GncDenseCal *dcal;
-        g_return_if_fail (object != NULL);
-        g_return_if_fail (GNC_IS_DENSE_CAL (object));
+    GncDenseCal *dcal;
+    g_return_if_fail (object != NULL);
+    g_return_if_fail (GNC_IS_DENSE_CAL (object));
 
-        dcal = GNC_DENSE_CAL(object);
+    dcal = GNC_DENSE_CAL(object);
 
-        if (G_OBJECT_CLASS (parent_class)->finalize)
-                (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+    if (G_OBJECT_CLASS (parent_class)->finalize)
+        G_OBJECT_CLASS(parent_class)->finalize(object);
 }
 
 static void
-gnc_dense_cal_realize (GtkWidget *widget)
+gnc_dense_cal_configure(GtkWidget *widget,
+                        GdkEventConfigure *event,
+                        gpointer user_data)
 {
-        GncDenseCal *dcal;
-        GdkWindowAttr attributes;
-        gint attributes_mask;
+    GncDenseCal *dcal = GNC_DENSE_CAL(user_data);
+    recompute_x_y_scales(dcal);
+    gdc_reconfig(dcal);
+    gtk_widget_queue_draw_area(widget,
+                               event->x, event->y,
+                               event->width, event->height);
+}
 
-        g_return_if_fail (widget != NULL);
-        g_return_if_fail (GNC_IS_DENSE_CAL (widget));
+static void
+gnc_dense_cal_realize (GtkWidget *widget, gpointer user_data)
+{
+    GncDenseCal *dcal;
 
-        GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
-        dcal = GNC_DENSE_CAL (widget);
+    g_return_if_fail(widget != NULL);
+    g_return_if_fail(GNC_IS_DENSE_CAL (user_data));
+    dcal = GNC_DENSE_CAL(user_data);
 
-        attributes.x = widget->allocation.x;
-        attributes.y = widget->allocation.y;
-        attributes.width = widget->allocation.width;
-        attributes.height = widget->allocation.height;
-        attributes.wclass = GDK_INPUT_OUTPUT;
-        attributes.window_type = GDK_WINDOW_CHILD;
-        attributes.event_mask =
-                gtk_widget_get_events (widget)
-                | GDK_EXPOSURE_MASK
-                | GDK_BUTTON_PRESS_MASK
-                | GDK_BUTTON_RELEASE_MASK
-                | GDK_POINTER_MOTION_MASK
-                | GDK_POINTER_MOTION_HINT_MASK;
-        attributes.visual = gtk_widget_get_visual (widget);
-        attributes.colormap = gtk_widget_get_colormap (widget);
+    recompute_x_y_scales(dcal);
+    gdc_reconfig(dcal);
 
-        attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-
-        widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask);
-
-        widget->style = gtk_style_attach (widget->style, widget->window);
-
-        gdk_window_set_user_data (widget->window, widget);
-
-        gdc_reconfig( dcal );
-
-        gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE);
+    gtk_style_set_background(widget->style, widget->window, GTK_STATE_ACTIVE);
 }
 
-static
-void
-gdc_reconfig( GncDenseCal *dcal )
+static void
+gdc_reconfig(GncDenseCal *dcal)
 {
-        GtkWidget *widget = GTK_WIDGET(dcal);
-
-        if ( dcal->drawbuf ) {
-                g_object_unref( dcal->drawbuf );
-        }
-        dcal->drawbuf = gdk_pixmap_new( widget->window,
-                                        widget->allocation.width,
-                                        widget->allocation.height,
-                                        -1 );
-        gnc_dense_cal_draw_to_buffer( dcal );
+    if (dcal->drawbuf)
+        g_object_unref(dcal->drawbuf);
+    dcal->drawbuf = gdk_pixmap_new(GTK_WIDGET(dcal->cal_drawing_area)->window,
+                                   GTK_WIDGET(dcal->cal_drawing_area)->allocation.width,
+                                   GTK_WIDGET(dcal->cal_drawing_area)->allocation.height,
+                                   -1);
+    gnc_dense_cal_draw_to_buffer(dcal);
 }
 
 static void 
-gnc_dense_cal_size_request( GtkWidget      *widget,
-                            GtkRequisition *requisition )
+_gdc_compute_min_size(GncDenseCal *dcal, guint *min_width, guint *min_height)
 {
-        GncDenseCal *dcal = GNC_DENSE_CAL(widget);
-        if ( !dcal->initialized ) {
-                PERR( "Uninitialized size request\n" );
-                requisition->width  = DENSE_CAL_DEFAULT_WIDTH;
-                requisition->height = DENSE_CAL_DEFAULT_HEIGHT;
-                return;
-        }
-        requisition->width =
-                (dcal->leftPadding * 2)
-                + (num_cols(dcal) * (col_width_at(dcal, dcal->min_x_scale)
-                                     + dcal->label_width))
-                + ((num_cols(dcal)-1) * COL_BORDER_SIZE);
-        requisition->height =
-                (dcal->topPadding * 2)
-                + MINOR_BORDER_SIZE
-                + dcal->dayLabelHeight
-                + (num_weeks_per_col(dcal)
-                   * week_height_at(dcal, dcal->min_y_scale));
+    if (min_width != NULL)
+    {
+        *min_width =
+            (dcal->leftPadding * 2)
+            + (num_cols(dcal)* (col_width_at(dcal, dcal->min_x_scale)
+                                + dcal->label_width))
+            + ((num_cols(dcal)-1) * COL_BORDER_SIZE);
+    }
+
+    if (min_height != NULL)
+    {
+        *min_height=
+            (dcal->topPadding * 2)
+            + MINOR_BORDER_SIZE
+            + dcal->dayLabelHeight
+            + (num_weeks_per_col(dcal)
+               * week_height_at(dcal, dcal->min_y_scale));
+    }
 }
 
 static void
-recompute_x_y_scales( GncDenseCal *dcal )
+recompute_x_y_scales(GncDenseCal *dcal)
 {
-        GtkWidget *widget;
-        int denom;
-        int width, height;
+    GtkWidget *widget;
+    int denom;
+    int width, height;
 
-        widget = GTK_WIDGET(dcal);
+    widget = GTK_WIDGET(dcal);
 
-        width = DENSE_CAL_DEFAULT_WIDTH;
-        height = DENSE_CAL_DEFAULT_HEIGHT;
-        if ( dcal->initialized ) {
-                width  = widget->allocation.width;
-                height = widget->allocation.height;
-        }
+    width = DENSE_CAL_DEFAULT_WIDTH;
+    height = DENSE_CAL_DEFAULT_HEIGHT;
+    if (dcal->initialized)
+    {
+        width  = GTK_WIDGET(dcal->cal_drawing_area)->allocation.width;
+        height = GTK_WIDGET(dcal->cal_drawing_area)->allocation.height;
+    }
 
-        /* FIXME: there's something slightly wrong in the x_scale computation that
-         * lets us draw larger than our area. */
-        denom = 7 * num_cols(dcal);
-        g_assert( denom != 0 );
-        dcal->x_scale = (gint)((width
-                                - (dcal->leftPadding * 2)
-                                - (num_cols(dcal) * ( (8 * MINOR_BORDER_SIZE)
-                                                      + dcal->label_width ))
-                                - ((num_cols(dcal)-1) * COL_BORDER_SIZE))
-                               / denom);
-        dcal->x_scale = MAX( dcal->x_scale, dcal->min_x_scale );
+    /* FIXME: there's something slightly wrong in the x_scale computation that
+     * lets us draw larger than our area. */
+    denom = 7 * num_cols(dcal);
+    g_assert(denom != 0);
+    dcal->x_scale = (gint)((width
+                            - (dcal->leftPadding * 2)
+                            - (num_cols(dcal) * ((8 * MINOR_BORDER_SIZE)
+                                                 + dcal->label_width))
+                            - ((num_cols(dcal)-1) * COL_BORDER_SIZE))
+                           / denom);
+    dcal->x_scale = MAX(dcal->x_scale, dcal->min_x_scale);
 
-        denom = num_weeks_per_col(dcal);
-        g_assert( denom != 0 );
-        dcal->y_scale = (gint)((height
-                                - (dcal->topPadding * 2)
-                                - MINOR_BORDER_SIZE
-                                - dcal->dayLabelHeight
-                                - (num_weeks_per_col(dcal)-1
-                                   * MINOR_BORDER_SIZE))
-                               / denom );
-        dcal->y_scale = MAX( dcal->y_scale, dcal->min_y_scale );
-}
+    denom = num_weeks_per_col(dcal);
+    g_assert(denom != 0);
+    dcal->y_scale = (gint)((height
+                            - (dcal->topPadding * 2)
+                            - MINOR_BORDER_SIZE
+                            - dcal->dayLabelHeight
+                            - (num_weeks_per_col(dcal)-1
+                               * MINOR_BORDER_SIZE))
+                           / denom);
+    dcal->y_scale = MAX(dcal->y_scale, dcal->min_y_scale);
 
-static void
-gdc_free_all_mark_data( GncDenseCal *dcal )
-{
-        int i;
-        GList *l;
-        for ( i=0; i < dcal->numMarks; i++ ) {
-                /* Each of these just contains an elt of dcal->markData,
-                 * which we're about to free, below... */
-                g_list_free( dcal->marks[i] );
-        }
-        g_free( dcal->marks );
-        dcal->marks = NULL;
-        /* Remove the old mark data. */
-        for ( l = dcal->markData; l; l = l->next ) {
-                g_list_free( ((gdc_mark_data*)l->data)->ourMarks );
-                g_free( (gdc_mark_data*)l->data );
-        }
-        g_list_free( dcal->markData );
-        dcal->markData = NULL;
+    _gdc_set_cal_min_size_req(dcal);
 }
 
 static void
-recompute_mark_storage( GncDenseCal *dcal )
+gdc_free_all_mark_data(GncDenseCal *dcal)
 {
-        if ( dcal->marks == NULL ) {
-                goto createNew;
-        }
-
-        gdc_free_all_mark_data( dcal );
- createNew:
-        dcal->numMarks = num_weeks(dcal) * 7;
-        dcal->marks = g_new0( GList*, dcal->numMarks );
-        g_signal_emit_by_name( dcal, MARKS_LOST_SIGNAL_NAME );
+    int i;
+    GList *l;
+    for (i=0; i < dcal->numMarks; i++)
+    {
+        /* Each of these just contains an elt of dcal->markData,
+         * which we're about to free, below... */
+        g_list_free(dcal->marks[i]);
+    }
+    g_free(dcal->marks);
+    dcal->marks = NULL;
+    /* Remove the old mark data. */
+    for (l = dcal->markData; l; l = l->next)
+    {
+        g_list_free(((gdc_mark_data*)l->data)->ourMarks);
+        g_free((gdc_mark_data*)l->data);
+    }
+    g_list_free(dcal->markData);
+    dcal->markData = NULL;
 }
 
 static void
-recompute_extents( GncDenseCal *dcal )
+recompute_mark_storage(GncDenseCal *dcal)
 {
-        GDate date;
-        gint start_week, end_week;
+    if (dcal->marks == NULL)
+        goto createNew;
+    gdc_free_all_mark_data(dcal);
 
-        g_date_clear( &date, 1 );
-        g_date_set_dmy( &date, 1, dcal->month, dcal->year );
-        start_week = g_date_get_sunday_week_of_year(&date);
-        g_date_add_months( &date, dcal->numMonths );
-        end_week = g_date_get_sunday_week_of_year(&date);
-        if ( g_date_get_year(&date) != dcal->year ) {
-                end_week += g_date_get_sunday_weeks_in_year( dcal->year );
-        }
-        dcal->num_weeks = end_week - start_week + 1;
+createNew:
+    dcal->numMarks = num_weeks(dcal) * 7;
+    dcal->marks = g_new0(GList*, dcal->numMarks);
+    if (dcal->model)
+        gdc_add_markings(dcal);
 }
 
 static void
-gnc_dense_cal_size_allocate( GtkWidget     *widget,
-                             GtkAllocation *allocation )
+recompute_extents(GncDenseCal *dcal)
 {
-        GncDenseCal *dcal;
+    GDate date;
+    gint start_week, end_week;
 
-        g_return_if_fail (widget != NULL);
-        g_return_if_fail (GNC_IS_DENSE_CAL (widget));
-        g_return_if_fail (allocation != NULL);
-
-        dcal = GNC_DENSE_CAL(widget);
-
-        widget->allocation = *allocation;
-
-        if (GTK_WIDGET_REALIZED (widget)) {
-                gdk_window_move_resize (widget->window,
-                                        allocation->x, allocation->y,
-                                        allocation->width,
-                                        allocation->height);
-
-                /* We want to know how many px we can increase every day
-                 * [width] or week [height]. */
-                recompute_x_y_scales( dcal );
-
-                gdc_reconfig( dcal );
-        }
+    g_date_clear(&date, 1);
+    g_date_set_dmy(&date, 1, dcal->month, dcal->year);
+    start_week = g_date_get_sunday_week_of_year(&date);
+    g_date_add_months(&date, dcal->numMonths);
+    end_week = g_date_get_sunday_week_of_year(&date);
+    if (g_date_get_year(&date) != dcal->year)
+        end_week += g_date_get_sunday_weeks_in_year(dcal->year);
+    dcal->num_weeks = end_week - start_week + 1;
 }
 
 static void
-free_rect( gpointer data, gpointer ud )
+free_rect(gpointer data, gpointer ud)
 {
-        g_free( (GdkRectangle*)data );
+    g_free((GdkRectangle*)data);
 }
 
-static gint
-gnc_dense_cal_expose( GtkWidget *widget,
-                      GdkEventExpose *event )
+static gboolean
+gnc_dense_cal_expose(GtkWidget *widget,
+                     GdkEventExpose *event,
+                     gpointer user_data)
 {
-        GncDenseCal *dcal;
-        GdkGC *gc;
+    GncDenseCal *dcal;
+    GdkGC *gc;
 
-        g_return_val_if_fail (widget != NULL, FALSE);
-        g_return_val_if_fail (GNC_IS_DENSE_CAL (widget), FALSE);
-        g_return_val_if_fail (event != NULL, FALSE);
+    g_return_val_if_fail(widget != NULL, FALSE);
+    g_return_val_if_fail(GNC_IS_DENSE_CAL(user_data), FALSE);
+    g_return_val_if_fail(event != NULL, FALSE);
 
-        if (event->count > 0)
-                return FALSE;
+    if (event->count > 0)
+        return FALSE;
 
-        dcal = GNC_DENSE_CAL (widget);
-        gc = widget->style->fg_gc[ GTK_WIDGET_STATE(widget) ];
-        gdk_draw_drawable(GDK_DRAWABLE(widget->window),
-                          gc,
-                          GDK_DRAWABLE(dcal->drawbuf),
-                          0, 0, 0, 0,
-                          widget->allocation.width,
-                          widget->allocation.height);
+    dcal = GNC_DENSE_CAL(user_data);
+    gc = widget->style->fg_gc[GTK_WIDGET_STATE(widget)];
+    gdk_draw_drawable(GDK_DRAWABLE(GTK_WIDGET(dcal->cal_drawing_area)->window),
+                      gc, GDK_DRAWABLE(dcal->drawbuf),
+                      0, 0, 0, 0, -1, -1);
 
-        return FALSE;
+    return TRUE;
 }
 
 static void
-gnc_dense_cal_draw_to_buffer( GncDenseCal *dcal )
+gnc_dense_cal_draw_to_buffer(GncDenseCal *dcal)
 {
-        GtkWidget *widget;
-        gint i;
-        int maxWidth;
+    GtkWidget *widget;
+    gint i;
+    int maxWidth;
+    PangoLayout *layout;
 
-        widget = &dcal->widget;
+    widget = GTK_WIDGET(dcal);
 
-        if ( ! dcal->drawbuf )
-                return;
+    if (!dcal->drawbuf)
+        return;
 
-        gdk_draw_rectangle (dcal->drawbuf,
-                            widget->style->white_gc,
-                            TRUE,
-                            0, 0,
-                            widget->allocation.width,
-                            widget->allocation.height);
+    layout = gtk_widget_create_pango_layout(GTK_WIDGET(dcal), NULL);
 
+    gdk_draw_rectangle(dcal->drawbuf,
+                       widget->style->white_gc,
+                       TRUE,
+                       0, 0,
+                       GTK_WIDGET(dcal->cal_drawing_area)->allocation.width,
+                       GTK_WIDGET(dcal->cal_drawing_area)->allocation.height);
 
-        if ( dcal->needInitMonthLabels ) {
-                /* Create the month labels */
-                gint i;
-                GdkPixmap *tmpPix;
-                GdkImage *tmpImg;
-                GdkGC *gc;
-                GdkColor black;
+    /* Fill in alternating month colors. */
+    {
+        gint i;
+        GdkGC *gc;
+        GdkRectangle *rect;
+        GList *mcList, *mcListIter;
 
-                gc = widget->style->fg_gc[widget->state];
-                tmpPix = gdk_pixmap_new( NULL,
-                                         dcal->label_height,
-                                         dcal->label_width,
-                                         gdk_visual_get_system()->depth );
-                black.pixel = gdk_rgb_xpixel_from_rgb(0);
-                for ( i=0; i<12; i++ ) {
-                        guint x,y;
-                        /* these are going to be rotated, so transpose width
-                         * and height */
-                        dcal->monthLabels[i] =
-                                gdk_pixmap_new( widget->window,
-                                                dcal->label_width,
-                                                dcal->label_height, -1 );
-                        gdk_draw_rectangle( dcal->monthLabels[i],
-                                            widget->style->white_gc,
-                                            TRUE, 0, 0,
-                                            dcal->label_width,
-                                            dcal->label_height );
+        gc = gdk_gc_new(GTK_WIDGET(dcal)->window);
+        gdk_gc_copy(gc, widget->style->fg_gc[GTK_WIDGET_STATE(widget)]);
 
-                        gdk_draw_rectangle( tmpPix,
-                                            widget->style->white_gc,
-                                            TRUE, 0, 0,
-                                            dcal->label_height,
-                                            dcal->label_width );
-
-                        gdk_draw_string( tmpPix, dcal->monthLabelFont, gc,
-                                         dcal->label_lbearing,
-                                         dcal->label_ascent,
-                                         month_name(i) );
-
-                        tmpImg = gdk_image_get( tmpPix, 0, 0,
-                                                dcal->label_height,
-                                                dcal->label_width );
-
-                        /* now, (transpose the pixel matrix)==(do a 90-degree
-                         * counter-clockwise rotation) */
-                        for ( x=0; x < dcal->label_height; x++ ) {
-                                for ( y=0; y < dcal->label_width; y++ ) {
-                                        if ( gdk_image_get_pixel( tmpImg, x, y )
-                                             != black.pixel ) {
-                                                continue;
-                                        }
-                                        gdk_draw_point( dcal->monthLabels[i],
-                                                        gc, y,
-                                                        dcal->label_height - x );
-                                }
-                        }
-                        gdk_image_destroy( tmpImg );
-                }
-                dcal->needInitMonthLabels = FALSE;
+        /* reset all of the month position offsets. */
+        for (i=0; i<12; i++)
+        {
+            dcal->monthPositions[i].x = dcal->monthPositions[i].y = -1;
         }
 
-        /* Fill in alternating month colors. */
+        /* Paint the weeks for the upcoming N months. */
+        for (i=0; i < dcal->numMonths; i++)
         {
-                gint i;
-                GdkGC *gc;
-                GdkRectangle *rect;
-                GList *mcList, *mcListIter;
+            gdk_gc_set_foreground(gc, &dcal->weekColors[ i % 2 ]);
 
-                gc = gdk_gc_new( dcal->widget.window );
-                gdk_gc_copy( gc, widget->style->fg_gc[GTK_WIDGET_STATE(widget)] );
+            mcList = NULL;
+            month_coords(dcal, i, &mcList);
+            dcal->monthPositions[i].x
+                = floor(i/dcal->monthsPerCol)
+                * (col_width(dcal) + COL_BORDER_SIZE);
+            dcal->monthPositions[i].y = ((GdkRectangle*)mcList->next->data)->y;
+            for (mcListIter = mcList; mcListIter != NULL; mcListIter = mcListIter->next)
+            {
+                rect = (GdkRectangle*)mcListIter->data;
+                gdk_draw_rectangle(dcal->drawbuf, gc,
+                                   TRUE, rect->x, rect->y,
+                                   rect->width - 2, rect->height);
+            }
+            g_list_foreach(mcList, free_rect, NULL);
+            g_list_free(mcList);
+        }
 
-                /* reset all of the month position offsets. */
-                for ( i=0; i<12; i++ ) {
-                        dcal->monthPositions[i].x = dcal->monthPositions[i].y = -1;
-                }
+        gdk_gc_destroy(gc);
+    }
 
-                /* Paint the weeks for the upcoming N months. */
-                for ( i=0; i < dcal->numMonths; i++ ) {
-                        gdk_gc_set_foreground( gc, &dcal->weekColors[ i % 2 ] );
+    /* Hilight the marked days. */
+    {
+        int i;
+        int x1, x2, y1, y2;
+        GdkColor markColor;
+        GdkGCValues current_values;
 
-                        mcList = NULL;
-                        month_coords( dcal, i, &mcList );
-                        dcal->monthPositions[i].x = 
-                                floor(i/dcal->monthsPerCol)
-                                * (col_width(dcal) + COL_BORDER_SIZE);
-                        dcal->monthPositions[i].y = ((GdkRectangle*)mcList->next->data)->y;
-                        for ( mcListIter = mcList; mcListIter;
-                              mcListIter = mcListIter->next ) {
-                                rect = (GdkRectangle*)mcListIter->data;
-                                gdk_draw_rectangle( dcal->drawbuf, gc,
-                                                    TRUE, rect->x, rect->y,
-                                                    rect->width - 2, rect->height );
-                        }
-                        g_list_foreach( mcList, free_rect, NULL );
-                        g_list_free( mcList );
-                }
+        gdk_gc_get_values(widget->style->fg_gc[widget->state], &current_values);
 
-                gdk_gc_destroy( gc );
-        }
+        gdk_color_parse(MARK_COLOR, &markColor);
+        gdk_colormap_alloc_color(gdk_colormap_get_system(), &markColor, TRUE, TRUE);
 
-        /* Hilight the marked days. */
+        gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &markColor);
+        for (i=0; i<dcal->numMarks; i++)
         {
-                int i;
-                int x1, x2, y1, y2;
-                GdkColor markColor, black;
-                GList *l;
-                gdc_mark_data *gdcmd;
+            if (dcal->marks[i] != NULL)
+            {
+                int w,h, x_offset, y_offset, circle_delta;
 
-                gdk_color_parse( MARK_COLOR, &markColor );
-                gdk_colormap_alloc_color( gdk_colormap_get_system(), &markColor, TRUE, TRUE );
-                gdk_color_black( gdk_colormap_get_system(), &black );
+                doc_coords(dcal, i, &x1, &y1, &x2, &y2);
+                w = x2 - x1;
+                h = y2 - y1;
 
-                /* FIXME: use a different GC for this */
-                gdk_gc_set_foreground( widget->style->fg_gc[widget->state], &markColor );
-                for ( i=0; i<dcal->numMarks; i++ ) {
-                        for ( l = dcal->marks[i]; l ; l = l->next ) {
-                                gdcmd = (gdc_mark_data*)l->data;
-                                doc_coords( dcal, i, &x1, &y1, &x2, &y2 );
-                                gdk_draw_rectangle( dcal->drawbuf,
-                                                    widget->style->fg_gc[widget->state],
-                                                    TRUE, x1, y1, (x2-x1), (y2-y1) );
-                        }
+                x_offset = x1;
+                y_offset = y1;
+
+                circle_delta = ABS(w-h) / 2;
+                if (w < h)
+                {
+                    y_offset += circle_delta;
                 }
-                gdk_gc_set_foreground( widget->style->fg_gc[widget->state], &black );
+                else
+                {
+                    x_offset += circle_delta;
+                }
+
+                gdk_draw_arc(dcal->drawbuf,
+                             widget->style->fg_gc[widget->state],
+                             TRUE,
+                             x_offset, y_offset, MIN(w,h), MIN(w,h),
+                             0 * 64,
+                             360 * 64);
+            }
         }
 
-        for ( i=0; i < num_cols(dcal); i++ ) {
-                gint x, y, w, h;
-                gint j;
+        // reset to the previous foreground color.
+        gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &current_values.foreground);
+    }
 
-                dcal->dayLabelHeight = gdk_string_height( dcal->monthLabelFont, "S" );
+    for (i=0; i < num_cols(dcal); i++)
+    {
+        gint x, y, w, h;
+        gint j;
+          
+        pango_layout_set_text(layout, "S", -1);
+        pango_layout_get_pixel_size(layout, NULL, &dcal->dayLabelHeight);
 
-                x = dcal->leftPadding
-                        + ( i * (col_width(dcal)+COL_BORDER_SIZE) )
-                        + dcal->label_width;
-                y = dcal->topPadding + dcal->dayLabelHeight;
-                w = col_width(dcal) - COL_BORDER_SIZE - dcal->label_width - 2;
-                h = col_height(dcal);
+        x = dcal->leftPadding
+            + (i * (col_width(dcal)+COL_BORDER_SIZE))
+            + dcal->label_width;
+        y = dcal->topPadding + dcal->dayLabelHeight;
+        w = col_width(dcal) - COL_BORDER_SIZE - dcal->label_width - 2;
+        h = col_height(dcal);
 
-                /* draw the outside border [inside the month labels] */
-                gdk_draw_rectangle( dcal->drawbuf,
-                                    widget->style->fg_gc[widget->state],
-                                    FALSE, x, y, w, h );
-                /* draw the week seperations */
-                {
-                        for ( j=0; j < num_weeks_per_col(dcal); j++ ) {
-                                gint wy = y + (j * week_height(dcal));
-                                gdk_draw_line( dcal->drawbuf,
-                                               widget->style->fg_gc[widget->state],
-                                               x,     wy,
-                                               x + w, wy );
-                        }
-                }
-                /* draw the day seperations */
-                {
-                        for ( j=1; j<7; j++ ) {
-                                gint dx = x + (j * day_width(dcal));
-                                gdk_draw_line( dcal->drawbuf,
-                                               widget->style->fg_gc[widget->state],
-                                               dx, y,
-                                               dx, y + col_height(dcal) );
-                        }
-                }
-                /* draw the day labels */
-                maxWidth = gdk_string_width( dcal->monthLabelFont, "88" );
-                if ( dcal->x_scale > maxWidth ) {
-                        for ( j=0; j<7; j++ ) {
-                                gint dx = x
-                                        + (j * day_width(dcal))
-                                        + (day_width(dcal)/2)
-                                        - ( gdk_string_width(dcal->monthLabelFont,
-                                                             day_label(j)) / 2 );
-                                gint dy = y - 2;
-                                gdk_draw_string( dcal->drawbuf,
-                                                 dcal->monthLabelFont,
-                                                 widget->style->fg_gc[widget->state],
-                                                 dx, dy, day_label(j) );
-                        }
-                }
+        /* draw the outside border [inside the month labels] */
+        gdk_draw_rectangle(dcal->drawbuf,
+                           widget->style->fg_gc[widget->state],
+                           FALSE, x, y, w, h);
+        /* draw the week seperations */
+        for (j=0; j < num_weeks_per_col(dcal); j++)
+        {
+            gint wy = y + (j * week_height(dcal));
+            gdk_draw_line(dcal->drawbuf,
+                          widget->style->fg_gc[widget->state],
+                          x,     wy,
+                          x + w, wy);
         }
 
-        /* Try some pixmap copying for the month labels. */
+        /* draw the day seperations */
+        for (j=1; j<7; j++)
         {
-                gint i, idx;
+            gint dx = x + (j * day_width(dcal));
+            gdk_draw_line(dcal->drawbuf,
+                          widget->style->fg_gc[widget->state],
+                          dx, y,
+                          dx, y + col_height(dcal));
+        }
 
-                for ( i=0; i<12; i++ ) {
-                        if ( dcal->monthPositions[i].x == -1 ) {
-                                break;
-                        }
-                        idx = (dcal->month - 1 + i) % 12;
-                        gdk_draw_drawable(GDK_DRAWABLE(dcal->drawbuf),
-                                          widget->style->fg_gc[widget->state],
-                                          GDK_DRAWABLE(dcal->monthLabels[idx]),
-                                          0, 0,
-                                          dcal->leftPadding
-                                          + dcal->monthPositions[i].x,
-                                          dcal->monthPositions[i].y,
-                                          dcal->label_width, dcal->label_height);
-                }
+        /* draw the day labels */
+        pango_layout_set_text(layout, "88", -1);
+        pango_layout_get_pixel_size(layout, &maxWidth, NULL);
+          
+        if (dcal->x_scale > maxWidth)
+        {
+            for (j=0; j<7; j++)
+            {
+                int day_label_width;
+                gint label_x_offset, label_y_offset;
+
+                pango_layout_set_text(layout, day_label(j), -1);
+                pango_layout_get_pixel_size(layout, &day_label_width, NULL);
+                label_x_offset = x
+                    + (j * day_width(dcal))
+                    + (day_width(dcal)/2)
+                    - (day_label_width / 2);
+                label_y_offset = y - dcal->dayLabelHeight;
+                pango_layout_set_text(layout, day_label(j), -1);
+                gdk_draw_layout(GDK_DRAWABLE(dcal->drawbuf), widget->style->fg_gc[widget->state],
+                                label_x_offset, label_y_offset,
+                                layout);
+
+            }
         }
+    }
 
-        /* Try the per-day strings [dates] */
+    /* Month labels. */
+    {
+        gint i;
+        PangoMatrix matrix = PANGO_MATRIX_INIT;
+
+        pango_matrix_rotate(&matrix, 90.);
+        pango_context_set_matrix(gtk_widget_get_pango_context(GTK_WIDGET(dcal)), &matrix);
+
+        for (i=0; i<12; i++)
         {
-                GDate d, eoc;
-                gint doc;
-                gchar dayNumBuf[3];
-                gint numW, numH;
-                gint x1, y1, x2, y2, w, h;
+            guint idx;
 
-                g_date_set_dmy( &d, 1, dcal->month, dcal->year );
-                eoc = d;
-                g_date_add_months( &eoc, dcal->numMonths );
-                for ( doc = 0; g_date_get_julian(&d) < g_date_get_julian(&eoc);
-                      g_date_add_days( &d, 1 ), doc++ ) {
-                        doc_coords( dcal, doc, &x1, &y1, &x2, &y2 );
-                        memset( dayNumBuf, 0, 3 );
-                        snprintf( dayNumBuf, 3, "%d", g_date_get_day( &d ) );
-                        numW = gdk_string_width( dcal->dayLabelFont, dayNumBuf );
-                        numH = gdk_string_height( dcal->dayLabelFont, dayNumBuf );
-                        w = (x2 - x1)+1;
-                        h = (y2 - y1)+1;
-                        gdk_draw_string( dcal->drawbuf,
-                                         dcal->dayLabelFont,
-                                         widget->style->fg_gc[widget->state],
-                                         x1 + (w/2) - (numW/2),
-                                         y1 + (h/2) + (numH/2),
-                                         dayNumBuf );
-                }
+            if (dcal->monthPositions[i].x == -1)
+                break;
+            idx = (dcal->month - 1 + i) % 12;
+            pango_layout_set_text(layout, month_name(idx), -1);
+            gdk_draw_layout(GDK_DRAWABLE(dcal->drawbuf),
+                            widget->style->fg_gc[widget->state],
+                            dcal->leftPadding + dcal->monthPositions[i].x,
+                            dcal->monthPositions[i].y,
+                            layout);
         }
 
+        // reset rotation
+        pango_matrix_rotate(&matrix, -90.);
+        pango_context_set_matrix(gtk_widget_get_pango_context(GTK_WIDGET(dcal)), &matrix);
+    }
+
+    /* Try the per-day strings [dates] */
+    {
+        GDate d, eoc;
+        gint doc;
+        gchar dayNumBuf[3];
+        gint numW, numH;
+        gint x1, y1, x2, y2, w, h;
+
+        g_date_set_dmy(&d, 1, dcal->month, dcal->year);
+        eoc = d;
+        g_date_add_months(&eoc, dcal->numMonths);
+        for (doc = 0; g_date_get_julian(&d) < g_date_get_julian(&eoc); g_date_add_days(&d, 1), doc++)
         {
-                GdkRectangle update_rect;
-                update_rect.x = 0;
-                update_rect.y = 0;
-                update_rect.width  = widget->allocation.width;
-                update_rect.height = widget->allocation.height;
-                gtk_widget_draw( GTK_WIDGET(dcal),
-                                 &update_rect );
+            doc_coords(dcal, doc, &x1, &y1, &x2, &y2);
+            memset(dayNumBuf, 0, 3);
+            snprintf(dayNumBuf, 3, "%d", g_date_get_day(&d));
+            pango_layout_set_text(layout, dayNumBuf, -1);
+            pango_layout_get_pixel_size(layout, &numW, &numH);
+            w = (x2 - x1)+1;
+            h = (y2 - y1)+1;
+            gdk_draw_layout(GDK_DRAWABLE(dcal->drawbuf),
+                            widget->style->fg_gc[widget->state],
+                            x1 + (w/2) - (numW/2),
+                            y1 + (h/2) - (numH/2),
+                            layout);
         }
+    }
 
+    gtk_widget_queue_draw_area(GTK_WIDGET(dcal), 
+                               widget->allocation.x,
+                               widget->allocation.y,
+                               widget->allocation.width,
+                               widget->allocation.height);
 }
 
 static void
-populate_hover_window( GncDenseCal *dcal, gint doc )
+populate_hover_window(GncDenseCal *dcal, gint doc)
 {
-        GtkWidget *w;
-        GDate *date;
-        static const int MAX_STRFTIME_BUF_LEN = 64;
-        gchar strftimeBuf[MAX_STRFTIME_BUF_LEN];
+    GtkWidget *w;
+    GDate *date;
+    static const int MAX_STRFTIME_BUF_LEN = 64;
+    gchar strftimeBuf[MAX_STRFTIME_BUF_LEN];
 
-        if ( doc >= 0 ) {
-                GObject *o;
-                GtkCList *cl;
-                GList *l;
-                gchar *rowText[2];
-                gint row = 0;
-                gdc_mark_data *gdcmd;
+    if (doc >= 0)
+    {
+        GObject *o;
+        GtkListStore *model;
+        GList *l;
 
-                w = GTK_WIDGET( g_object_get_data( G_OBJECT(dcal->transPopup),
-						   "dateLabel" ) );
-                date = g_date_new_dmy( 1, dcal->month, dcal->year );
-                g_date_add_days( date, doc );
-		/* Note: the ISO date format (%F or equivalently
-		 * %Y-%m-%d) is not a good idea here since many
-		 * locales will want to use a very different date
-		 * format. Please leave the specification of the date
-		 * format up to the locale and use %x here.  */
-                g_date_strftime( strftimeBuf, MAX_STRFTIME_BUF_LEN-1, "%x", date );
-                gtk_label_set_text( GTK_LABEL(w), strftimeBuf );
+        w = GTK_WIDGET(g_object_get_data(G_OBJECT(dcal->transPopup), "dateLabel"));
+        date = g_date_new_dmy(1, dcal->month, dcal->year);
+        g_date_add_days(date, doc);
+        /* Note: the ISO date format (%F or equivalently
+         * %Y-%m-%d) is not a good idea here since many
+         * locales will want to use a very different date
+         * format. Please leave the specification of the date
+         * format up to the locale and use %x here.  */
+        g_date_strftime(strftimeBuf, MAX_STRFTIME_BUF_LEN-1, "%x", date);
+        gtk_label_set_text(GTK_LABEL(w), strftimeBuf);
 
-                o = G_OBJECT(dcal->transPopup);
-                cl = GTK_CLIST( g_object_get_data(o, "clist" ) );
-                gtk_clist_clear( cl );
-                for ( l = dcal->marks[doc]; l; l = l->next ) {
-                        gdcmd = (gdc_mark_data*)l->data;
-                        rowText[0] = ( gdcmd->name ? gdcmd->name : _("(unnamed)") );
-                        rowText[1] = gdcmd->info;
-                        gtk_clist_insert( cl, row++, rowText );
-                }
+        o = G_OBJECT(dcal->transPopup);
+        model = GTK_LIST_STORE(g_object_get_data(o, "model"));
+        gtk_list_store_clear(model);
+        for (l = dcal->marks[doc]; l; l = l->next)
+        {
+            GtkTreeIter iter;
+            gdc_mark_data *gdcmd;
 
-                // FIXME: free 'date'?
+            gdcmd = (gdc_mark_data*)l->data;
+            gtk_list_store_insert(model, &iter, INT_MAX);
+            gtk_list_store_set(model, &iter, 0, (gdcmd->name ? gdcmd->name : _("(unnamed)")), 1, gdcmd->info, -1);
         }
+
+        g_date_free(date);
+    }
 }
 
 static gint
-gnc_dense_cal_button_press( GtkWidget *widget,
-                            GdkEventButton *evt )
+gnc_dense_cal_button_press(GtkWidget *widget,
+                           GdkEventButton *evt)
 {
-        gint doc;
-        GncDenseCal *dcal = GNC_DENSE_CAL(widget);
+    gint doc;
+    GncDenseCal *dcal = GNC_DENSE_CAL(widget);
 
-        doc = wheres_this( dcal, evt->x, evt->y );
-        dcal->showPopup = ~(dcal->showPopup);
-        if ( dcal->showPopup && doc >= 0 ) {
-                // Do the move twice in case the WM is ignoring the first one
-                // because the window hasn't been shown, yet.  The WM is free
-                // to ignore our move and place windows according to it's own
-                // strategy, but hopefully it'll listen to us.  Certainly the
-                // second move after show_all'ing the window should do the
-                // trick with a bit of flicker.
-                gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root+5, evt->y_root+5);
-                populate_hover_window( dcal, doc );
-                gtk_widget_show_all( GTK_WIDGET(dcal->transPopup) );
-                gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root+5, evt->y_root+5);
-        } else {
-                gtk_widget_hide( GTK_WIDGET(dcal->transPopup) );
-        }
-        return FALSE;
+    doc = wheres_this(dcal, evt->x, evt->y);
+    dcal->showPopup = ~(dcal->showPopup);
+    if (dcal->showPopup && doc >= 0)
+    {
+        // Do the move twice in case the WM is ignoring the first one
+        // because the window hasn't been shown, yet.  The WM is free
+        // to ignore our move and place windows according to it's own
+        // strategy, but hopefully it'll listen to us.  Certainly the
+        // second move after show_all'ing the window should do the
+        // trick with a bit of flicker.
+        gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root+5, evt->y_root+5);
+        populate_hover_window(dcal, doc);
+        gtk_widget_show_all(GTK_WIDGET(dcal->transPopup));
+        gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root+5, evt->y_root+5);
+    }
+    else
+    {
+        gtk_widget_hide(GTK_WIDGET(dcal->transPopup));
+    }
+    return FALSE;
 }
 
 static gint
-gnc_dense_cal_motion_notify( GtkWidget      *widget,
-                             GdkEventMotion *event )
+gnc_dense_cal_motion_notify(GtkWidget *widget,
+                            GdkEventMotion *event)
 {
-        GncDenseCal *dcal;
-        gint doc;
-        int unused;
-        int x_root_offset, y_root_offset;
-        GdkModifierType unused2;
+    GncDenseCal *dcal;
+    gint doc;
+    int unused;
+    int x_root_offset, y_root_offset;
+    GdkModifierType unused2;
 
-        dcal = GNC_DENSE_CAL(widget);
-        if ( ! dcal->showPopup )
-                return FALSE;
+    dcal = GNC_DENSE_CAL(widget);
+    if (!dcal->showPopup)
+        return FALSE;
 
-        x_root_offset = event->x_root;
-        y_root_offset = event->y_root;
+    x_root_offset = event->x_root;
+    y_root_offset = event->y_root;
 
-        /* As per http://www.gtk.org/tutorial/sec-eventhandling.html */
-        if ( event->is_hint ) {
-                gdk_window_get_pointer( event->window, &unused, &unused, &unused2 );
-        }
-        gdk_window_move( GTK_WIDGET(dcal->transPopup)->window,
-                         x_root_offset+5, y_root_offset+5 );
-        doc = wheres_this( dcal, event->x, event->y );
-        if ( doc >= 0 ) {
-                populate_hover_window( dcal, doc );
-                gtk_widget_show_all( GTK_WIDGET(dcal->transPopup) );
-        } else {
-                gtk_widget_hide( GTK_WIDGET(dcal->transPopup) );
-        }
-        return TRUE;
+    /* As per http://www.gtk.org/tutorial/sec-eventhandling.html */
+    if (event->is_hint)
+        gdk_window_get_pointer(event->window, &unused, &unused, &unused2);
+    gdk_window_move(GTK_WIDGET(dcal->transPopup)->window,
+                    x_root_offset+5, y_root_offset+5);
+    doc = wheres_this(dcal, event->x, event->y);
+    if (doc >= 0)
+    {
+        populate_hover_window(dcal, doc);
+        gtk_widget_show_all(GTK_WIDGET(dcal->transPopup));
+    }
+    else
+    {
+        gtk_widget_hide(GTK_WIDGET(dcal->transPopup));
+    }
+    return TRUE;
 }
 
+
+static void
+_gdc_view_option_changed(GtkComboBox *widget, gpointer user_data)
+{
+    GtkTreeIter iter;
+    GtkTreeModel *model;
+    gint months_val;
+    
+    model = GTK_TREE_MODEL(gtk_combo_box_get_model(widget));
+    if (!gtk_combo_box_get_active_iter(widget, &iter))
+        return;
+    gtk_tree_model_get(model, &iter, VIEW_OPTS_COLUMN_NUM_MONTHS, &months_val, -1);
+    g_debug("changing to %d months", months_val);
+    gnc_dense_cal_set_num_months(GNC_DENSE_CAL(user_data), months_val);
+}
+
 static inline int
-day_width_at( GncDenseCal *dcal, guint xScale )
+day_width_at(GncDenseCal *dcal, guint xScale)
 {
-        return xScale + MINOR_BORDER_SIZE;
+    return xScale + MINOR_BORDER_SIZE;
 }
 
 static inline int
-day_width( GncDenseCal *dcal )
+day_width(GncDenseCal *dcal)
 {
-        return day_width_at( dcal, dcal->x_scale );
+    return day_width_at(dcal, dcal->x_scale);
 }
 
 static inline int
-day_height_at( GncDenseCal *dcal, guint yScale )
+day_height_at(GncDenseCal *dcal, guint yScale)
 {
-        return yScale + MINOR_BORDER_SIZE;
+    return yScale + MINOR_BORDER_SIZE;
 }
 
 static inline int
-day_height( GncDenseCal *dcal )
+day_height(GncDenseCal *dcal)
 {
-        return day_height_at( dcal, dcal->y_scale );
+    return day_height_at(dcal, dcal->y_scale);
 }
 
 static inline int
-week_width_at( GncDenseCal *dcal, guint xScale )
+week_width_at(GncDenseCal *dcal, guint xScale)
 {
-        return day_width_at(dcal, xScale) * 7;
+    return day_width_at(dcal, xScale) * 7;
 }
 
 static inline int
-week_width( GncDenseCal *dcal )
+week_width(GncDenseCal *dcal)
 {
-        return week_width_at( dcal, dcal->x_scale );
+    return week_width_at(dcal, dcal->x_scale);
 }
 
 static inline int
-week_height_at( GncDenseCal *dcal, guint yScale )
+week_height_at(GncDenseCal *dcal, guint yScale)
 {
-        return day_height_at(dcal, yScale);
+    return day_height_at(dcal, yScale);
 }
 
 static inline int
-week_height( GncDenseCal *dcal )
+week_height(GncDenseCal *dcal)
 {
-        return week_height_at(dcal, dcal->y_scale);
+    return week_height_at(dcal, dcal->y_scale);
 }
 
 static inline int
-col_width_at( GncDenseCal *dcal, guint xScale )
+col_width_at(GncDenseCal *dcal, guint xScale)
 {
-        return (week_width_at(dcal, xScale)
-                + dcal->label_width
-                + COL_BORDER_SIZE);
+    return (week_width_at(dcal, xScale)
+            + dcal->label_width
+            + COL_BORDER_SIZE);
 }
 
 static inline int
-col_width( GncDenseCal *dcal )
+col_width(GncDenseCal *dcal)
 {
-        return col_width_at( dcal, dcal->x_scale );
+    return col_width_at(dcal, dcal->x_scale);
 }
 
 static inline int
-col_height( GncDenseCal *dcal )
+col_height(GncDenseCal *dcal)
 {
-        return week_height(dcal)
-                * num_weeks_per_col(dcal);
+    return week_height(dcal) * num_weeks_per_col(dcal);
 }
 
 static inline int
-num_cols( GncDenseCal *dcal )
+num_cols(GncDenseCal *dcal)
 {
-        return ceil( (float)dcal->numMonths / (float)dcal->monthsPerCol );
+    return ceil((float)dcal->numMonths / (float)dcal->monthsPerCol);
 }
 
 static inline int
-num_weeks( GncDenseCal *dcal )
+num_weeks(GncDenseCal *dcal)
 {
-        /* FIXME: calculate, remove 'recompute_extents' */
-        return dcal->num_weeks;
+    return dcal->num_weeks;
 }
 
 static
-int num_weeks_per_col( GncDenseCal *dcal )
+int num_weeks_per_col(GncDenseCal *dcal)
 {
-        int num_weeks_toRet, numCols, i;
-        GDate *start,*end;
-        int startWeek, endWeek;
+    int num_weeks_toRet, numCols, i;
+    GDate *start,*end;
+    int startWeek, endWeek;
 
-        start = g_date_new();
-        end = g_date_new();
+    start = g_date_new();
+    end = g_date_new();
 
-        num_weeks_toRet = 0;
-        numCols = num_cols(dcal);
+    num_weeks_toRet = 0;
+    numCols = num_cols(dcal);
 
-        for ( i=0; i<numCols; i++ ) {
-                g_date_set_dmy( start, 1,
-                                ((dcal->month - 1 +
-                                  (i * dcal->monthsPerCol)) % 12)
-                                + 1,
-                                dcal->year + floor((dcal->month - 1
-                                                    + (i*dcal->monthsPerCol))
-                                                   / 12) );
-                *end = *start;
-                /* Add the smaller of (the number of months in the
-                 * calendar-display, minus the number of months shown in the
-                 * previous columns) or (the number of months in a column) */
-                g_date_add_months( end, MIN( dcal->numMonths,
-                                             MIN( dcal->monthsPerCol,
-                                                  dcal->numMonths
-                                                  - ((i-1)
-                                                     * dcal->monthsPerCol) ) ) );
-                g_date_subtract_days( end, 1 );
-                startWeek = g_date_get_sunday_week_of_year( start );
-                endWeek = g_date_get_sunday_week_of_year( end );
-                if ( endWeek < startWeek ) {
-                        endWeek += g_date_get_sunday_weeks_in_year( g_date_get_year(start) );
-                }
-                num_weeks_toRet = MAX( num_weeks_toRet, (endWeek - startWeek)+1 );
+    for (i=0; i<numCols; i++)
+    {
+        g_date_set_dmy(start, 1,
+                       ((dcal->month - 1
+                         + (i * dcal->monthsPerCol)) % 12)
+                       + 1,
+                       dcal->year + floor((dcal->month - 1
+                                           + (i*dcal->monthsPerCol))
+                                          / 12));
+        *end = *start;
+        /* Add the smaller of (the number of months in the
+         * calendar-display, minus the number of months shown in the
+         * previous columns) or (the number of months in a column) */
+        g_date_add_months(end, MIN(dcal->numMonths,
+                                   MIN(dcal->monthsPerCol,
+                                       dcal->numMonths
+                                       - ((i-1)
+                                          * dcal->monthsPerCol))));
+        g_date_subtract_days(end, 1);
+        startWeek = g_date_get_sunday_week_of_year(start);
+        endWeek = g_date_get_sunday_week_of_year(end);
+        if (endWeek < startWeek)
+        {
+            endWeek += g_date_get_sunday_weeks_in_year(g_date_get_year(start));
         }
-        return num_weeks_toRet;
+        num_weeks_toRet = MAX(num_weeks_toRet, (endWeek - startWeek)+1);
+    }
+    return num_weeks_toRet;
 }
 
 /**
@@ -1261,167 +1300,173 @@
  * size of the month.
  **/
 static void
-month_coords( GncDenseCal *dcal, int monthOfCal, GList **outList )
+month_coords(GncDenseCal *dcal, int monthOfCal, GList **outList)
 {
-        gint weekRow, colNum, previousMonthsInCol, monthOffset;
-        gint start;
-        GDate *startD, *endD;
-        GdkRectangle *rect;
-        gint startWk, endWk;
+    gint weekRow, colNum, previousMonthsInCol, monthOffset;
+    gint start;
+    GDate *startD, *endD;
+    GdkRectangle *rect;
+    gint startWk, endWk;
 
-        if ( monthOfCal > dcal->numMonths ) {
-                return;
-        }
-        colNum = floor(monthOfCal / dcal->monthsPerCol);
-        monthOffset = colNum * dcal->monthsPerCol;
-        previousMonthsInCol = MAX( 0, (monthOfCal % dcal->monthsPerCol) );
+    if (monthOfCal > dcal->numMonths)
+        return;
 
-        startD = g_date_new();
-        endD = g_date_new();
-        // FIXME: clean these up?
+    colNum = floor(monthOfCal / dcal->monthsPerCol);
+    monthOffset = colNum * dcal->monthsPerCol;
+    previousMonthsInCol = MAX(0, (monthOfCal % dcal->monthsPerCol));
 
-        /* Calculate the number of weeks in the column before the month we're
-         * interested in. */
-        weekRow = 0;
-        if ( previousMonthsInCol > 0 ) {
-                g_date_set_dmy( startD, 1,
-                                ((dcal->month - 1 + monthOffset) % 12) + 1,
-                                dcal->year + floor((dcal->month-1+monthOffset)/12) );
-                /* get the week of the top of the column */
-                startWk = g_date_get_sunday_week_of_year( startD );
-                /* get the week of the end of the previous months */
-                *endD = *startD;
-                g_date_add_months( endD, previousMonthsInCol );
-                g_date_subtract_days( endD, 1 );
-                endWk = g_date_get_sunday_week_of_year( endD );
-                if ( endWk < startWk ) {
-                        endWk += g_date_get_sunday_weeks_in_year( g_date_get_year(startD) );
-                }
-                /* determine how many weeks are before the month we're
-                 * interested in. */
-                weekRow = endWk - startWk;
-                if ( g_date_get_weekday(endD) == G_DATE_SATURDAY ) {
-                        weekRow++;
-                }
-        }
+    startD = g_date_new();
+    endD = g_date_new();
 
-        g_date_set_dmy( startD, 1,
-                        ((dcal->month - 1 + monthOfCal) % 12) + 1,
-                        dcal->year + floor((dcal->month-1+monthOfCal)/12) );
+    /* Calculate the number of weeks in the column before the month we're
+     * interested in. */
+    weekRow = 0;
+    if (previousMonthsInCol > 0)
+    {
+        g_date_set_dmy(startD, 1,
+                       ((dcal->month - 1 + monthOffset) % 12) + 1,
+                       dcal->year + floor((dcal->month-1+monthOffset)/12));
+        /* get the week of the top of the column */
+        startWk = g_date_get_sunday_week_of_year(startD);
+        /* get the week of the end of the previous months */
         *endD = *startD;
-        g_date_add_months( endD, 1 );
-        g_date_subtract_days( endD, 1 );
-        /* Get the first week. */
+        g_date_add_months(endD, previousMonthsInCol);
+        g_date_subtract_days(endD, 1);
+        endWk = g_date_get_sunday_week_of_year(endD);
+        if (endWk < startWk)
         {
-                start = g_date_get_weekday( startD ) % 7;
-                rect = g_new0( GdkRectangle, 1 );
-                rect->x = dcal->leftPadding
-                        + MINOR_BORDER_SIZE
-                        + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
-                        + dcal->label_width
-                        + (start * day_width(dcal));
-                rect->y = dcal->topPadding
-                        + dcal->dayLabelHeight
-                        + MINOR_BORDER_SIZE
-                        + (weekRow * week_height(dcal) );
-                rect->width = (7 - start) * day_width(dcal);
-                rect->height = week_height(dcal);
-                *outList = g_list_append(*outList, (gpointer)rect );
-                rect = NULL;
+            endWk += g_date_get_sunday_weeks_in_year(g_date_get_year(startD));
         }
-
-        /* Get the middle weeks. */
+        /* determine how many weeks are before the month we're
+         * interested in. */
+        weekRow = endWk - startWk;
+        if (g_date_get_weekday(endD) == G_DATE_SATURDAY)
         {
-                gint i, weekStart, weekEnd;
+            weekRow++;
+        }
+    }
 
-                weekStart = g_date_get_sunday_week_of_year(startD)+1;
-                weekEnd = g_date_get_sunday_week_of_year(endD);
-                for ( i=weekStart; i<weekEnd; i++ ) {
-                        rect = g_new0( GdkRectangle, 1 );
-                        rect->x = dcal->leftPadding
-                                + MINOR_BORDER_SIZE
-                                + dcal->label_width
-                                + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
-                        rect->y = dcal->topPadding
-                                + dcal->dayLabelHeight
-                                + MINOR_BORDER_SIZE
-                                + ((weekRow + (i-weekStart) + 1) * week_height(dcal));
-                        rect->width  = week_width(dcal);
-                        rect->height = week_height(dcal);
+    g_date_set_dmy(startD, 1,
+                   ((dcal->month - 1 + monthOfCal) % 12) + 1,
+                   dcal->year + floor((dcal->month-1+monthOfCal)/12));
+    *endD = *startD;
+    g_date_add_months(endD, 1);
+    g_date_subtract_days(endD, 1);
+    /* Get the first week. */
+    {
+        start = g_date_get_weekday(startD) % 7;
+        rect = g_new0(GdkRectangle, 1);
+        rect->x = dcal->leftPadding
+            + MINOR_BORDER_SIZE
+            + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
+            + dcal->label_width
+            + (start * day_width(dcal));
+        rect->y = dcal->topPadding
+            + dcal->dayLabelHeight
+            + MINOR_BORDER_SIZE
+            + (weekRow * week_height(dcal));
+        rect->width = (7 - start) * day_width(dcal);
+        rect->height = week_height(dcal);
+        *outList = g_list_append(*outList, (gpointer)rect);
+        rect = NULL;
+    }
 
-                        *outList = g_list_append( *outList, (gpointer)rect );
-                        rect = NULL;
-                }
+    /* Get the middle weeks. */
+    {
+        gint i, weekStart, weekEnd;
+
+        weekStart = g_date_get_sunday_week_of_year(startD)+1;
+        weekEnd = g_date_get_sunday_week_of_year(endD);
+        for (i=weekStart; i<weekEnd; i++) {
+            rect = g_new0(GdkRectangle, 1);
+            rect->x = dcal->leftPadding
+                + MINOR_BORDER_SIZE
+                + dcal->label_width
+                + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
+            rect->y = dcal->topPadding
+                + dcal->dayLabelHeight
+                + MINOR_BORDER_SIZE
+                + ((weekRow + (i-weekStart) + 1) * week_height(dcal));
+            rect->width  = week_width(dcal);
+            rect->height = week_height(dcal);
+
+            *outList = g_list_append(*outList, (gpointer)rect);
+            rect = NULL;
         }
+    }
         
-        /* Get the last week. */
-        {
-                rect = g_new0( GdkRectangle, 1 );
-                rect->x = dcal->leftPadding
-                        + MINOR_BORDER_SIZE
-                        + dcal->label_width
-                        + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
-                rect->y = dcal->topPadding
-                        + MINOR_BORDER_SIZE
-                        + dcal->dayLabelHeight
-                        + ((weekRow
-                            + (g_date_get_sunday_week_of_year(endD)
-                               - g_date_get_sunday_week_of_year(startD)))
-                           * week_height(dcal));
-                rect->width = ((g_date_get_weekday(endD) % 7)+1) * day_width(dcal);
-                rect->height = week_height(dcal);
+    /* Get the last week. */
+    {
+        rect = g_new0(GdkRectangle, 1);
+        rect->x = dcal->leftPadding
+            + MINOR_BORDER_SIZE
+            + dcal->label_width
+            + (colNum * (col_width(dcal) + COL_BORDER_SIZE));
+        rect->y = dcal->topPadding
+            + MINOR_BORDER_SIZE
+            + dcal->dayLabelHeight
+            + ((weekRow
+                + (g_date_get_sunday_week_of_year(endD)
+                   - g_date_get_sunday_week_of_year(startD)))
+               * week_height(dcal));
+        rect->width = ((g_date_get_weekday(endD) % 7)+1) * day_width(dcal);
+        rect->height = week_height(dcal);
 
-                *outList = g_list_append( *outList, (gpointer)rect );
-                rect = NULL;
-        }
+        *outList = g_list_append(*outList, (gpointer)rect);
+        rect = NULL;
+    }
+
+    g_date_free(startD);
+    g_date_free(endD);
 }
 
 /* FIXME: make this more like month_coords */
 static void
-doc_coords( GncDenseCal *dcal, int dayOfCal,
-            int *x1, int *y1, int *x2, int *y2 )
+doc_coords(GncDenseCal *dcal, int dayOfCal,
+           int *x1, int *y1, int *x2, int *y2)
 {
-        GDate d;
-        gint docMonth;
-        gint d_week_of_cal, top_of_col_week_of_cal;
-        gint colNum, dayCol, weekRow;
+    GDate d;
+    gint docMonth;
+    gint d_week_of_cal, top_of_col_week_of_cal;
+    gint colNum, dayCol, weekRow;
 
-        /* FIXME: add range checks */
-        g_date_set_dmy( &d, 1, dcal->month, dcal->year );
-        g_date_add_days( &d, dayOfCal );
-        docMonth = g_date_get_month( &d );
-        if ( g_date_get_year( &d ) != dcal->year ) {
-                docMonth += 12;
-        }
-        colNum  = floor( (float)(docMonth - dcal->month) / (float)dcal->monthsPerCol );
-        dayCol  = g_date_get_weekday( &d ) % 7;
-        d_week_of_cal = g_date_get_sunday_week_of_year( &d );
-        g_date_set_dmy( &d, 1, dcal->month, dcal->year );
-        g_date_add_months( &d, (colNum * dcal->monthsPerCol) );
-        top_of_col_week_of_cal = g_date_get_sunday_week_of_year( &d );
-        if ( d_week_of_cal < top_of_col_week_of_cal ) {
-                d_week_of_cal +=
-                        g_date_get_sunday_weeks_in_year( dcal->year );
-        }
-        weekRow = d_week_of_cal - top_of_col_week_of_cal;
+    /* FIXME: add range checks */
+    g_date_set_dmy(&d, 1, dcal->month, dcal->year);
+    g_date_add_days(&d, dayOfCal);
+    docMonth = g_date_get_month(&d);
+    if (g_date_get_year(&d) != dcal->year)
+    {
+        docMonth += 12;
+    }
+    colNum  = floor((float)(docMonth - dcal->month) / (float)dcal->monthsPerCol);
+    dayCol  = g_date_get_weekday(&d) % 7;
+    d_week_of_cal = g_date_get_sunday_week_of_year(&d);
+    g_date_set_dmy(&d, 1, dcal->month, dcal->year);
+    g_date_add_months(&d, (colNum * dcal->monthsPerCol));
+    top_of_col_week_of_cal = g_date_get_sunday_week_of_year(&d);
+    if (d_week_of_cal < top_of_col_week_of_cal)
+    {
+        d_week_of_cal += g_date_get_sunday_weeks_in_year(dcal->year);
+    }
+    weekRow = d_week_of_cal - top_of_col_week_of_cal;
 
-        /* top-left corner */
-        /* FIXME: this has the math to make the mark-cells come out right,
-         * which it shouldn't. */
-        *x1 = dcal->leftPadding
-                + MINOR_BORDER_SIZE
-                + dcal->label_width
-                + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
-                + (dayCol * day_width(dcal))
-                + (day_width(dcal)/4);
-        *y1 = dcal->topPadding
-                + MINOR_BORDER_SIZE
-                + dcal->dayLabelHeight
-                + (weekRow * week_height(dcal))
-                + (day_height(dcal)/4);
+    /* top-left corner */
+    /* FIXME: this has the math to make the mark-cells come out right,
+     * which it shouldn't. */
+    *x1 = dcal->leftPadding
+        + MINOR_BORDER_SIZE
+        + dcal->label_width
+        + (colNum * (col_width(dcal) + COL_BORDER_SIZE))
+        + (dayCol * day_width(dcal))
+        + (day_width(dcal)/4);
+    *y1 = dcal->topPadding
+        + MINOR_BORDER_SIZE
+        + dcal->dayLabelHeight
+        + (weekRow * week_height(dcal))
+        + (day_height(dcal)/4);
 
-        *x2 = *x1 + (day_width(dcal)/2);
-        *y2 = *y1 + (day_height(dcal)/2);
+    *x2 = *x1 + (day_width(dcal)/2);
+    *y2 = *y1 + (day_height(dcal)/2);
 }
 
 /**
@@ -1429,211 +1474,310 @@
  * '-1' if invalid.
  **/
 static gint
-wheres_this( GncDenseCal *dcal, int x, int y )
+wheres_this(GncDenseCal *dcal, int x, int y)
 {
-        gint colNum, weekRow, dayCol, dayOfCal;
-        GDate d, startD;
+    gint colNum, weekRow, dayCol, dayOfCal;
+    GDate d, startD;
 
-        x -= dcal->leftPadding;
-        y -= dcal->topPadding;
+    x -= dcal->leftPadding;
+    y -= dcal->topPadding;
 
-        if ( (x < 0) || (y < 0) ) {
-	    /* DEBUG( "x(%d) or y(%d) < 0", x, y ); */
-                return -1;
-        }
-        if ( (x >= GTK_WIDGET(dcal)->allocation.width)
-             || (y >= GTK_WIDGET(dcal)->allocation.height) ) {
-	    /*DEBUG( "x(%d) > allocation.width(%d) or y(%d) > allocation->height(%d)",
-	      x, y,
-	      GTK_WIDGET(dcal)->allocation.width,
-	      GTK_WIDGET(dcal)->allocation.height );*/
-                return -1;
-        }
+    if ((x < 0) || (y < 0))
+    {
+        return -1;
+    }
+    if ((x >= GTK_WIDGET(dcal)->allocation.width)
+        || (y >= GTK_WIDGET(dcal)->allocation.height))
+    {
+        return -1;
+    }
 
-        /* "outside of displayed table" check */
-        if ( x >= (num_cols(dcal) * (col_width(dcal) + COL_BORDER_SIZE)) ) {
-	    /*DEBUG( "x(%d) > ( col_width(%d) * num_cols(%d) )",
-	      x, col_width(dcal), num_cols(dcal) );*/
-                return -1;
-        }
-        if ( y >= col_height(dcal) ) {
-	    /*DEBUG( "y(%d) > col_height(%d)",
-	      y, col_height(dcal) );*/
-                return -1;
-        }
+    /* "outside of displayed table" check */
+    if (x >= (num_cols(dcal) * (col_width(dcal) + COL_BORDER_SIZE)))
+    {
+        return -1;
+    }
+    if (y >= col_height(dcal))
+    {
+        return -1;
+    }
         
-        /* coords -> year-relative-values */
-        colNum = floor( x / (col_width(dcal)+COL_BORDER_SIZE) );
+    /* coords -> year-relative-values */
+    colNum = floor(x / (col_width(dcal)+COL_BORDER_SIZE));
+     
+    x %= (col_width(dcal)+COL_BORDER_SIZE);
+    x -= dcal->label_width;
+    if (x < 0)
+    {
+        return -1;
+    }
+    if (x >= day_width(dcal) * 7)
+    {
+        return -1;
+    }
 
-        x %= (col_width(dcal)+COL_BORDER_SIZE);
-        x -= dcal->label_width;
-        if ( x < 0 ) {
-	    /* DEBUG( "X is over the label." );*/
-	    return -1;
-        }
-        if ( x >= day_width(dcal) * 7 ) {
-	    /*DEBUG( "X is in the col_border space." );*/
-	    return -1;
-        }
+    y -= dcal->dayLabelHeight;
+    if (y < 0)
+    {
+        return -1;
+    }
 
-        y -= dcal->dayLabelHeight;
-        if ( y < 0 ) {
-	    /*DEBUG( "Y is over the label." );*/
-	    return -1;
-        }
+    dayCol = floor((float)x / (float)day_width(dcal));
+    weekRow = floor((float)y / (float)week_height(dcal));
 
-        dayCol = floor( (float)x / (float)day_width(dcal) );
-        weekRow = floor( (float)y / (float)week_height(dcal) );
-
-        g_date_set_dmy( &startD, 1, dcal->month, dcal->year );
-        d = startD;
-        g_date_add_months( &d, (colNum * dcal->monthsPerCol) );
-        dayCol -= (g_date_get_weekday(&d) % 7);
-        if ( weekRow == 0 ) {
-                if ( dayCol < 0 ) {
-		    /*DEBUG( "Before the beginning of the first month." );*/
-                        return -1;
-                }
+    g_date_set_dmy(&startD, 1, dcal->month, dcal->year);
+    d = startD;
+    g_date_add_months(&d, (colNum * dcal->monthsPerCol));
+    dayCol -= (g_date_get_weekday(&d) % 7);
+    if (weekRow == 0)
+    {
+        if (dayCol < 0)
+        {
+            return -1;
         }
-        g_date_add_days( &d, dayCol + (weekRow * 7) );
+    }
+    g_date_add_days(&d, dayCol + (weekRow * 7));
 
-        /* Check to make sure we're within the column's displayed range. */
+    /* Check to make sure we're within the column's displayed range. */
+    {
+        GDate ccd;
+        g_date_set_dmy(&ccd, 1, dcal->month, dcal->year);
+        g_date_add_months(&ccd, (colNum+1) * dcal->monthsPerCol);
+        if (g_date_get_julian(&d) >= g_date_get_julian(&ccd))
         {
-                GDate ccd;
-                g_date_set_dmy( &ccd, 1, dcal->month, dcal->year );
-                g_date_add_months( &ccd, (colNum+1) * dcal->monthsPerCol );
-                if ( g_date_get_julian(&d) >= g_date_get_julian(&ccd) ) {
-		    /*DEBUG( "%d outside of column range [%d]",
-		      g_date_get_julian(&d), g_date_get_julian(&ccd) );*/
-                        return -1;
-                }
+            return -1;
         }
+    }
 
-        dayOfCal = g_date_get_julian(&d) - g_date_get_julian(&startD);
+    dayOfCal = g_date_get_julian(&d) - g_date_get_julian(&startD);
 
-        /* one more check before returning... */
-        g_date_subtract_months( &d, dcal->numMonths );
-        if ( g_date_get_julian(&d) >= g_date_get_julian(&startD) ) {
-                /* we're past the end of the displayed calendar, thus -1 */
-                DEBUG( "%d >= %d",
-                       g_date_get_julian( &d ), g_date_get_julian( &startD ) );
-                return -1;
-        }
+    /* one more check before returning... */
+    g_date_subtract_months(&d, dcal->numMonths);
+    if (g_date_get_julian(&d) >= g_date_get_julian(&startD))
+    {
+        /* we're past the end of the displayed calendar, thus -1 */
+        g_debug("%d >= %d", g_date_get_julian(&d), g_date_get_julian(&startD));
+        return -1;
+    }
 
-        return dayOfCal;
+    return dayOfCal;
 }
 
 static gint
-gdc_get_doc_offset( GncDenseCal *dcal, GDate *d )
+gdc_get_doc_offset(GncDenseCal *dcal, GDate *d)
 {
-        gint toRet;
-        /* soc == start-of-calendar */
-        GDate soc;
+    gint toRet;
+    /* soc == start-of-calendar */
+    GDate soc;
 
-        g_date_set_dmy( &soc, 1, dcal->month, dcal->year );
-        /* ensure not before calendar start. */
-        if ( g_date_get_julian(d) < g_date_get_julian(&soc) ) {
-                return -1;
-        }
-        /* do computation here, since we're going to change the
-         * start-of-calendar date. */
-        toRet = g_date_get_julian(d) - g_date_get_julian(&soc);
-        /* ensure not after end of visible calendar. */
-        g_date_add_months( &soc, dcal->numMonths );
-        if ( g_date_get_julian(d) > g_date_get_julian(&soc) ) {
-                return -1;
-        }
-        /* return pre-computed value. */
-        return toRet;
+    g_date_clear(&soc, 1);
+    g_date_set_dmy(&soc, 1, dcal->month, dcal->year);
+    /* ensure not before calendar start. */
+    if (g_date_get_julian(d) < g_date_get_julian(&soc))
+        return -1;
+    /* do computation here, since we're going to change the
+     * start-of-calendar date. */
+    toRet = g_date_get_julian(d) - g_date_get_julian(&soc);
+    /* ensure not after end of visible calendar. */
+    g_date_add_months(&soc, dcal->numMonths);
+    if (g_date_get_julian(d) > g_date_get_julian(&soc))
+        return -1;
+    /* return pre-computed value. */
+    return toRet;
 }
 
+static void
+gdc_add_tag_markings(GncDenseCal *cal, guint tag)
+{
+    gchar *name, *info;
+    gint num_marks, idx;
+    GDate **dates;
+
+    // copy the values into the old marking function.
+    name = gnc_dense_cal_model_get_name(cal->model, tag);
+    info = gnc_dense_cal_model_get_info(cal->model, tag);
+    num_marks = gnc_dense_cal_model_get_instance_count(cal->model, tag);
+
+    if (num_marks == 0)
+        return;
+
+    dates = g_new0(GDate*, num_marks);
+    for (idx = 0; idx < num_marks; idx++)
+    {
+        dates[idx] = g_date_new();
+        gnc_dense_cal_model_get_instance(cal->model, tag, idx, dates[idx]);
+    }
+
+    gdc_mark_add(cal, tag, name, info, num_marks, dates);
+
+    for (idx = 0; idx < num_marks; idx++)
+    {
+        g_date_free(dates[idx]);
+    }
+    g_free(dates);
+}
+
+static void
+gdc_add_markings(GncDenseCal *cal)
+{
+    GList *tags;
+    tags = gnc_dense_cal_model_get_contained(cal->model);
+    for (; tags != NULL; tags = tags->next)
+    {
+        guint tag = GPOINTER_TO_UINT(tags->data);
+        gdc_add_tag_markings(cal, tag);
+    }
+}
+
+static void
+gdc_remove_markings(GncDenseCal *cal)
+{
+    GList *tags;
+    tags = gnc_dense_cal_model_get_contained(cal->model);
+    for (; tags != NULL; tags = tags->next)
+    {
+        guint tag = GPOINTER_TO_UINT(tags->data);
+        gdc_mark_remove(cal, tag);
+    }
+}
+
+static void
+gdc_model_added_cb(GncDenseCalModel *model, guint added_tag, gpointer user_data)
+{
+    GncDenseCal *cal = GNC_DENSE_CAL(user_data);
+    g_debug("gdc_model_added_cb update\n");
+    gdc_add_tag_markings(cal, added_tag);
+} 
+
+static void
+gdc_model_update_cb(GncDenseCalModel *model, guint update_tag, gpointer user_data)
+{
+    GncDenseCal *cal = GNC_DENSE_CAL(user_data);
+    g_debug("gdc_model_update_cb update for tag [%d]\n", update_tag);
+    gdc_mark_remove(cal, update_tag);
+    gdc_add_tag_markings(cal, update_tag);
+}
+
+static void
+gdc_model_removing_cb(GncDenseCalModel *model, guint remove_tag, gpointer user_data)
+{
+    GncDenseCal *cal = GNC_DENSE_CAL(user_data);
+    g_debug("gdc_model_removing_cb update [%d]\n", remove_tag);
+    gdc_mark_remove(cal, remove_tag);
+}
+
+void
+gnc_dense_cal_set_model(GncDenseCal *cal, GncDenseCalModel *model)
+{
+    if (cal->model != NULL)
+    {
+        gdc_remove_markings(cal);
+        g_object_unref(G_OBJECT(cal->model));
+        cal->model = NULL;
+    }
+    cal->model = model;
+    g_object_ref(G_OBJECT(model));
+    g_signal_connect(G_OBJECT(cal->model), "added", (GCallback)gdc_model_added_cb, cal);
+    g_signal_connect(G_OBJECT(cal->model), "update", (GCallback)gdc_model_update_cb, cal);
+    g_signal_connect(G_OBJECT(cal->model), "removing", (GCallback)gdc_model_removing_cb, cal);
+
+    gdc_add_markings(cal);
+}
+
 /**
  * Marks the given array of GDate*s on the calendar with the given name.
  **/
-guint
-gnc_dense_cal_mark( GncDenseCal *dcal,
-                    guint size, GDate **dateArray,
-                    gchar *name, gchar *info )
+static void
+gdc_mark_add(GncDenseCal *dcal,
+             guint tag,
+             gchar *name,
+             gchar *info,
+             guint size,
+             GDate **dateArray)
 {
-        guint i;
-	gint doc;
-        gdc_mark_data *newMark;
-        GDate *d;
+    guint i;
+    gint doc;
+    gdc_mark_data *newMark;
+    GDate *d;
 
-        if ( size == 0 ) {
-                PERR( "0 size not allowed\n" );
-                return -1;
-        }
+    if (size == 0)
+    {
+        g_error("0 size not allowed\n");
+        return;
+    }
 
-        newMark = g_new0( gdc_mark_data, 1 );
-        newMark->name = NULL;
-        if ( name ) {
-                newMark->name = g_strdup(name);
-        }
-        newMark->info = NULL;
-        if ( info ) {
-                newMark->info = g_strdup(info);
-        }
-        newMark->tag = dcal->lastMarkTag++;
-        newMark->ourMarks = NULL;
+    newMark = g_new0(gdc_mark_data, 1);
+    newMark->name = NULL;
+    if (name)
+        newMark->name = g_strdup(name);
+    newMark->info = NULL;
+    if (info)
+        newMark->info = g_strdup(info);
+    newMark->tag = tag;
+    newMark->ourMarks = NULL;
+    g_debug("saving mark with tag [%d]\n", newMark->tag);
 
-        for ( i=0; i<size; i++ ) {
-                d = dateArray[i];
-                doc = gdc_get_doc_offset( dcal, d );
-                if ( doc < 0 ) {
-                        continue;
-                }
-                if ( doc >= dcal->numMarks ) {
-                        /* It's not going to get any better, so just
-                         * stop processing. */
-                        break;
-                }
-		dcal->marks[doc] = g_list_append( dcal->marks[doc], newMark );
-                newMark->ourMarks = g_list_append( newMark->ourMarks,
-                                                   GINT_TO_POINTER(doc) );
+    for (i=0; i<size; i++)
+    {
+        d = dateArray[i];
+        doc = gdc_get_doc_offset(dcal, d);
+        if (doc < 0)
+            continue;
+        if (doc >= dcal->numMarks)
+        {
+            /* It's not going to get any better, so just
+             * stop processing. */
+            break;
         }
-        dcal->markData = g_list_append( dcal->markData, (gpointer)newMark );
-        gnc_dense_cal_draw_to_buffer( dcal );
-        gtk_widget_queue_draw( GTK_WIDGET( dcal ) );
-        return newMark->tag;
+        dcal->marks[doc] = g_list_append(dcal->marks[doc], newMark);
+        newMark->ourMarks = g_list_append(newMark->ourMarks,
+                                          GINT_TO_POINTER(doc));
+    }
+    dcal->markData = g_list_append(dcal->markData, (gpointer)newMark);
+    gnc_dense_cal_draw_to_buffer(dcal);
+    gtk_widget_queue_draw(GTK_WIDGET(dcal->cal_drawing_area));
 }
 
-void
-gnc_dense_cal_mark_remove( GncDenseCal *dcal, guint markToRemove )
+static void
+gdc_mark_remove(GncDenseCal *dcal, guint mark_to_remove)
 {
-        GList *l, *calMarkL;
-        gint doc;
-        gdc_mark_data *gdcmd;
+    GList *iter, *calendar_marks;
+    gint day_of_cal;
+    gdc_mark_data *mark_data;
 
-        /* Ignore non-realistic marks */
-        if ( (gint)markToRemove == -1 ) {
-                DEBUG( "markToRemove = -1" );
-                return;
-        }
+    /* Ignore non-realistic marks */
+    if ((gint)mark_to_remove == -1)
+    {
+        g_debug("mark_to_remove = -1");
+        return;
+    }
 
-        gdcmd = NULL;
-        for ( l = dcal->markData; l; l=l->next ) {
-                gdcmd = (gdc_mark_data*)l->data;
-                if ( gdcmd->tag == markToRemove )
-                        break;
-        }
-        g_assert( l != NULL );
-        if ( l == NULL ) {
-                DEBUG( "l == null" );
-                return;
-        }
-        g_assert( gdcmd != NULL );
+    mark_data = NULL;
+    for (iter = dcal->markData; iter != NULL; iter = iter->next)
+    {
+        mark_data = (gdc_mark_data*)iter->data;
+        if (mark_data->tag == mark_to_remove)
+            break;
+    }
+    if (iter == NULL)
+    {
+        g_warning("couldn't find tag [%d]", mark_to_remove);
+        return;
+    }
+    if (mark_data == NULL)
+    {
+        g_debug("mark_data == null");
+        return;
+    }
 
-        l = NULL;
-        for ( calMarkL = gdcmd->ourMarks;
-              calMarkL;
-              calMarkL = calMarkL->next ) {
-                doc = GPOINTER_TO_INT(calMarkL->data);
-                dcal->marks[doc] = g_list_remove( dcal->marks[doc], gdcmd );
-        }
-        g_list_free( gdcmd->ourMarks );
-        dcal->markData = g_list_remove( dcal->markData, gdcmd );
-        g_free( gdcmd );
-        gnc_dense_cal_draw_to_buffer( dcal );
-        gtk_widget_queue_draw( GTK_WIDGET(dcal) );
+    for (calendar_marks = mark_data->ourMarks; calendar_marks != NULL; calendar_marks = calendar_marks->next)
+    {
+        day_of_cal = GPOINTER_TO_INT(calendar_marks->data);
+        dcal->marks[day_of_cal] = g_list_remove(dcal->marks[day_of_cal], mark_data);
+    }
+    g_list_free(mark_data->ourMarks);
+    dcal->markData = g_list_remove(dcal->markData, mark_data);
+    g_free(mark_data);
+    gnc_dense_cal_draw_to_buffer(dcal);
+    gtk_widget_queue_draw(GTK_WIDGET(dcal->cal_drawing_area));
 }

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-dense-cal.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,14 +1,11 @@
-#ifndef _DENSECAL_H_
-#define _DENSECAL_H_
-
 /********************************************************************\
  * gnc-dense-cal.h : a custom densely-dispalyed calendar widget     *
- * Copyright (C) 2002 Joshua Sled <jsled at asynchronous.org>          *
+ * Copyright (C) 2002,2006 Joshua Sled <jsled at asynchronous.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.              *
+ * published by the Free Software Foundation, under version 2 of    *
+ * the License.                                                     *
  *                                                                  *
  * This program is distributed in the hope that it will be useful,  *
  * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
@@ -23,14 +20,16 @@
  * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
 \********************************************************************/
 
-#include <gdk/gdk.h>
-#include <gtk/gtkadjustment.h>
-#include <gtk/gtkwidget.h>
+#ifndef _GNC_DENSE_CAL_H
+#define _GNC_DENSE_CAL_H
+
+#include "config.h"
+
 #include <glib.h>
+#include "gnc-dense-cal-model.h"
+#include <gtk/gtk.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 #define GNC_TYPE_DENSE_CAL          (gnc_dense_cal_get_type ()) 
 #define GNC_DENSE_CAL(obj)          GTK_CHECK_CAST (obj, gnc_dense_cal_get_type (), GncDenseCal)
@@ -40,110 +39,107 @@
 typedef struct _GncDenseCal        GncDenseCal;
 typedef struct _GncDenseCalClass   GncDenseCalClass;
 
-typedef struct _gdc_month_coords {
-        gint x, y;
+typedef struct _gdc_month_coords
+{
+    gint x, y;
 } gdc_month_coords;
 
-enum GDC_COLORS {
-  MONTH_THIS = 0,
-  MONTH_THAT,
-  MAX_COLORS
+enum GDC_COLORS
+{
+     MONTH_THIS = 0,
+     MONTH_THAT,
+     MAX_COLORS
 };
 
 struct _GncDenseCal
 {
-        GtkWidget widget;
+    GtkVBox widget;
 
-        GdkPixmap *drawbuf;
+    GtkComboBox *view_options;
+    GtkDrawingArea *cal_drawing_area;
 
-        gboolean initialized;
+    GdkPixmap *drawbuf;
+    
+    gboolean initialized;
 
-        gboolean showPopup;
-        GtkWindow *transPopup;
+    gboolean showPopup;
+    GtkWindow *transPopup;
 
-        gint min_x_scale;
-        gint min_y_scale;
+    gint min_x_scale;
+    gint min_y_scale;
 
-        gint x_scale;
-        gint y_scale;
+    gint x_scale;
+    gint y_scale;
 
-        gint numMonths;
-        gint monthsPerCol;
-        gint num_weeks; /* computed */
+    gint numMonths;
+    gint monthsPerCol;
+    gint num_weeks; /* computed */
 
-        GDateMonth month;
-        gint year;
-        gint firstOfMonthOffset;
+    GDateMonth month;
+    gint year;
+    gint firstOfMonthOffset;
 
-        gint leftPadding;
-        gint topPadding;
+    gint leftPadding;
+    gint topPadding;
 
-        gboolean needInitMonthLabels;
-        gdc_month_coords monthPositions[12];
-        GdkFont *monthLabelFont;
-        GdkFont *dayLabelFont;
-        GdkPixmap *monthLabels[12];
+    gdc_month_coords monthPositions[12];
 
-        GdkColor weekColors[MAX_COLORS];
+    GdkColor weekColors[MAX_COLORS];
 
-        guint label_lbearing;
-        guint label_ascent;
-        guint label_width;
-        guint label_height;
-        guint dayLabelHeight;
+    guint label_width;
+    guint label_height;
+    guint dayLabelHeight;
 
-        guint lastMarkTag;
+    GncDenseCalModel *model;
 
-        /**
-         * A GList of gdc_mark_data structs, one for each active/valid markTag.
-         **/
-        GList *markData;
-        int numMarks;
-        /* array of GList*s of per-cell markings. */
-        GList **marks;
+    guint lastMarkTag;
 
-	int disposed; /* private */
+    /**
+     * A GList of gdc_mark_data structs, one for each active/valid markTag.
+     **/
+    GList *markData;
+    int numMarks;
+    /* array of GList*s of per-cell markings. */
+    GList **marks;
+
+    int disposed; /* private */
 };
 
 struct _GncDenseCalClass
 {
-        GtkWidgetClass parent_class;
-        void (*marks_lost_cb)( GncDenseCal *dcal, gpointer user_data );
+    GtkVBoxClass parent_class;
 };
 
-typedef struct _gdc_mark_data {
-        gchar *name;
-        gchar *info;
-        guint tag;
-        /* GdkColor markStyle; */
-        /**
-         * A GList of the dcal->marks indexes containing this mark.
-         **/
-        GList *ourMarks;
+typedef struct _gdc_mark_data
+{
+    gchar *name;
+    gchar *info;
+    guint tag;
+    /**
+     * A GList of the dcal->marks indexes containing this mark.
+     **/
+    GList *ourMarks;
 } gdc_mark_data;
 
 GtkWidget*     gnc_dense_cal_new                    (void);
+GtkWidget*     gnc_dense_cal_new_with_model         (GncDenseCalModel *model);
 GType          gnc_dense_cal_get_type               (void);
 
-void gnc_dense_cal_set_month( GncDenseCal *dcal, GDateMonth mon );
+void gnc_dense_cal_set_model(GncDenseCal *cal, GncDenseCalModel *model);
+
+void gnc_dense_cal_set_month(GncDenseCal *dcal, GDateMonth mon);
+GDateMonth gnc_dense_cal_get_month( GncDenseCal *dcal );
 /**
  * @param year Julian year: 2000 = 2000AD.
  **/
 void gnc_dense_cal_set_year( GncDenseCal *dcal, guint year );
-void gnc_dense_cal_set_num_months( GncDenseCal *dcal, guint num_months );
-void gnc_dense_cal_set_months_per_col( GncDenseCal *dcal, guint monthsPerCol );
+GDateYear gnc_dense_cal_get_year( GncDenseCal *dcal );
 
+void gnc_dense_cal_set_num_months( GncDenseCal *dcal, guint num_months );
 guint gnc_dense_cal_get_num_months( GncDenseCal *dcal );
-GDateMonth gnc_dense_cal_get_month( GncDenseCal *dcal );
-GDateYear gnc_dense_cal_get_year( GncDenseCal *dcal );
 
-guint gnc_dense_cal_mark( GncDenseCal *dcal,
-                          guint size, GDate **daysArray,
-                          gchar *name, gchar *info );
-void gnc_dense_cal_mark_remove( GncDenseCal *dcal, guint markToRemove );
+void gnc_dense_cal_set_months_per_col( GncDenseCal *dcal, guint monthsPerCol );
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
 
-#endif /* _DENSECAL_H_ */
+#endif /* _GNC_DENSE_CAL_H */

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-embedded-window.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-embedded-window.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-embedded-window.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -134,12 +134,12 @@
 {
   GncEmbeddedWindowPrivate *priv;
 
-  ENTER("window %p, page %p", window, page);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
   g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
   priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
   g_return_if_fail (priv->page == NULL);
 
+  ENTER("window %p, page %p", window, page);
   priv->page = page;
   page->window = GTK_WIDGET(window);
   page->notebook_page = gnc_plugin_page_create_widget (page);
@@ -159,12 +159,13 @@
 {
   GncEmbeddedWindowPrivate *priv;
 
-  ENTER("window %p, page %p", window, page);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
   g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
   priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
   g_return_if_fail (priv->page == page);
 
+  ENTER("window %p, page %p", window, page);
+
   if (!page->notebook_page) {
     LEAVE("no displayed widget");
     return;
@@ -248,10 +249,10 @@
   GncEmbeddedWindow *window;
   GncEmbeddedWindowPrivate *priv;
 
-  ENTER("object %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
 
+  ENTER("object %p", object);
   window = GNC_EMBEDDED_WINDOW (object);
   priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
 
@@ -271,10 +272,10 @@
   GncEmbeddedWindow *window;
   GncEmbeddedWindowPrivate *priv;
 
-  ENTER("object %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
 
+  ENTER("object %p", object);
   window = GNC_EMBEDDED_WINDOW (object);
   priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
   if (priv->page) {
@@ -382,7 +383,7 @@
     g_critical("Failed to load ui file.\n  Filename %s\n  Error %s",
 	       ui_fullname, error->message);
     g_error_free(error);
-    g_free(ui_fullname);
+    g_free(ui_fullname); 
     LEAVE("window %p", window);
     return window;
   }

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-file.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-file.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-file.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -40,7 +40,6 @@
 #include "gnc-ui.h"
 #include "gnc-ui-util.h"
 #include "gnc-window.h"
-#include "gnc-gconf-utils.h"
 #include "gnc-plugin-file-history.h"
 #include "qof.h"
 #include "TransLog.h"
@@ -56,15 +55,6 @@
 static gint save_in_progress = 0;
 
 
-typedef struct
-{
-  GtkFileSelection *file_box;
-  char *file_name;
-} FileBoxInfo;
-
-/* PROTOTYPES *******************************************************/
-static void store_filename (GtkWidget *w, gpointer data);
-
 /********************************************************************\
  * gnc_file_dialog                                                  * 
  *   Pops up a file selection dialog (either a "Save As" or an      * 
@@ -87,138 +77,108 @@
 		 GNCFileDialogType type
 		 )
 {
-  /* filebox information */
-  /* This can be allocated on the stack so long as the lifetime
-  ** of the dialog is limited to this function. */
-  FileBoxInfo fb_info = {NULL, NULL};
+  GtkWidget *file_box;
+  const char *internal_name;
+  char *file_name = NULL;
+  gchar * okbutton = GTK_STOCK_OPEN;
+  const gchar *ok_icon = NULL;
+  GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN; 
+  gint response;
 
-  ENTER("\n");
+  ENTER(" ");
 
-  /* Create the dialog */
-  fb_info.file_box = GTK_FILE_SELECTION(gtk_file_selection_new(title));
-
-  /* Set dialog title, OK button and File Ops buttons according to type */
   switch (type) {
-    case GNC_FILE_DIALOG_OPEN:
-      /* change OK Button to Stock Open */
-      gtk_button_set_label(GTK_BUTTON(fb_info.file_box->ok_button), GTK_STOCK_OPEN);
-      gtk_button_set_use_stock(GTK_BUTTON(fb_info.file_box->ok_button), TRUE);
+	case GNC_FILE_DIALOG_OPEN:
+		  action = GTK_FILE_CHOOSER_ACTION_OPEN;
+		  okbutton = GTK_STOCK_OPEN;
+		  if (title == NULL)
+			  title = _("Open");
+		  break;
+	case GNC_FILE_DIALOG_IMPORT:
+		  action = GTK_FILE_CHOOSER_ACTION_OPEN;
+		  okbutton = _("_Import");
+		  if (title == NULL)
+			  title = _("Import");
+		  break;
+	case GNC_FILE_DIALOG_SAVE:
+		  action = GTK_FILE_CHOOSER_ACTION_SAVE;
+		  okbutton = GTK_STOCK_SAVE;
+		  if (title == NULL)
+			  title = _("Save");
+		  break;
+	case GNC_FILE_DIALOG_EXPORT:
+		  action = GTK_FILE_CHOOSER_ACTION_SAVE;
+		  okbutton = _("_Export");
+		  ok_icon = GTK_STOCK_CONVERT;
+		  if (title == NULL)
+			  title = _("Export");
+		  break;
+	
+  }
 
-      gtk_file_selection_hide_fileop_buttons(fb_info.file_box);
+  file_box = gtk_file_chooser_dialog_new(
+			  title,
+			  NULL,
+			  action,
+			  GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+			  NULL);
+  if (ok_icon)
+    gnc_gtk_dialog_add_button(file_box, okbutton, ok_icon, GTK_RESPONSE_ACCEPT);
+  else
+    gtk_dialog_add_button(GTK_DIALOG(file_box),
+			  okbutton, GTK_RESPONSE_ACCEPT);
 
-      /* default title */
-      if (title == NULL)
-        title = _("Open");
-      break;
+  if (starting_dir)
+    gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (file_box),
+					starting_dir);
 
-    case GNC_FILE_DIALOG_IMPORT:
-      /* change OK Button to Import */
-      gtk_button_set_label(GTK_BUTTON(fb_info.file_box->ok_button), _("Import"));
+  gtk_window_set_modal(GTK_WINDOW(file_box), TRUE);
+  /*
+  gtk_window_set_transient_for(GTK_WINDOW(file_box),
+			       GTK_WINDOW(gnc_ui_get_toplevel()));
+  */
 
-      gtk_file_selection_hide_fileop_buttons(fb_info.file_box);
+  if (filters != NULL)
+  {
+    GList* filter;
+    GtkFileFilter* all_filter = gtk_file_filter_new();
 
-      /* default title */
-      if (title == NULL)
-        title = _("Import");
-      break;
+    for (filter=filters; filter; filter=filter->next) {
+      g_return_val_if_fail(GTK_IS_FILE_FILTER(filter->data), NULL);
+      gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_box),
+				   GTK_FILE_FILTER (filter->data));
+    }
 
-    case GNC_FILE_DIALOG_SAVE:
-      /* change OK Button to Stock Save */
-      gtk_button_set_label(GTK_BUTTON(fb_info.file_box->ok_button), GTK_STOCK_SAVE);
-      gtk_button_set_use_stock(GTK_BUTTON(fb_info.file_box->ok_button), TRUE);
+    gtk_file_filter_set_name (all_filter, _("All files"));
+    gtk_file_filter_add_pattern (all_filter, "*");
+    gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_box), all_filter);
 
-      /* default title */
-      if (title == NULL)
-        title = _("Save");
-      break;
-
-    case GNC_FILE_DIALOG_EXPORT:
-      /* change OK Button to Export */
-      gtk_button_set_label(GTK_BUTTON(fb_info.file_box->ok_button), _("Export"));
-
-      /* default title */
-      if (title == NULL)
-        title = _("Export");
-      break;
+    /* Note: You cannot set a file filter and pre-select a file name.
+     * The latter wins, and the filter ends up diabled.  Since we are
+     * only settin the starting directory for the chooser dialog,
+     * everything works as expected. */
+    gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (file_box),
+				 GTK_FILE_FILTER (filters->data));
+    g_list_free (filters);
   }
 
+  response = gtk_dialog_run(GTK_DIALOG(file_box));
 
-  /* hack alert - this was filtering directory names as well as file
-   * names, so I think we should not do this by default (rgmerk) */
-  /* FIXME filters ignored. */
-#if 0
-  if (filter != NULL)
-    gtk_file_selection_complete(fb_info.file_box, filter);
-#endif
-
-
-  /* Set the starting_dir. */
-  if (starting_dir) {
-    /* NOTE: To set the directory only, this must have a trailing
-    ** /.  */
-    gtk_file_selection_set_filename(fb_info.file_box, starting_dir);
+  if (response == GTK_RESPONSE_ACCEPT) {
+    /* look for constructs like postgres://foo */
+    internal_name = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER (file_box));
+    if (strstr (internal_name, "file://") == internal_name) {
+      /* nope, a local file name */
+      internal_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_box));
+    }
+    file_name = g_strdup(internal_name);
   }
-
-  gtk_window_set_modal(GTK_WINDOW(fb_info.file_box), TRUE);
-  gtk_window_set_transient_for(GTK_WINDOW(fb_info.file_box),
-                               GTK_WINDOW(gnc_ui_get_toplevel()));
-
-  /* OK Button stores filename */
-  g_signal_connect(GTK_OBJECT(fb_info.file_box->ok_button),
-                   "clicked", GTK_SIGNAL_FUNC(store_filename),
-                   (gpointer) &fb_info);
-
-  /* Ensure that the dialog box is destroyed when the user clicks a button. */
-  g_signal_connect_swapped(GTK_OBJECT(fb_info.file_box->ok_button),
-                   "clicked", G_CALLBACK (gtk_widget_destroy),
-                   fb_info.file_box);
-
-  g_signal_connect_swapped(GTK_OBJECT(fb_info.file_box->cancel_button),
-                   "clicked", G_CALLBACK (gtk_widget_destroy),
-                   fb_info.file_box);
-
-  g_signal_connect(GTK_OBJECT(fb_info.file_box), "delete_event",
-                   G_CALLBACK (gtk_widget_destroy),
-                   NULL);
-
-  g_signal_connect(GTK_OBJECT(fb_info.file_box), "destroy_event",
-                   G_CALLBACK (gtk_widget_destroy),
-                   NULL);
-
-  gtk_dialog_run(GTK_DIALOG(fb_info.file_box));
-  LEAVE("\n");
-  return fb_info.file_name;
+  gtk_widget_destroy(GTK_WIDGET(file_box));
+  LEAVE("%s", file_name ? file_name : "(null)");
+  return file_name;
 }
 
-/********************************************************************\
- * store_filename                                                   *
- *   callback that saves the name of the file                       *
- *                                                                  *
- * Args:   w - the widget that called us                            *
- *         data - pointer to filebox info structure                 *
- * Return: none                                                     *
-\********************************************************************/
-static void
-store_filename (GtkWidget *w, gpointer data)
-{
-  FileBoxInfo *fb_info = data;
-  GtkFileSelection *fs;
-  const gchar *file_name;
 
-  fs = GTK_FILE_SELECTION (fb_info->file_box);
-
-  file_name = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry));
-
-  if (!strstr (file_name, "://"))
-    file_name = gtk_file_selection_get_filename (fb_info->file_box);
-
-  fb_info->file_name = g_strdup (file_name);
-}
-
-
-/********************************************************************\
-\********************************************************************/
-
 gboolean
 show_session_error (QofBackendError io_error,
 		    const char *newfile,
@@ -778,7 +738,7 @@
 
   if (!uh_oh)
   {
-    AccountGroup *new_group;
+    Account *new_root;
 
     char * logpath = xaccResolveFilePath(newfile);
     PINFO ("logpath=%s", logpath ? logpath : "(null)");
@@ -810,12 +770,12 @@
 
     uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
 
-    new_group = gnc_book_get_group (qof_session_get_book (new_session));
-    if (uh_oh) new_group = NULL;
+    new_root = gnc_book_get_root_account (qof_session_get_book (new_session));
+    if (uh_oh) new_root = NULL;
 
     /* Umm, came up empty-handed, but no error: 
      * The backend forgot to set an error. So make one up. */
-    if (!uh_oh && !new_group) 
+    if (!uh_oh && !new_root) 
     {
       uh_oh = show_session_error (ERR_BACKEND_MISC, newfile,
 				  GNC_FILE_DIALOG_OPEN);
@@ -831,11 +791,11 @@
     qof_session_destroy (new_session);
     xaccLogEnable();
 
-    /* well, no matter what, I think it's a good idea to have a
-     * topgroup around.  For example, early in the gnucash startup
+    /* well, no matter what, I think it's a good idea to have a root
+     * account around.  For example, early in the gnucash startup
      * sequence, the user opens a file; if this open fails for any
-     * reason, we don't want to leave them high & dry without a
-     * topgroup, because if the user continues, then bad things will
+     * reason, we don't want to leave them high & dry without a root
+     * account, because if the user continues, then bad things will
      * happen. */
     gnc_get_current_session ();
 
@@ -911,21 +871,17 @@
   QofBackendError io_err = ERR_BACKEND_NO_ERR;
   gchar *default_dir;
 
-  default_dir = gnc_gconf_get_string(GCONF_SECTION, KEY_LAST_PATH, NULL);
-  if (default_dir == NULL)
-    gnc_init_default_directory(&default_dir);
-
   if (!newfile) {
+    default_dir = gnc_get_default_directory (GCONF_SECTION);
     newfile =  gnc_file_dialog (_("Export"), NULL, default_dir, GNC_FILE_DIALOG_EXPORT);
     g_free(default_dir);
-    default_dir = NULL;
     if (!newfile)
       return;
   }
 
   /* Remember the directory as the default. */
-  gnc_extract_directory(&default_dir, newfile);
-  gnc_gconf_set_string(GCONF_SECTION, KEY_LAST_PATH, default_dir, NULL);
+  default_dir = g_path_get_dirname(newfile);
+  gnc_set_default_directory (GCONF_SECTION, default_dir);
   g_free(default_dir);
   
   qof_event_suspend();
@@ -933,7 +889,7 @@
   /* -- this session code is NOT identical in FileOpen and FileSaveAs -- */
 
   new_session = qof_session_new ();
-  qof_session_begin (new_session, newfile, FALSE, FALSE);
+  qof_session_begin (new_session, newfile, FALSE, TRUE);
 
   io_err = qof_session_get_error (new_session);
 
@@ -1054,15 +1010,14 @@
 
   last = gnc_history_get_last();
   if (last) {
-    gnc_extract_directory(&default_dir, last);
+    default_dir = g_path_get_dirname(last);
     g_free(last);
   } else {
-    gnc_init_default_directory(&default_dir);
+    default_dir = gnc_get_default_directory(GCONF_SECTION);
   }
   filename = gnc_file_dialog (_("Save"), NULL, default_dir, 
-		  GNC_FILE_DIALOG_SAVE);
-  if (default_dir)
-    free(default_dir);
+			      GNC_FILE_DIALOG_SAVE);
+  g_free(default_dir);
   if (!filename) return;
 
   /* Check to see if the user specified the same file as the current
@@ -1202,5 +1157,6 @@
 gboolean
 gnc_file_save_in_progress (void)
 {
-  return (save_in_progress > 0);
+    QofSession *session = gnc_get_current_session();
+    return (qof_session_save_in_progress(session) || save_in_progress > 0);
 }

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 /********************************************************************\
  * gnc-frequency.c -- GnuCash widget for frequency editing.         *
- * Copyright (C) 2001,2002 Joshua Sled <jsled at asynchronous.org>     *
+ * Copyright (C) 2001,2002,2007 Joshua Sled <jsled at asynchronous.org>*
  * Copyright (C) 2003 Linas Vepstas <linas at linas.org>               *
  * Copyright (C) 2006 David Hampton <hampton at employees.org>         *
  *                                                                  *
@@ -26,6 +26,7 @@
 #include "config.h"
 
 #include <gtk/gtk.h>
+#include <glib/gtypes.h>
 #include "glib-compat.h"
 #include <math.h>
 #include <time.h>
@@ -37,20 +38,21 @@
 #include "gnc-frequency.h"
 #include "gnc-ui-util.h"
 
-static QofLogModule log_module = GNC_MOD_SX;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.frequency"
 
 /** Private Defs ********************/
 
 typedef enum {
-  GNCFREQ_CHANGED,
-  LAST_SIGNAL
+    GNCFREQ_CHANGED,
+    LAST_SIGNAL
 } GNCF_Signals;
 
 static guint gnc_frequency_signals[LAST_SIGNAL] = { 0 };
 
 /** Private Prototypes ********************/
 
-static void gnc_frequency_class_init( GNCFrequencyClass *klass );
+static void gnc_frequency_class_init( GncFrequencyClass *klass );
 
 static void freq_combo_changed( GtkComboBox *b, gpointer d );
 static void start_date_changed( GNCDateEdit *gde, gpointer d );
@@ -60,47 +62,39 @@
 
 static void monthly_sel_changed( GtkButton *b, gpointer d );
 static void semimonthly_sel_changed( GtkButton *b, gpointer d );
-static void yearly_sel_changed( GtkButton *b, gpointer d );
-static void quarterly_sel_changed( GtkButton *b, gpointer d );
-static void triyearly_sel_changed( GtkButton *b, gpointer d );
-static void semiyearly_sel_changed( GtkButton *b, gpointer d );
 
-static void year_range_sels_changed( GNCFrequency *gf,
-                                     int monthsInRange,
-                                     GtkWidget *occurW,
-                                     GtkWidget *dayOfMonthW );
-static void year_range_menu_helper( GtkWidget *dayOptMenu,
-                                    GtkWidget *occurOptMenu,
-                                    gint monthsInRange,
-                                    time_t date );
-
 /** Static Inits ********************/
 
-static const struct pageDataTuple PAGES[] = {
-        {  0, UIFREQ_NONE,         "None" },
-        {  1, UIFREQ_ONCE,         "Once" },
-        {  2, UIFREQ_DAILY,        "Daily" },
-        {  3, UIFREQ_DAILY_MF,     "Daily [M-F]" },
-        {  4, UIFREQ_WEEKLY,       "Weekly" },
-        {  5, UIFREQ_BI_WEEKLY,    "Bi-Weekly" },
-        {  6, UIFREQ_SEMI_MONTHLY, "Semi-Monthly" },
-        {  7, UIFREQ_MONTHLY,      "Monthly" },
-        {  8, UIFREQ_QUARTERLY,    "Quarterly" },
-        {  9, UIFREQ_TRI_ANUALLY,  "Tri-Anually" },
-        { 10, UIFREQ_SEMI_YEARLY,  "Semi-Yearly" },
-        { 11, UIFREQ_YEARLY,       "Yearly" },
-        { 0, 0, 0 }
+enum
+{
+    PAGE_NONE = 0,
+    PAGE_ONCE,
+    PAGE_DAILY,
+    PAGE_WEEKLY,
+    PAGE_SEMI_MONTHLY,
+    PAGE_MONTHLY
 };
 
+static const struct pageDataTuple PAGES[] =
+{
+    { PAGE_NONE,         UIFREQ_NONE,         "None" },
+    { PAGE_ONCE,         UIFREQ_ONCE,         "Once" },
+    { PAGE_DAILY,        UIFREQ_DAILY,        "Daily" },
+    { PAGE_WEEKLY,       UIFREQ_WEEKLY,       "Weekly" },
+    { PAGE_SEMI_MONTHLY, UIFREQ_SEMI_MONTHLY, "Semi-Monthly" },
+    { PAGE_MONTHLY,      UIFREQ_MONTHLY,      "Monthly" },
+    { 0, 0, 0 }
+};
+
 static const char *CHECKBOX_NAMES[] = {
-        "wd_check_sun",
-        "wd_check_mon",
-        "wd_check_tue",
-        "wd_check_wed",
-        "wd_check_thu",
-        "wd_check_fri",
-        "wd_check_sat",
-        NULL
+    "wd_check_sun",
+    "wd_check_mon",
+    "wd_check_tue",
+    "wd_check_wed",
+    "wd_check_thu",
+    "wd_check_fri",
+    "wd_check_sat",
+    NULL
 };
 
 /** Implementations ********************/
@@ -108,148 +102,134 @@
 GType
 gnc_frequency_get_type()
 {
-	static GType gncfreq_type = 0;
-        if (gncfreq_type == 0) {
-                static GTypeInfo gncfreq_info = {
-			sizeof(GNCFrequencyClass),
-			NULL,
-			NULL,
-			(GClassInitFunc)gnc_frequency_class_init,
-			NULL,
-			NULL,
-			sizeof(GNCFrequency),
-			0,
-			(GInstanceInitFunc)gnc_frequency_init
-		};
+    static GType gncfreq_type = 0;
+    if (gncfreq_type == 0) {
+        static GTypeInfo gncfreq_info = {
+            sizeof(GncFrequencyClass),
+            NULL,
+            NULL,
+            (GClassInitFunc)gnc_frequency_class_init,
+            NULL,
+            NULL,
+            sizeof(GncFrequency),
+            0,
+            (GInstanceInitFunc)gnc_frequency_init
+        };
+                
+        gncfreq_type = g_type_register_static (GTK_TYPE_VBOX,
+                                               "GncFrequency",
+                                               &gncfreq_info, 0);
+    }
 
-                gncfreq_type = g_type_register_static (GTK_TYPE_VBOX,
-						       "GNCFrequency",
-						       &gncfreq_info, 0);
-        }
-
-	return gncfreq_type;
+    return gncfreq_type;
 }
 
 static void
-gnc_frequency_class_init( GNCFrequencyClass *klass )
+gnc_frequency_class_init( GncFrequencyClass *klass )
 {
-	GObjectClass *object_class;
-	
-	object_class = G_OBJECT_CLASS (klass);
+    GObjectClass *object_class;
+        
+    object_class = G_OBJECT_CLASS (klass);
 
-        gnc_frequency_signals[GNCFREQ_CHANGED] =
-		g_signal_new ("changed",
-			      G_OBJECT_CLASS_TYPE (object_class),
-			      G_SIGNAL_RUN_FIRST,
-			      G_STRUCT_OFFSET (GNCFrequencyClass, changed),
-			      NULL,
-			      NULL,
-			      g_cclosure_marshal_VOID__VOID,
-			      G_TYPE_NONE,
-			      0);
+    gnc_frequency_signals[GNCFREQ_CHANGED] =
+        g_signal_new ("changed",
+                      G_OBJECT_CLASS_TYPE (object_class),
+                      G_SIGNAL_RUN_FIRST,
+                      G_STRUCT_OFFSET (GncFrequencyClass, changed),
+                      NULL,
+                      NULL,
+                      g_cclosure_marshal_VOID__VOID,
+                      G_TYPE_NONE,
+                      0);
 }
 
 void
-gnc_frequency_init( GNCFrequency *gf )
+gnc_frequency_init(GncFrequency *gf)
 {
-        int    i;
-        GtkVBox  *vb;
-        GtkWidget   *o;
-        GtkAdjustment  *adj;
+    int    i;
+    GtkVBox  *vb;
+    GtkWidget   *o;
+    GtkAdjustment  *adj;
 
-        static const struct comboBoxTuple {
-                char *name;
-                void (*fn)();
-        } comboBoxes[] = {
-                { "freq_combobox",      freq_combo_changed },
-                { "semimonthly_first",  semimonthly_sel_changed },
-                { "semimonthly_second", semimonthly_sel_changed },
-                { "monthly_day",        monthly_sel_changed },
-                { "quarterly_occur",    quarterly_sel_changed },
-                { "quarterly_day",      quarterly_sel_changed },
-                { "triyearly_occur",    triyearly_sel_changed },
-                { "triyearly_day",      triyearly_sel_changed },
-                { "semiyearly_occur",   semiyearly_sel_changed },
-                { "semiyearly_day",     semiyearly_sel_changed },
-                { "yearly_month",       yearly_sel_changed },
-                { "yearly_day",         yearly_sel_changed },
-                { NULL,                 NULL }
-        };
+    static const struct comboBoxTuple {
+        char *name;
+        void (*fn)();
+    } comboBoxes[] = {
+        { "freq_combobox",      freq_combo_changed },
+        { "semimonthly_first",  semimonthly_sel_changed },
+        { "semimonthly_second", semimonthly_sel_changed },
+        { "monthly_day",        monthly_sel_changed },
+        { NULL,                 NULL }
+    };
 
-        static const struct spinvalTuple {
-                char *name;
-                void (*fn)();
-        } spinVals[] = {
-                { "daily_spin",       spin_changed_helper },
-                { "dailymf_spin",     spin_changed_helper },
-                { "weekly_spin",      spin_changed_helper },
-                { "semimonthly_spin", spin_changed_helper },
-                { "monthly_spin",     spin_changed_helper },
-                { "yearly_spin",      spin_changed_helper },
-                { NULL,               NULL }
-        };
+    static const struct spinvalTuple {
+        char *name;
+        void (*fn)();
+    } spinVals[] = {
+        { "daily_spin",       spin_changed_helper },
+        { "weekly_spin",      spin_changed_helper },
+        { "semimonthly_spin", spin_changed_helper },
+        { "monthly_spin",     spin_changed_helper },
+        { NULL,               NULL }
+    };
 
-        gf->gxml = gnc_glade_xml_new( "sched-xact.glade", "gncfreq_vbox" );
-        o = glade_xml_get_widget( gf->gxml, "gncfreq_nb" );
-        gf->nb = GTK_NOTEBOOK(o);
-        o = glade_xml_get_widget( gf->gxml, "freq_combobox" );
-        gf->freqComboBox = GTK_COMBO_BOX(o);
-        gf->startDate = GNC_DATE_EDIT(gnc_date_edit_new( time(NULL), FALSE, FALSE ));
-        /* Add the new widget to the table. */
+    gf->gxml = gnc_glade_xml_new("sched-xact.glade", "gncfreq_vbox");
+    o = glade_xml_get_widget(gf->gxml, "gncfreq_nb");
+    gf->nb = GTK_NOTEBOOK(o);
+    o = glade_xml_get_widget(gf->gxml, "freq_combobox");
+    gf->freqComboBox = GTK_COMBO_BOX(o);
+    gf->startDate = GNC_DATE_EDIT(gnc_date_edit_new(time(NULL), FALSE, FALSE));
+    /* Add the new widget to the table. */
+    {
+        GtkWidget *table = glade_xml_get_widget(gf->gxml, "gncfreq_table");
+        gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(gf->startDate),
+                         1, 2, 1, 2, (GTK_EXPAND | GTK_FILL), 0,
+                         0, 0);
+    }
+    vb = GTK_VBOX(glade_xml_get_widget(gf->gxml, "gncfreq_vbox"));
+    gf->vb = vb;
+    gtk_container_add(GTK_CONTAINER(&gf->widget), GTK_WIDGET(gf->vb));
+
+    /* initialize the combo boxes */
+    for (i=0; comboBoxes[i].name != NULL; i++)
+    {
+        o = glade_xml_get_widget(gf->gxml, comboBoxes[i].name);
+        gtk_combo_box_set_active(GTK_COMBO_BOX(o), 0);
+        if (comboBoxes[i].fn != NULL)
         {
-                GtkWidget *table = glade_xml_get_widget( gf->gxml, "gncfreq_table" );
-                gtk_table_attach( GTK_TABLE(table), GTK_WIDGET(gf->startDate),
-                                  1, 2, 1, 2,
-                                  ( GTK_EXPAND | GTK_FILL ), 0,
-                                  0, 0 );
+            g_signal_connect(o, "changed", G_CALLBACK(comboBoxes[i].fn), gf);
         }
-        vb = GTK_VBOX( glade_xml_get_widget( gf->gxml, "gncfreq_vbox" ) );
-        gf->vb = vb;
-        gtk_container_add( GTK_CONTAINER(&gf->widget), GTK_WIDGET(gf->vb) );
+    }
 
-        /* initialize the combo boxes */
-        for ( i=0; comboBoxes[i].name != NULL; i++ ) {
-                o = glade_xml_get_widget( gf->gxml, comboBoxes[i].name );
-		gtk_combo_box_set_active(GTK_COMBO_BOX(o), 0);
-                if ( comboBoxes[i].fn != NULL ) {
-                        g_signal_connect( o, "changed",
-					  G_CALLBACK(comboBoxes[i].fn), gf );
-                }
-        }
-
-        /* initialize the spin buttons */
-        for ( i=0; spinVals[i].name != NULL; i++ ) 
+    /* initialize the spin buttons */
+    for (i=0; spinVals[i].name != NULL; i++)
+    {
+        if (spinVals[i].fn != NULL) 
         {
-                if ( spinVals[i].fn != NULL ) 
-                {
-                        o = glade_xml_get_widget( gf->gxml,
-                                          spinVals[i].name );
-                        adj = gtk_spin_button_get_adjustment( GTK_SPIN_BUTTON(o) );
-                        g_signal_connect( adj, "value_changed",
-					  G_CALLBACK(spinVals[i].fn), gf );
-                }
+            o = glade_xml_get_widget(gf->gxml, spinVals[i].name);
+            adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(o));
+            g_signal_connect(adj, "value_changed", G_CALLBACK(spinVals[i].fn), gf);
         }
+    }
 
-        /* initialize the weekly::day-of-week checkbox-selection hooks */
-        for ( i=0; i<7; i++ ) {
-                o = glade_xml_get_widget( gf->gxml, CHECKBOX_NAMES[i] );
-                g_signal_connect( o, "clicked",
-				  G_CALLBACK(weekly_days_changed), gf );
-        }
+    /* initialize the weekly::day-of-week checkbox-selection hooks */
+    for (i=0; i < 7; i++)
+    {
+        o = glade_xml_get_widget(gf->gxml, CHECKBOX_NAMES[i]);
+        g_signal_connect(o, "clicked",
+                          G_CALLBACK(weekly_days_changed), gf);
+    }
 
-        gtk_widget_show_all( GTK_WIDGET(&gf->widget) );
+    gtk_widget_show_all(GTK_WIDGET(&gf->widget));
 
-        /* respond to start date changes */
-        g_signal_connect( gf->startDate, "date_changed",
-			  G_CALLBACK(start_date_changed), gf );
-
+    /* respond to start date changes */
+    g_signal_connect(gf->startDate, "date_changed", G_CALLBACK(start_date_changed), gf);
 }
 
 static void
-do_frequency_setup( GNCFrequency *gf, FreqSpec *fs, time_t *secs)
+do_frequency_setup(GncFrequency *gf, FreqSpec *fs, time_t *secs)
 {
         UIFreqType uift;
-        int i, page;
 
         /* Set the start date, but only if present. */
         if (secs)
@@ -265,21 +245,7 @@
          * don't change any other settings.  */
         if (NULL == fs) return;
 
-        uift = xaccFreqSpecGetUIType( fs );
-        page = -1;
-        for ( i=0; i < UIFREQ_NUM_UI_FREQSPECS+1; i++ ) 
-        {
-                if ( PAGES[i].uiFTVal == uift ) 
-                {
-                         page = PAGES[i].idx;
-                         break;
-                }
-        }
-        g_assert( page != -1 );
-
-        gtk_notebook_set_current_page( gf->nb, page );
-        gtk_combo_box_set_active( gf->freqComboBox, page );
-
+        uift = xaccFreqSpecGetUIType(fs);
         switch ( uift ) 
         {
         case UIFREQ_NONE:
@@ -290,13 +256,15 @@
                 struct tm stm;
                 /* set the date */
                 if ( xaccFreqSpecGetOnce( fs, &theDate ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d vs. FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
+                     g_warning("Inappropriate FreqSpec type [gnc-frequency: %d vs. FreqSpec: %d]",
+                               uift, xaccFreqSpecGetUIType( fs ));
+                     return;
                 }
                 g_date_to_struct_tm( &theDate, &stm );
                 gnc_date_edit_set_time( gf->startDate, mktime(&stm) );
+
+                gtk_notebook_set_current_page( gf->nb, PAGE_ONCE);
+                gtk_combo_box_set_active( gf->freqComboBox, PAGE_ONCE);
         }
         break;
         case UIFREQ_DAILY:
@@ -304,40 +272,20 @@
                 GtkWidget *o;
                 int dailyMult = -1;
                 if ( xaccFreqSpecGetDaily( fs, &dailyMult ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d vs. FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
+                     g_warning("Inappropriate FreqSpec type [gnc-frequency: %d vs. FreqSpec: %d]",
+                               uift, xaccFreqSpecGetUIType( fs ) );
+                     return;
                 }
                 o = glade_xml_get_widget( gf->gxml, "daily_spin" );
                 gtk_spin_button_set_value( GTK_SPIN_BUTTON( o ), dailyMult );
-        }
-        break;
-        case UIFREQ_DAILY_MF:
-        {
-                GtkWidget *o;
-                GList *fsList;
-                FreqSpec *subFS;
-                int weekMult, dayOfWeek;
 
-                /*  set the mult */
-                fsList = xaccFreqSpecCompositeGet( fs );
-                if ( g_list_length( fsList ) != 5 ) {
-                        PERR( "Invalid Daily[M-F] FreqSpec" );
-                        return;
-                }
-                subFS = (FreqSpec*)fsList->data;
-                if ( xaccFreqSpecGetWeekly( subFS, &weekMult, &dayOfWeek ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d vs. FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
-                }
-                o = glade_xml_get_widget( gf->gxml, "dailymf_spin" );
-                gtk_spin_button_set_value( GTK_SPIN_BUTTON(o), weekMult );
+                gtk_notebook_set_current_page( gf->nb, PAGE_DAILY);
+                gtk_combo_box_set_active( gf->freqComboBox, PAGE_DAILY);
         }
         break;
+        case UIFREQ_DAILY_MF:
         case UIFREQ_WEEKLY:
+        case UIFREQ_BI_WEEKLY:
         {
                 const char * str;
                 int weeklyMult = -1;
@@ -351,55 +299,53 @@
                         subFS = (FreqSpec*)(list->data);
                         if ( weeklyMult == -1 ) {
                                 if ( subFS == NULL ) {
-                                        PERR( "subFS is null\n" );
-                                        return;
+                                     g_critical("subFS is null");
+                                     return;
                                 }
                                 if ( xaccFreqSpecGetWeekly( subFS,
                                                             &weeklyMult,
                                                             &dayOfWeek ) < 0 ) {
-                                        PERR( "Inappropriate FreqSpec type "
-                                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                                              uift, xaccFreqSpecGetUIType( fs ) );
-                                        return;
+                                     g_warning("Inappropriate FreqSpec type [gnc-frequency: %d, FreqSpec: %d]",
+                                               uift, xaccFreqSpecGetUIType( fs ) );
+                                     return;
                                 }
                         } else {
                                 int otherWeeklyMult = -1;
 
                                 if ( subFS == NULL ) {
-                                        PERR( "subFS is null\n" );
-                                        return;
+                                     g_critical("subFS is null");
+                                     return;
                                 }
                                 if ( xaccFreqSpecGetWeekly( subFS,
                                                             &otherWeeklyMult,
                                                             &dayOfWeek ) < 0 ) {
-                                        PERR( "Inappropriate FreqSpec type "
-                                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                                              uift, xaccFreqSpecGetUIType( fs ) );
-                                        return;
+                                     g_warning("Inappropriate FreqSpec type [gnc-frequency: %d, FreqSpec: %d]",
+                                               uift, xaccFreqSpecGetUIType( fs ) );
+                                     return;
                                 }
                                 if ( weeklyMult != otherWeeklyMult ) {
-                                        PERR( "Inconsistent weekly FreqSpec "
-                                              "multipliers seen "
-                                              "[first: %d vs. other: %d]\n",
-                                              weeklyMult, otherWeeklyMult );
-                                        return;
+                                     g_warning("Inconsistent weekly FreqSpec multipliers seen [first: %d vs. other: %d]",
+                                               weeklyMult, otherWeeklyMult );
+                                     return;
                                 }
                         }
                         if ( dayOfWeek > 6 ) {
-                                PERR( "dayOfWeek > 6 [%d]", dayOfWeek );
-                                return;
+                             g_warning( "dayOfWeek > 6 [%d]", dayOfWeek );
+                             return;
                         }
                         str = CHECKBOX_NAMES[dayOfWeek];
                         o = glade_xml_get_widget( gf->gxml, str );
                         gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(o), TRUE );
                 }
                 o = glade_xml_get_widget( gf->gxml, "weekly_spin" );
+                if (uift == UIFREQ_BI_WEEKLY)
+                    weeklyMult = 2;
                 gtk_spin_button_set_value( GTK_SPIN_BUTTON(o), weeklyMult );
+
+                gtk_notebook_set_current_page( gf->nb, PAGE_WEEKLY);
+                gtk_combo_box_set_active( gf->freqComboBox, PAGE_WEEKLY);
         }
         break;
-        case UIFREQ_BI_WEEKLY:
-                /*  set the initial date...? */
-                break;
         case UIFREQ_SEMI_MONTHLY:
         {
                 GtkWidget *o;
@@ -414,10 +360,9 @@
                 subFS = (FreqSpec*)(g_list_nth( list, 0 )->data);
                 if ( xaccFreqSpecGetMonthly( subFS, &monthlyMult,
                                              &firstDayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
+                     g_warning("Inappropriate FreqSpec type [gnc-frequency: %d, FreqSpec: %d]",
+                               uift, xaccFreqSpecGetUIType( fs ) );
+                     return;
                 }
                 gtk_spin_button_set_value( GTK_SPIN_BUTTON(o), monthlyMult );
                 /*  first date */
@@ -428,206 +373,121 @@
                 o = glade_xml_get_widget( gf->gxml, "semimonthly_second" );
                 if ( xaccFreqSpecGetMonthly( subFS, &monthlyMult,
                                              &secondDayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type\n" );
-                        return;
+                     g_warning( "Inappropriate FreqSpec type" );
+                     return;
                 }
                 gtk_combo_box_set_active( GTK_COMBO_BOX(o), secondDayOfMonth-1 );
+
+                gtk_notebook_set_current_page( gf->nb, PAGE_SEMI_MONTHLY);
+                gtk_combo_box_set_active( gf->freqComboBox, PAGE_SEMI_MONTHLY);
         }
         break;
         case UIFREQ_MONTHLY:
+        case UIFREQ_QUARTERLY:
+        case UIFREQ_TRI_ANUALLY:
+        case UIFREQ_SEMI_YEARLY:
+        case UIFREQ_YEARLY:
         {
                 GtkWidget *o;
                 int monthlyMult, dayOfMonth, monthOffset;
 
                 if ( xaccFreqSpecGetMonthly( fs, &monthlyMult,
                                              &dayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
+                     g_warning("Inappropriate FreqSpec type [gnc-frequency: %d, FreqSpec: %d]",
+                               uift, xaccFreqSpecGetUIType( fs ) );
+                     return;
                 }
                 o = glade_xml_get_widget( gf->gxml, "monthly_spin" );
                 gtk_spin_button_set_value( GTK_SPIN_BUTTON(o), monthlyMult );
                 o = glade_xml_get_widget( gf->gxml, "monthly_day" );
                 gtk_combo_box_set_active( GTK_COMBO_BOX(o), dayOfMonth-1 );
                 /*  set the day-of-month */
-        }
-        break;
-        case UIFREQ_QUARTERLY:
-        {
-                int monthlyMult, dayOfMonth, monthOffset;
 
-                if ( xaccFreqSpecGetMonthly( fs, &monthlyMult,
-                                             &dayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
-                }
-                if ( monthlyMult != 3 ) {
-                        PERR( "monthly multiplier != 3 [=%d]", monthlyMult );
-                        return;
-                }
-                year_range_menu_helper( glade_xml_get_widget( gf->gxml,
-                                                              "quarterly_day" ),
-                                        glade_xml_get_widget( gf->gxml,
-                                                              "quarterly_occur" ),
-                                        3, gnc_date_edit_get_date( gf->startDate ) );
+                gtk_notebook_set_current_page( gf->nb, PAGE_MONTHLY);
+                gtk_combo_box_set_active( gf->freqComboBox, PAGE_MONTHLY);
         }
         break;
-        case UIFREQ_TRI_ANUALLY:
-        {
-                int monthlyMult, dayOfMonth, monthOffset;
-
-                if ( xaccFreqSpecGetMonthly( fs, &monthlyMult,
-                                             &dayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
-                }
-                if ( monthlyMult != 4 ) {
-                        PERR( "Month-multiplier != 4 [=%d]", monthlyMult );
-                        return;
-                }
-                year_range_menu_helper( glade_xml_get_widget( gf->gxml,
-                                                              "triyearly_day" ),
-                                        glade_xml_get_widget( gf->gxml,
-                                                              "triyearly_occur" ),
-                                        4, gnc_date_edit_get_date( gf->startDate ) );
-        }
-        break;
-        case UIFREQ_SEMI_YEARLY:
-        {
-                int monthlyMult, dayOfMonth, monthOffset;
-
-                if ( xaccFreqSpecGetMonthly( fs, &monthlyMult,
-                                             &dayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
-                }
-                if ( monthlyMult != 6 ) {
-                        PERR( "month-mult != 6 [=%d]", monthlyMult );
-                        return;
-                }
-                year_range_menu_helper( glade_xml_get_widget( gf->gxml,
-                                                              "semiyearly_day" ),
-                                        glade_xml_get_widget( gf->gxml,
-                                                              "semiyearly_occur" ),
-                                        6, gnc_date_edit_get_date( gf->startDate ) );
-        }
-        break;
-        case UIFREQ_YEARLY:
-        {
-                GtkWidget *o;
-                int monthlyMult, dayOfMonth, monthOffset;
-
-                if ( xaccFreqSpecGetMonthly( fs, &monthlyMult,
-                                             &dayOfMonth, &monthOffset ) < 0 ) {
-                        PERR( "Inappropriate FreqSpec type "
-                              "[gnc-frequency: %d, FreqSpec: %d]\n",
-                              uift, xaccFreqSpecGetUIType( fs ) );
-                        return;
-                }
-                if ( (monthlyMult % 12) != 0) {
-                        PERR( "monthly-mult %% 12 != 0 [=%d]", ( monthlyMult % 12 ) );
-                        return;
-                }
-
-                /* set the mult */
-                o = glade_xml_get_widget( gf->gxml, "yearly_spin" );
-                gtk_spin_button_set_value( GTK_SPIN_BUTTON(o),
-                                           (int)rint(floor(monthlyMult / 12)) );
-                o = glade_xml_get_widget( gf->gxml, "yearly_month" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o), monthOffset );
-                o = glade_xml_get_widget( gf->gxml, "yearly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o), dayOfMonth-1 );
-        }
-        break;
         default:
-                PERR( "unknown ui freq type %d [%d, %s]\n",
-                      uift, __LINE__, __FILE__ );
-                break;
+             g_critical( "unknown ui freq type %d", uift);
+             break;
         }
 
         g_signal_emit_by_name( gf, "changed" );
 }
 
-void
-gnc_frequency_setup_default( GNCFrequency *gf, FreqSpec *fs, GDate *date )
+static void
+gnc_frequency_setup_default( GncFrequency *gf, FreqSpec *fs, GDate *date )
 {
-   time_t secs;
+    time_t secs;
 
-   /* If no freq-spec, then set the widget to blank */
-   if (NULL == fs)
-   {
-      UIFreqType uift = UIFREQ_NONE;
-      int i, page;
+    /* If no freq-spec, then set the widget to blank */
+    if (NULL == fs)
+    {
+        UIFreqType uift = UIFREQ_NONE;
+        int i, page;
 
-      page = -1;
-      for ( i=0; i < UIFREQ_NUM_UI_FREQSPECS+1; i++ ) 
-      {
-         if ( PAGES[i].uiFTVal == uift ) 
-         {
-             page = PAGES[i].idx;
-             break;
-         }
-      }
-      g_assert( page != -1 );
+        page = -1;
+        for ( i=0; i < UIFREQ_NUM_UI_FREQSPECS+1; i++ ) 
+        {
+            if ( PAGES[i].uiFTVal == uift ) 
+            {
+                page = PAGES[i].idx;
+                break;
+            }
+        }
+        g_assert( page != -1 );
    
-      gtk_notebook_set_current_page( gf->nb, page );
-      gtk_combo_box_set_active( gf->freqComboBox, page );
-   }
+        gtk_notebook_set_current_page( gf->nb, page );
+        gtk_combo_box_set_active( gf->freqComboBox, page );
+    }
 
-   /* Setup the start date */
-   if (!date ||  ! g_date_valid(date) ) 
-   {
-      secs = time(NULL);
-   } 
-   else 
-   {
-      struct tm stm;
-      g_date_to_struct_tm( date, &stm);
-      secs = mktime (&stm);
-   }
+    /* Setup the start date */
+    if (!date ||  ! g_date_valid(date) ) 
+    {
+        secs = time(NULL);
+    } 
+    else 
+    {
+        struct tm stm;
+        g_date_to_struct_tm( date, &stm);
+        secs = mktime (&stm);
+    }
  
-   do_frequency_setup(gf, fs, &secs);
+    do_frequency_setup(gf, fs, &secs);
 }
 
 void
-gnc_frequency_setup( GNCFrequency *gf, FreqSpec *fs, GDate *date )
+gnc_frequency_setup( GncFrequency *gf, FreqSpec *fs, GDate *date )
 {
-   time_t secs;
+    time_t secs;
 
-   if (!gf) return;
+    if (!gf) return;
 
-   /* Setup the start date */
-   if (!date ||  ! g_date_valid(date) ) 
-   {
-      do_frequency_setup(gf, fs, NULL);
-   } 
-   else 
-   {
-      struct tm stm;
-      g_date_to_struct_tm( date, &stm);
-      secs = mktime (&stm);
-      do_frequency_setup(gf, fs, &secs);
-   }
+    /* Setup the start date */
+    if (!date || !g_date_valid(date)) 
+    {
+        do_frequency_setup(gf, fs, NULL);
+    } 
+    else 
+    {
+        struct tm stm;
+        g_date_to_struct_tm( date, &stm);
+        secs = mktime (&stm);
+        do_frequency_setup(gf, fs, &secs);
+    }
 }
 
 GtkWidget *
 gnc_frequency_new( FreqSpec *fs, GDate *date )
 {
-        GNCFrequency  *toRet;
+        GncFrequency  *toRet;
         toRet = g_object_new( gnc_frequency_get_type(), NULL );
         gnc_frequency_setup_default( toRet, fs, date );
         return GTK_WIDGET(toRet);
 }
 
 void
-gnc_frequency_save_state( GNCFrequency *gf, FreqSpec *fs, GDate *outDate )
+gnc_frequency_save_state( GncFrequency *gf, FreqSpec *fs, GDate *outDate )
 {
         gint page;
         gint day;
@@ -637,12 +497,12 @@
         gint tmpInt;
         int i;
         GDate gd;
-        time_t tmpTimeT;
+        time_t start_tt;
 
-        tmpTimeT = gnc_date_edit_get_date( gf->startDate );
+        start_tt = gnc_date_edit_get_date( gf->startDate );
         if ( NULL != outDate ) 
         {
-                g_date_set_time_t( outDate, tmpTimeT );
+                g_date_set_time_t( outDate, start_tt );
         }
 
         if (NULL == fs) return;
@@ -655,7 +515,7 @@
         gnc_suspend_gui_refresh();
 
         g_date_clear (&gd, 1);
-        g_date_set_time_t( &gd, tmpTimeT );
+        g_date_set_time_t( &gd, start_tt );
 
         /*uift = xaccFreqSpecGetUIType( fs );*/
         uift = PAGES[page].uiFTVal;
@@ -663,9 +523,11 @@
         /* Based on value, parse widget values into FreqSpec */
         switch ( uift ) {
         case UIFREQ_NONE:
-                /* hmmm... shouldn't really be allowed. */
+                xaccFreqSpecSetNone(fs);
+                xaccFreqSpecSetUIType(fs, UIFREQ_NONE);
                 break;
         case UIFREQ_ONCE:
+                xaccFreqSpecSetOnceDate(fs, &gd);
                 xaccFreqSpecSetUIType( fs, uift );
                 break;
         case UIFREQ_DAILY:
@@ -679,31 +541,6 @@
                         xaccFreqSpecSetUIType( fs, uift );
                 }
                 break;
-        case UIFREQ_DAILY_MF:
-                xaccFreqSpecSetComposite( fs );
-                xaccFreqSpecSetUIType( fs, uift );
-                o = glade_xml_get_widget( gf->gxml, "dailymf_spin" );
-                tmpInt = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(o) );
-                /*  Okay.  Assume that the calendar is upgraded to */
-                /*  support selecting weeks, returning the Sunday selected. */
-                /*  Normalize to sunday. */
-                {
-                        struct tm stm;
-                        g_date_to_struct_tm( &gd, &stm );
-                        /*  month-day += (week-day - current-week-day ) % 7 */
-                        /*  week-day <- 0 */
-                        stm.tm_mday -= ( stm.tm_wday ) % 7;
-                        g_date_set_time_t( &gd, mktime(&stm) );
-                }
-
-                /*  1 == "mon", 5 == "fri" */
-                for ( i=1; i<6; i++ ) {
-                        g_date_add_days( &gd, 1 );
-                        tmpFS = xaccFreqSpecMalloc(gnc_get_current_book ());
-                        xaccFreqSpecSetWeekly( tmpFS, &gd, tmpInt );
-                        xaccFreqSpecCompositeAdd( fs, tmpFS );
-                }
-                break;
         case UIFREQ_WEEKLY:
         {
                 struct tm stm;
@@ -738,11 +575,6 @@
                 }
                 break;
         }
-        case UIFREQ_BI_WEEKLY:
-                xaccFreqSpecSetUIType( fs, uift );
-                o = glade_xml_get_widget( gf->gxml, "biweekly_cal" );
-                xaccFreqSpecSetWeekly( fs, &gd, 2 );
-                break;
         case UIFREQ_SEMI_MONTHLY:
         {
                 struct tm stm;
@@ -755,6 +587,11 @@
 
                 o = glade_xml_get_widget( gf->gxml, "semimonthly_first" );
                 day = gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1;
+                if (day > 30)
+                {
+                    g_critical("freq spec doesn't support last-day-of-month");
+                    day = 30;
+                }
                 tmpFS = xaccFreqSpecMalloc(gnc_get_current_book ());
                 g_date_to_struct_tm( &gd, &stm);
                 if ( day >= stm.tm_mday ) {
@@ -769,9 +606,14 @@
 
                 o = glade_xml_get_widget( gf->gxml, "semimonthly_second" );
                 day = gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1;
+                if (day > 30)
+                {
+                    g_critical("freq spec doesn't support last-day-of-month");
+                    day = 30;
+                }
                 tmpFS = xaccFreqSpecMalloc(gnc_get_current_book ());
-                tmpTimeT = gnc_date_edit_get_date( gf->startDate );
-                g_date_set_time_t( &gd, tmpTimeT );
+                start_tt = gnc_date_edit_get_date( gf->startDate );
+                g_date_set_time_t( &gd, start_tt );
                 g_date_to_struct_tm( &gd, &stm);
                 if ( day >= stm.tm_mday ) {
                         /* next month */
@@ -787,41 +629,31 @@
         }
         case UIFREQ_MONTHLY:
         {
-                struct tm stm;
                 o = glade_xml_get_widget( gf->gxml, "monthly_spin" );
                 tmpInt = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(o));
-                g_date_to_struct_tm( &gd, &stm);
 
                 o = glade_xml_get_widget( gf->gxml, "monthly_day" );
                 day = gtk_combo_box_get_active( GTK_COMBO_BOX(o) ) + 1;
-                stm.tm_mday = day;
-                g_date_set_time_t( &gd, mktime( &stm ) );
+                if (day > 30)
+                {
+                    g_critical("freq spec doesn't support last-day-of-month");
+                    day = 30;
+                }
+                g_date_set_time_t(&gd, time(NULL));
+                g_date_set_month(&gd, 1);
+                g_date_set_day(&gd, day);
+                {
+                     gchar buf[128];
+                     g_date_strftime(buf, 127, "%c", &gd);
+                     g_debug("monthly date [%s]\n", buf);
+                }
                 xaccFreqSpecSetMonthly( fs, &gd, tmpInt );
                 xaccFreqSpecSetUIType( fs, uift );
                 break;
         }
-        case UIFREQ_QUARTERLY:
-                xaccFreqSpecSetMonthly( fs, &gd, 3 );
-                xaccFreqSpecSetUIType( fs, uift );
-                break;
-        case UIFREQ_TRI_ANUALLY:
-                xaccFreqSpecSetMonthly( fs, &gd, 4 );
-                xaccFreqSpecSetUIType( fs, uift );
-                break;
-        case UIFREQ_SEMI_YEARLY:
-                xaccFreqSpecSetMonthly( fs, &gd, 6 );
-                xaccFreqSpecSetUIType( fs, uift );
-                break;
-        case UIFREQ_YEARLY:
-                o = glade_xml_get_widget( gf->gxml, "yearly_spin" );
-                tmpInt = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(o) );
-                xaccFreqSpecSetMonthly( fs, &gd, tmpInt * 12 );
-                xaccFreqSpecSetUIType( fs, uift );
-                break;
         default:
-                PERR( "Unknown UIFreqType %d [%d, %s]\n",
-                      uift, __LINE__, __FILE__ );
-                break;
+             g_critical("Unknown UIFreqType %d", uift);
+             break;
         }
         gnc_resume_gui_refresh();
 }
@@ -829,374 +661,351 @@
 static void
 spin_changed_helper( GtkAdjustment *adj, gpointer d )
 {
-        g_signal_emit_by_name( GNC_FREQUENCY(d), "changed" );
+        g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
 }
 
 static void
 weekly_days_changed( GtkButton *b, gpointer d )
 {
-        GNCFrequency *gf;
-
-        gf = GNC_FREQUENCY(d);
-        g_signal_emit_by_name( gf, "changed" );
+        g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
 }
 
 static void
 monthly_sel_changed( GtkButton *b, gpointer d )
 {
-        GNCFrequency  *gf;
-        GtkWidget  *o;
-        guint    dayOfMonth;
-        struct tm  *tmptm;
-        time_t    tmptt;
-  
-        gf = (GNCFrequency*)d;
-
-        o = glade_xml_get_widget( ((GNCFrequency*)d)->gxml,
-                                  "monthly_day" );
-        dayOfMonth = gtk_combo_box_get_active( GTK_COMBO_BOX(o) ) + 1;
-
-        tmptt = gnc_date_edit_get_date( gf->startDate );
-        tmptm = localtime( &tmptt );
-        while ( ! g_date_valid_dmy( dayOfMonth,
-                                    tmptm->tm_mon + 1,
-                                    tmptm->tm_year+1900 ) ) {
-                dayOfMonth -= 1;
-        }
-        tmptm->tm_mday = dayOfMonth;
-        tmptt = mktime( tmptm );
-        gnc_date_edit_set_time( gf->startDate, tmptt );
-
-        g_signal_emit_by_name( d, "changed" );
+        g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
 }
 
 static void
 semimonthly_sel_changed( GtkButton *b, gpointer d )
 {
-        GNCFrequency  *gf;
-        GtkWidget  *o;
-        gint    tmpint;
-        time_t    tmptt;
-        struct tm  *tmptm;
+        g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
+}
 
-        gf = (GNCFrequency*)d;
+static inline guint32 minn( guint32 a, guint32 b )
+{
+        return a > b ? b : a;
+}
 
-        tmptt = gnc_date_edit_get_date( gf->startDate );
-        tmptm = localtime( &tmptt );
+static inline guint32 maxn( guint32 a, guint32 b )
+{
+        return a > b ? a : b;
+}
 
-        o = glade_xml_get_widget( gf->gxml, "semimonthly_first" );
-        tmpint = gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1;
-        o = glade_xml_get_widget( gf->gxml, "semimonthly_second" );
-        if ( tmpint > gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1 ) {
-                tmpint = gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1;
-        }
+static void
+freq_combo_changed(GtkComboBox *b, gpointer d)
+{
+        GncFrequency *gf = GNC_FREQUENCY(d);
+        int option_index;
 
-        tmptm->tm_mday = tmpint;
-        while ( ! g_date_valid_dmy( tmptm->tm_mday,
-                                    tmptm->tm_mon+1,
-                                    tmptm->tm_year+1900 ) ) {
-                tmptm->tm_mday -= 1;
-        }
-        tmptt = mktime( tmptm );
-        gnc_date_edit_set_time( gf->startDate, tmptt );
-
-        g_signal_emit_by_name( gf, "changed" );
+        /* Set the new page. */
+        option_index = gtk_combo_box_get_active(GTK_COMBO_BOX(gf->freqComboBox));
+        gtk_notebook_set_current_page(gf->nb, option_index);
+        g_signal_emit_by_name(gf, "changed");
 }
 
 static void
-quarterly_sel_changed( GtkButton *b, gpointer d )
+start_date_changed( GNCDateEdit *gde, gpointer d )
 {
-        GNCFrequency *gf;
-        gf = (GNCFrequency*)d;
-        year_range_sels_changed( gf, 3,
-                                 glade_xml_get_widget( gf->gxml, "quarterly_occur" ),
-                                 glade_xml_get_widget( gf->gxml, "quarterly_day" ) );
+        g_signal_emit_by_name(GNC_FREQUENCY(d), "changed");
 }
 
-static void
-triyearly_sel_changed( GtkButton *b, gpointer d )
+/* ================================================================= */
+/* Relabel some of the labels */
+
+void 
+gnc_frequency_set_frequency_label_text(GncFrequency *gf, const gchar *txt)
 {
-        GNCFrequency *gf;
-        gf = (GNCFrequency*)d;
-        year_range_sels_changed( gf, 4,
-                                 glade_xml_get_widget( gf->gxml, "triyearly_occur" ),
-                                 glade_xml_get_widget( gf->gxml, "triyearly_day" ) );
+    GtkLabel *lbl;
+    if (!gf || !txt) return;
+    lbl = GTK_LABEL (glade_xml_get_widget (gf->gxml, "freq label"));
+    gtk_label_set_text (lbl, txt);
 }
 
-static void
-semiyearly_sel_changed( GtkButton *b, gpointer d )
+void 
+gnc_frequency_set_date_label_text(GncFrequency *gf, const gchar *txt)
 {
-        GNCFrequency *gf;
-        gf = (GNCFrequency*)d;
-        year_range_sels_changed( gf, 6,
-                                 glade_xml_get_widget( gf->gxml, "semiyearly_occur" ),
-                                 glade_xml_get_widget( gf->gxml, "semiyearly_day" ) );
+    GtkLabel *lbl;
+    if (!gf || !txt) return;
+    lbl = GTK_LABEL (glade_xml_get_widget (gf->gxml, "startdate label"));
+    gtk_label_set_text (lbl, txt);
 }
 
+
+GtkWidget*
+gnc_frequency_new_from_recurrence(GList *recurrences, GDate *start_date)
+{
+    GncFrequency *toRet;
+    toRet = g_object_new(gnc_frequency_get_type(), NULL);
+    gnc_frequency_setup_recurrence(toRet, recurrences, start_date);
+    return GTK_WIDGET(toRet);
+}
+
 static void
-year_range_sels_changed( GNCFrequency *gf,
-                         int monthsInRange,
-                         GtkWidget *occurW,
-                         GtkWidget *dayOfMonthW )
+_setup_weekly_recurrence(GncFrequency *gf, Recurrence *r)
 {
-        int occur, day;
-        time_t tmpTT;
-        struct tm *tmpTm;
+    GDate recurrence_date;
+    GDateWeekday day_of_week;
+    guint multiplier = recurrenceGetMultiplier(r);
+    const char *checkbox_widget_name;
+    GtkWidget *weekday_checkbox;
 
-        occur = gtk_combo_box_get_active( GTK_COMBO_BOX(occurW) );
-        day = gtk_combo_box_get_active( GTK_COMBO_BOX(dayOfMonthW) ) + 1;
+    GtkWidget *multipler_spin = glade_xml_get_widget(gf->gxml, "weekly_spin");
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(multipler_spin), multiplier);
 
-        tmpTT = gnc_date_edit_get_date( gf->startDate );
-        tmpTm = localtime( &tmpTT );
-        tmpTm->tm_mday = day;
-        // jump the month to the closest appropriate month.
-        // FIXME: this could probably be made more "appropriate".
-        tmpTm->tm_mon += occur - (tmpTm->tm_mon % monthsInRange);
-        tmpTT = mktime( tmpTm );
-        gnc_date_edit_set_time( gf->startDate, tmpTT );
+    recurrence_date = recurrenceGetDate(r);
+    day_of_week = g_date_get_weekday(&recurrence_date);
+    g_assert(day_of_week >= G_DATE_MONDAY && day_of_week <= G_DATE_SUNDAY);
+    // this `mod 7' is explicit knowledge of the values of (monday=1)-based
+    // GDateWeekday, vs. our (sunday=0)-based checkbox names array.
+    checkbox_widget_name = CHECKBOX_NAMES[day_of_week % 7];
+    weekday_checkbox = glade_xml_get_widget(gf->gxml, checkbox_widget_name);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(weekday_checkbox), TRUE);
+}
 
-        g_signal_emit_by_name( gf, "changed" );
+static int
+_get_monthly_combobox_index(Recurrence *r)
+{
+    GDate recurrence_date = recurrenceGetDate(r);
+    int day_of_month_index = g_date_get_day(&recurrence_date) - 1;
+    if (recurrenceGetPeriodType(r) == PERIOD_LAST_WEEKDAY)
+    {
+        gint last_day_of_month_list_offset = 30;
+        day_of_month_index
+            = last_day_of_month_list_offset
+            + g_date_get_weekday(&recurrence_date);
+    }
+    return day_of_month_index;
 }
 
-static void
-yearly_sel_changed( GtkButton *b, gpointer d )
+void
+gnc_frequency_setup_recurrence(GncFrequency *gf, GList *recurrences, GDate *start_date)
 {
-        GNCFrequency  *gf;
-        GtkWidget  *o;
-        time_t    tmptt;
-        struct tm  *tmptm;
+     gboolean made_changes = FALSE;
 
-        gf = (GNCFrequency*)d;
+     // setup start-date, if present
+     if (start_date != NULL
+         && g_date_valid(start_date))
+     {
+          gnc_date_edit_set_gdate(gf->startDate, start_date);
+          made_changes = TRUE;
+     }
 
-        tmptt = gnc_date_edit_get_date( gf->startDate );
-        tmptm = localtime( &tmptt );
+     if (recurrences == NULL)
+     {
+          goto maybe_signal;
+          // return...
+     }
 
-        o = glade_xml_get_widget( gf->gxml, "yearly_month" );
-        tmptm->tm_mon = gtk_combo_box_get_active( GTK_COMBO_BOX(o) );
-        o = glade_xml_get_widget( gf->gxml, "yearly_day" );
-        tmptm->tm_mday = gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1;
+     if (g_list_length(recurrences) > 1)
+     {
+         if (recurrenceListIsWeeklyMultiple(recurrences))
+         {
+             for (; recurrences != NULL; recurrences = recurrences->next)
+             {
+                 _setup_weekly_recurrence(gf, (Recurrence*)recurrences->data);
+             }
 
-        /* FIXME: correct for
-           option_menu_selected_day > min(31,correct_days_in_month)
-           problem */
-        while ( ! g_date_valid_dmy( tmptm->tm_mday,
-                                    tmptm->tm_mon+1,
-                                    tmptm->tm_year+1900 ) ) {
-                tmptm->tm_mday -= 1;
-        }
+             gtk_notebook_set_current_page(gf->nb, PAGE_WEEKLY);
+             gtk_combo_box_set_active(gf->freqComboBox, PAGE_WEEKLY);
+         }
+         else if (recurrenceListIsSemiMonthly(recurrences))
+         {
+             Recurrence *first, *second;
+             GtkWidget *multiplier_spin;
+             GtkWidget *dom_combobox;
 
-        tmptt = mktime( tmptm );
-        gnc_date_edit_set_time( gf->startDate, tmptt );
+             first = (Recurrence*)g_list_nth_data(recurrences, 0);
+             second = (Recurrence*)g_list_nth_data(recurrences, 1);
 
-        g_signal_emit_by_name( gf, "changed" );
-}
+             multiplier_spin = glade_xml_get_widget(gf->gxml, "semimonthly_spin");
+             gtk_spin_button_set_value(GTK_SPIN_BUTTON(multiplier_spin), recurrenceGetMultiplier(first));
 
-static inline guint32 min( guint32 a, guint32 b )
-{
-        return a > b ? b : a;
-}
+             dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_first");
+             gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), _get_monthly_combobox_index(first));
+             dom_combobox = glade_xml_get_widget(gf->gxml, "semimonthly_second");
+             gtk_combo_box_set_active(GTK_COMBO_BOX(dom_combobox), _get_monthly_combobox_index(second));
 
-static inline guint32 max( guint32 a, guint32 b )
-{
-        return a > b ? a : b;
-}
+             gtk_notebook_set_current_page(gf->nb, PAGE_SEMI_MONTHLY);
+             gtk_combo_box_set_active(gf->freqComboBox, PAGE_SEMI_MONTHLY);
+         }
+         else
+         {
+             g_error("unknown composite recurrence with [%d] entries", g_list_length(recurrences));
+         }
+     }
+     else
+     {
+         Recurrence *r = (Recurrence*)recurrences->data;
+         g_debug("recurrence period [%d]", recurrenceGetPeriodType(r));
+         switch (recurrenceGetPeriodType(r))
+         {
+         case PERIOD_ONCE: {
+             GDate recurrence_date = recurrenceGetDate(r);
+             if (g_date_compare(start_date, &recurrence_date) != 0)
+             {
+                 char start_date_str[128], recur_date_str[128];
+                 g_date_strftime(start_date_str, 127, "%x", start_date);
+                 g_date_strftime(recur_date_str, 127, "%x", &recurrence_date);
+                 g_critical("start_date [%s] != recurrence_date [%s]", start_date_str, recur_date_str);
+             }
 
-static void
-freq_combo_changed( GtkComboBox *b, gpointer d )
-{
-        GNCFrequency *gf = (GNCFrequency*)d;
-        int optIdx;
-        UIFreqType uift;
-        time_t startDate, tmpDate;
-        struct tm *tmpTm;
-        GtkWidget *o;
+             gtk_notebook_set_current_page(gf->nb, PAGE_ONCE);
+             gtk_combo_box_set_active(gf->freqComboBox, PAGE_ONCE);
+         } break;
+         case PERIOD_DAY: {
+             guint multiplier;
+             GtkWidget *spin_button;
 
-        /* Set the new page. */
-        optIdx = gtk_combo_box_get_active( GTK_COMBO_BOX(((GNCFrequency*)d)->freqComboBox) );
-        gtk_notebook_set_current_page( ((GNCFrequency*)d)->nb, optIdx );
+             multiplier = recurrenceGetMultiplier(r);
+             spin_button = glade_xml_get_widget(gf->gxml, "daily_spin");
+             gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_button), multiplier);
+             made_changes = TRUE;
 
-        /* setup initial values for new page, as possible. */
-        uift = PAGES[optIdx].uiFTVal;
-        startDate = gnc_date_edit_get_date( gf->startDate );
-        tmpTm = localtime( &startDate );
+             gtk_notebook_set_current_page(gf->nb, PAGE_DAILY);
+             gtk_combo_box_set_active(gf->freqComboBox, PAGE_DAILY);
+         } break;
+         case PERIOD_WEEK: {
+             _setup_weekly_recurrence(gf, r);
+             gtk_notebook_set_current_page(gf->nb, PAGE_WEEKLY);
+             gtk_combo_box_set_active(gf->freqComboBox, PAGE_WEEKLY);
+         } break;
+         case PERIOD_END_OF_MONTH:
+         case PERIOD_MONTH:
+         case PERIOD_YEAR:
+         case PERIOD_LAST_WEEKDAY: {
+             guint multiplier;
+             GtkWidget *multipler_spin, *day_of_month;
+             
+             multipler_spin = glade_xml_get_widget(gf->gxml, "monthly_spin");
+             multiplier = recurrenceGetMultiplier(r);
+             if (recurrenceGetPeriodType(r) == PERIOD_YEAR)
+                 multiplier *= 12;
+             gtk_spin_button_set_value(GTK_SPIN_BUTTON(multipler_spin), multiplier);
 
-        switch ( uift ) {
-        case UIFREQ_SEMI_MONTHLY:
-        {
-                gint tmpDayOfMonth;
-                /* first on the <startdate_dom>, then on the <startdate_dom+2w> */
-                o = glade_xml_get_widget( gf->gxml, "semimonthly_first" );
-                tmpDayOfMonth = tmpTm->tm_mday;
-                tmpTm->tm_mday += 14;
-                tmpDate = mktime( tmpTm );
-                tmpTm = localtime( &tmpDate );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  min( tmpTm->tm_mday, tmpDayOfMonth ) - 1 );
-                o = glade_xml_get_widget( gf->gxml, "semimonthly_second" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  max( tmpTm->tm_mday, tmpDayOfMonth ) - 1 );
-        }
-        break;
-        case UIFREQ_MONTHLY:
-                /* on the <startdate_dom> */
-                o = glade_xml_get_widget( gf->gxml, "monthly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mday - 1 );
-                break;
-        case UIFREQ_QUARTERLY:
-                /* on the <startdate_dom> */
-                o = glade_xml_get_widget( gf->gxml, "quarterly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mday - 1 );
-                break;
-        case UIFREQ_TRI_ANUALLY:
-                /* on the <startdate_dom> */
-                o = glade_xml_get_widget( gf->gxml, "triyearly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mday - 1 );
-                break;
-        case UIFREQ_SEMI_YEARLY:
-                /* on the <startdate_dom> */
-                o = glade_xml_get_widget( gf->gxml, "semiyearly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mday - 1 );
-                break;
-        case UIFREQ_YEARLY:
-                /* on the <startdate_mon>, <startdate_dom> */
-                o = glade_xml_get_widget( gf->gxml, "yearly_month" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mon );
-                o = glade_xml_get_widget( gf->gxml, "yearly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mday - 1 );
-                break;
-        default:
-                /* nuttin can be done, for whatever reason. */
-                break;
-        }
-        g_signal_emit_by_name( gf, "changed" );
+             day_of_month = glade_xml_get_widget(gf->gxml, "monthly_day");
+             
+             gtk_combo_box_set_active(GTK_COMBO_BOX(day_of_month), _get_monthly_combobox_index(r));
+             gtk_notebook_set_current_page(gf->nb, PAGE_MONTHLY);
+             gtk_combo_box_set_active(gf->freqComboBox, PAGE_MONTHLY);
+         } break; 
+         case PERIOD_NTH_WEEKDAY:
+             g_critical("unhandled period type [%d]", recurrenceGetPeriodType(r));
+             break;
+         default:
+             g_error("unknown recurrence period type [%d]", recurrenceGetPeriodType(r));
+             break;
+         }
+     }
+
+maybe_signal:
+     if (made_changes)
+          g_signal_emit_by_name(gf, "changed");
 }
 
-static void
-year_range_menu_helper( GtkWidget *dayOptMenu,
-                        GtkWidget *occurOptMenu,
-                        gint monthsInRange,
-                        time_t startDate )
+static gint
+_get_multiplier_from_widget(GncFrequency *gf, char *widget_name)
 {
-        struct tm  *tmpTm;
-        tmpTm = localtime( &startDate );
-        gtk_combo_box_set_active( GTK_COMBO_BOX(occurOptMenu),
-				  tmpTm->tm_mon % monthsInRange );
-        gtk_combo_box_set_active( GTK_COMBO_BOX(dayOptMenu),
-				   tmpTm->tm_mday - 1 );
+    GtkWidget *multiplier_spin;
+    multiplier_spin = glade_xml_get_widget(gf->gxml, widget_name);
+    return gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(multiplier_spin));
 }
 
-static void
-start_date_changed( GNCDateEdit *gde, gpointer d )
+static Recurrence*
+_get_day_of_month_recurrence(GncFrequency *gf, GDate *start_date, int multiplier, char *combo_name)
 {
-        GNCFrequency  *gf;
-        GtkWidget  *o;
-        struct tm  *tmpTm;
-        time_t    dateFromGDE;
-        gint    page;
-        UIFreqType  uift;
-  
-        gf = (GNCFrequency*)d;
+    Recurrence *r;
+    GtkWidget *day_of_month_combo = glade_xml_get_widget(gf->gxml, combo_name);
+    int day_of_month_index = gtk_combo_box_get_active(GTK_COMBO_BOX(day_of_month_combo));
+        
+    r = g_new0(Recurrence, 1);
+    if (day_of_month_index > 30)
+    {
+        GDate *day_of_week_date = g_date_new_julian(g_date_get_julian(start_date));
+        // increment until we align on the DOW, but stay inside the month
+        g_date_set_day(day_of_week_date, 1);
+        while (g_date_get_weekday(day_of_week_date) != (day_of_month_index - 30))
+            g_date_add_days(day_of_week_date, 1);
+        recurrenceSet(r, multiplier, PERIOD_LAST_WEEKDAY, day_of_week_date);
+    }
+    else
+    {
+        int month_with_31_days = 1; // january
+        GDate *day_of_month = g_date_new_julian(g_date_get_julian(start_date));
+        g_date_set_month(day_of_month, month_with_31_days);
+        g_date_set_day(day_of_month, day_of_month_index + 1);
+        recurrenceSet(r, multiplier, PERIOD_MONTH, day_of_month);
+    }
+    return r;
+}
 
-        dateFromGDE = gnc_date_edit_get_date( gde );
+void
+gnc_frequency_save_to_recurrence(GncFrequency *gf, GList **recurrences, GDate *out_start_date)
+{
+    GDate start_date;
+    gint page_index;
 
-        page = gtk_notebook_get_current_page( gf->nb );
-        uift = PAGES[page].uiFTVal;
+    gnc_date_edit_get_gdate(gf->startDate, &start_date);
+    if (out_start_date != NULL)
+        *out_start_date = start_date;
 
-        o = NULL;
+    if (recurrences == NULL)
+        return;
 
-        switch (uift) {
-        case UIFREQ_ONCE:      /* FALLTHROUGH */
-        case UIFREQ_DAILY:     /* FALLTHROUGH */
-        case UIFREQ_DAILY_MF:  /* FALLTHROUGH */
-        case UIFREQ_WEEKLY:    /* FALLTHROUGH */
-        case UIFREQ_BI_WEEKLY:
-                break;
+    page_index = gtk_notebook_get_current_page(gf->nb);
 
-        case UIFREQ_SEMI_MONTHLY:
+    switch (page_index)
+    {
+    case PAGE_NONE: {
+        // empty-recurrence list ~~ none.
+    } break;
+    case PAGE_ONCE: {
+        Recurrence *r = g_new0(Recurrence, 1);
+        recurrenceSet(r, 1, PERIOD_ONCE, &start_date);
+        *recurrences = g_list_append(*recurrences, r);
+    } break;
+    case PAGE_DAILY: {
+        gint multiplier = _get_multiplier_from_widget(gf, "daily_spin");
+        Recurrence *r = g_new0(Recurrence, 1);
+        recurrenceSet(r, multiplier, PERIOD_DAY, &start_date);
+        *recurrences = g_list_append(*recurrences, r);
+    } break;
+    case PAGE_WEEKLY: {
+        int multiplier = _get_multiplier_from_widget(gf, "weekly_spin");
+        int checkbox_idx;
+        for (checkbox_idx = 0; CHECKBOX_NAMES[checkbox_idx] != NULL; checkbox_idx++)
         {
-                gint first_day;
-                o = glade_xml_get_widget( gf->gxml, "semimonthly_first" );
-                first_day = gtk_combo_box_get_active( GTK_COMBO_BOX(o) )+1;
-                o = glade_xml_get_widget( gf->gxml, "semimonthly_second" );
-                if ( first_day < gtk_combo_box_get_active(
-                             GTK_COMBO_BOX(o) )+1 ) {
-                        o = glade_xml_get_widget( gf->gxml,
-                                                  "semimonthly_first" );
-                }
+            GDate *day_of_week_aligned_date;
+            Recurrence *r;
+            const char *day_widget_name = CHECKBOX_NAMES[checkbox_idx];
+            GtkWidget *weekday_checkbox = glade_xml_get_widget(gf->gxml, day_widget_name);
 
-                tmpTm = localtime( &dateFromGDE );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-                                             tmpTm->tm_mday-1 );
+            if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(weekday_checkbox)))
+                continue;
+
+            day_of_week_aligned_date = g_date_new_julian(g_date_get_julian(&start_date));
+            // increment until we align on the DOW.
+            while ((g_date_get_weekday(day_of_week_aligned_date) % 7) != checkbox_idx)
+                g_date_add_days(day_of_week_aligned_date, 1);
+
+            r = g_new0(Recurrence, 1);
+            recurrenceSet(r, multiplier, PERIOD_WEEK, day_of_week_aligned_date);
+            
+            *recurrences = g_list_append(*recurrences, r);
         }
+    } break;
+    case PAGE_SEMI_MONTHLY: {
+        int multiplier = _get_multiplier_from_widget(gf, "semimonthly_spin");
+        *recurrences = g_list_append(*recurrences, _get_day_of_month_recurrence(gf, &start_date, multiplier, "semimonthly_first"));
+        *recurrences = g_list_append(*recurrences, _get_day_of_month_recurrence(gf, &start_date, multiplier, "semimonthly_second"));
+    } break;
+    case PAGE_MONTHLY: {
+        int multiplier = _get_multiplier_from_widget(gf, "monthly_spin");
+        Recurrence *r = _get_day_of_month_recurrence(gf, &start_date, multiplier, "monthly_day");
+        *recurrences = g_list_append(*recurrences, r);
+    } break;
+    default:
+        g_error("unknown page index [%d]", page_index);
         break;
-        case UIFREQ_MONTHLY:
-                o = glade_xml_get_widget( gf->gxml, "monthly_day" );
-                tmpTm = localtime( &dateFromGDE );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-                                             (tmpTm->tm_mday-1) );
-                break;
-        case UIFREQ_QUARTERLY:
-                year_range_menu_helper( glade_xml_get_widget(
-                                                gf->gxml, "quarterly_day" ),
-                                        glade_xml_get_widget(
-                                                gf->gxml, "quarterly_occur" ),
-                                        3, dateFromGDE );
-                break;
-        case UIFREQ_TRI_ANUALLY:
-                year_range_menu_helper( glade_xml_get_widget(
-                                                gf->gxml, "triyearly_day" ),
-                                        glade_xml_get_widget(
-                                                gf->gxml, "triyearly_occur" ),
-                                        4, dateFromGDE );
-                break;
-        case UIFREQ_SEMI_YEARLY:
-                year_range_menu_helper( glade_xml_get_widget(
-                                                gf->gxml, "semiyearly_day" ),
-                                        glade_xml_get_widget(
-                                                gf->gxml, "semiyearly_occur" ),
-                                        6, dateFromGDE );
-                break;
-        case UIFREQ_YEARLY:
-                o = glade_xml_get_widget( gf->gxml, "yearly_month" );
-                tmpTm = localtime( &dateFromGDE );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mon );
-                o = glade_xml_get_widget( gf->gxml, "yearly_day" );
-                gtk_combo_box_set_active( GTK_COMBO_BOX(o),
-					  tmpTm->tm_mday-1 );
-                break;
-        default:
-                PERR( "unknown uift value %d\n", uift );
-                break;
-        }
-        g_signal_emit_by_name( gf, "changed" );
+    }
 }
-
-/* ================================================================= */
-/* Relabel some of the labels */
-
-void 
-gnc_frequency_set_frequency_label_text (GNCFrequency *gf, const gchar *txt)
-{
-   GtkLabel *lbl;
-	if (!gf || !txt) return;
-   lbl = GTK_LABEL (glade_xml_get_widget (gf->gxml, "freq label"));
-   gtk_label_set_text (lbl, txt);
-}
-
-void 
-gnc_frequency_set_date_label_text (GNCFrequency *gf, const gchar *txt)
-{
-   GtkLabel *lbl;
-	if (!gf || !txt) return;
-   lbl = GTK_LABEL (glade_xml_get_widget (gf->gxml, "startdate label"));
-   gtk_label_set_text (lbl, txt);
-}
-
-/* ========================= END OF FILE =========================== */

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-frequency.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,83 +26,82 @@
 #define GNC_FREQUENCY_H
 
 #include "gnc-date-edit.h"
+#include "Recurrence.h"
 #include "FreqSpec.h"
 
 #define GNC_TYPE_FREQUENCY	  (gnc_frequency_get_type())
-#define GNC_FREQUENCY(obj)	  G_TYPE_CHECK_INSTANCE_CAST (obj, GNC_TYPE_FREQUENCY, GNCFrequency)
-#define GNC_FREQENCY_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, GNC_TYPE_FREQUENCY, GNCFrequency)
+#define GNC_FREQUENCY(obj)	  G_TYPE_CHECK_INSTANCE_CAST (obj, GNC_TYPE_FREQUENCY, GncFrequency)
+#define GNC_FREQENCY_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, GNC_TYPE_FREQUENCY, GncFrequency)
 #define GNC_IS_FREQUENCY(obj)     G_TYPE_CHECK_INSTANCE_TYPE (obj, GNC_TYPE_FREQUENCY)
 
 /**
- * A GNCFrequency is a VBox containing a scrollable GtkNotebook [and other
+ * A GncFrequency is a VBox containing a scrollable GtkNotebook [and other
  * widgets] which allows the user to specify the frequency [of a scheduled
  * transaction or budgeting category, for instance], manipulating a FreqSpec
  * object in the process.
  **/
-typedef struct _GNCFrequency 
+typedef struct _GncFrequency 
 {
-	GtkVBox	        widget;
+    GtkVBox	        widget;
+    GtkVBox         *vb;
+    GtkNotebook     *nb;
+    GtkComboBox     *freqComboBox;
+    GNCDateEdit     *startDate;
+    GladeXML        *gxml;
+} GncFrequency;
 
-  	GtkVBox         *vb;
-	GtkNotebook     *nb;
-	GtkComboBox     *freqComboBox;
-	GNCDateEdit     *startDate;
-	GladeXML        *gxml;
-} GNCFrequency;
-
-typedef struct _GNCFrequencyClass
+typedef struct _GncFrequencyClass
 {
-	GtkVBoxClass parent_class;
+    GtkVBoxClass parent_class;
 
-	void (*changed) (GNCFrequency *gf);
-} GNCFrequencyClass;
+    void (*changed) (GncFrequency *gf);
+} GncFrequencyClass;
 
 struct pageDataTuple 
 {
-	int		idx;
-	UIFreqType	uiFTVal;
-	char		*name;
+    int idx;
+    UIFreqType uiFTVal;
+    char *name;
 };
 
-GType gnc_frequency_get_type( void );
+GType gnc_frequency_get_type(void);
 
 /**
- * Create a new freq spec widget.
- * The menus and panels will be initialized to correspond to the
- * settings in the FreqSpec, and the date window will show the 
- * indicated date.  Either or both may be NULL.
- * For the default freq spec widget, use 'NULL'.
+ * Create a new GncFrequencey widget, reflecting the given FreqSpec \a fs and
+ * starting on \a start_date.  Either or both may be NULL for reasonable
+ * defaults.
  **/
-GtkWidget * gnc_frequency_new( FreqSpec *fs, GDate *date );
-void gnc_frequency_init( GNCFrequency *gf );
+GtkWidget* gnc_frequency_new(FreqSpec *fs, GDate *start_date);
+GtkWidget* gnc_frequency_new_from_recurrence(GList *recurrences, GDate *start_date);
 
+void gnc_frequency_init(GncFrequency *gf);
+
 /**
- * Change the given GNCFrequency with the given FreqSpec and GDate.  
+ * Change the given GncFrequency with the given FreqSpec and GDate.
  * If the FreqSpec is NULL, then no change is made to the widget menus.
  * If the date is NULL, then no change is made to the widget date field.
  **/
-void gnc_frequency_setup( GNCFrequency *gf, FreqSpec *fs, GDate *date );
+void gnc_frequency_setup(GncFrequency *gf, FreqSpec *fs, GDate *date);
+void gnc_frequency_setup_recurrence(GncFrequency *gf, GList *recurrences, GDate *start_date);
 
 /**
- * Saves the state of the GNCFrequenecy widget.
+ * Saves the state of the GncFrequency widget.
  * Updates the given FreqSpec if it's not NULL.
  * Places the date in outDate, if it's not NULL.
  **/
-void gnc_frequency_save_state( GNCFrequency *gf, FreqSpec *fs, GDate *outDate);
+void gnc_frequency_save_state(GncFrequency *gf, FreqSpec *fs, GDate *outDate);
+void gnc_frequency_save_to_recurrence(GncFrequency *gf, GList **recurrences, GDate *out_start_date);
 
 /**
  * Set the label text for the frequency option menu.  In the current
  * implementation, the default label text is "Frequency:"
  */
-void gnc_frequency_set_frequency_label_text (GNCFrequency *gf, const gchar *txt);
+void gnc_frequency_set_frequency_label_text (GncFrequency *gf, const gchar *txt);
 
 /**
  * Set the label text for the date entry widget. In the current
  * impelmentation, the default label text is "Start Date:"
  */
-void gnc_frequency_set_date_label_text (GNCFrequency *gf, const gchar *txt);
+void gnc_frequency_set_date_label_text (GncFrequency *gf, const gchar *txt);
 
-void
-gnc_frequency_setup_default( GNCFrequency *gf, FreqSpec *fs, GDate *date );
-
 #endif /* !defined( GNC_FREQUENCY_H ) */

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-gnome-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-gnome-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-gnome-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,10 +30,10 @@
 #ifdef HAVE_X11_XLIB_H
 # include <X11/Xlib.h>
 #endif
+#include <libxml/xmlIO.h>
 
 #include "gnc-html-graph-gog.h"
 
-#include "argv-list-converters.h"
 #include "druid-gconf-setup.h"
 #include "gnc-gconf-utils.h"
 #include "gnc-gnome-utils.h"
@@ -54,6 +54,9 @@
 #include "dialog-totd.h"
 #include "gnc-ui-util.h"
 #include "gnc-session.h"
+#ifdef G_OS_WIN32
+#    include "gnc-help-utils.h"
+#endif
 
 static QofLogModule log_module = GNC_MOD_GUI;
 static GnomeProgram *gnucash_program = NULL;
@@ -214,6 +217,11 @@
   g_free (pkgdatadir);
   g_free (pkglibdir);
 
+#ifdef G_OS_WIN32
+  /* workaround for bug #421792 */
+  xmlCleanupInputCallbacks();
+#endif
+
   /* initialization required for gtkhtml */
   gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
 
@@ -233,6 +241,7 @@
   return;
 }
 
+#ifndef G_OS_WIN32
 void
 gnc_gnome_help (const char *file_name, const char *anchor)
 {
@@ -253,6 +262,37 @@
   g_error_free(error);
 }
 
+#else /* G_OS_WIN32 */
+void
+gnc_gnome_help (const char *file_name, const char *anchor)
+{
+  const gchar * const *lang;
+  gchar *pkgdatadir, *fullpath, *found = NULL;
+  
+  pkgdatadir = gnc_path_get_pkgdatadir ();
+  for (lang=g_get_language_names (); *lang; lang++) {
+    fullpath = g_build_filename (pkgdatadir, "help", *lang, file_name,
+                                 (gchar*) NULL);
+    if (g_file_test (fullpath, G_FILE_TEST_IS_REGULAR)) {
+      found = g_strdup (fullpath);
+      g_free (fullpath);
+      break;
+    }
+    g_free (fullpath);
+  }
+  g_free (pkgdatadir);
+
+  if (!found) {
+    const gchar *message =
+      _("GnuCash could not find the files for the help documentation.");
+    gnc_error_dialog (NULL, message);
+  } else {
+    gnc_show_htmlhelp (found, anchor);
+  }
+  g_free (found);
+}
+#endif
+
 /********************************************************************\
  * gnc_gnome_get_pixmap                                             *
  *   returns a GtkWidget given a pixmap filename                    *

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-html-graph-gog.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-html-graph-gog.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-html-graph-gog.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,20 +35,23 @@
 #include <goffice/goffice.h>
 #include <goffice/graph/gog-graph.h>
 #include <goffice/graph/gog-object.h>
-#include <goffice/graph/gog-renderer-pixbuf.h>
-#include <goffice/graph/gog-renderer-gnome-print.h>
+#ifdef GOFFICE_WITH_CAIRO
+#    include <goffice/graph/gog-renderer-cairo.h>
+#else
+#    include <goffice/graph/gog-renderer-pixbuf.h>
+#endif
+#ifndef GTKHTML_USES_GTKPRINT
+#    include <goffice/graph/gog-renderer-gnome-print.h>
+#endif
 #include <goffice/graph/gog-style.h>
 #include <goffice/graph/gog-styled-object.h>
 #include <goffice/graph/gog-plot.h>
 #include <goffice/graph/gog-series.h>
 #include <goffice/utils/go-color.h>
 #include <goffice/graph/gog-data-set.h>
-#include <goffice/graph/gog-renderer-svg.h>
 #include <goffice/data/go-data-simple.h>
 #include <goffice/app/go-plugin.h>
 #include <goffice/app/go-plugin-loader-module.h>
-#include <gsf/gsf.h>
-#include <gsf/gsf-output-memory.h>
 
 /**
  * TODO:
@@ -59,13 +62,18 @@
  * - general graph cleanup
  **/
 
-static QofLogModule log_module = GNC_MOD_GUI;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.html.graph.gog"
 
 static int handle_piechart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer d);
 static int handle_barchart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer d);
 static int handle_scatter(gnc_html * html, GtkHTMLEmbedded * eb, gpointer d);
 
+#ifdef GTKHTML_USES_GTKPRINT
+static void draw_print_cb(GtkHTMLEmbedded *eb, cairo_t *cr, gpointer graph);
+#else
 static void draw_print_cb(GtkHTMLEmbedded *eb, GnomePrintContext *context, gpointer graph);
+#endif
 
 static gboolean create_basic_plot_elements(const char *plot_type, GogObject **out_graph, GogObject **out_chart, GogPlot **out_plot);
 
@@ -81,7 +89,7 @@
 gnc_html_graph_gog_init(void)
 {
 
-  PINFO( "init gog graphing" );
+  g_debug( "init gog graphing" );
   
   libgoffice_init();
   
@@ -160,7 +168,11 @@
 add_pixbuf_graph_widget( GtkHTMLEmbedded *eb, GogObject *graph )
 {
   GtkWidget *widget;
+#ifdef GOFFICE_WITH_CAIRO
+  GogRendererCairo *cairo_renderer;
+#else
   GogRendererPixbuf *pixbuf_renderer;
+#endif
   GdkPixbuf *buf;
   gboolean update_status;
 
@@ -170,24 +182,22 @@
   // gnumeric uses.  We probably _should_ do something like that, though.
   gog_object_update (GOG_OBJECT (graph));
 
-#if 0
-  // example SVG use.  Also, nice for debugging.
-  {
-    GsfOutput *mem;
-    gboolean output;
-
-    mem = gsf_output_memory_new();
-    output = gog_graph_export_to_svg( graph, mem, eb->width, eb->height, 1. );
-    printf( "svg: [%s]\n", (guchar*)gsf_output_memory_get_bytes( GSF_OUTPUT_MEMORY(mem) ) );
-  }
-#endif // 0
-
+#ifdef GOFFICE_WITH_CAIRO
+  cairo_renderer = GOG_RENDERER_CAIRO (g_object_new (GOG_RENDERER_CAIRO_TYPE,
+						     "model", graph,
+						     NULL));
+  update_status = gog_renderer_cairo_update (cairo_renderer,
+					     eb->width, eb->height, 1.0);
+  buf = gog_renderer_cairo_get_pixbuf (cairo_renderer);
+#else
   pixbuf_renderer = GOG_RENDERER_PIXBUF (g_object_new (GOG_RENDERER_PIXBUF_TYPE,
 						       "model", graph,
 						       NULL));
   update_status = gog_renderer_pixbuf_update (pixbuf_renderer,
 					      eb->width, eb->height, 1.0);
   buf = gog_renderer_pixbuf_get (pixbuf_renderer);
+#endif /* GOFFICE_WITH_CAIRO */
+
   widget = gtk_image_new_from_pixbuf (buf);
   gtk_widget_set_size_request (widget, eb->width, eb->height);
   gtk_widget_show_all (widget);
@@ -231,23 +241,22 @@
 static void
 set_chart_titles(GogObject *chart, const char *title, const char* sub_title)
 {
-  GString *totalTitle;
-  GOData *titleScalar;
+  gchar *my_sub_title, *total_title;
+  GOData *title_scalar;
   GogObject *tmp;
 
-  totalTitle = g_string_sized_new(32);
-  g_string_printf(totalTitle, "%s", title);
-  if (sub_title != NULL)
-  {
-    g_string_append_printf(totalTitle, " (%s)", sub_title);
-  }
+  if (sub_title)
+    my_sub_title = g_strdup_printf("%s(%s)", title ? " " : "", sub_title);
+  else
+    my_sub_title = g_strdup("");
 
+  total_title = g_strdup_printf("%s%s", title ? title : "", my_sub_title);
+
   tmp = gog_object_add_by_name(chart, "Title", NULL);
-  titleScalar = go_data_scalar_str_new(totalTitle->str, FALSE);
-  gog_dataset_set_dim(GOG_DATASET(tmp), 0, titleScalar, NULL);
+  title_scalar = go_data_scalar_str_new(total_title, TRUE);
+  gog_dataset_set_dim(GOG_DATASET(tmp), 0, title_scalar, NULL);
 
-  // @@fixme -- record or ref the string for freeing...
-  g_string_free(totalTitle, FALSE);
+  g_free(my_sub_title);
 }
 
 static void
@@ -442,7 +451,7 @@
                 //"vary_style_by_element",	TRUE,
                 "type",                         bar_type,
                 "overlap_percentage",           bar_overlap, 
-		NULL);
+                NULL);
   label_data = go_data_vector_str_new ((char const * const *)row_labels, data_rows, NULL);
   {
     // foreach row:
@@ -456,8 +465,8 @@
       gog_object_set_name (GOG_OBJECT (series), col_labels[i], &err);
       if (err != NULL)
       {
-        PERR("error setting name [%s] on series [%d]: [%s]\n",
-             col_labels[i], i, err->message);
+           g_warning("error setting name [%s] on series [%d]: [%s]",
+                     col_labels[i], i, err->message);
       }
 
       g_object_ref (label_data);
@@ -471,10 +480,10 @@
       style = gog_styled_object_get_style (GOG_STYLED_OBJECT (series));
       style->fill.type = GOG_FILL_STYLE_PATTERN;
       if (gdk_color_parse (col_colors[i], &color)) {
-	style->fill.auto_back = FALSE;
-	go_pattern_set_solid (&style->fill.pattern, GDK_TO_UINT (color));
+           style->fill.auto_back = FALSE;
+           go_pattern_set_solid (&style->fill.pattern, GDK_TO_UINT (color));
       } else {
-	PERR("cannot parse color %s.", col_colors[i]);
+           g_warning("cannot parse color [%s]", col_colors[i]);
       }
     }
   }
@@ -494,7 +503,7 @@
 
   add_pixbuf_graph_widget (eb, graph);
 
-  PINFO("barchart rendered.");
+  g_debug("barchart rendered.");
   return TRUE;
 }
 
@@ -549,7 +558,24 @@
   return TRUE;
 }
 
+#ifdef GTKHTML_USES_GTKPRINT
 static void
+draw_print_cb(GtkHTMLEmbedded *eb, cairo_t *cr, gpointer unused)
+{
+  GogGraph *graph = GOG_GRAPH(g_object_get_data(G_OBJECT(eb), "graph"));
+  GogRendererCairo *rend = g_object_new(GOG_RENDERER_CAIRO_TYPE, "model", graph,
+                                        "cairo", cr, "is-vector", TRUE, NULL);
+
+  /* assuming pixel size is 0.5, cf. gtkhtml/src/htmlprinter.c */
+  cairo_scale(cr, 0.5, 0.5);
+
+  cairo_translate(cr, 0, -eb->height);
+  gog_renderer_cairo_update(rend, eb->width, eb->height, 1.0);
+  g_object_unref(rend);
+}
+
+#else /* !GTKHTML_USES_GTKPRINT */
+static void
 draw_print_cb(GtkHTMLEmbedded *eb, GnomePrintContext *context, gpointer unused)
 {
   GogGraph *graph = GOG_GRAPH (g_object_get_data (G_OBJECT (eb), "graph"));
@@ -560,3 +586,4 @@
   gnome_print_translate (context, 0, eb->height);
   gog_graph_print_to_gnome_print (graph, context, eb->width, eb->height);
 }
+#endif /* GTKHTML_USES_GTKPRINT */

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-html.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-html.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-html.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,6 +29,7 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
+#include <glib/gstdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdlib.h>
@@ -43,12 +44,10 @@
 #include <gtkhtml/gtkhtml-embedded.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "print-session.h"
 #include "gnc-engine.h"
 #include "gnc-gui-query.h"
 #include "gnc-html.h"
-#include "gnc-http.h"
 #include "gnc-html-history.h"
 #include "gnc-html-graph-gog.h"
 #include "gnc-ui.h"
@@ -64,7 +63,7 @@
   URLType     base_type;           /* base of URL (path - filename) */
   gchar       * base_location;
 
-  gnc_http    * http;              /* handles HTTP requests */ 
+    //gnc_http    * http;              /* handles HTTP requests */ 
   GHashTable  * request_info;      /* hash uri to GList of GtkHTMLStream * */
 
   /* callbacks */
@@ -108,13 +107,10 @@
 static char error_404_body[] = 
 N_("The specified URL could not be loaded.");
 
-static char error_format[] = 
-"<html><body><h3>%s</h3><p>%s</p>\n<p>%s:</p><p>";
-static char error_title[] = N_("Error");
-static char error_body1[] = 
-N_("There was an error loading the specified URL.");
-static char error_body2[] = N_("Error message");
-static char error_end[] = "</body></html>";
+#ifdef GTKHTML_USES_GTKPRINT
+static GtkPrintSettings *print_settings = NULL;
+G_LOCK_DEFINE_STATIC(print_settings);
+#endif
 
 
 static char * 
@@ -180,8 +176,11 @@
   int         found_protocol=0, found_path=0, found_label=0; 
   URLType     retval;   
 
-  DEBUG("parsing %s, base_location %s", url,
-	html ? html->base_location : "<null hmtl>");
+  DEBUG("parsing %s, base_location %s",
+        url ? url : "(null)",
+        html ? (html->base_location ? html->base_location
+                : "(null base_location)")
+        : "(null html)");
   regcomp(&compiled, uri_rexp, REG_EXTENDED);
 
   if(!regexec(&compiled, url, 6, match, 0)) {
@@ -418,106 +417,10 @@
   return TRUE;
 }
 
-
-
 /************************************************************
- * gnc_html_http_request_cb: fires when an HTTP request is completed.
- * this is when it's time to load the data into the GtkHTML widget. 
- ************************************************************/
-
-static void
-gnc_html_http_request_cb(const gchar * uri, int completed_ok, 
-                         const gchar * body, gint body_len, 
-                         gpointer user_data)
-{
-  gnc_html * html = user_data; 
-  URLType  type;
-  char     * location = NULL;
-  char     * label    = NULL;
-  GList    * handles  = NULL;
-  GList    * current;
-  gpointer loc_tmp, handles_tmp;
-  
-  DEBUG("uri %s, ok %d, body %10.10s, body len %d", uri, completed_ok, body, body_len);
-  g_hash_table_lookup_extended(html->request_info, uri, 
-                               &loc_tmp, &handles_tmp );
-
-  location = loc_tmp;
-  handles  = handles_tmp;
-  
-  /* handles will be NULL for an HTTP POST transaction, where we are
-   * displaying the reply data. */
-  if(!handles) {    
-    GtkHTMLStream * handle = gtk_html_begin(GTK_HTML(html->html));
-    if(completed_ok) {
-      gtk_html_write(GTK_HTML(html->html), handle, body, body_len);
-    }
-    else {
-      char *data;
-
-      data = g_strdup_printf(error_format, 
-			     _(error_title), _(error_body1), _(error_body2));
-      gtk_html_write(GTK_HTML(html->html), handle, data, strlen (data));
-      g_free (data);
-      gtk_html_write(GTK_HTML(html->html), handle, body, body_len);
-      gtk_html_write(GTK_HTML(html->html), handle,
-                     error_end, strlen(error_end));
-      gtk_html_end(GTK_HTML(html->html), handle, GTK_HTML_STREAM_OK);
-    }
-  }
-  /* otherwise, it's a normal SUBMIT transaction */ 
-  else {
-    /* before writing to the handles, make sure any new traffic won't
-     * see them while we're working */
-    g_hash_table_remove(html->request_info, uri);
-    g_free(location);
-    location = NULL;
-
-    for(current = handles; current; current = current->next) {
-      /* request completed OK... write the HTML to the handles that
-       * asked for that URI. */
-      if(completed_ok) {
-        gtk_html_write(GTK_HTML(html->html), (GtkHTMLStream *)(current->data),
-                       body, body_len);
-        gtk_html_end(GTK_HTML(html->html), (GtkHTMLStream *)(current->data), 
-                     GTK_HTML_STREAM_OK);
-        type = gnc_html_parse_url(html, uri, &location, &label);
-        if(label) {
-          gtk_html_jump_to_anchor(GTK_HTML(html->html), label);
-        }
-        g_free(location);
-        g_free(label);
-        location = label = NULL;
-      }
-      /* request failed... body is the ghttp error text. */
-      else {
-        char *data;
-
-	data = g_strdup_printf(error_format, 
-			       _(error_title), _(error_body1), _(error_body2));
-        gtk_html_write(GTK_HTML(html->html), (GtkHTMLStream *)(current->data), 
-                       data, strlen(data));
-	g_free (data);
-        gtk_html_write(GTK_HTML(html->html), (GtkHTMLStream *)(current->data), 
-                       body, body_len);
-        gtk_html_write(GTK_HTML(html->html), (GtkHTMLStream *)(current->data), 
-                       error_end, strlen(error_end));
-        gtk_html_end(GTK_HTML(html->html), (GtkHTMLStream *)(current->data), 
-                     GTK_HTML_STREAM_ERROR);
-      }
-    }
-    g_list_free(handles);    
-  }
-
-  gnc_unset_busy_cursor (html->html);
-}
-
-
-/************************************************************
  * gnc_html_start_request: starts the gnc-http object working on an
  * http/https request.
  ************************************************************/
-
 static void 
 gnc_html_start_request(gnc_html * html, gchar * uri, GtkHTMLStream * handle)
 {
@@ -537,9 +440,7 @@
   g_hash_table_insert(html->request_info, uri, handles);
   
   if(need_request) {
-    gnc_set_busy_cursor (html->html, FALSE);
-    gnc_http_start_request(html->http, uri, gnc_html_http_request_cb, 
-                           (gpointer)html);
+      g_critical("we've not supported network requests for years");
   }
 }
 
@@ -558,7 +459,8 @@
   char * fdata = NULL;
   int fdata_len = 0;
 
-  DEBUG("type %s, location %s, label %s", type, location, label);
+  DEBUG("type %s, location %s, label %s", type ? type : "(null)",
+	location ? location : "(null)", label ? label : "(null)");
   if(!html) {
     return;
   }
@@ -715,7 +617,7 @@
 {
   gnc_html * gnchtml = (gnc_html *) data;
 
-  DEBUG("Rollover %s", url);
+  DEBUG("Rollover %s", url ? url : "(null)");
   g_free(gnchtml->current_link);
   gnchtml->current_link = g_strdup(url);
   if(gnchtml->flyover_cb) {
@@ -893,14 +795,9 @@
   DEBUG(" ");
   form_data = gnc_html_unpack_form_data(encoded_form_data);
   type = gnc_html_parse_url(gnchtml, action, &location, &label);
+
+  g_critical("form submission hasn't been supported in years.");
   
-  if(!strcasecmp(method, "get")) {
-    gnc_html_generic_get_submit(gnchtml, action, form_data);
-  }
-  else if(!strcasecmp(method, "post")) {
-    gnc_html_generic_post_submit(gnchtml, action, form_data);
-  }
-  
   g_free(location);
   g_free(label);
   g_free(new_loc);
@@ -1027,8 +924,9 @@
       html->base_type = result.base_type;
       html->base_location =
 	    g_strdup (extract_base_name(result.base_type, new_location));
-      DEBUG("resetting base location to %s",  html->base_location);
-    
+      DEBUG("resetting base location to %s",
+	    html->base_location ? html->base_location : "(null)");
+
       stream = gtk_html_begin (GTK_HTML(html->html));
       gnc_html_load_to_stream (html, stream, result.url_type,
                                new_location, new_label);
@@ -1128,6 +1026,8 @@
 gnc_html_new( GtkWindow *parent )
 {
   gnc_html * retval = g_new0(gnc_html, 1);
+
+  ENTER("parent %p", parent);
   
   retval->window    = GTK_WIDGET(parent);
   retval->container = gtk_scrolled_window_new(NULL, NULL);
@@ -1141,7 +1041,7 @@
                     GTK_WIDGET(retval->html));
 
   retval->request_info = g_hash_table_new(g_str_hash, g_str_equal);
-  retval->http         = gnc_http_new();
+  //retval->http         = gnc_http_new();
   retval->history      = gnc_html_history_new();
 
   g_object_ref (retval->container);
@@ -1177,6 +1077,8 @@
 		    retval);
   
   gtk_html_load_empty(GTK_HTML(retval->html));
+
+  LEAVE("retval %p", retval);
   
   return retval;
 }
@@ -1199,7 +1101,7 @@
 gnc_html_cancel(gnc_html * html)
 {
   /* remove our own references to requests */ 
-  gnc_http_cancel_requests(html->http);
+    //gnc_http_cancel_requests(html->http);
   
   g_hash_table_foreach_remove(html->request_info, html_cancel_helper, NULL);
 }
@@ -1282,7 +1184,7 @@
 static gboolean 
 raw_html_receiver (gpointer     engine,
                    const gchar *data,
-                   guint        len,
+                   size_t        len,
                    gpointer     user_data)
 {
   FILE *fh = (FILE *) user_data;
@@ -1303,7 +1205,7 @@
   g_return_val_if_fail (html != NULL, FALSE);
   g_return_val_if_fail (filepath != NULL, FALSE);
 
-  fh = fopen (filepath, "w");
+  fh = g_fopen (filepath, "w");
   if (!fh)
     return FALSE;
 
@@ -1314,7 +1216,50 @@
   return TRUE;
 }
 
+#ifdef GTKHTML_USES_GTKPRINT
+static void
+draw_page_cb(GtkPrintOperation *operation, GtkPrintContext *context,
+             gint page_nr, gpointer user_data)
+{
+    gnc_html *html = user_data;
+
+    gtk_html_print_page((GtkHTML*) html->html, context);
+}
+
 void
+gnc_html_print(gnc_html *html)
+{
+    GtkPrintOperation *print;
+    GtkPrintOperationResult res;
+
+    print = gtk_print_operation_new();
+
+    G_LOCK(print_settings);
+    if (print_settings)
+        gtk_print_operation_set_print_settings(print, print_settings);
+    G_UNLOCK(print_settings);
+
+    gtk_print_operation_set_use_full_page(print, FALSE);
+    gtk_print_operation_set_unit(print, GTK_UNIT_POINTS);
+    gtk_print_operation_set_n_pages(print, 1);
+    g_signal_connect(print, "draw_page", G_CALLBACK(draw_page_cb), html);
+
+    res = gtk_print_operation_run(print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
+                                  GTK_WINDOW(html->window), NULL);
+
+    if (res == GTK_PRINT_OPERATION_RESULT_APPLY) {
+        G_LOCK(print_settings);
+        if (print_settings)
+            g_object_unref(print_settings);
+        print_settings = g_object_ref(gtk_print_operation_get_print_settings(print));
+        G_UNLOCK(print_settings);
+    }
+
+    g_object_unref(print);
+}
+
+#else /* !GTKHTML_USES_GTKPRINT */
+void
 gnc_html_print(gnc_html * html)
 {
   PrintSession *ps;
@@ -1328,6 +1273,7 @@
   gtk_html_print(GTK_HTML(html->html), ps->context);
   gnc_print_session_done(ps);
 }
+#endif /* GTKHTML_USES_GTKPRINT */
 
 gnc_html_history * 
 gnc_html_get_history(gnc_html * html)
@@ -1603,94 +1549,3 @@
   g_string_free(escaped, FALSE);
   return out;
 }
-
-
-/********************************************************************
- * gnc_html_generic_get_submit() : normal 'get' submit method. 
- ********************************************************************/
-
-void
-gnc_html_generic_get_submit(gnc_html * html, const char * action, 
-                            GHashTable * form_data)
-{
-  URLType type;
-  char    * location = NULL;
-  char    * label = NULL;
-  char    * fullurl = NULL;
-  char    * encoded = gnc_html_pack_form_data(form_data);
-
-  type    = gnc_html_parse_url(html, action, &location, &label);
-  fullurl = g_strconcat(location, "?", encoded, NULL);
-  gnc_html_show_url(html, type, fullurl, label, 0);
-
-  g_free(encoded);
-  g_free(location);
-  g_free(label);
-  g_free(fullurl);
-}
-
-
-/********************************************************************
- * gnc_html_generic_post_submit() : normal 'post' submit method. 
- ********************************************************************/
-
-void
-gnc_html_generic_post_submit(gnc_html * html, const char * action, 
-                             GHashTable * form_data)
-{
-  char * encoded = gnc_html_pack_form_data(form_data);
-  char * copy = strdup(encoded);
-  gnc_http_start_post(html->http, action, 
-                      "application/x-www-form-urlencoded",
-                      copy, strlen(copy), 
-                      gnc_html_http_request_cb, html);
-  g_free(encoded);
-}
-
-
-/********************************************************************
- * gnc_html_multipart_post_submit() : this is really sort of useless
- * but I'll make it better later.  It's useless because FTMP CGI/php
- * don't properly decode the urlencoded values.
- ********************************************************************/
-
-static void
-multipart_post_helper(gpointer key, gpointer val, 
-                      gpointer user_data)
-{
-  char * old_str = *(char **)user_data;
-  char * new_str = 
-    g_strconcat(old_str,
-                "--XXXgncXXX\r\n",
-                "Content-Disposition: form-data; name=\"",
-                (char *)key, "\"\r\n\r\n",
-                (char *)val, "\r\n",
-                NULL);
-  *(char **)user_data = new_str;
-  g_free(old_str);
-}
-
-
-void
-gnc_html_multipart_post_submit(gnc_html * html, const char * action, 
-                               GHashTable * form_data)
-{
-
-  char * htmlstr = g_strdup("");
-  char * next_htmlstr;
-
-  /* encode the arguments from the hash table */
-  g_hash_table_foreach(form_data, multipart_post_helper, &htmlstr);
-  
-  /* add the closing boundary marker */
-  next_htmlstr = g_strconcat(htmlstr, "--XXXgncXXX--\r\n", NULL);
-  g_free(htmlstr);
-  htmlstr = next_htmlstr;
-  next_htmlstr = NULL;
-  gnc_http_start_post(html->http, action, 
-                      "multipart/form-data; boundary=XXXgncXXX",
-                      htmlstr, strlen(htmlstr), 
-                      gnc_html_http_request_cb, html);
-
-  g_free(htmlstr);
-}

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-html.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-html.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-html.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -138,16 +138,6 @@
                                             GncHTMLUrlCB hand);
 void          gnc_html_unregister_url_handler(URLType url_type);
 
-/* default action handlers for GET and POST methods.  'generic_post'
- * is the trivial application/x-www-form-urlencoded submit,
- * multipart-post is a multipart/form-data submit. */
-void          gnc_html_generic_get_submit(gnc_html * html, const char * act, 
-                                          GHashTable * form_data);
-void          gnc_html_generic_post_submit(gnc_html * html, const char * act, 
-                                           GHashTable * form_data);
-void          gnc_html_multipart_post_submit(gnc_html * html, const char * a, 
-                                             GHashTable * form_data);
-
 URLType       gnc_html_parse_url(gnc_html * html, const gchar * url, 
                                  char ** url_location, char ** url_label);
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,10 +39,6 @@
 #include <glib/gi18n.h>
 #include <libguile.h>
 #include "guile-mappings.h"
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
-#include "gtk-compat.h"
 
 #include "gnc-plugin.h"
 #include "gnc-plugin-manager.h"
@@ -83,9 +79,12 @@
 #define PLUGIN_PAGE_LABEL "plugin-page"
 
 #define PLUGIN_PAGE_CLOSE_BUTTON "close-button"
+#define PLUGIN_PAGE_TAB_LABEL    "label"
 
 #define KEY_SHOW_CLOSE_BUTTON	"tab_close_buttons"
+#define KEY_TAB_NEXT_RECENT	"tab_next_recent"
 #define KEY_TAB_POSITION	"tab_position"
+#define KEY_TAB_WIDTH           "tab_width"
 
 #define GNC_MAIN_WINDOW_NAME "GncMainWindow"
 
@@ -395,20 +394,28 @@
 };
 
 
+/* This data structure holds the tooltops for all notebook tabs.
+ * Typically these are used to provide the full path of a register
+ * page. */
+static GtkTooltips *tips = NULL;
+
 /************************************************************
  *                                                          *
  ************************************************************/
-#define WINDOW_COUNT		"Window Count"
-#define WINDOW_STRING		"Window %d"
-#define WINDOW_GEOMETRY		"Window Geometry"
-#define WINDOW_POSITION		"Window Position"
-#define WINDOW_MAXIMIZED	"Window Maximized"
-#define WINDOW_FIRSTPAGE	"First Page"
-#define WINDOW_PAGECOUNT	"Page Count"
-#define WINDOW_PAGEORDER	"Page Order"
-#define PAGE_TYPE		"Page Type"
-#define PAGE_NAME		"Page Name"
-#define PAGE_STRING		"Page %d"
+#define WINDOW_COUNT            "WindowCount"
+#define WINDOW_STRING           "Window %d"
+#define WINDOW_GEOMETRY         "WindowGeometry"
+#define WINDOW_POSITION         "WindowPosition"
+#define WINDOW_MAXIMIZED        "WindowMaximized"
+#define TOOLBAR_VISIBLE         "ToolbarVisible"
+#define STATUSBAR_VISIBLE       "StatusbarVisible"
+#define SUMMARYBAR_VISIBLE      "SummarybarVisible"
+#define WINDOW_FIRSTPAGE        "FirstPage"
+#define WINDOW_PAGECOUNT        "PageCount"
+#define WINDOW_PAGEORDER        "PageOrder"
+#define PAGE_TYPE               "PageType"
+#define PAGE_NAME               "PageName"
+#define PAGE_STRING             "Page %d"
 
 typedef struct {
   GKeyFile *key_file;
@@ -419,6 +426,29 @@
 } GncMainWindowSaveData;
 
 
+/*  Iterator function to walk all pages in all windows, calling the
+ *  specified function for each page. */
+void
+gnc_main_window_foreach_page (GncMainWindowPageFunc fn, gpointer user_data)
+{
+  GncMainWindowPrivate *priv;
+  GncMainWindow *window;
+  GncPluginPage *page;
+  GList *w, *p;
+
+  ENTER(" ");
+  for (w = active_windows; w; w = g_list_next(w)) {
+    window = w->data;
+    priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+    for (p = priv->installed_pages; p; p = g_list_next(p)) {
+      page = p->data;
+      fn(page, user_data);
+    }
+  }
+  LEAVE(" ");
+}
+
+
 /** Restore a single page to a window.  This function calls a page
  *  specific function to create the actual page.  It then handles all
  *  the common tasks such as insuring the page is installed into a
@@ -511,9 +541,10 @@
 gnc_main_window_restore_window (GncMainWindow *window, GncMainWindowSaveData *data)
 {
   GncMainWindowPrivate *priv;
+  GtkAction *action;
   gint *pos, *geom, *order;
   gsize length;
-  gboolean max;
+  gboolean max, visible, desired_visibility;
   gchar *window_group;
   gint page_start, page_count, i;
   GError *error = NULL;
@@ -612,6 +643,46 @@
     gtk_window_maximize(GTK_WINDOW(window));
   }
 
+  /* Common view menu items */
+  action = gnc_main_window_find_action(window, "ViewToolbarAction");
+  visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+  desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
+					      TOOLBAR_VISIBLE, &error);
+  if (error) {
+    g_warning("error reading group %s key %s: %s",
+	      window_group, TOOLBAR_VISIBLE, error->message);
+    g_error_free(error);
+    error = NULL;
+  } else if (visible != desired_visibility) {
+    gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),desired_visibility);
+  }
+
+  action = gnc_main_window_find_action(window, "ViewSummaryAction");
+  visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+  desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
+					      SUMMARYBAR_VISIBLE, &error);
+  if (error) {
+    g_warning("error reading group %s key %s: %s",
+	      window_group, TOOLBAR_VISIBLE, error->message);
+    g_error_free(error);
+    error = NULL;
+  } else if (visible != desired_visibility) {
+    gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),desired_visibility);
+  }
+
+  action = gnc_main_window_find_action(window, "ViewStatusbarAction");
+  visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+  desired_visibility = g_key_file_get_boolean(data->key_file, window_group,
+					      STATUSBAR_VISIBLE, &error);
+  if (error) {
+    g_warning("error reading group %s key %s: %s",
+	      window_group, TOOLBAR_VISIBLE, error->message);
+    g_error_free(error);
+    error = NULL;
+  } else if (visible != desired_visibility) {
+    gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),desired_visibility);
+  }
+
   /* Now populate the window with pages. */
   for (i = 0; i < page_count; i++) {
     data->page_offset = page_start;
@@ -752,8 +823,9 @@
 gnc_main_window_save_window (GncMainWindow *window, GncMainWindowSaveData *data)
 {
   GncMainWindowPrivate *priv;
+  GtkAction *action;
   gint i, num_pages, coords[4], *order;
-  gboolean maximized;
+  gboolean maximized, visible;
   gchar *window_group;
 
   /* Setup */
@@ -802,6 +874,20 @@
 	coords[2], coords[3],
 	maximized ? "maximized" : "not maximized");
 
+  /* Common view menu items */
+  action = gnc_main_window_find_action(window, "ViewToolbarAction");
+  visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+  g_key_file_set_boolean(data->key_file, window_group,
+			 TOOLBAR_VISIBLE, visible);
+  action = gnc_main_window_find_action(window, "ViewSummaryAction");
+  visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+  g_key_file_set_boolean(data->key_file, window_group,
+			 SUMMARYBAR_VISIBLE, visible);
+  action = gnc_main_window_find_action(window, "ViewStatusbarAction");
+  visible = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+  g_key_file_set_boolean(data->key_file, window_group,
+			 STATUSBAR_VISIBLE, visible);
+
   /* Save individual pages in this window */
   g_list_foreach(priv->installed_pages, (GFunc)gnc_main_window_save_page, data);
 
@@ -907,10 +993,14 @@
   const gchar *filename, *tmp;
   const gchar *title = _("Save changes to file %s before closing?");
   /* This should be the same message as in gnc-file.c */
-  const gchar *message =
+  const gchar *message_mins =
     _("If you don't save, changes from the past %d minutes will be discarded.");
+  const gchar *message_hours =
+    _("If you don't save, changes from the past %d hours and %d minutes will be discarded.");
+  const gchar *message_days =
+    _("If you don't save, changes from the past %d days and %d hours will be discarded.");
   time_t oldest_change;
-  gint minutes;
+  gint minutes, hours, days;
 
   session = gnc_get_current_session();
   book = qof_session_get_book(session);
@@ -928,9 +1018,20 @@
 				  filename);
   oldest_change = qof_book_get_dirty_time(book);
   minutes = (time(NULL) - oldest_change) / 60 + 1;
-  gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
-					   message, minutes);
-
+  hours = minutes / 60;
+  minutes = minutes % 60;
+  days = hours / 24;
+  hours = hours % 24;
+  if (days > 0) {
+      gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+                                               message_days, days, hours);
+  } else if (hours > 0) {
+      gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+                                               message_hours, hours, minutes);
+  } else {
+      gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+                                               message_mins, minutes);
+  }
   gtk_dialog_add_buttons(GTK_DIALOG(dialog),
 			 _("Close _Without Saving"), GTK_RESPONSE_CLOSE,
 			 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -995,12 +1096,30 @@
 }
 
 static gboolean
+gnc_main_window_quit(GncMainWindow *window)
+{
+    QofSession *session;
+    gboolean needs_save, do_shutdown;
+
+    session = gnc_get_current_session();
+    needs_save = qof_book_not_saved(qof_session_get_book(session)) && 
+        !gnc_file_save_in_progress();
+    do_shutdown = !needs_save || 
+        (needs_save && !gnc_main_window_prompt_for_save(GTK_WIDGET(window)));
+
+    if (do_shutdown) {
+        g_timeout_add(250, gnc_main_window_timed_quit, NULL);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static gboolean
 gnc_main_window_delete_event (GtkWidget *window,
 			      GdkEvent *event,
 			      gpointer user_data)
 {
   static gboolean already_dead = FALSE;
-  QofSession *session;
 
   if (already_dead)
     return TRUE;
@@ -1013,21 +1132,7 @@
   if (g_list_length(active_windows) > 1)
     return FALSE;
 
-  session = gnc_get_current_session();
-  if (qof_book_not_saved(qof_session_get_book(session))) {
-    if (!gnc_main_window_prompt_for_save(GTK_WIDGET(window))) {
-      /* Tell gnucash to shutdown cleanly */
-      g_timeout_add(250, gnc_main_window_timed_quit, NULL);
-      already_dead = TRUE;
-    }
-    /* Cancel the window deletion. It'll happen on the just queued shutdown. */
-    return TRUE;
-  }
-
-  /* Tell gnucash to shutdown cleanly */
-  g_timeout_add(250, gnc_main_window_timed_quit, NULL);
-  already_dead = TRUE;
-
+  already_dead = gnc_main_window_quit(GNC_MAIN_WINDOW(window));
   return TRUE;
 }
 
@@ -1385,9 +1490,10 @@
  *  or not the close button should be visible.
  */
 static void
-gnc_main_window_update_tabs_one_page (GncPluginPage *page,
-				      gboolean *new_value)
+gnc_main_window_update_tab_close_one_page (GncPluginPage *page,
+                                           gpointer user_data)
 {
+  gboolean *new_value = user_data;
   GtkWidget * close_button;
 
   ENTER("page %p, visible %d", page, *new_value);
@@ -1405,52 +1511,88 @@
 }
 
 
-/** Show/hide the close box on all pages in a given window.  This
- *  function calls the gnc_main_window_update_tabs_one_page() for each
- *  page in the window.
+/** Show/hide the close box on all pages in all windows.  This function
+ *  calls gnc_main_window_update_tab_close() for each plugin page in the
+ *  application.
  *
  *  @internal
  *
- *  @param window The GncMainWindow whose notebook tabs should be
- *  updated.
+ *  @param entry A pointer to the GConfEntry which describes the new
+ *  state of whether close buttons should be visible on notebook tabs.
  *
- *  @param new_value A pointer to the boolean that indicates whether
- *  or not the close button should be visible.
+ *  @param user_data Unused.
  */
 static void
-gnc_main_window_update_tabs_one_window (GncMainWindow *window, gboolean *new_value)
+gnc_main_window_update_tab_close (GConfEntry *entry, gpointer user_data)
 {
-  GncMainWindowPrivate *priv;
+  gboolean new_value;
 
-  ENTER("window %p, visible %d", window, *new_value);
-  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
-  g_list_foreach(priv->installed_pages,
-		 (GFunc)gnc_main_window_update_tabs_one_page,
-		 new_value);
+  ENTER(" ");
+  new_value = gconf_value_get_bool(entry->value);
+  gnc_main_window_foreach_page(
+		 gnc_main_window_update_tab_close_one_page,
+		 &new_value);
   LEAVE(" ");
 }
 
 
-/** Show/hide the close box on all pages in all windows.  This
- *  function calls the gnc_main_window_update_tabs_one_window() for
- *  each open window in the application.
+/** Update the width of the label in the tab of a notebook page.  This
+ *  function adjusts both the width and the ellipsize mode so that the tab
+ *  label looks correct.  The special check for a zero value handles the
+ *  case where a user hasn't set a tab width and the gconf default isn't
+ *  detected.
  *
  *  @internal
  *
+ *  @param page The GncPluginPage whose notebook tab should be updated.
+ *
+ *  @param new_value The new width of the label in the tab.
+ */
+static void
+gnc_main_window_update_tab_width_one_page (GncPluginPage *page,
+                                           gpointer user_data)
+{
+  gint *new_value = user_data;
+  GtkWidget *label;
+
+  ENTER("page %p, visible %d", page, *new_value);
+  label = g_object_get_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL);
+  if (!label) {
+    LEAVE("no label");
+    return;
+  }
+
+  if (*new_value != 0) {
+    gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
+    gtk_label_set_max_width_chars(GTK_LABEL(label), *new_value);
+  } else {
+    gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
+    gtk_label_set_max_width_chars(GTK_LABEL(label), 100);
+  }
+  LEAVE(" ");
+}
+
+
+/** Update the tab label width in all pages in all windows.  This function
+ *  calls gnc_main_window_update_tab_width() for each plugin page in the
+ *  application.
+ *
+ *  @internal
+ *
  *  @param entry A pointer to the GConfEntry which describes the new
- *  state of whether close buttons should be visible on notebook tabs.
+ *  size of the tab label width.
  *
  *  @param user_data Unused.
  */
 static void
-gnc_main_window_update_tabs (GConfEntry *entry, gpointer user_data)
+gnc_main_window_update_tab_width (GConfEntry *entry, gpointer user_data)
 {
-  gboolean new_value;
+  gint new_value;
 
   ENTER(" ");
-  new_value = gconf_value_get_bool(entry->value);
-  g_list_foreach(active_windows,
-		 (GFunc)gnc_main_window_update_tabs_one_window,
+  new_value = gconf_value_get_float(entry->value);
+  gnc_main_window_foreach_page(
+		 gnc_main_window_update_tab_width_one_page,
 		 &new_value);
   LEAVE(" ");
 }
@@ -1478,8 +1620,8 @@
   children = gtk_container_get_children(GTK_CONTAINER(tab_hbox));
   for (tmp = children; tmp; tmp = g_list_next(tmp)) {
     widget = tmp->data;
-    if (GTK_IS_LABEL(widget)) {
-      *label_p = widget;
+    if (GTK_IS_EVENT_BOX(widget)) {
+      *label_p = gtk_bin_get_child(GTK_BIN(widget));
     } else if (GTK_IS_ENTRY(widget)) {
       *entry_p = widget;
     }
@@ -1711,12 +1853,17 @@
 			G_TYPE_OBJECT);
 
 	gnc_gconf_general_register_cb (KEY_SHOW_CLOSE_BUTTON,
-				       gnc_main_window_update_tabs,
+				       gnc_main_window_update_tab_close,
 				       NULL);
+	gnc_gconf_general_register_cb (KEY_TAB_WIDTH,
+				       gnc_main_window_update_tab_width,
+				       NULL);
 	gnc_hook_add_dangler(HOOK_BOOK_SAVED,
 			     (GFunc)gnc_main_window_update_all_titles, NULL);
 	gnc_hook_add_dangler(HOOK_BOOK_OPENED,
 			     (GFunc)gnc_main_window_attach_to_book, NULL);
+
+        tips = gtk_tooltips_new();
 }
 
 
@@ -1835,8 +1982,18 @@
 gnc_main_window_new (void)
 {
 	GncMainWindow *window;
+	gncUIWidget old_window;
 
 	window = g_object_new (GNC_TYPE_MAIN_WINDOW, NULL);
+	old_window = gnc_ui_get_toplevel();
+	if (old_window) {
+	  gint width, height;
+	  gtk_window_get_size (GTK_WINDOW (old_window), &width, &height);
+	  gtk_window_resize (GTK_WINDOW (window), width, height);
+	  if ((gdk_window_get_state((GTK_WIDGET(old_window))->window)
+	       & GDK_WINDOW_STATE_MAXIMIZED) != 0)
+	    gtk_window_maximize (GTK_WINDOW (window));
+	}
 	active_windows = g_list_append (active_windows, window);
 	gnc_main_window_update_all_menu_items();
 	return window;
@@ -1937,11 +2094,13 @@
 
 	/* Switch to the last recently used page */
 	notebook = GTK_NOTEBOOK (priv->notebook);
-	new_page = g_list_nth_data (priv->usage_order, 0);
-	if (new_page) {
-	  page_num =  gtk_notebook_page_num(notebook, new_page->notebook_page);
-	  gtk_notebook_set_current_page(notebook, page_num);
-	}
+        if (gnc_gconf_get_bool(GCONF_GENERAL, KEY_TAB_NEXT_RECENT, NULL)) {
+            new_page = g_list_nth_data (priv->usage_order, 0);
+            if (new_page) {
+                page_num =  gtk_notebook_page_num(notebook, new_page->notebook_page);
+                gtk_notebook_set_current_page(notebook, page_num);
+            }
+        }
 
 	/* Remove the page from the notebook */
 	page_num =  gtk_notebook_page_num(notebook, page->notebook_page);
@@ -1998,11 +2157,14 @@
 {
 	GncMainWindowPrivate *priv;
 	GtkWidget *tab_hbox;
-	GtkWidget *label, *entry;
-	const gchar *icon;
+	GtkWidget *label, *entry, *event_box;
+	const gchar *icon, *text;
 	GtkWidget *image;
 	GList *tmp;
+	gint width;
 
+	ENTER("window %p, page %p", window, page);
+
 	if (window)
 	  g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
 	g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
@@ -2038,9 +2200,15 @@
 	/*
 	 * The page tab.
 	 */
+        width = gnc_gconf_get_float(GCONF_GENERAL, KEY_TAB_WIDTH, NULL);
 	icon = GNC_PLUGIN_PAGE_GET_CLASS(page)->tab_icon;
 	label = gtk_label_new (gnc_plugin_page_get_page_name(page));
+        if (width != 0) {
+          gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
+          gtk_label_set_max_width_chars(GTK_LABEL(label), width);
+        }
 	gtk_widget_show (label);
+        g_object_set_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL, label);
 
 	tab_hbox = gtk_hbox_new (FALSE, 6);
 	gtk_widget_show (tab_hbox);
@@ -2051,8 +2219,17 @@
 		gtk_box_pack_start (GTK_BOX (tab_hbox), image, FALSE, FALSE, 0);
 	} 
 
-	gtk_box_pack_start (GTK_BOX (tab_hbox), label, TRUE, TRUE, 0);
-  
+        event_box = gtk_event_box_new();
+        gtk_event_box_set_visible_window(GTK_EVENT_BOX(event_box), FALSE);
+        gtk_widget_show(event_box);
+        gtk_container_add(GTK_CONTAINER(event_box), label);
+	gtk_box_pack_start (GTK_BOX (tab_hbox), event_box, TRUE, TRUE, 0);
+
+        text = gnc_plugin_page_get_page_long_name(page);
+        if (text) {
+          gtk_tooltips_set_tip(tips, event_box, text, NULL);
+        }
+
 	entry = gtk_entry_new();
 	gtk_widget_hide (entry);
 	gtk_box_pack_start (GTK_BOX (tab_hbox), entry, TRUE, TRUE, 0);
@@ -2104,6 +2281,8 @@
 	 * Now install it all in the window.
 	 */
 	gnc_main_window_connect(window, page, tab_hbox, label);
+
+	LEAVE("");
 }
 
 
@@ -2667,26 +2846,26 @@
 	priv->action_group = gtk_action_group_new ("MainWindowActions");
 	gnc_gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
 	gtk_action_group_add_actions (priv->action_group, gnc_menu_actions,
-				      gnc_menu_n_actions, window);
+                                  gnc_menu_n_actions, window);
 	gtk_action_group_add_toggle_actions (priv->action_group, 
-					     toggle_actions, n_toggle_actions, 
-					     window);
+                                         toggle_actions, n_toggle_actions, 
+                                         window);
 	gtk_action_group_add_radio_actions (priv->action_group,
-					    radio_entries, n_radio_entries,
-					    0,
-					    G_CALLBACK(gnc_main_window_cmd_window_raise),
-					    window);
+                                        radio_entries, n_radio_entries,
+                                        0,
+                                        G_CALLBACK(gnc_main_window_cmd_window_raise),
+                                        window);
 	gnc_plugin_update_actions(priv->action_group,
-				  initially_insensitive_actions,
-				  "sensitive", FALSE);
+                              initially_insensitive_actions,
+                              "sensitive", FALSE);
 	gnc_plugin_update_actions(priv->action_group,
-				  always_insensitive_actions,
-				  "sensitive", FALSE);
+                              always_insensitive_actions,
+                              "sensitive", FALSE);
 	gnc_plugin_update_actions(priv->action_group,
-				  always_hidden_actions,
-				  "visible", FALSE);
+                              always_hidden_actions,
+                              "visible", FALSE);
 	gnc_plugin_set_important_actions (priv->action_group,
-					  gnc_menu_important_actions);
+                                      gnc_menu_important_actions);
 	gtk_ui_manager_insert_action_group (window->ui_merge, priv->action_group, 0);
 
 	g_signal_connect (G_OBJECT (window->ui_merge), "add_widget",
@@ -2694,7 +2873,7 @@
 	/* Use the "connect-proxy" signal for tooltip display in the
 	   status bar */
 	g_signal_connect (G_OBJECT (window->ui_merge), "connect-proxy",
-			  G_CALLBACK (connect_proxy), priv->statusbar);
+                      G_CALLBACK (connect_proxy), priv->statusbar);
 
 	filename = gnc_gnome_locate_ui_file("gnc-main-window-ui.xml");
 
@@ -2706,47 +2885,47 @@
 	g_assert(merge_id || error);
 	if (merge_id) {
 	  gtk_window_add_accel_group (GTK_WINDOW (window),
-				      gtk_ui_manager_get_accel_group(window->ui_merge));
+                                  gtk_ui_manager_get_accel_group(window->ui_merge));
 	  gtk_ui_manager_ensure_update (window->ui_merge);
 	} else {
 	  g_critical("Failed to load ui file.\n  Filename %s\n  Error %s",
-		     filename, error->message);
+                 filename, error->message);
 	  g_error_free(error);
 	  g_assert(merge_id != 0);
 	}
 	g_free(filename);
 
 	gnc_gconf_add_notification(G_OBJECT(window), GCONF_GENERAL,
-				   gnc_main_window_gconf_changed,
-				   GNC_MAIN_WINDOW_NAME);
+                               gnc_main_window_gconf_changed,
+                               GNC_MAIN_WINDOW_NAME);
 	gnc_gconf_add_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE,
-				   gnc_main_window_gconf_changed,
-				   GNC_MAIN_WINDOW_NAME);
+                               gnc_main_window_gconf_changed,
+                               GNC_MAIN_WINDOW_NAME);
 	gnc_main_window_update_toolbar(window);
 	gnc_main_window_update_tab_position(window);
 
 	gnc_main_window_init_menu_updaters(window);
 
-        /* Testing */
+    /* Testing */
 	/* Now update the "eXtensions" menu */
-	if (!gnc_is_debugging()) {
+	if (!gnc_is_extra_enabled()) {
 	  GtkAction*  action;
 
 	  action = gtk_action_group_get_action(priv->action_group, 
-                                               "ExtensionsAction");
+                                           "ExtensionsAction");
 	  gtk_action_set_visible(action, FALSE);
 	}
 
 	/* GncPluginManager stuff */
 	manager = gnc_plugin_manager_get ();
 	plugins = gnc_plugin_manager_get_plugins (manager);
-        g_list_foreach (plugins, gnc_main_window_add_plugin, window);
-        g_list_free (plugins);
+    g_list_foreach (plugins, gnc_main_window_add_plugin, window);
+    g_list_free (plugins);
 
 	g_signal_connect (G_OBJECT (manager), "plugin-added",
-			  G_CALLBACK (gnc_main_window_plugin_added), window);
+                      G_CALLBACK (gnc_main_window_plugin_added), window);
 	g_signal_connect (G_OBJECT (manager), "plugin-removed",
-			  G_CALLBACK (gnc_main_window_plugin_removed), window);
+                      G_CALLBACK (gnc_main_window_plugin_removed), window);
 
 	LEAVE(" ");
 }
@@ -2958,25 +3137,10 @@
 static void
 gnc_main_window_cmd_file_quit (GtkAction *action, GncMainWindow *window)
 {
-	QofSession *session;
+    if (!gnc_main_window_all_finish_pending())
+        return;
 
-	if (gnc_file_save_in_progress()) {
-	  g_timeout_add(250, gnc_main_window_timed_quit, NULL);
-	  return;
-	}
-
-	if (!gnc_main_window_all_finish_pending())
-	  return;
-
-	session = gnc_get_current_session();
-	if (qof_book_not_saved(qof_session_get_book(session))) {
-	  if (gnc_main_window_prompt_for_save(GTK_WIDGET(window))) {
-	    /* User canceled */
-	    return;
-	  }
-	}
-
-	gnc_shutdown (0);
+    gnc_main_window_quit(window);
 }
 
 static void
@@ -3062,6 +3226,11 @@
   ENTER(" ");
   priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
   page = priv->current_page;
+  if (!page) {
+    LEAVE("No current page");
+    return;
+  }
+  
   tab_hbox = gtk_notebook_get_tab_label(GTK_NOTEBOOK(priv->notebook),
                                        page->notebook_page);
   children = gtk_container_get_children(GTK_CONTAINER(tab_hbox));
@@ -3221,7 +3390,6 @@
 	gnc_gnome_help (HF_HELP, NULL);
 }
 
-#ifdef HAVE_GTK26
 /** This is a helper function to find a data file and suck it into
  *  memory.
  *
@@ -3323,62 +3491,25 @@
 	if (authors)     g_strfreev(authors);
 	g_object_unref (logo);
 }
-#else
-static void
-gnc_main_window_cmd_help_about (GtkAction *action, GncMainWindow *window)
-{
-	GtkWidget *about;
-	/* Translators: This is the "About" message. */
-	const gchar *message = _("The GnuCash personal finance manager.\n"
-				 "The GNU way to manage your money!\n"
-				 "http://www.gnucash.org/");
-	const gchar *copyright = "© 1998-2002 Linas Vepstas";
-	const gchar *authors[] = {
-		"Derek Atkins <derek at ihtfp.com>",
-		"Rob Browning <rlb at cs.utexas.edu>",
-		"Bill Gribble <grib at billgribble.com>",
-		"David Hampton <hampton at employees.org>",
-		"James LewisMoss <dres at debian.org>",
-		"Robert Graham Merkel <rgmerk at mira.net>",
-		"Dave Peticolas <dave at krondo.com>",
-		"Joshua Sled <jsled at asynchronous.org>",
-		"Christian Stimming <stimming at tuhh.de>",
-		"Linas Vepstas <linas at linas.org>",
-		NULL
-	};
-	const gchar *documenters[] = {
-		NULL
-	};
-	/* Translators: Insert your translator's credits here so that
-	   they will be shown in the "About" dialog. */
-	const gchar *translator_credits = _("translator_credits");
-	GdkPixbuf *logo;
 
-	logo = gnc_gnome_get_gdkpixbuf ("appicon.png");
 
-	about = gnome_about_new ("GnuCash", VERSION, copyright, message, authors, documenters,
-				 strcmp (translator_credits, "translator_credits") != 0 ? translator_credits : NULL,
-				 logo);
-
-	g_object_unref (logo);
-	gtk_dialog_run (GTK_DIALOG (about));
-}
-#endif
-
-
 /************************************************************
  *                                                          *
  ************************************************************/
 
-/** Get a pointer to a top level window... any top level window.  This
- *  function just returns a pointer to the first window.
+/** Get a pointer to the first active top level window or NULL
+ *  if there is none.
  *
  *  @return A pointer to a GtkWindow object. */
 gncUIWidget
 gnc_ui_get_toplevel (void)
 {
-  if (active_windows)
-    return active_windows->data;
+  GList *window;
+
+  for (window=active_windows; window; window=window->next)
+    if (gtk_window_is_active (GTK_WINDOW (window->data)))
+      return window->data;
+
   return NULL;
 }
 
@@ -3439,21 +3570,17 @@
 {
 	GncMainWindow *window;
 	GncMainWindowPrivate *priv;
-	GList *winp, *tmp;
-	GSList *widgetp, *toplevels;
+	GList *groupp, *groups, *winp, *tmp;
 	GtkWidget *close_button;
 
 	for (winp = active_windows; winp; winp = g_list_next(winp)) {
 	  window = winp->data;
 	  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
-	  toplevels = gtk_ui_manager_get_toplevels(window->ui_merge,
-						   GTK_UI_MANAGER_MENUBAR |
-						   GTK_UI_MANAGER_TOOLBAR |
-						   GTK_UI_MANAGER_POPUP);
-	  for (widgetp = toplevels; widgetp; widgetp = g_slist_next(widgetp)) {
-	    gtk_widget_set_sensitive (widgetp->data, sensitive);
+
+	  groups = gtk_ui_manager_get_action_groups(window->ui_merge);
+	  for (groupp = groups; groupp; groupp = g_list_next(groupp)) {
+	    gtk_action_group_set_sensitive(GTK_ACTION_GROUP(groupp->data), sensitive);
 	  }
-	  g_slist_free(toplevels);
 
 	  for (tmp = priv->installed_pages; tmp; tmp = g_list_next(tmp)) {
 	    close_button = g_object_get_data(tmp->data, PLUGIN_PAGE_CLOSE_BUTTON);

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-main-window.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -76,6 +76,7 @@
 } GncMainWindowActionData;
 
 typedef void (*GncMainWindowFunc) (GncMainWindow *window, GncPluginPage *page);
+typedef void (*GncMainWindowPageFunc) (GncPluginPage *page, gpointer user_data);
 
 /* function prototypes */
 
@@ -127,6 +128,17 @@
 void gnc_main_window_close_page (GncPluginPage *page);
 
 
+/*  Iterator function to walk all pages in all windows, calling the
+ *  specified function for each page.
+ *
+ *  @param entry A pointer to the function to be called.
+ *
+ *  @param user_data A data pointer passed to each call of the function.
+ */
+void gnc_main_window_foreach_page (GncMainWindowPageFunc fn,
+                                   gpointer user_data);
+
+
 /** Retrieve a pointer to the page that is currently at the front of
  *  the specified window.  Any plugin that needs to manipulate its
  *  menus based upon the currently selected menu page should connect

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-file-history.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-file-history.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-file-history.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -34,7 +34,6 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <glib/gprintf.h>
-#include "gtk-compat.h"
 #include <string.h>
 
 #include "gnc-gkeyfile-utils.h"
@@ -436,7 +435,7 @@
   /* Copy the old values from the gnucash 1.x/gnome1 settings file to
    * the gnucash 2.x/gconf settings area.  */
   mdi_file = g_build_filename(home, ".gnome", "GnuCash", (gchar *)NULL);
-  keyfile = gnc_key_file_load_from_file (mdi_file, FALSE, FALSE);
+  keyfile = gnc_key_file_load_from_file (mdi_file, FALSE, FALSE, NULL);
   if (keyfile) {
     keys = g_key_file_get_keys(keyfile, GNOME1_HISTORY, NULL, NULL);
     if (keys) {

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -95,6 +95,7 @@
 	gboolean use_new_window;
 
 	gchar *page_name;
+	gchar *page_long_name;
 	gchar *uri;
 	gchar *statusbar_text;
 } GncPluginPagePrivate;
@@ -769,6 +770,37 @@
 }
 
 
+/*  Retrieve the long name of this page.  This is the string used in
+ *  the tooltip that is attached to the pate name in the notebook
+ *  tab. */
+const gchar *
+gnc_plugin_page_get_page_long_name (GncPluginPage *page)
+{
+  GncPluginPagePrivate *priv;
+
+  g_return_val_if_fail (GNC_IS_PLUGIN_PAGE (page), NULL);
+
+  priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+  return priv->page_long_name;
+}
+
+
+/*  Set the long name of this page.  This is the string used in the
+ *  tooltip that is attached to the pate name in the notebook tab. */
+void
+gnc_plugin_page_set_page_long_name (GncPluginPage *page, const gchar *name)
+{
+  GncPluginPagePrivate *priv;
+
+  g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
+
+  priv = GNC_PLUGIN_PAGE_GET_PRIVATE(page);
+  if (priv->page_long_name)
+    g_free(priv->page_long_name);
+  priv->page_long_name = g_strdup(name);
+}
+
+
 /*  Retrieve the Uniform Resource Identifier for this page. */
 const gchar *
 gnc_plugin_page_get_uri (GncPluginPage *page)

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin-page.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -50,11 +50,7 @@
 #define GNC_PLUGIN_PAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_PLUGIN_PAGE, GncPluginPageClass))
 
 /* typedefs & structures */
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
 
-
 /** The instance data structure for a content plugin. */
 typedef struct GncPluginPage {
 	GObject gobject;		/**< The parent object data. */
@@ -354,6 +350,28 @@
 void gnc_plugin_page_set_page_name (GncPluginPage *page, const char *name);
 
 
+/** Retrieve the long name of this page.  This is the string used in
+ *  the tooltip that is attached to the pate name in the notebook
+ *  tab.
+ *
+ *  @param page The page whose name should be retrieved.
+ *
+ *  @return The page's name.  This string is owned by the page and
+ *  should not be freed by the caller.
+ */
+const gchar *gnc_plugin_page_get_page_long_name (GncPluginPage *page);
+
+
+/** Set the long name of this page.  This is the string used in the
+ *  tooltip that is attached to the pate name in the notebook tab.
+ *
+ *  @param page The page whose name should be set.
+ *
+ *  @param name The new string for the name.
+ */
+void gnc_plugin_page_set_page_long_name (GncPluginPage *page, const char *name);
+
+
 /** Retrieve the Uniform Resource Identifier for this page.
  *
  *  @param page The page whose URI should be retrieved.

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-plugin.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -356,17 +356,20 @@
 	gchar *pathname;
 	gint merge_id;
 	
-	ENTER("ui_merge %p, action_group %p, filename %s",
-	      ui_merge, action_group, filename);
 	g_return_val_if_fail (ui_merge, 0);
 	g_return_val_if_fail (action_group, 0);
 	g_return_val_if_fail (filename, 0);
 
+	ENTER("ui_merge %p, action_group %p, filename %s",
+	      ui_merge, action_group, filename);
 	gtk_ui_manager_insert_action_group (ui_merge, action_group, 0);
 
 	pathname = gnc_gnome_locate_ui_file (filename);
 	if (pathname == NULL)
-	  return 0;
+    {
+      LEAVE("fail");
+      return 0;
+    }
 
 	merge_id = gtk_ui_manager_add_ui_from_file (ui_merge, pathname, &error);
 	DEBUG("merge_id is %d", merge_id);

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -81,10 +81,10 @@
 
 static void gnc_query_list_set_query_sort (GNCQueryList *list, gboolean new_column);
 
-GtkType
+GType
 gnc_query_list_get_type (void)
 {
-  static GtkType gnc_query_list_type = 0;
+  static GType gnc_query_list_type = 0;
 
   if (!gnc_query_list_type)
   {

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-query-list.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -82,7 +82,7 @@
  *                public functions                         *
  ***********************************************************/
 
-GtkType gnc_query_list_get_type (void);
+GType gnc_query_list_get_type (void);
 
 /* The param_list remains owned by the caller but is used by the
  * query-list; do not destroy it until you destroy this query-list.

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,270 @@
+/* 
+ * gnc-sx-instance-dense-cal-adapter.c
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+#include <glib.h>
+#include "gnc-sx-instance-dense-cal-adapter.h"
+#include "gnc-dense-cal.h"
+
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.gui.sx.adapter.sx-dense-cal"
+
+static void gnc_sx_instance_dense_cal_adapter_dispose(GObject *obj);
+static void gnc_sx_instance_dense_cal_adapter_finalize(GObject *obj);
+
+static GList* gsidca_get_contained(GncDenseCalModel *model);
+static gchar* gsidca_get_name(GncDenseCalModel *model, guint tag);
+static gchar* gsidca_get_info(GncDenseCalModel *model, guint tag);
+static gint gsidca_get_instance_count(GncDenseCalModel *model, guint tag);
+static void gsidca_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date);
+
+static GObjectClass *parent_class = NULL;
+
+struct _GncSxInstanceDenseCalAdapterClass
+{
+    GObjectClass parent;
+};
+
+struct _GncSxInstanceDenseCalAdapter 
+{
+    GObject parent;
+    gboolean disposed;
+    GncSxInstanceModel *instances;
+};
+
+static void
+gnc_sx_instance_dense_cal_adapter_class_init(GncSxInstanceDenseCalAdapterClass *klass)
+{
+    GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+
+    obj_class->dispose = gnc_sx_instance_dense_cal_adapter_dispose;
+    obj_class->finalize = gnc_sx_instance_dense_cal_adapter_finalize;
+
+    parent_class = g_type_class_peek_parent(klass);
+}
+
+static void
+gnc_sx_instance_dense_cal_adapter_init(GTypeInstance *instance, gpointer klass)
+{
+    /*GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(instance);*/
+    ; /* nop */
+}
+
+static void
+gnc_sx_instance_dense_cal_adapter_interface_init(gpointer g_iface, gpointer iface_data)
+{
+    GncDenseCalModelIface *iface = (GncDenseCalModelIface*)g_iface;
+    iface->get_contained = gsidca_get_contained;
+    iface->get_name = gsidca_get_name;
+    iface->get_info = gsidca_get_info;
+    iface->get_instance_count = gsidca_get_instance_count;
+    iface->get_instance = gsidca_get_instance;
+}
+
+static void
+gsidca_instances_added_cb(GncSxInstanceModel *model, SchedXaction *sx_added, gpointer user_data)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(user_data);
+    g_debug("instance added\n");
+    if (xaccSchedXactionGetEnabled(sx_added)) 
+    {
+        g_signal_emit_by_name(adapter, "added", GPOINTER_TO_UINT(sx_added));
+    }
+}
+
+static void
+gsidca_instances_updated_cb(GncSxInstanceModel *model, SchedXaction *sx_updated, gpointer user_data)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(user_data);
+    gnc_sx_instance_model_update_sx_instances(model, sx_updated);
+    g_debug("instances updated\n");
+    if (xaccSchedXactionGetEnabled(sx_updated)) 
+    {
+        g_signal_emit_by_name(adapter, "update", GPOINTER_TO_UINT((gpointer)sx_updated));
+    }
+    else
+    {
+        g_signal_emit_by_name(adapter, "removing", GPOINTER_TO_UINT((gpointer)sx_updated));
+    }
+}
+
+static void
+gsidca_instances_removing_cb(GncSxInstanceModel *model, SchedXaction *sx_to_be_removed, gpointer user_data)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(user_data);
+    g_debug("removing instance...\n");
+    g_signal_emit_by_name(adapter, "removing", GPOINTER_TO_UINT(sx_to_be_removed));
+    gnc_sx_instance_model_remove_sx_instances(model, sx_to_be_removed);
+}
+
+GncSxInstanceDenseCalAdapter*
+gnc_sx_instance_dense_cal_adapter_new(GncSxInstanceModel *instances)
+{
+    GncSxInstanceDenseCalAdapter *adapter = g_object_new(GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER, NULL);
+    adapter->instances = instances;
+    g_object_ref(G_OBJECT(adapter->instances));
+
+    g_signal_connect(instances, "added", (GCallback)gsidca_instances_added_cb, adapter);
+    g_signal_connect(instances, "updated", (GCallback)gsidca_instances_updated_cb, adapter);
+    g_signal_connect(instances, "removing", (GCallback)gsidca_instances_removing_cb, adapter);
+    return adapter;
+}
+
+GType
+gnc_sx_instance_dense_cal_adapter_get_type(void)
+{
+    static GType type = 0;
+    if (type == 0)
+    {
+        static const GTypeInfo info = {
+            sizeof (GncSxInstanceDenseCalAdapterClass),
+            NULL, /* base init */
+            NULL, /* base finalize */
+            (GClassInitFunc)gnc_sx_instance_dense_cal_adapter_class_init,
+            NULL, /* class finalize */
+            NULL, /* class data */
+            sizeof(GncSxInstanceDenseCalAdapter),
+            0, /* n_preallocs */
+            (GInstanceInitFunc)gnc_sx_instance_dense_cal_adapter_init
+        };
+        static const GInterfaceInfo iDenseCalModelInfo = {
+            (GInterfaceInitFunc)gnc_sx_instance_dense_cal_adapter_interface_init,
+            NULL, /* interface finalize */
+            NULL, /* interface data */
+        };
+
+        type = g_type_register_static (G_TYPE_OBJECT,
+                                       "GncSxInstanceDenseCalAdapterType",
+                                       &info, 0);
+        g_type_add_interface_static(type,
+                                    GNC_TYPE_DENSE_CAL_MODEL,
+                                    &iDenseCalModelInfo);
+    }
+    return type;
+}
+
+static gint
+gsidca_find_sx_with_tag(gconstpointer list_data,
+                        gconstpointer find_data)
+{
+    GncSxInstances *sx_instances = (GncSxInstances*)list_data;
+    return (GUINT_TO_POINTER(GPOINTER_TO_UINT(sx_instances->sx)) == find_data ? 0 : 1);
+}
+
+// @@ fixme this list is leaked.
+static GList*
+gsidca_get_contained(GncDenseCalModel *model)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
+    //"removing return gnc_g_list_map(instances->sxes, sx_to_tag, null);
+    GList *list = NULL, *sxes;
+    for (sxes = adapter->instances->sx_instance_list; sxes != NULL; sxes = sxes->next)
+    {
+        GncSxInstances *sx_instances = (GncSxInstances*)sxes->data;
+        if (xaccSchedXactionGetEnabled(sx_instances->sx)) 
+        {
+            list = g_list_append(list, GUINT_TO_POINTER(GPOINTER_TO_UINT(sx_instances->sx)));
+        }
+    }
+    return list;
+}
+
+static gchar*
+gsidca_get_name(GncDenseCalModel *model, guint tag)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
+    GncSxInstances *insts
+        = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+    if (insts == NULL)
+        return NULL;
+    return xaccSchedXactionGetName(insts->sx);
+}
+
+static gchar*
+gsidca_get_info(GncDenseCalModel *model, guint tag)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
+    // g_list_find(instances->sxes, {sx_to_tag, tag}).get_freq_spec().get_freq_str();
+    FreqSpec *spec;
+    GString *info;
+    gchar *info_str;
+    GncSxInstances *insts
+        = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+    if (insts == NULL)
+        return NULL;
+    spec = xaccSchedXactionGetFreqSpec(insts->sx);
+    info = g_string_sized_new(16);
+    xaccFreqSpecGetFreqStr(spec, info);
+    info_str = info->str; // @fixme leaked... :/
+    g_string_free(info, FALSE);
+    return info_str;
+}
+
+static gint
+gsidca_get_instance_count(GncDenseCalModel *model, guint tag)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
+    // g_list_find(instances->sxes, {sx_to_tag, tag}).length();
+    GncSxInstances *insts
+        = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+    if (insts == NULL)
+        return 0;
+    return g_list_length(insts->list);
+}
+
+static void
+gsidca_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date)
+{
+    GncSxInstanceDenseCalAdapter *adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(model);
+    GncSxInstance *inst;
+    GncSxInstances *insts
+        = (GncSxInstances*)g_list_find_custom(adapter->instances->sx_instance_list, GUINT_TO_POINTER(tag), gsidca_find_sx_with_tag)->data;
+    if (insts == NULL)
+        return;
+    inst = (GncSxInstance*)g_list_nth_data(insts->list, instance_index);
+    g_date_valid(&inst->date);
+    *date = inst->date;
+    g_date_valid(date);
+}
+
+static void
+gnc_sx_instance_dense_cal_adapter_dispose(GObject *obj)
+{
+    GncSxInstanceDenseCalAdapter *adapter;
+    g_return_if_fail(obj != NULL);
+    adapter = GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(obj);
+    // g_return_if_fail(!adapter->disposed);
+    if (adapter->disposed) return;
+    adapter->disposed = TRUE;
+
+    g_object_unref(G_OBJECT(adapter->instances));
+    adapter->instances = NULL;
+
+    G_OBJECT_CLASS(parent_class)->dispose(obj);
+}
+
+static void gnc_sx_instance_dense_cal_adapter_finalize(GObject *obj)
+{
+    g_return_if_fail(obj != NULL);
+    // nop
+    G_OBJECT_CLASS(parent_class)->finalize(obj);
+}

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-instance-dense-cal-adapter.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,43 @@
+/* 
+ * gnc-sx-instance-dense-cal-adapter.h
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef _GNC_SX_INSTANCE_DENSE_CAL_ADAPTER_H
+#define _GNC_SX_INSTANCE_DENSE_CAL_ADAPTER_H
+
+#include "config.h"
+#include <glib.h>
+#include "gnc-sx-instance-model.h"
+
+typedef struct _GncSxInstanceDenseCalAdapterClass GncSxInstanceDenseCalAdapterClass;
+typedef struct _GncSxInstanceDenseCalAdapter GncSxInstanceDenseCalAdapter;
+
+#define GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER	          (gnc_sx_instance_dense_cal_adapter_get_type ())
+#define GNC_SX_INSTANCE_DENSE_CAL_ADAPTER(obj)	          (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER, GncSxInstanceDenseCalAdapter))
+#define GNC_SX_INSTANCE_DENSE_CAL_ADAPTER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER, GncSxInstanceDenseCalAdapterClass))
+#define GNC_IS_SX_INSTANCE_DENSE_CAL_ADAPTER(obj)	  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER))
+#define GNC_IS_SX_INSTANCE_DENSE_CAL_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER))
+#define GNC_SX_INSTANCE_DENSE_CAL_ADAPTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_SX_INSTANCE_DENSE_CAL_ADAPTER, GncSxInstanceDenseCalAdapterClass))
+
+GncSxInstanceDenseCalAdapter* gnc_sx_instance_dense_cal_adapter_new(GncSxInstanceModel *instances);
+GType gnc_sx_instance_dense_cal_adapter_get_type(void);
+
+#endif // _GNC_SX_INSTANCE_DENSE_CAL_ADAPTER_H

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,615 @@
+/* 
+ * gnc-sx-list-tree-model-adapter.c
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include "gnc-sx-instance-model.h"
+#include "gnc-sx-list-tree-model-adapter.h"
+#include <gtk/gtk.h>
+
+struct _GncSxListTreeModelAdapter
+{
+    GObject parent;
+
+    /* protected */
+    gboolean disposed;
+    GncSxInstanceModel *instances;
+    GtkTreeStore *orig;
+    GtkTreeModelSort *real;
+};
+
+struct _GncSxListTreeModelAdapterClass
+{
+    GObjectClass parent;
+};
+
+static GObjectClass *parent_class = NULL;
+
+static void gnc_sx_list_tree_model_adapter_class_init(GncSxListTreeModelAdapterClass *klass);
+static void gsltma_tree_model_interface_init(gpointer g_iface, gpointer iface_data);
+static void gsltma_tree_sortable_interface_init(gpointer g_iface, gpointer iface_data);
+static void gnc_sx_list_tree_model_adapter_init(GTypeInstance *instance, gpointer klass);
+static void gnc_sx_list_tree_model_adapter_dispose(GObject *obj);
+static void gnc_sx_list_tree_model_adapter_finalize(GObject *obj);
+
+static GncSxInstances* gsltma_get_sx_instances_from_orig_iter(GncSxListTreeModelAdapter *model, GtkTreeIter *orig_iter);
+
+GType
+gnc_sx_list_tree_model_adapter_get_type(void)
+{
+    static GType type = 0;
+    if (type == 0) {
+        static const GTypeInfo info = {
+            sizeof (GncSxListTreeModelAdapterClass),
+            NULL,   /* base_init */
+            NULL,   /* base_finalize */
+            (GClassInitFunc)gnc_sx_list_tree_model_adapter_class_init,   /* class_init */
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            sizeof (GncSxListTreeModelAdapter),
+            0,      /* n_preallocs */
+            (GInstanceInitFunc)gnc_sx_list_tree_model_adapter_init    /* instance_init */
+        };
+        static const GInterfaceInfo itree_model_info = {
+            (GInterfaceInitFunc) gsltma_tree_model_interface_init,    /* interface_init */
+            NULL,               /* interface_finalize */
+            NULL                /* interface_data */
+        };
+        static const GInterfaceInfo itree_sortable_info = {
+            (GInterfaceInitFunc) gsltma_tree_sortable_interface_init,    /* interface_init */
+            NULL,               /* interface_finalize */
+            NULL                /* interface_data */
+        };
+
+        type = g_type_register_static (G_TYPE_OBJECT,
+                                       "GncSxListTreeModelAdapterType",
+                                       &info, 0);
+        g_type_add_interface_static(type,
+                                    GTK_TYPE_TREE_MODEL,
+                                    &itree_model_info);
+        g_type_add_interface_static(type,
+                                    GTK_TYPE_TREE_SORTABLE,
+                                    &itree_sortable_info);
+    }
+    return type;
+}
+
+static void
+gnc_sx_list_tree_model_adapter_class_init(GncSxListTreeModelAdapterClass *klass)
+{
+    GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+
+    parent_class = g_type_class_peek_parent(klass);
+
+    obj_class->dispose = gnc_sx_list_tree_model_adapter_dispose;
+    obj_class->finalize = gnc_sx_list_tree_model_adapter_finalize;
+
+}
+
+static GtkTreeModelFlags
+gsltma_get_flags(GtkTreeModel *tree_model)
+{
+    return gtk_tree_model_get_flags(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real));
+}
+
+static gint
+gsltma_get_n_columns(GtkTreeModel *tree_model)
+{
+    return gtk_tree_model_get_n_columns(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real));
+}
+
+static GType
+gsltma_get_column_type(GtkTreeModel *tree_model, gint index)
+{
+    return gtk_tree_model_get_column_type(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), index);
+}
+
+static gboolean
+gsltma_get_iter(GtkTreeModel *tree_model,
+                GtkTreeIter *iter,
+                GtkTreePath *path)
+{
+    return gtk_tree_model_get_iter(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter, path);
+}
+
+static GtkTreePath*
+gsltma_get_path(GtkTreeModel *tree_model,
+                GtkTreeIter *iter)
+{
+    return gtk_tree_model_get_path(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static void
+gsltma_get_value(GtkTreeModel *tree_model,
+                 GtkTreeIter *iter,
+                 gint column,
+                 GValue *value)
+{
+    gtk_tree_model_get_value(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter, column, value);
+}
+
+static gboolean
+gsltma_iter_next(GtkTreeModel *tree_model,
+                 GtkTreeIter *iter)
+{
+    return gtk_tree_model_iter_next(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static gboolean
+gsltma_iter_children(GtkTreeModel *tree_model,
+                     GtkTreeIter *iter,
+                     GtkTreeIter *parent)
+{
+    return gtk_tree_model_iter_children(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter, parent);
+}
+
+static gboolean
+gsltma_iter_has_child(GtkTreeModel *tree_model,
+                      GtkTreeIter *iter)
+{
+    return gtk_tree_model_iter_has_child(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static gint
+gsltma_iter_n_children(GtkTreeModel *tree_model,
+                       GtkTreeIter *iter)
+{
+    return gtk_tree_model_iter_n_children(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static gboolean
+gsltma_iter_nth_child(GtkTreeModel *tree_model,
+                      GtkTreeIter *iter,
+                      GtkTreeIter *parent,
+                      gint n)
+{
+    return gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter, parent, n);
+}
+
+static gboolean
+gsltma_iter_parent(GtkTreeModel *tree_model,
+                   GtkTreeIter *iter,
+                   GtkTreeIter *child)
+{
+    return gtk_tree_model_iter_parent(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter, child);
+}
+
+static void
+gsltma_ref_node(GtkTreeModel *tree_model,
+                GtkTreeIter *iter)
+{
+    gtk_tree_model_ref_node(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static void
+gsltma_unref_node(GtkTreeModel *tree_model,
+                  GtkTreeIter *iter)
+{
+    gtk_tree_model_unref_node(GTK_TREE_MODEL(GNC_SX_LIST_TREE_MODEL_ADAPTER(tree_model)->real), iter);
+}
+
+static void
+gsltma_tree_model_interface_init(gpointer g_iface, gpointer iface_data)
+{
+    GtkTreeModelIface *tree_model = (GtkTreeModelIface*)g_iface;
+    tree_model->get_flags = gsltma_get_flags;
+    tree_model->get_n_columns = gsltma_get_n_columns;
+    tree_model->get_column_type = gsltma_get_column_type;
+    tree_model->get_iter = gsltma_get_iter;
+    tree_model->get_path = gsltma_get_path;
+    tree_model->get_value = gsltma_get_value;
+    tree_model->iter_next = gsltma_iter_next;
+    tree_model->iter_children = gsltma_iter_children;
+    tree_model->iter_has_child = gsltma_iter_has_child;
+    tree_model->iter_n_children = gsltma_iter_n_children;
+    tree_model->iter_nth_child = gsltma_iter_nth_child;
+    tree_model->iter_parent = gsltma_iter_parent;
+    tree_model->ref_node = gsltma_ref_node;
+    tree_model->unref_node = gsltma_unref_node;
+}
+
+static gboolean
+gsltma_get_sort_column_id(GtkTreeSortable        *sortable,
+                          gint                   *sort_column_id,
+                          GtkSortType            *order)
+{
+    return gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real),
+                                                sort_column_id,
+                                                order);
+}
+
+static void
+gsltma_set_sort_column_id(GtkTreeSortable        *sortable,
+                          gint                    sort_column_id,
+                          GtkSortType             order)
+{
+    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real),
+                                         sort_column_id,
+                                         order);
+}
+
+static void
+gsltma_set_sort_func(GtkTreeSortable        *sortable,
+                     gint                    sort_column_id,
+                     GtkTreeIterCompareFunc  func,
+                     gpointer                data,
+                     GtkDestroyNotify        destroy)
+{
+    gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real), 
+                                    sort_column_id,
+                                    func,
+                                    data,
+                                    destroy);
+}
+
+static void
+gsltma_set_default_sort_func(GtkTreeSortable        *sortable,
+                             GtkTreeIterCompareFunc  func,
+                             gpointer                data,
+                             GtkDestroyNotify        destroy)
+{
+    gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real),
+                                            func, data, destroy);
+}
+
+static gboolean
+gsltma_has_default_sort_func(GtkTreeSortable        *sortable)
+{
+    return gtk_tree_sortable_has_default_sort_func(GTK_TREE_SORTABLE(GNC_SX_LIST_TREE_MODEL_ADAPTER(sortable)->real));
+}
+
+static void
+gsltma_tree_sortable_interface_init(gpointer g_iface, gpointer iface_data)
+{
+    GtkTreeSortableIface *tree_sortable = (GtkTreeSortableIface*)g_iface;
+    tree_sortable->get_sort_column_id = gsltma_get_sort_column_id;
+    tree_sortable->set_sort_column_id = gsltma_set_sort_column_id;
+    tree_sortable->set_sort_func = gsltma_set_sort_func;
+    tree_sortable->set_default_sort_func = gsltma_set_default_sort_func;
+    tree_sortable->has_default_sort_func = gsltma_has_default_sort_func;
+    tree_sortable->get_sort_column_id = gsltma_get_sort_column_id;
+    tree_sortable->set_sort_column_id = gsltma_set_sort_column_id;
+    tree_sortable->set_sort_func = gsltma_set_sort_func;
+    tree_sortable->set_default_sort_func = gsltma_set_default_sort_func;
+    tree_sortable->has_default_sort_func = gsltma_has_default_sort_func;
+}
+
+static void
+gsltma_proxy_row_changed(GtkTreeModel *treemodel,
+                         GtkTreePath *arg1,
+                         GtkTreeIter *arg2,
+                         gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-changed", arg1, arg2);
+}
+
+static void
+gsltma_proxy_row_deleted(GtkTreeModel *treemodel,
+                         GtkTreePath *arg1,
+                         gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-deleted", arg1);
+}
+
+static void
+gsltma_proxy_row_has_child_toggled(GtkTreeModel *treemodel,
+                                   GtkTreePath *arg1,
+                                   GtkTreeIter *arg2,
+                                   gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-has-child-toggled", arg1, arg2);
+}
+
+static void
+gsltma_proxy_row_inserted(GtkTreeModel *treemodel,
+                          GtkTreePath *arg1,
+                          GtkTreeIter *arg2,
+                          gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "row-inserted", arg1, arg2);
+}
+
+static void
+gsltma_proxy_rows_reordered(GtkTreeModel *treemodel,
+                            GtkTreePath *arg1,
+                            GtkTreeIter *arg2,
+                            gpointer arg3,
+                            gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "rows-reordered", arg1, arg2, arg3);
+}
+
+static void
+gsltma_proxy_sort_column_changed(GtkTreeSortable *sortable, gpointer user_data)
+{
+    g_signal_emit_by_name(user_data, "sort-column-changed");
+}
+
+static gint
+_name_comparator(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data)
+{
+    gint rtn;
+    GncSxListTreeModelAdapter *adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    GncSxInstances *a_inst, *b_inst;
+    gchar *a_caseless, *b_caseless;
+
+    a_inst = gsltma_get_sx_instances_from_orig_iter(adapter, a);
+    b_inst = gsltma_get_sx_instances_from_orig_iter(adapter, b);
+
+    if (a_inst == NULL && b_inst == NULL) return 0;
+    if (a_inst == NULL) return 1;
+    if (b_inst == NULL) return -1;
+
+    a_caseless = g_utf8_casefold(xaccSchedXactionGetName(a_inst->sx), -1);
+    b_caseless = g_utf8_casefold(xaccSchedXactionGetName(b_inst->sx), -1);
+    rtn = safe_strcmp(a_caseless, b_caseless);
+    g_free(a_caseless);
+    g_free(b_caseless);
+
+    return rtn;
+}
+
+static gint
+_freq_comparator(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    GncSxInstances *a_inst, *b_inst;
+
+    a_inst = gsltma_get_sx_instances_from_orig_iter(adapter, a);
+    b_inst = gsltma_get_sx_instances_from_orig_iter(adapter, b);
+     
+    if (a_inst == NULL && b_inst == NULL) return 0;
+    if (a_inst == NULL) return 1;
+    if (b_inst == NULL) return -1;
+
+    return recurrenceListCmp(gnc_sx_get_schedule(a_inst->sx), gnc_sx_get_schedule(b_inst->sx));
+}
+
+static gint
+_safe_invalidable_date_compare(GDate *a, GDate *b)
+{
+    if (!g_date_valid(a) && !g_date_valid(b))
+    {
+        return 0;
+    }
+    if (!g_date_valid(a))
+    {
+        return 1;
+    }
+    if (!g_date_valid(b))
+    {
+        return -1;
+    }
+    return g_date_compare(a, b);
+}
+
+static gint
+_last_occur_comparator(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    GncSxInstances *a_inst, *b_inst;
+
+    a_inst = gsltma_get_sx_instances_from_orig_iter(adapter, a);
+    b_inst = gsltma_get_sx_instances_from_orig_iter(adapter, b);
+
+    return _safe_invalidable_date_compare(xaccSchedXactionGetLastOccurDate(a_inst->sx),
+                                          xaccSchedXactionGetLastOccurDate(b_inst->sx));
+}
+
+static gint
+_next_occur_comparator(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    GncSxInstances *a_inst, *b_inst;
+
+    a_inst = gsltma_get_sx_instances_from_orig_iter(adapter, a);
+    b_inst = gsltma_get_sx_instances_from_orig_iter(adapter, b);
+
+    return _safe_invalidable_date_compare(&a_inst->next_instance_date,
+                                          &b_inst->next_instance_date);
+}
+
+static gint
+_enabled_comparator(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    GncSxInstances *a_inst, *b_inst;
+
+    a_inst = gsltma_get_sx_instances_from_orig_iter(adapter, a);
+    b_inst = gsltma_get_sx_instances_from_orig_iter(adapter, b);
+
+    if (xaccSchedXactionGetEnabled(a_inst->sx) && !xaccSchedXactionGetEnabled(b_inst->sx)) return 1;
+    if (!xaccSchedXactionGetEnabled(a_inst->sx) && xaccSchedXactionGetEnabled(b_inst->sx)) return -1;
+    return 0;
+}
+
+static void
+gnc_sx_list_tree_model_adapter_init(GTypeInstance *instance, gpointer klass)
+{
+    GncSxListTreeModelAdapter *adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(instance);
+    adapter->orig = gtk_tree_store_new(5, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+    adapter->real = GTK_TREE_MODEL_SORT(gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(adapter->orig)));
+
+    // setup sorting
+    gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(adapter->real), SXLTMA_COL_NAME, _name_comparator, adapter, NULL);
+    gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(adapter->real), SXLTMA_COL_ENABLED, _enabled_comparator, adapter, NULL);
+    gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(adapter->real), SXLTMA_COL_FREQUENCY, _freq_comparator, adapter, NULL);
+    gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(adapter->real), SXLTMA_COL_LAST_OCCUR, _last_occur_comparator, adapter, NULL);
+    gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(adapter->real), SXLTMA_COL_NEXT_OCCUR, _next_occur_comparator, adapter, NULL);
+    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(adapter->real), SXLTMA_COL_NEXT_OCCUR, GTK_SORT_ASCENDING);
+
+    g_signal_connect(adapter->real, "row-changed", G_CALLBACK(gsltma_proxy_row_changed), adapter);
+    g_signal_connect(adapter->real, "row-deleted", G_CALLBACK(gsltma_proxy_row_deleted), adapter);
+    g_signal_connect(adapter->real, "row-has-child-toggled", G_CALLBACK(gsltma_proxy_row_has_child_toggled), adapter);
+    g_signal_connect(adapter->real, "row-inserted", G_CALLBACK(gsltma_proxy_row_inserted), adapter);
+    g_signal_connect(adapter->real, "rows-reordered", G_CALLBACK(gsltma_proxy_rows_reordered), adapter);
+
+    g_signal_connect(adapter->real, "sort-column-changed", G_CALLBACK(gsltma_proxy_sort_column_changed), adapter);
+}
+
+static void
+_format_conditional_date(GDate *date, char *date_buf, int buf_max_length)
+{
+    if (date == NULL || !g_date_valid(date))
+    {
+        g_stpcpy(date_buf, "never");
+    }
+    else
+    {
+        qof_print_gdate(date_buf, buf_max_length, date);
+    }
+}
+
+static void
+gsltma_populate_tree_store(GncSxListTreeModelAdapter *model)
+{
+    GtkTreeIter iter;
+    GList *list;
+
+    for (list = model->instances->sx_instance_list; list != NULL; list = list->next)
+    {
+        GncSxInstances *instances = (GncSxInstances*)list->data;
+        gchar *frequency_str;
+        char last_occur_date_buf[MAX_DATE_LENGTH+1];
+        char next_occur_date_buf[MAX_DATE_LENGTH+1];
+
+        frequency_str = recurrenceListToCompactString(gnc_sx_get_schedule(instances->sx));
+
+        _format_conditional_date(xaccSchedXactionGetLastOccurDate(instances->sx),
+                                 last_occur_date_buf, MAX_DATE_LENGTH);
+        _format_conditional_date(&instances->next_instance_date,
+                                 next_occur_date_buf, MAX_DATE_LENGTH);
+
+        gtk_tree_store_append(model->orig, &iter, NULL);
+        gtk_tree_store_set(model->orig, &iter,
+                           SXLTMA_COL_NAME, xaccSchedXactionGetName(instances->sx),
+                           SXLTMA_COL_ENABLED, xaccSchedXactionGetEnabled(instances->sx),
+                           SXLTMA_COL_FREQUENCY, frequency_str,
+                           SXLTMA_COL_LAST_OCCUR, last_occur_date_buf,
+                           SXLTMA_COL_NEXT_OCCUR, next_occur_date_buf,
+                           -1);
+        g_free(frequency_str);
+    }
+}
+
+static void
+gsltma_added_cb(GncSxInstanceModel *instances, SchedXaction *sx_added, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *model = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    gtk_tree_store_clear(model->orig);
+    gsltma_populate_tree_store(model);
+}
+
+static void
+gsltma_updated_cb(GncSxInstanceModel *instances, SchedXaction *sx_updated, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *model = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    gnc_sx_instance_model_update_sx_instances(instances, sx_updated);
+    gtk_tree_store_clear(model->orig);
+    gsltma_populate_tree_store(model);
+}
+
+static void
+gsltma_removing_cb(GncSxInstanceModel *instances, SchedXaction *sx_removing, gpointer user_data)
+{
+    GncSxListTreeModelAdapter *model = GNC_SX_LIST_TREE_MODEL_ADAPTER(user_data);
+    gnc_sx_instance_model_remove_sx_instances(instances, sx_removing);
+    gtk_tree_store_clear(model->orig);
+    gsltma_populate_tree_store(model);
+}
+
+GncSxListTreeModelAdapter*
+gnc_sx_list_tree_model_adapter_new(GncSxInstanceModel *instances)
+{
+    GncSxListTreeModelAdapter *rtn;
+
+    rtn = GNC_SX_LIST_TREE_MODEL_ADAPTER(g_object_new(GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER, NULL));
+    rtn->instances = instances;
+    g_object_ref(G_OBJECT(rtn->instances));
+
+    gsltma_populate_tree_store(rtn);
+
+    g_signal_connect(G_OBJECT(rtn->instances), "added", (GCallback)gsltma_added_cb, (gpointer)rtn);
+    g_signal_connect(G_OBJECT(rtn->instances), "updated", (GCallback)gsltma_updated_cb, (gpointer)rtn);
+    g_signal_connect(G_OBJECT(rtn->instances), "removing", (GCallback)gsltma_removing_cb, (gpointer)rtn);
+
+    return rtn;
+}
+
+GncSxInstances*
+gsltma_get_sx_instances_from_orig_iter(GncSxListTreeModelAdapter *model, GtkTreeIter *orig_iter)
+{
+    GtkTreePath *path;
+    gint *indices;
+    gint index;
+
+    path = gtk_tree_model_get_path(GTK_TREE_MODEL(model->orig), orig_iter);
+    if (gtk_tree_path_get_depth(path) > 1)
+    {
+        gtk_tree_path_free(path);
+        return NULL;
+    }
+    indices = gtk_tree_path_get_indices(path);
+    index = indices[0];
+
+    gtk_tree_path_free(path);
+    return (GncSxInstances*)g_list_nth_data(model->instances->sx_instance_list, index);
+}
+
+GncSxInstances*
+gnc_sx_list_tree_model_adapter_get_sx_instances(GncSxListTreeModelAdapter *model, GtkTreeIter *sort_iter)
+{
+    GtkTreeIter translated_iter;
+    gtk_tree_model_sort_convert_iter_to_child_iter(model->real,
+                                                   &translated_iter,
+                                                   sort_iter);
+    return gsltma_get_sx_instances_from_orig_iter(model, &translated_iter);
+}
+
+static void
+gnc_sx_list_tree_model_adapter_dispose(GObject *obj)
+{
+    GncSxListTreeModelAdapter *adapter;
+
+    g_return_if_fail(obj != NULL);
+    adapter = GNC_SX_LIST_TREE_MODEL_ADAPTER(obj);
+
+    if (adapter->disposed) return;
+    adapter->disposed = TRUE;
+
+    g_object_unref(G_OBJECT(adapter->instances));
+    adapter->instances = NULL;
+    g_object_unref(G_OBJECT(adapter->real));
+    adapter->real = NULL;
+    g_object_unref(G_OBJECT(adapter->orig));
+    adapter->orig = NULL;
+
+    G_OBJECT_CLASS(parent_class)->dispose(obj);
+}
+
+static void
+gnc_sx_list_tree_model_adapter_finalize(GObject *obj)
+{
+    g_return_if_fail(obj != NULL);
+    G_OBJECT_CLASS(parent_class)->finalize(obj);
+}

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-sx-list-tree-model-adapter.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,60 @@
+/* 
+ * gnc-sx-list-tree-model-adapter.h
+ *
+ * Copyright (C) 2006 Josh Sled <jsled at asynchronous.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * 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
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+#ifndef _GNC_SX_LIST_TREE_MODEL_ADAPTER_H
+#define _GNC_SX_LIST_TREE_MODEL_ADAPTER_H
+
+#include "config.h"
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include "gnc-sx-instance-model.h"
+
+G_BEGIN_DECLS
+
+#define GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER	       (gnc_sx_list_tree_model_adapter_get_type ())
+#define GNC_SX_LIST_TREE_MODEL_ADAPTER(obj)	       (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER, GncSxListTreeModelAdapter))
+#define GNC_SX_LIST_TREE_MODEL_ADAPTER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER, GncSxListTreeModelAdapterClass))
+#define GNC_IS_SX_LIST_TREE_MODEL_ADAPTER(obj)	       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER))
+#define GNC_IS_SX_LIST_TREE_MODEL_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER))
+#define GNC_SX_LIST_TREE_MODEL_ADAPTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_SX_LIST_TREE_MODEL_ADAPTER, GncSxListTreeModelAdapterClass))
+
+typedef struct _GncSxListTreeModelAdapter GncSxListTreeModelAdapter;
+typedef struct _GncSxListTreeModelAdapterClass GncSxListTreeModelAdapterClass;
+
+// model columns
+enum {
+    SXLTMA_COL_NAME = 0,
+    SXLTMA_COL_ENABLED,
+    SXLTMA_COL_FREQUENCY,
+    SXLTMA_COL_LAST_OCCUR,
+    SXLTMA_COL_NEXT_OCCUR
+};
+
+GType gnc_sx_list_tree_model_adapter_get_type(void);
+GncSxListTreeModelAdapter* gnc_sx_list_tree_model_adapter_new(GncSxInstanceModel *instances);
+
+GncSxInstances* gnc_sx_list_tree_model_adapter_get_sx_instances(GncSxListTreeModelAdapter *model, GtkTreeIter *iter);
+
+G_END_DECLS
+
+#endif // _GNC_SX_LIST_TREE_MODEL_ADAPTER_H

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -32,7 +32,6 @@
 #include "gnc-tree-model-account.h"
 #include "gnc-component-manager.h"
 #include "Account.h"
-#include "Group.h"
 #include "gnc-accounting-period.h"
 #include "gnc-commodity.h"
 #include "gnc-gconf-utils.h"
@@ -54,7 +53,7 @@
 
 /** Implementation of GtkTreeModel  **************************************/
 static void gnc_tree_model_account_tree_model_init (GtkTreeModelIface *iface);
-static guint gnc_tree_model_account_get_flags (GtkTreeModel *tree_model);
+static GtkTreeModelFlags gnc_tree_model_account_get_flags (GtkTreeModel *tree_model);
 static int gnc_tree_model_account_get_n_columns (GtkTreeModel *tree_model);
 static GType gnc_tree_model_account_get_column_type (GtkTreeModel *tree_model,
 						     int index);
@@ -84,10 +83,6 @@
 						    GtkTreeIter *iter,
     						    GtkTreeIter *child);
 
-/** Helper Functions ****************************************************/
-static void gnc_tree_model_account_set_toplevel (GncTreeModelAccount *model,
-						 Account *toplevel);
-
 /** Component Manager Callback ******************************************/
 static void gnc_tree_model_account_event_handler (QofEntity *entity,
 						  QofEventId event_type,
@@ -98,8 +93,7 @@
 typedef struct GncTreeModelAccountPrivate
 {
 	QofBook *book;
-	AccountGroup *root;
-	Account *toplevel;
+	Account *root;
 	gint event_handler_id;
 	const gchar *negative_color;
 } GncTreeModelAccountPrivate;
@@ -208,7 +202,6 @@
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 	priv->book = NULL;
 	priv->root = NULL;
-	priv->toplevel = NULL;
 	priv->negative_color = red ? "red" : "black";
 
 	gnc_gconf_general_register_cb(KEY_NEGATIVE_IN_RED,
@@ -224,10 +217,11 @@
 	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 
-	ENTER("model %p", object);
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
 
+	ENTER("model %p", object);
+
 	model = GNC_TREE_MODEL_ACCOUNT (object);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
@@ -248,10 +242,11 @@
 	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 
-	ENTER("model %p", object);
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
 
+	ENTER("model %p", object);
+
 	model = GNC_TREE_MODEL_ACCOUNT (object);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
@@ -275,18 +270,18 @@
 /************************************************************/
 
 GtkTreeModel *
-gnc_tree_model_account_new (AccountGroup *group)
+gnc_tree_model_account_new (Account *root)
 {
 	GncTreeModelAccount *model;
 	GncTreeModelAccountPrivate *priv;
 	const GList *item;
 	
-	ENTER("group %p", group);
+	ENTER("root %p", root);
 	item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_ACCOUNT_NAME);
 	for ( ; item; item = g_list_next(item)) {
 		model = (GncTreeModelAccount *)item->data;
 		priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-		if (priv->root == group) {
+		if (priv->root == root) {
 			g_object_ref(G_OBJECT(model));
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
@@ -298,15 +293,8 @@
 
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 	priv->book = gnc_get_current_book();
-	priv->root = group;
+	priv->root = root;
 
-	{
-	  Account *account;
-
-	  account = xaccMallocAccount(priv->book);
-	  gnc_tree_model_account_set_toplevel (model, account);
-	}
-
 	priv->event_handler_id = qof_event_register_handler
 	  ((QofEventHandler)gnc_tree_model_account_event_handler, model);
 
@@ -370,7 +358,7 @@
 	iface->iter_parent     = gnc_tree_model_account_iter_parent;
 }
 
-static guint
+static GtkTreeModelFlags
 gnc_tree_model_account_get_flags (GtkTreeModel *tree_model)
 {
 	return 0;
@@ -441,68 +429,49 @@
 {
 	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
-	Account *account = NULL;
-	AccountGroup *group = NULL, *children;
-	gint i = 0, *indices;
+	Account *account, *parent;
+	gint i, *indices;
 
+	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+
 	{
 	  gchar *path_string = gtk_tree_path_to_string(path);
 	  ENTER("model %p, iter %p, path %s", tree_model, iter, path_string);
 	  g_free(path_string);
 	}
-	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-	if (priv->toplevel != NULL) {
-		if (gtk_tree_path_get_depth (path) > 1) {
-			i++;
-		} else {
 
-			iter->user_data = priv->toplevel;
-			iter->user_data2 = NULL;
-			iter->user_data3 = GINT_TO_POINTER (0);
-			iter->stamp = model->stamp;
-
-			LEAVE("iter (1) %s", iter_to_string(iter));
-			return TRUE;
-		}
+	if (gtk_tree_path_get_depth (path) <= 0) {
+		LEAVE("bad depth");
+		return FALSE;
 	}
 
-	if (priv->root == NULL) {
-		LEAVE("failed (2)");
+	indices = gtk_tree_path_get_indices (path);
+	if (indices[0] != 0) {
+		LEAVE("bad root index");
 		return FALSE;
 	}
 
-	children = priv->root;
-
-	indices = gtk_tree_path_get_indices (path);
-	for (; i < gtk_tree_path_get_depth (path); i++) {
-		group = children;
-		if (indices[i] >= xaccGroupGetNumAccounts (group)) {
+	parent = NULL;
+	account = priv->root;
+	for (i = 1; i < gtk_tree_path_get_depth (path); i++) {
+		parent = account;
+		account = gnc_account_nth_child(parent, indices[i]);
+		if (account == NULL) {
 			iter->stamp = 0;
-
-			LEAVE("failed (3)");
+			LEAVE("bad index");
 			return FALSE;
 		}
-
-		account = xaccGroupGetAccount (group, indices[i]);
-		children = xaccAccountGetChildren (account);
 	}
 
-	if (account == NULL || group == NULL) {
-		iter->stamp = 0;
-
-		LEAVE("failed (4)");
-		return FALSE;
-	}
-
 	iter->stamp = model->stamp;
 	iter->user_data = account;
-	iter->user_data2 = group;
+	iter->user_data2 = parent;
 	iter->user_data3 = GINT_TO_POINTER (indices[i - 1]);
 
-	LEAVE("iter (5) %s", iter_to_string(iter));
+	LEAVE("iter %s", iter_to_string(iter));
 	return TRUE;
 }
 
@@ -512,18 +481,17 @@
 {
 	GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	GncTreeModelAccountPrivate *priv;
-	Account *account;
-	AccountGroup *group;
+	Account *account, *parent;
 	GtkTreePath *path;
 	gint i;
-	gboolean found, finished = FALSE;
 
-	ENTER("model %p, iter %s", model, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
 	g_return_val_if_fail (iter != NULL, NULL);
 	g_return_val_if_fail (iter->user_data != NULL, NULL);
 	g_return_val_if_fail (iter->stamp == model->stamp, NULL);
 	
+	ENTER("model %p, iter %s", model, iter_to_string(iter));
+
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 	if (priv->root == NULL) {
 		LEAVE("failed (1)");
@@ -531,50 +499,24 @@
 	}
 
 	account = (Account *) iter->user_data;
-	group = (AccountGroup *) iter->user_data2;
+	parent = (Account *) iter->user_data2;
 
 	path = gtk_tree_path_new ();
-
-	if (priv->toplevel != NULL) {
-		if (account == priv->toplevel) {
-			gtk_tree_path_append_index (path, 0);
-
-			{
-			  gchar *path_string = gtk_tree_path_to_string(path);
-			  LEAVE("path (2) %s", path_string);
-			  g_free(path_string);
-			}
-			return path;
-		}
-	}
-
-	do {
-		found = FALSE;
-		for (i = 0; i < xaccGroupGetNumAccounts (group); i++) {
-			if (xaccGroupGetAccount (group, i) == account) {
-				found = TRUE;
-				if (group == priv->root)
-					finished = TRUE;
-				break;
-			}
-		}
-
-		if (!found) {
+	while (parent) {
+		i = gnc_account_child_index(parent, account);
+		if (i == -1) {
 			gtk_tree_path_free (path);
 			LEAVE("failed (3)");
 			return NULL;
 		}
-
 		gtk_tree_path_prepend_index (path, i);
+		account = parent;
+		parent = gnc_account_get_parent(account);
+	};
 
-		account = xaccAccountGetParentAccount (account);
-		group = xaccAccountGetParent (account);
-	} while (!finished);
+	/* Add the root node. */
+	gtk_tree_path_prepend_index (path, 0);
 
-	if (priv->toplevel != NULL) {
-		gtk_tree_path_prepend_index (path, 0);
-	}
-
 	{
 	  gchar *path_string = gtk_tree_path_to_string(path);
 	  LEAVE("path (4) %s", path_string);
@@ -608,7 +550,7 @@
   gnc_numeric b3;  
 
   priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-  if (acct == priv->toplevel)
+  if (acct == priv->root)
     return g_strdup("");
 
   t1 = gnc_accounting_period_fiscal_start();
@@ -639,20 +581,21 @@
 	gboolean negative; /* used to set "deficit style" aka red numbers */
 	gchar *string;
 
-	ENTER("model %p, iter %s, col %d", tree_model,
-              iter_to_string(iter), column);
 	g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model));
 	g_return_if_fail (iter != NULL);
 	g_return_if_fail (iter->user_data != NULL);
 	g_return_if_fail (iter->stamp == model->stamp);
 
+	ENTER("model %p, iter %s, col %d", tree_model,
+              iter_to_string(iter), column);
+
 	account = (Account *) iter->user_data;
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	switch (column) {
 		case GNC_TREE_MODEL_ACCOUNT_COL_NAME:
 			g_value_init (value, G_TYPE_STRING);
-			if (account == priv->toplevel)
+			if (account == priv->root)
 			  g_value_set_string (value, _("New top level account"));
 			else
 			  g_value_set_string (value, xaccAccountGetName (account));
@@ -850,34 +793,28 @@
 {
 	GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	GncTreeModelAccountPrivate *priv;
-	Account *account;
-	AccountGroup *group;
+	Account *account, *parent;
 	gint i;
 
-	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
 	g_return_val_if_fail (iter != NULL, FALSE);
 	g_return_val_if_fail (iter->user_data != NULL, FALSE);
 	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
+	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
+
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-	if (iter->user_data == priv->toplevel) {
-		iter->stamp = 0;
-		LEAVE("failed (1)");
-		return FALSE;
-	}
 
-	group = (AccountGroup *) iter->user_data2;
-	i = GPOINTER_TO_INT (iter->user_data3);
-
-	if (i > xaccGroupGetNumAccounts (group) - 2) {
-		iter->stamp = 0;
-		LEAVE("failed (2)");
-		return FALSE;
+	parent = (Account *) iter->user_data2;
+	if (parent == NULL) {
+	  /* This is the root. There is no next. */
+	  LEAVE("at root");
+	  return FALSE;
 	}
 
-	account = xaccGroupGetAccount (group, i + 1);
-
+	/* Get the *next* sibling account. */
+	i = GPOINTER_TO_INT (iter->user_data3);
+	account = gnc_account_nth_child (parent, i + 1);
 	if (account == NULL) {
 		iter->stamp = 0;
 		LEAVE("failed (3)");
@@ -885,7 +822,7 @@
 	}
 
 	iter->user_data = account;
-	iter->user_data2 = group;
+	iter->user_data2 = parent;
 	iter->user_data3 = GINT_TO_POINTER (i + 1);
 
 	LEAVE("iter %s", iter_to_string(iter));
@@ -895,84 +832,50 @@
 static gboolean
 gnc_tree_model_account_iter_children (GtkTreeModel *tree_model,
 				      GtkTreeIter *iter,
-				      GtkTreeIter *parent)
+				      GtkTreeIter *parent_iter)
 {
 	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
-	Account *account;
-	AccountGroup *group;
+	Account *account, *parent;
 
-	if (parent) {
-	  ENTER("model %p, iter %p (to be filed in), parent %s",
-		tree_model, iter, iter_to_string(parent));
-	} else {
-	  ENTER("model %p, iter %p (to be filed in), parent (null)", tree_model, iter);
-	}
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+    ENTER("model %p, iter %p (to be filed in), parent %s",
+          tree_model, iter, (parent_iter ? iter_to_string(parent_iter) : "(null)"));
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
-	if (priv->toplevel != NULL) {
-		if (parent == NULL) {
-			iter->user_data = priv->toplevel;
-			iter->user_data2 = NULL;
-			iter->user_data3 = GINT_TO_POINTER (0);
-			iter->stamp = model->stamp;
-			LEAVE("iter (1) %s", iter_to_string(iter));
-			return TRUE;
-		} else if (parent->user_data == priv->toplevel) {
-			parent = NULL;
-		}
-	}
-
-	if (priv->root == NULL || 
-            xaccGroupGetNumAccounts (priv->root) == 0) {
+	if (priv->root == NULL) {
 		iter->stamp = 0;
-		LEAVE("failed (either no group or group has no accounts)");
+		LEAVE("failed (no root)");
 		return FALSE;
 	}
 
-	if (parent == NULL) {
-		account = xaccGroupGetAccount (priv->root, 0);
-		
-		if (account == NULL) {
-			iter->stamp = 0;
-			LEAVE("failed (couldn't get account from group)");
-			return FALSE;
-		}
-
-		iter->user_data = account;
-		iter->user_data2 = priv->root;
-		iter->user_data3 = GINT_TO_POINTER (0);
-		iter->stamp = model->stamp;
-		LEAVE("iter (2) %s", iter_to_string(iter));
-		return TRUE;	
+	/* Special case when no parent supplied. */
+	if (!parent_iter) {
+	  iter->user_data = priv->root;
+	  iter->user_data2 = NULL;
+	  iter->user_data3 = GINT_TO_POINTER (0);
+	  iter->stamp = model->stamp;
+	  LEAVE("iter (2) %s", iter_to_string(iter));
+	  return TRUE;
 	}
 
-	g_return_val_if_fail (parent != NULL, FALSE);
-	g_return_val_if_fail (parent->user_data != NULL, FALSE);
-	g_return_val_if_fail (parent->stamp == model->stamp, FALSE);	
+	gnc_leave_return_val_if_fail (parent_iter != NULL, FALSE);
+	gnc_leave_return_val_if_fail (parent_iter->user_data != NULL, FALSE);
+	gnc_leave_return_val_if_fail (parent_iter->stamp == model->stamp, FALSE);	
 
-	group = xaccAccountGetChildren ((Account *) parent->user_data);
+	parent = (Account *)parent_iter->user_data;
+	account = gnc_account_nth_child (parent, 0);
 
-	if (group == NULL || xaccGroupGetNumAccounts (group) == 0) {
-		iter->stamp = 0;
-		LEAVE("failed (children group was %s)", 
-                      group ? "empty" : "null");
-		return FALSE;
-	}
-
-	account = xaccGroupGetAccount (group, 0);
-	
 	if (account == NULL) {
 		iter->stamp = 0;
-		LEAVE("failed (group's account is null)");
+		LEAVE("failed (child account is null)");
 		return FALSE;
 	}
 
 	iter->user_data = account;
-	iter->user_data2 = group;
+	iter->user_data2 = parent;
 	iter->user_data3 = GINT_TO_POINTER (0);
 	iter->stamp = model->stamp;
 	LEAVE("iter (3) %s", iter_to_string(iter));
@@ -985,31 +888,27 @@
 {
 	GncTreeModelAccount *model;
 	GncTreeModelAccountPrivate *priv;
-	AccountGroup *group;
+	Account *account;
 
-	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
+	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
+
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
-	g_return_val_if_fail (iter != NULL, FALSE);
-	g_return_val_if_fail (iter->user_data != NULL, FALSE);
-	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+	gnc_leave_return_val_if_fail (iter != NULL, FALSE);
+	gnc_leave_return_val_if_fail (iter->user_data != NULL, FALSE);
+	gnc_leave_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
-	if (iter->user_data == priv->toplevel) {
-		group = priv->root;
-	} else {
-		group = xaccAccountGetChildren ((Account *) iter->user_data);
+	account = (Account *) iter->user_data;
+	if (gnc_account_n_children(account) > 0) {
+		LEAVE("yes");
+		return TRUE;
 	}
 
-	if (group == NULL || xaccGroupGetNumAccounts (group) == 0) {
-		LEAVE("no");
-		return FALSE;
-	}
-
-	LEAVE("yes");
-	return TRUE;
+	LEAVE("no");
+	return FALSE;
 }
 
 static int
@@ -1018,126 +917,87 @@
 {
 	GncTreeModelAccount *model;
 	GncTreeModelAccountPrivate *priv;
-	AccountGroup *group;
+	gint num;
 
-	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	if (iter == NULL) {
-		if (priv->toplevel != NULL) {
-			LEAVE("count is 1");
-			return 1;
-		} else {
-			LEAVE("count is %d", xaccGroupGetNumAccounts (priv->root));
-			return xaccGroupGetNumAccounts (priv->root);
-		}
+		/* How many children does the invisible root node
+		 * have. One! Its the real root account node. */
+		LEAVE("count is 1");
+		return 1;
 	}
 
-	g_return_val_if_fail (iter != NULL, FALSE);
-	g_return_val_if_fail (iter->user_data != NULL, FALSE);
-	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
+	gnc_leave_return_val_if_fail (iter != NULL, FALSE);
+	gnc_leave_return_val_if_fail (iter->user_data != NULL, FALSE);
+	gnc_leave_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
-	if (priv->toplevel == iter->user_data) {
-		group = priv->root;
-	} else {
-		group = xaccAccountGetChildren ((Account *) iter->user_data);
-	}
-
-	LEAVE("count is %d", xaccGroupGetNumAccounts (group));
-	return xaccGroupGetNumAccounts (group);
+	num = gnc_account_n_children(iter->user_data);
+	LEAVE("count is %d", num);
+	return num;
 }
 
 static gboolean
 gnc_tree_model_account_iter_nth_child (GtkTreeModel *tree_model,
 				       GtkTreeIter *iter,
-				       GtkTreeIter *parent,
+				       GtkTreeIter *parent_iter,
 				       int n)
 {
 	GncTreeModelAccount *model;
 	GncTreeModelAccountPrivate *priv;
-	Account *account;
-	AccountGroup *group;
+	Account *account, *parent;
 
-	if (parent) {
+	if (parent_iter) {
 	  gchar *parent_string;
-
-	  parent_string = strdup(iter_to_string(parent));
-	  ENTER("model %p, iter %s, parent %s, n %d",
+	  parent_string = strdup(iter_to_string(parent_iter));
+	  ENTER("model %p, iter %s, parent_iter %s, n %d",
 		tree_model, iter_to_string(iter),
 		parent_string, n);
 	  g_free(parent_string);
 	} else {
-	  ENTER("model %p, iter %s, parent (null), n %d",
+	  ENTER("model %p, iter %s, parent_iter (null), n %d",
 		tree_model, iter_to_string(iter), n);
 	}
-	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+	gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
-	if (parent == NULL) {
-		if (priv->toplevel != NULL) {
-			if (n > 0) {
-				iter->stamp = 0;
-				LEAVE("failed (1)");
-				return FALSE;
-			} else {
-				iter->user_data = priv->toplevel;
-				iter->user_data2 = NULL;
-				iter->user_data3 = GINT_TO_POINTER (0);
-				iter->stamp = model->stamp;
-				LEAVE("iter (1) %s", iter_to_string(iter));
-				return TRUE;
-			}
-		}
+	/* Special case when no parent supplied. */
+	if (!parent_iter) {
+	  if (n != 0) {
+	    LEAVE("bad root index");
+	    return FALSE;
+	  }
 
-		account = xaccGroupGetAccount (priv->root, n);
-
-		if (account == NULL) {
-			iter->stamp = 0;
-			LEAVE("failed (2)");			
-			return FALSE;
-		}
-
-		iter->user_data = account;
-		iter->user_data2 = priv->root;
-		iter->user_data3 = GINT_TO_POINTER (n);
-		iter->stamp = model->stamp;
-		LEAVE("iter (2) %s", iter_to_string(iter));
-		return TRUE;
+	  iter->user_data = priv->root;
+	  iter->user_data2 = NULL;
+	  iter->user_data3 = GINT_TO_POINTER (0);
+	  iter->stamp = model->stamp;
+	  LEAVE("root %s", iter_to_string(iter));
+	  return TRUE;
 	}
 
-	g_return_val_if_fail (parent->user_data != NULL, FALSE);
-	g_return_val_if_fail (parent->stamp == model->stamp, FALSE);
+	gnc_leave_return_val_if_fail (parent_iter->user_data != NULL, FALSE);
+	gnc_leave_return_val_if_fail (parent_iter->stamp == model->stamp, FALSE);
 
-	if (priv->toplevel == parent->user_data) {
-		group = priv->root;
-	} else {
-		group = xaccAccountGetChildren ((Account *) parent->user_data);
-	}
-
-	if (group == NULL || xaccGroupGetNumAccounts (group) <= n) {
-		iter->stamp = 0;
-		LEAVE("failed (3)");
-		return FALSE;
-	}
-
-	account = xaccGroupGetAccount (group, n);
-	
+	parent = (Account *)parent_iter->user_data;
+	account = gnc_account_nth_child(parent, n);
 	if (account == NULL) {
 		iter->stamp = 0;
-		LEAVE("failed (4)");
+		LEAVE("failed (2)");			
 		return FALSE;
 	}
 
 	iter->user_data = account;
-	iter->user_data2 = group;
+	iter->user_data2 = parent;
 	iter->user_data3 = GINT_TO_POINTER (n);
 	iter->stamp = model->stamp;
-	LEAVE("iter (3) %s", iter_to_string(iter));
+	LEAVE("iter (2) %s", iter_to_string(iter));
 	return TRUE;
 }
 
@@ -1148,8 +1008,7 @@
 {
 	GncTreeModelAccount *model;
 	GncTreeModelAccountPrivate *priv;
-	Account *account;
-	AccountGroup *group;
+	Account *account, *parent;
 	gint i;
 
 	if (child) {
@@ -1164,160 +1023,41 @@
 	  ENTER("model %p, iter %s, child (null)",
 		tree_model, iter_to_string(iter));
 	}
-	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
+	gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
-	g_return_val_if_fail (child != NULL, FALSE);
-	g_return_val_if_fail (child->user_data != NULL, FALSE);
-	g_return_val_if_fail (child->stamp == model->stamp, FALSE);
+	gnc_leave_return_val_if_fail (child != NULL, FALSE);
+	gnc_leave_return_val_if_fail (child->user_data != NULL, FALSE);
+	gnc_leave_return_val_if_fail (child->stamp == model->stamp, FALSE);
 
 	account = (Account *) child->user_data;
-
-	if (account == priv->toplevel) {
+	account = gnc_account_get_parent(account);
+	if (account == NULL) {
+		/* Can't go up from the root node */
 		iter->stamp = 0;
 		LEAVE("failed (1)");
 		return FALSE;
 	}
 
-	account = xaccAccountGetParentAccount (account);
-	group = xaccAccountGetParent (account);
-
-	if (account == NULL || group == NULL) {
-		if (priv->toplevel != NULL) {
-			iter->user_data = priv->toplevel;
-			iter->user_data2 = NULL;
-			iter->user_data3 = GINT_TO_POINTER (0);
-			iter->stamp = model->stamp;
-			LEAVE("iter (1) %s", iter_to_string(iter));
-			return TRUE;
-		} else {
-			iter->stamp = 0;
-			LEAVE("failed (2)");
-			return FALSE;
-		}
+	parent = gnc_account_get_parent(account);
+	if (parent == NULL) {
+		/* Now at the root. */
+		i = 0;
+	} else {
+		i = gnc_account_child_index(parent, account);
 	}
-
-	for (i = 0; i < xaccGroupGetNumAccounts (group); i++) {
-		if (xaccGroupGetAccount (group, i) == account) {
-			iter->user_data = account;
-			iter->user_data2 = group;
-			iter->user_data3 = GINT_TO_POINTER (i);
-			iter->stamp = model->stamp;
-			LEAVE("iter (2) %s", iter_to_string(iter));
-			return TRUE;	
-		}
-	}
-
-	if (priv->toplevel != NULL) {
-		iter->user_data = priv->toplevel;
-		iter->user_data2 = NULL;
-		iter->user_data3 = GINT_TO_POINTER (0);
-		iter->stamp = model->stamp;
-		LEAVE("iter (3) %s", iter_to_string(iter));
-		return TRUE;
-	}
-	iter->stamp = 0;
-	LEAVE("failed (3)");
-	return FALSE;
+	iter->user_data = account;
+	iter->user_data2 = parent;
+	iter->user_data3 = GINT_TO_POINTER (i);
+	iter->stamp = model->stamp;
+	LEAVE("iter (2) %s", iter_to_string(iter));
+	return TRUE;	
 }
 
 
 /************************************************************/
-/*             Account Tree View Root Functions             */
-/************************************************************/
-
-static gpointer
-account_row_inserted (Account *account,
-		      gpointer data)
-{
-	GtkTreePath *path;
-	GtkTreeIter iter;
-
-	ENTER("account %p (%s), model %p",
-	      account, xaccAccountGetName(account), data);
-	if (!gnc_tree_model_account_get_iter_from_account
-            (GNC_TREE_MODEL_ACCOUNT (data), account, &iter))
-	  return NULL;
-
-	path = gtk_tree_model_get_path (GTK_TREE_MODEL (data), &iter);
-
-	gtk_tree_model_row_inserted (GTK_TREE_MODEL (data), path, &iter);
-
-	gtk_tree_path_free (path);
-
-	LEAVE(" ");
-	return NULL;
-}
-
-/*
- * Gets the top node of the model.  This node is for a pseudo-account
- * that lives above the main level accounts in the engine.
- */
-Account *
-gnc_tree_model_account_get_toplevel (GncTreeModelAccount *model)
-{
-	GncTreeModelAccountPrivate *priv;
-
-	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
-
-	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-	return priv->toplevel;
-}
-
-/*
- * Add a new top node to the model.  This node is for a pseudo-account
- * that lives above the main level accounts in the engine.
- */
-static void
-gnc_tree_model_account_set_toplevel (GncTreeModelAccount *model,
-                                     Account *toplevel)
-{
-	GncTreeModelAccountPrivate *priv;
-	GtkTreePath *path;
-	gint i;
-	GtkTreeIter iter;
-
-	ENTER("model %p, toplevel %p", model, toplevel);
-	g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model));
-
-	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-	DEBUG("old toplevel %p", priv->toplevel);
-	if (priv->toplevel != NULL) {
-            /* CAS: this can't happen because we only set toplevel on
-             * new tree models. */
-		path = gtk_tree_path_new_first ();
-		gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
-		gtk_tree_path_free (path);
-	} else {
-            /* CAS: I think this is bogus for the same reason - we'll
-             * have no rows, so why are we emitting a bunch of
-             * "row_deleted" signals when no rows can exist? */
-		path = gtk_tree_path_new_first ();
-		for (i = 0; i < xaccGroupGetNumAccounts (priv->root); i++) {
-			gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
-		}
-		gtk_tree_path_free (path);
-	}
-
-	DEBUG("set new toplevel %p", toplevel);
-	priv->toplevel = toplevel;
-
-	if (priv->toplevel != NULL) {
-		path = gtk_tree_path_new_first ();
-		if (gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path))
-		  gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter);
-		gtk_tree_path_free (path);
-	}
-
-	if (priv->root != NULL) {
-		xaccGroupForEachAccount (priv->root, account_row_inserted, model, TRUE);
-	}
-	LEAVE("new toplevel %p", priv->root);
-}
-
-/************************************************************/
 /*            Account Tree View Filter Functions            */
 /************************************************************/
 
@@ -1348,45 +1088,36 @@
 					      GtkTreeIter *iter)
 {
 	GncTreeModelAccountPrivate *priv;
-	AccountGroup *group;
-	gboolean found = FALSE;
+	Account *parent;
 	gint i;
 	
 	ENTER("model %p, account %p, iter %p", model, account, iter);
-	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
-	g_return_val_if_fail ((account != NULL), FALSE);
-	g_return_val_if_fail ((iter != NULL), FALSE);
-
+	gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
+	gnc_leave_return_val_if_fail ((account != NULL), FALSE);
+	gnc_leave_return_val_if_fail ((iter != NULL), FALSE);
+    
 	iter->user_data = account;
 	iter->stamp = model->stamp;
 
 	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
-	if (account == priv->toplevel) {
+	if (account == priv->root) {
 		iter->user_data2 = NULL;
 		iter->user_data3 = GINT_TO_POINTER (0);
-		LEAVE("Matched top level");
+		LEAVE("Matched root");
 		return TRUE;
 	}
 
-	if (priv->root != xaccAccountGetRoot (account)) {
+	if (priv->root != gnc_account_get_root (account)) {
 		LEAVE("Root doesn't match");
 		return FALSE;
 	}
 
-	group = xaccAccountGetParent (account);
-	DEBUG("Looking through %d accounts at this level", 
-              xaccGroupGetNumAccounts (group));
-	for (i = 0; i < xaccGroupGetNumAccounts (group); i++) {
-		if (xaccGroupGetAccount (group, i) == account) {
-			found = TRUE;
-			break;
-		}
-	}
-
-	iter->user_data2 = group;
+	parent = gnc_account_get_parent(account);
+	i = gnc_account_child_index(parent, account);
+	iter->user_data2 = parent;
 	iter->user_data3 = GINT_TO_POINTER (i);
 	LEAVE("iter %s", iter_to_string(iter));
-	return found;
+	return (i != -1);
 }
 
 /*
@@ -1402,8 +1133,8 @@
 	GtkTreePath *tree_path;
 
 	ENTER("model %p, account %p", model, account);
-	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
-	g_return_val_if_fail (account != NULL, NULL);
+	gnc_leave_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
+	gnc_leave_return_val_if_fail (account != NULL, NULL);
 
 	if (!gnc_tree_model_account_get_iter_from_account (model, account, 
                                                            &tree_iter)) {
@@ -1438,9 +1169,16 @@
 {
     GtkTreeIter iter;
 
-    /* Immediate parent */
-    if (gtk_tree_path_up(path) && 
-        gtk_tree_model_get_iter(model, &iter, path)) {
+    /* Already at the invisible root node? */
+    if (!gtk_tree_path_up(path))
+      return;
+
+    /* Did we just move up to the invisible root node? */
+    if (gtk_tree_path_get_depth(path) == 0)
+      return;
+
+    /* Handle the immediate parent */
+    if (gtk_tree_model_get_iter(model, &iter, path)) {
         gtk_tree_model_row_changed(model, path, &iter);
         if (gtk_tree_model_iter_n_children(model, &iter) == toggle_if_num)
             gtk_tree_model_row_has_child_toggled(model, path, &iter);
@@ -1502,11 +1240,11 @@
   priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
   account = GNC_ACCOUNT(entity);
-  if (xaccAccountGetBook(account) != priv->book) {
+  if (gnc_account_get_book(account) != priv->book) {
       LEAVE("not in this book");
       return;
   }
-  if (xaccAccountGetRoot(account) != priv->root) {
+  if (gnc_account_get_root(account) != priv->root) {
       LEAVE("not in this model");
       return;
   }
@@ -1517,13 +1255,13 @@
       DEBUG("add account %p (%s)", account, xaccAccountGetName(account));
       path = gnc_tree_model_account_get_path_from_account(model, account);
       if (!path) {
-	DEBUG("can't generate path");
-	break;
+           DEBUG("can't generate path");
+           break;
       }
       increment_stamp(model);
       if (!gnc_tree_model_account_get_iter(GTK_TREE_MODEL(model), &iter, path)) {
-	DEBUG("can't generate iter");
-	break;
+           DEBUG("can't generate iter");
+           break;
       }
       gtk_tree_model_row_inserted (GTK_TREE_MODEL(model), path, &iter);
       propagate_change(GTK_TREE_MODEL(model), path, 1);
@@ -1531,14 +1269,14 @@
 
     case QOF_EVENT_REMOVE:
       if (!ed) /* Required for a remove. */
-	break;
-      parent = ed->node ? GNC_ACCOUNT(ed->node) : priv->toplevel;
+           break;
+      parent = ed->node ? GNC_ACCOUNT(ed->node) : priv->root;
       parent_name = ed->node ? xaccAccountGetName(parent) : "Root";
       DEBUG("remove child %d of account %p (%s)", ed->idx, parent, parent_name);
       path = gnc_tree_model_account_get_path_from_account(model, parent);
       if (!path) {
-	DEBUG("can't generate path");
-	break;
+           DEBUG("can't generate path");
+           break;
       }
       increment_stamp(model);
       gtk_tree_path_append_index (path, ed->idx);
@@ -1550,19 +1288,19 @@
       DEBUG("modify  account %p (%s)", account, xaccAccountGetName(account));
       path = gnc_tree_model_account_get_path_from_account(model, account);
       if (!path) {
-	DEBUG("can't generate path");
-	break;
+           DEBUG("can't generate path");
+           break;
       }
       if (!gnc_tree_model_account_get_iter(GTK_TREE_MODEL(model), &iter, path)) {
-	DEBUG("can't generate iter");
-	break;
+           DEBUG("can't generate iter");
+           break;
       }
       gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
       propagate_change(GTK_TREE_MODEL(model), path, -1);
       break;
 
     default:
-      DEBUG("unknown event type");
+      LEAVE("unknown event type");
       return;
   }
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,7 +39,7 @@
 #include <gtk/gtktreemodel.h>
 #include "gnc-tree-model.h"
 
-#include "Group.h"
+#include "Account.h"
 
 G_BEGIN_DECLS
 
@@ -124,28 +124,13 @@
  *
  *  @param group The account group to put at the top level of the tree
  *  hierarchy. */
-GtkTreeModel *gnc_tree_model_account_new (AccountGroup *group);
+GtkTreeModel *gnc_tree_model_account_new (Account *root);
 /** @} */
 
 
 /** @name Account Tree Model Get/Set Functions 
   @{ */
 
-/** This function returns the account associated with the top level
- *  pseudo-account.  The gnucash engine does not have a single top
- *  level account (it has a list of top level accounts), but this code
- *  provides one so that it can be used with all parts of the gnucash
- *  gui.
- *
- *  @internal This function should only be called from gnc-tree-view-account.c.
- *
- *  @param account_view A pointer to an account tree view.
- *
- *  @return The top-level pseudo-account.
- */
-Account *gnc_tree_model_account_get_toplevel (GncTreeModelAccount *model);
-
-
 /** Convert a model/iter pair to a gnucash account.  This routine should
  *  only be called from an account tree view filter function.  The
  *  model and iter values will be provided as part of the call to the

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-commodity.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-commodity.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-commodity.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -53,7 +53,7 @@
 static void gnc_tree_model_commodity_dispose (GObject *object);
 
 static void gnc_tree_model_commodity_tree_model_init (GtkTreeModelIface *iface);
-static guint gnc_tree_model_commodity_get_flags (GtkTreeModel *tree_model);
+static GtkTreeModelFlags gnc_tree_model_commodity_get_flags (GtkTreeModel *tree_model);
 static int gnc_tree_model_commodity_get_n_columns (GtkTreeModel *tree_model);
 static GType gnc_tree_model_commodity_get_column_type (GtkTreeModel *tree_model,
 						       int index);
@@ -164,11 +164,11 @@
 	GncTreeModelCommodity *model;
 	GncTreeModelCommodityPrivate *priv;
 
-	ENTER("model %p", object);
-
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
 
+	ENTER("model %p", object);
+
 	model = GNC_TREE_MODEL_COMMODITY (object);
 	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 	priv->book = NULL;
@@ -184,10 +184,10 @@
 	GncTreeModelCommodity *model;
 	GncTreeModelCommodityPrivate *priv;
 
-	ENTER("model %p", object);
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
 
+	ENTER("model %p", object);
 	model = GNC_TREE_MODEL_COMMODITY (object);
 	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 
@@ -208,6 +208,8 @@
 	GncTreeModelCommodityPrivate *priv;
 	const GList *item;
 
+    ENTER("");
+
 	item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_COMMODITY_NAME);
 	for ( ; item; item = g_list_next(item)) {
 		model = (GncTreeModelCommodity *)item->data;
@@ -227,6 +229,7 @@
 	priv->event_handler_id =
 	  qof_event_register_handler (gnc_tree_model_commodity_event_handler, model);
 
+    LEAVE("");
 	return GTK_TREE_MODEL (model);
 }
 
@@ -366,7 +369,7 @@
 	iface->iter_parent     = gnc_tree_model_commodity_iter_parent;
 }
 
-static guint
+static GtkTreeModelFlags
 gnc_tree_model_commodity_get_flags (GtkTreeModel *tree_model)
 {
 	return 0;
@@ -447,7 +450,10 @@
 
 	list = gnc_commodity_table_get_namespaces_list(ct);
 	i = gtk_tree_path_get_indices (path)[0];
-	g_return_val_if_fail (i >= 0 && i < g_list_length (list), FALSE);
+    {
+         if (!(i >= 0 && i < g_list_length (list))) { LEAVE(""); }
+         g_return_val_if_fail (i >= 0 && i < g_list_length (list), FALSE);
+    }
 	namespace = g_list_nth_data (list, i);
 
 	if (depth == 1) {
@@ -461,7 +467,10 @@
 
 	list = gnc_commodity_namespace_get_commodity_list(namespace);
 	i = gtk_tree_path_get_indices (path)[1];
-	g_return_val_if_fail (i >= 0 && i < g_list_length (list), FALSE);
+    {
+         if (!(i >= 0 && i < g_list_length (list))) { LEAVE(""); }
+         g_return_val_if_fail (i >= 0 && i < g_list_length (list), FALSE);
+    }
 	commodity = g_list_nth_data (list, i);
 
 	iter->stamp      = model->stamp;
@@ -483,13 +492,13 @@
 	gnc_commodity_namespace *namespace;
 	GList *ns_list;
 
-	ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), NULL);
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
 	g_return_val_if_fail (iter != NULL, NULL);
 	g_return_val_if_fail (iter->user_data != NULL, NULL);
 	g_return_val_if_fail (iter->user_data2 != NULL, NULL);
 	g_return_val_if_fail (iter->stamp == model->stamp, NULL);
+	ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
 	
 	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 	ct = priv->commodity_table;
@@ -640,7 +649,6 @@
 	GList *list;
 	int n;
 
-	ENTER("model %p, iter %p(%s)", tree_model, iter, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (tree_model), FALSE);
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
 	g_return_val_if_fail (iter != NULL, FALSE);
@@ -648,6 +656,7 @@
 	g_return_val_if_fail (iter->user_data2 != NULL, FALSE);
 	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
+	ENTER("model %p, iter %p(%s)", tree_model, iter, iter_to_string(iter));
 	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 	if (iter->user_data == ITER_IS_NAMESPACE) {
 	  ct = priv->commodity_table;
@@ -733,9 +742,9 @@
 	gnc_commodity_namespace *namespace;
 	GList *list;
 
+	g_return_val_if_fail (iter != NULL, FALSE);
 	ENTER("model %p, iter %p (%s)", tree_model,
 	      iter, iter_to_string(iter));
-	g_return_val_if_fail (iter != NULL, FALSE);
 
 	if (iter->user_data != ITER_IS_NAMESPACE) {
 	  LEAVE("no children (not ns)");
@@ -886,11 +895,12 @@
 	GList *list;
 	gint n;
 	
-	ENTER("model %p, commodity %p, iter %p", model, commodity, iter);
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
 	g_return_val_if_fail ((commodity != NULL), FALSE);
 	g_return_val_if_fail ((iter != NULL), FALSE);
 
+	ENTER("model %p, commodity %p, iter %p", model, commodity, iter);
+
 	namespace = gnc_commodity_get_namespace_ds(commodity);
 	if (namespace == NULL) {
 	  LEAVE("no namespace");
@@ -929,9 +939,9 @@
 	GtkTreeIter tree_iter;
 	GtkTreePath *tree_path;
 
-	ENTER("model %p, commodity %p", model, commodity);
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL);
 	g_return_val_if_fail (commodity != NULL, NULL);
+	ENTER("model %p, commodity %p", model, commodity);
 
 	if (!gnc_tree_model_commodity_get_iter_from_commodity (model, commodity, &tree_iter)) {
 	  LEAVE("no iter");
@@ -963,19 +973,26 @@
 	GList *list;
 	gint n;
 	
-	ENTER("model %p, namespace %p, iter %p", model, namespace, iter);
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE);
 	g_return_val_if_fail ((namespace != NULL), FALSE);
 	g_return_val_if_fail ((iter != NULL), FALSE);
 
+	ENTER("model %p, namespace %p, iter %p", model, namespace, iter);
+
 	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 	list = gnc_commodity_table_get_namespaces_list(priv->commodity_table);
 	if (list == NULL)
+    {
+      LEAVE("");
 	  return FALSE;
+    }
 
 	n = g_list_index(list, namespace);
 	if (n == -1)
+    {
+      LEAVE("");
 	  return FALSE;
+    }
 
 	iter->stamp = model->stamp;
 	iter->user_data  = ITER_IS_NAMESPACE;
@@ -1045,29 +1062,28 @@
 gnc_tree_model_commodity_path_added (GncTreeModelCommodity *model,
 				     GtkTreeIter *iter)
 {
-  gnc_commodity_namespace *namespace;
   GtkTreePath *path;
-  GtkTreeIter ns_iter;
-  GList *list;
+  GtkTreeModel *tree_model;
+  GtkTreeIter tmp_iter;
 
   ENTER("model %p, iter (%p)%s", model, iter, iter_to_string(iter));
+  tree_model = GTK_TREE_MODEL(model);
 
-  if (iter->user_data == ITER_IS_COMMODITY) {
-    /* Reach out and touch the namespace first */
-    gnc_tree_model_commodity_iter_parent (GTK_TREE_MODEL(model), &ns_iter, iter);
-    namespace = gnc_tree_model_commodity_get_namespace (model, &ns_iter);
-    list = gnc_commodity_namespace_get_commodity_list(namespace);
-    if (g_list_length(list) == 1) {
-      path = gnc_tree_model_commodity_get_path (GTK_TREE_MODEL(model), &ns_iter);
-      gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &ns_iter);
-      gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(model), path, &ns_iter);
-      gtk_tree_path_free(path);
-    }
+  /* For either namespace or commodity */
+  path = gnc_tree_model_commodity_get_path(tree_model, iter);
+  gtk_tree_model_row_inserted(tree_model, path, iter);
+
+  /*  */
+  gtk_tree_path_up(path);
+  while (gtk_tree_path_get_depth(path) != 0) {
+      if (gtk_tree_model_get_iter(tree_model, &tmp_iter, path)) {
+          gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+          if (gtk_tree_model_iter_n_children(tree_model, &tmp_iter) == 1) {
+              gtk_tree_model_row_has_child_toggled(tree_model, path, &tmp_iter);
+          }
+      }
+      gtk_tree_path_up(path);
   }
-
-  /* Now for either namespace or commodity */
-  path = gnc_tree_model_commodity_get_path (GTK_TREE_MODEL(model), iter);
-  gtk_tree_model_row_inserted (GTK_TREE_MODEL(model), path, iter);
   gtk_tree_path_free(path);
 
   do {
@@ -1093,13 +1109,16 @@
  */
 static void
 gnc_tree_model_commodity_path_deleted (GncTreeModelCommodity *model,
-				       GtkTreePath *path)
+				       GtkTreePath *path_in)
 {
   gnc_commodity_namespace *namespace;
+  GtkTreePath *path;
   GtkTreeIter iter;
   GList *list;
   gint depth;
+  gboolean del_row = TRUE;
 
+  path = gtk_tree_path_copy(path_in);
   debug_path(ENTER, path);
 
   depth = gtk_tree_path_get_depth(path);
@@ -1114,14 +1133,21 @@
       gtk_tree_model_row_changed (GTK_TREE_MODEL(model), path, &iter);
       namespace = gnc_tree_model_commodity_get_namespace (model, &iter);
       if (namespace) {
-	list = gnc_commodity_namespace_get_commodity_list(namespace);
-	if (g_list_length(list) == 0) {
-	  gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(model), path, &iter);
-	}
+           list = gnc_commodity_namespace_get_commodity_list(namespace);
+           if (g_list_length(list) == 0) {
+                gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(model), path, &iter);
+                del_row = FALSE;
+           }
       }
     }
   }
+  gtk_tree_path_free(path);
 
+  /* Delete the row, if it hasn't already been deleted by an update of
+   * the parent row. */
+  if (del_row)
+    gtk_tree_model_row_deleted (GTK_TREE_MODEL(model), path_in);
+
   do {
     model->stamp++;
   } while (model->stamp == 0);
@@ -1156,7 +1182,6 @@
     data = iter->data;
     pending_removals = g_slist_delete_link (pending_removals, iter);
 
-    gtk_tree_model_row_deleted (GTK_TREE_MODEL(data->model), data->path);
     gnc_tree_model_commodity_path_deleted (data->model, data->path);
     gtk_tree_path_free(data->path);
     g_free(data);
@@ -1206,13 +1231,14 @@
 	remove_data *data;
 	const gchar *name;
 
-	ENTER("entity %p, event %d, model %p, event data %p",
-	      entity, event_type, user_data, event_data);
 	model = (GncTreeModelCommodity *)user_data;
 
 	/* hard failures */
 	g_return_if_fail(GNC_IS_TREE_MODEL_COMMODITY(model));
 
+	ENTER("entity %p, event %d, model %p, event data %p",
+	      entity, event_type, user_data, event_data);
+
 	/* get type specific data */
 	if (GNC_IS_COMMODITY(entity)) {
 	  gnc_commodity *commodity;
@@ -1237,6 +1263,7 @@
 	    }
 	  }
 	} else {
+      LEAVE("");
 	  return;
 	}
 

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-price.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-price.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-price.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1325,28 +1325,28 @@
 gnc_tree_model_price_path_added (GncTreeModelPrice *model,
 				 GtkTreeIter *iter)
 {
-  GtkTreePath *path, *tmp_path;
+  GtkTreePath *path;
+  GtkTreeModel *tree_model;
   GtkTreeIter tmp_iter;
-  gint *indices;
-  gint depth, i;
 
   ENTER("model %p, iter (%p)%s", model, iter, iter_to_string(model, iter));
-  path = gnc_tree_model_price_get_path (GTK_TREE_MODEL(model), iter);
+  tree_model = GTK_TREE_MODEL(model);
+  path = gnc_tree_model_price_get_path (tree_model, iter);
 
-  /* Tag all the parent nodes as changed. */
-  depth = gtk_tree_path_get_depth (path);
-  indices = gtk_tree_path_get_indices (path);
-  tmp_path = gtk_tree_path_new();
-  for (i = 0; i <= depth - 1; i++) {
-    gtk_tree_path_append_index (tmp_path, indices[i]);
-    gnc_tree_model_price_get_iter (GTK_TREE_MODEL(model), &tmp_iter, tmp_path);
-    gtk_tree_model_row_changed(GTK_TREE_MODEL(model), tmp_path, &tmp_iter);
-    gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(model), tmp_path, &tmp_iter);
+  /* Tag the new item as inserted. */
+  gtk_tree_model_row_inserted (tree_model, path, iter);
+
+  /*  */
+  gtk_tree_path_up(path);
+  while (gtk_tree_path_get_depth(path) != 0) {
+      if (gtk_tree_model_get_iter(tree_model, &tmp_iter, path)) {
+          gtk_tree_model_row_changed(tree_model, path, &tmp_iter);
+          if (gtk_tree_model_iter_n_children(tree_model, &tmp_iter) == 1) {
+              gtk_tree_model_row_has_child_toggled(tree_model, path, &tmp_iter);
+          }
+      }
+      gtk_tree_path_up(path);
   }
-  gtk_tree_path_free(tmp_path);
-    
-  /* Now tag the new item as inserted. */
-  gtk_tree_model_row_inserted (GTK_TREE_MODEL(model), path, iter);
   gtk_tree_path_free(path);
 
   do {

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-selection.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-selection.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model-selection.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -34,7 +34,7 @@
 static void gnc_tree_model_selection_finalize (GObject *object);
 
 static void gnc_tree_model_selection_tree_model_init (GtkTreeModelIface *iface);
-static guint gnc_tree_model_selection_get_flags (GtkTreeModel *tree_model);
+static GtkTreeModelFlags gnc_tree_model_selection_get_flags (GtkTreeModel *tree_model);
 static int gnc_tree_model_selection_get_n_columns (GtkTreeModel *tree_model);
 static GType gnc_tree_model_selection_get_column_type (GtkTreeModel *tree_model,
 						       int index);
@@ -342,7 +342,7 @@
 	iface->iter_parent     = gnc_tree_model_selection_iter_parent;
 }
 
-static guint
+static GtkTreeModelFlags
 gnc_tree_model_selection_get_flags (GtkTreeModel *tree_model)
 {
 	GncTreeModelSelection *model;

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-model.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -37,8 +37,6 @@
 
 #include <gtk/gtktreemodel.h>
 
-#include "Group.h"
-
 G_BEGIN_DECLS
 
 /* type macros */

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,17 +28,12 @@
 #include <glib/gi18n.h>
 #include <string.h>
 
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
-
 #include "gnc-tree-view.h"
 #include "gnc-tree-model-account.h"
 #include "gnc-tree-model-account-types.h"
 #include "gnc-tree-view-account.h"
 
 #include "Account.h"
-#include "Group.h"
 #include "gnc-accounting-period.h"
 #include "gnc-commodity.h"
 #include "gnc-component-manager.h"
@@ -71,8 +66,6 @@
                                                      GtkTreeIter *iter,
                                                      gpointer data);
 
-static Account *gtva_get_top_level_from_model (GtkTreeModel *s_model);
-
 static void gtva_setup_column_renderer_edited_cb(GncTreeViewAccount *account_view,
                                                  GtkTreeViewColumn *column,
                                                  GtkCellRenderer *renderer,
@@ -290,7 +283,7 @@
   result = safe_utf8_collate(str1, str2);
   if (result != 0)
     return result;
-  return xaccAccountOrder(&account1, &account2);
+  return xaccAccountOrder(account1, account2);
 }
 
 static gint
@@ -304,7 +297,7 @@
   sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
 
   /* Default ordering uses this column first. */
-  return xaccAccountOrder(&account_a, &account_b);
+  return xaccAccountOrder(account_a, account_b);
 }
 
 static gint
@@ -329,7 +322,7 @@
   result = gnc_numeric_compare(balance_a, balance_b);
   if (result != 0)
     return result;
-  return xaccAccountOrder(&account_a, &account_b);
+  return xaccAccountOrder(account_a, account_b);
 }
 
 static gint
@@ -412,7 +405,7 @@
     return -1;
   else if (flag_a < flag_b)
     return 1;
-  return xaccAccountOrder(&account_a, &account_b);
+  return xaccAccountOrder(account_a, account_b);
 }
 
 static gint
@@ -438,7 +431,7 @@
   result = gnc_numeric_compare(b1, b2);
   if (result != 0)
     return result;
-  return xaccAccountOrder((const Account **)&acct1, (const Account **)&acct2);
+  return xaccAccountOrder(acct1, acct2);
 }
 
 static gint
@@ -470,7 +463,7 @@
  * model.
  */
 GtkTreeView *
-gnc_tree_view_account_new_with_group (AccountGroup *group, gboolean show_root)
+gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
 {
   GncTreeView *view;
   GtkTreeModel *model, *f_model, *s_model;
@@ -486,7 +479,7 @@
   priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(GNC_TREE_VIEW_ACCOUNT (view));
 
   /* Create/get a pointer to the existing model for this set of books. */
-  model = gnc_tree_model_account_new (group);
+  model = gnc_tree_model_account_new (root);
 
   /* Set up the view private filter layer on the common model. */
   if (!show_root)
@@ -683,10 +676,10 @@
 GtkTreeView *
 gnc_tree_view_account_new (gboolean show_root)
 {
-  AccountGroup *group;
+  Account *root;
 
-  group = gnc_book_get_group (gnc_get_current_book ());
-  return gnc_tree_view_account_new_with_group (group, show_root);
+  root = gnc_book_get_root_account (gnc_get_current_book ());
+  return gnc_tree_view_account_new_with_root (root, show_root);
 }
 
 /************************************************************/
@@ -951,35 +944,7 @@
 /*           Account Tree View Get/Set Functions            */
 /************************************************************/
 
-static Account *
-gtva_get_top_level_from_model (GtkTreeModel *s_model)
-{
-  GtkTreeModel *model, *f_model;
-
-  g_return_val_if_fail (GTK_TREE_MODEL_SORT (s_model), NULL);
-
-  f_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
-  model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (f_model));
-
-  return gnc_tree_model_account_get_toplevel (GNC_TREE_MODEL_ACCOUNT (model));
-}
-
 /*
- * Return the account associated with the top level pseudo-account for
- * the tree.
- */
-Account *
-gnc_tree_view_account_get_top_level (GncTreeViewAccount *view)
-{
-  GtkTreeModel *s_model;
-
-  g_return_val_if_fail (GNC_IS_TREE_VIEW_ACCOUNT (view), NULL);
-  s_model = gtk_tree_view_get_model (GTK_TREE_VIEW (view));
-
-  return gtva_get_top_level_from_model (s_model);
-}
-
-/*
  * Retrieve the selected account from an account tree view.  The
  * account tree must be in single selection mode.
  */
@@ -1888,12 +1853,12 @@
   LEAVE(" ");
 }
 
-#define ACCT_COUNT    "Number of Open Accounts"
-#define ACCT_OPEN     "Open Account %d"
-#define ACCT_SELECTED "Selected Account"
-#define SHOW_HIDDEN   "Show Hidden"
-#define SHOW_ZERO     "Show Zero Total"
-#define ACCT_TYPES    "Account Types"
+#define ACCT_COUNT    "NumberOfOpenAccounts"
+#define ACCT_OPEN     "OpenAccount%d"
+#define ACCT_SELECTED "SelectedAccount"
+#define SHOW_HIDDEN   "ShowHidden"
+#define SHOW_ZERO     "ShowZeroTotal"
+#define ACCT_TYPES    "AccountTypes"
 
 typedef struct foo {
   GKeyFile *key_file;
@@ -2015,8 +1980,8 @@
   QofBook *book;
 
   book = qof_session_get_book(gnc_get_current_session());
-  account = xaccGetAccountFromFullName(xaccGetAccountGroup(book),
-				       account_name);
+  account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
+                                            account_name);
   if (account)
     gnc_tree_view_account_expand_to_account(view, account);
 }
@@ -2037,8 +2002,8 @@
   QofBook *book;
 
   book = qof_session_get_book(gnc_get_current_session());
-  account = xaccGetAccountFromFullName(xaccGetAccountGroup(book),
-				       account_name);
+  account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(book),
+					    account_name);
   if (account)
       gnc_tree_view_account_set_selected_account(view, account);
 }
@@ -2121,12 +2086,12 @@
 void
 gnc_tree_view_account_name_edited_cb(Account *account, GtkTreeViewColumn *col, const gchar *new_name)
 {
-  // check for accounts with the same name in our parent's group.
+  // check for accounts with the same name among our parent's children.
   // should probably factor this consistency check out to the account
-  // itself... or maybe the account group.
+  // itself....
   {
-    AccountGroup *parent = xaccAccountGetParent(account);
-    Account *existing = xaccGetAccountFromName(parent, new_name);
+    Account *parent = gnc_account_get_parent(account);
+    Account *existing = gnc_account_lookup_by_name(parent, new_name);
     if (existing != NULL && existing != account)
     {
       PERR("account with the same name [%s] already exists.", new_name);

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-account.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -38,7 +38,6 @@
 #include <gtk/gtktreeview.h>
 #include "gnc-tree-view.h"
 
-#include "Group.h"
 #include "gnc-ui-util.h"
 #include "gnc-plugin-page.h"
 
@@ -132,8 +131,8 @@
  *
  *  @return A pointer to a new account tree view.
  */
-GtkTreeView *gnc_tree_view_account_new_with_group (AccountGroup *group, 
-                                                   gboolean show_root);
+GtkTreeView *gnc_tree_view_account_new_with_root (Account *root, 
+						  gboolean show_root);
 
 /** Create a new account tree view.  This view may or may not show a
  *  pseudo top-level account.  The gnucash engine does not have a
@@ -339,24 +338,6 @@
 
 
 
-/** This function returns the account associated with the top level
- *  pseudo-account.  The gnucash engine does not have a single top
- *  level account (it has a list of top level accounts), but this code
- *  provides one so that it can be used with all parts of the gnucash
- *  gui.
- *
- *  @note It only makes sense to call this function when the account
- *  tree is created such that the "top level account" is visible.  At
- *  the time this was written, only the "New/Edit Account" dialog does
- *  that.
- *
- *  @param view A pointer to an account tree view.
- *
- *  @return The top-level pseudo-account.
- */
-Account * gnc_tree_view_account_get_top_level (GncTreeViewAccount *view);
-
-
 /** This function returns the account associated with the specified
  *  path.  This function is useful in selection callbacks on an
  *  account tree widget.

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-commodity.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-commodity.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-commodity.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -125,10 +125,10 @@
   GncTreeViewCommodity *view;
   GncTreeViewCommodityPrivate *priv;
 
-  ENTER("view %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
 
+  ENTER("view %p", object);
   view = GNC_TREE_VIEW_COMMODITY (object);
   priv = GNC_TREE_VIEW_COMMODITY_GET_PRIVATE (view);
 
@@ -142,10 +142,10 @@
 {
   GncTreeViewCommodity *view;
 
-  ENTER("view %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
 
+  ENTER("view %p", object);
   view = GNC_TREE_VIEW_COMMODITY (object);
 
   if (GTK_OBJECT_CLASS (parent_class)->destroy)
@@ -697,12 +697,12 @@
   GtkTreeModel *f_model, *s_model;
   filter_user_data *fd = data;
 
+  g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
+  g_return_if_fail((ns_func != NULL) || (cm_func != NULL));
+
   ENTER("view %p, ns func %p, cm func %p, data %p, destroy %p",
 	view, ns_func, cm_func, data, destroy);
 
-  g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
-  g_return_if_fail((ns_func != NULL) || (cm_func != NULL));
-
   fd = g_malloc(sizeof(filter_user_data));
   fd->user_ns_fn   = ns_func;
   fd->user_cm_fn   = cm_func;
@@ -730,10 +730,9 @@
 {
   GtkTreeModel *f_model, *s_model;
 
-  ENTER("view %p", view);
-
   g_return_if_fail(GNC_IS_TREE_VIEW_COMMODITY(view));
 
+  ENTER("view %p", view);
   s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
   f_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
   gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
@@ -758,10 +757,10 @@
     GtkTreeIter iter;
     gnc_commodity *commodity;
 
-    ENTER("view %p", view);
     g_return_val_if_fail (GNC_IS_TREE_VIEW_COMMODITY (view), NULL);
     g_return_val_if_fail (s_path != NULL, NULL);
 
+    ENTER("view %p", view);
     s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
     f_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT (s_model), s_path);
     if (!f_path) {
@@ -802,9 +801,10 @@
     GtkTreeIter iter, f_iter, s_iter;
     gnc_commodity *commodity;
 
-    ENTER("view %p", view);
     g_return_val_if_fail (GNC_IS_TREE_VIEW_COMMODITY (view), NULL);
 
+    ENTER("view %p", view);
+
     selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
     if (!gtk_tree_selection_get_selected (selection, &s_model, &s_iter)) {
       LEAVE("no commodity, get_selected failed");
@@ -845,7 +845,10 @@
   gtk_tree_selection_unselect_all (selection);
 
   if (commodity == NULL)
+  {
+    LEAVE("");
     return;
+  }
 
   s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
   f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));
@@ -1016,9 +1019,9 @@
     GtkTreePath *s_path;
     gnc_commodity *commodity;
 
-    ENTER("view %p", view);
     g_return_val_if_fail (GNC_IS_TREE_VIEW_COMMODITY (view), NULL);
 
+    ENTER("view %p", view);
     s_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
     gtk_tree_view_get_cursor (GTK_TREE_VIEW(view), &s_path, NULL);
     if (s_path) {

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-price.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-price.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-price.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -126,8 +126,8 @@
   GncTreeViewPricePrivate *priv;
 
   ENTER("view %p", object);
-  g_return_if_fail (object != NULL);
-  g_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
+  gnc_leave_return_if_fail (object != NULL);
+  gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
 
   view = GNC_TREE_VIEW_PRICE (object);
   priv = GNC_TREE_VIEW_PRICE_GET_PRIVATE (view);
@@ -143,8 +143,8 @@
   GncTreeViewPrice *view;
 
   ENTER("view %p", object);
-  g_return_if_fail (object != NULL);
-  g_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
+  gnc_leave_return_if_fail (object != NULL);
+  gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
 
   view = GNC_TREE_VIEW_PRICE (object);
 
@@ -746,7 +746,11 @@
 					  gnc_tree_view_price_filter_destroy);
 
   /* Whack any existing levels. The top two levels have been created
-   * before this routine can be called. */
+   * before this routine can be called.  Unfortunately, if the just
+   * applied filter filters out all the nodes in the tree, the gtk
+   * code throws a critical error.  This occurs when there are no
+   * prices in the price database.  Once the very first price has been
+   * added this error message goes away. */
   gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (f_model));
   LEAVE(" ");
 }

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,197 @@
+/**
+ * @brief GncTreeView implementation for Scheduled Transaction List.
+ * @author Copyright (C) 2007 Joshua Sled <jsled at asynchronous.org>
+ **/
+/********************************************************************
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of version 2 of the GNU General Public *
+ * License as published by the Free Software Foundation.            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+ *                                                                  *
+ *******************************************************************/
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#include "gnc-tree-view.h"
+#include "gnc-tree-view-sx-list.h"
+#include "gnc-sx-list-tree-model-adapter.h"
+#include "gnc-gconf-utils.h"
+
+#define LOG_MOD "gnc.ui.tree-view.sx-list"
+static QofLogModule log_module = LOG_MOD;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN LOG_MOD
+
+static void gnc_tree_view_sx_list_class_init(GncTreeViewSxListClass *klass);
+static void gnc_tree_view_sx_list_init(GncTreeViewSxList *view);
+static void gnc_tree_view_sx_list_dispose(GObject *object);
+static void gnc_tree_view_sx_list_finalize(GObject *object);
+
+typedef struct GncTreeViewSxListPrivate
+{
+    GtkTreeModel *tree_model;
+    gboolean disposed;
+} GncTreeViewSxListPrivate;
+
+#define GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxListPrivate))
+
+static GObjectClass *parent_class = NULL;
+
+GType
+gnc_tree_view_sx_list_get_type(void)
+{
+	static GType gnc_tree_view_sx_list_type = 0;
+
+	if (gnc_tree_view_sx_list_type == 0)
+    {
+		static const GTypeInfo our_info = {
+			sizeof (GncTreeViewSxListClass),
+			NULL,
+			NULL,
+			(GClassInitFunc) gnc_tree_view_sx_list_class_init,
+			NULL,
+			NULL,
+			sizeof (GncTreeViewSxList),
+			0,
+			(GInstanceInitFunc) gnc_tree_view_sx_list_init
+		};
+		
+		gnc_tree_view_sx_list_type = g_type_register_static (GNC_TYPE_TREE_VIEW,
+                                                             "GncTreeViewSxList",
+                                                             &our_info, 0);
+	}
+
+	return gnc_tree_view_sx_list_type;
+}
+
+static void
+gnc_tree_view_sx_list_class_init(GncTreeViewSxListClass *klass)
+{
+	GObjectClass *o_class;
+
+	parent_class = g_type_class_peek_parent (klass);
+
+	o_class = G_OBJECT_CLASS (klass);
+
+    o_class->dispose =  gnc_tree_view_sx_list_dispose;
+	o_class->finalize = gnc_tree_view_sx_list_finalize;
+
+    g_type_class_add_private(klass, sizeof(GncTreeViewSxListPrivate));
+}
+
+static void
+gnc_tree_view_sx_list_init (GncTreeViewSxList *view)
+{
+    ; /* nop */
+}
+
+static void
+gnc_tree_view_sx_list_dispose(GObject *object)
+{
+  GncTreeViewSxList *view;
+  GncTreeViewSxListPrivate *priv;
+
+  gnc_leave_return_if_fail (object != NULL);
+  gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_SX_LIST (object));
+
+  view = GNC_TREE_VIEW_SX_LIST (object);
+  priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
+
+  if (priv->disposed)
+      return;
+  priv->disposed = TRUE;
+
+  g_object_unref(G_OBJECT(priv->tree_model));
+  priv->tree_model = NULL;
+
+  if (G_OBJECT_CLASS (parent_class)->dispose)
+    (* G_OBJECT_CLASS (parent_class)->dispose) (object);
+}
+
+static void
+gnc_tree_view_sx_list_finalize(GObject *object)
+{
+  GncTreeViewSxList *view;
+
+  gnc_leave_return_if_fail(object != NULL);
+  gnc_leave_return_if_fail(GNC_IS_TREE_VIEW_SX_LIST (object));
+
+  view = GNC_TREE_VIEW_SX_LIST(object);
+
+  if (G_OBJECT_CLASS(parent_class)->finalize)
+    (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+}
+
+GtkTreeView*
+gnc_tree_view_sx_list_new(GncSxInstanceModel *sx_instances)
+{
+    GncTreeView *view;
+    GtkTreeViewColumn *col;
+    GncTreeViewSxListPrivate *priv;
+
+    view = (GncTreeView*)g_object_new(GNC_TYPE_TREE_VIEW_SX_LIST, NULL);
+    g_object_set(view, "name", "sx_list_tree", NULL);
+
+    priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
+    
+    priv->tree_model = GTK_TREE_MODEL(gnc_sx_list_tree_model_adapter_new(sx_instances));
+    gnc_tree_view_set_model(view, GTK_TREE_MODEL(priv->tree_model));
+
+    col = gnc_tree_view_add_text_column(view, _("Name"), "name", NULL,
+                                        "Semi-Monthly Paycheck",
+                                        SXLTMA_COL_NAME, -1, NULL);
+    g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
+
+    col = gnc_tree_view_add_toggle_column(view, _("Enabled"), 
+                                          Q_("Single-character short column-title form of 'Enabled'|E"),
+                                          "enabled", SXLTMA_COL_ENABLED,
+                                          GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
+                                          NULL, NULL);
+    g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
+
+    col = gnc_tree_view_add_text_column(view, _("Frequency"), "frequency", NULL,
+                                        "Weekly (x3): -------",
+                                        SXLTMA_COL_FREQUENCY, -1, NULL);
+    g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
+
+    col = gnc_tree_view_add_text_column(view, _("Last Occur"), "last-occur", NULL,
+                                        "2007-01-02",
+                                        SXLTMA_COL_LAST_OCCUR, -1, NULL);
+    g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
+    
+    col = gnc_tree_view_add_text_column(view, _("Next Occur"), "next-occur", NULL,
+                                        "2007-01-02",
+                                        SXLTMA_COL_NEXT_OCCUR, -1, NULL);
+    g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE, GINT_TO_POINTER(1));
+
+    gnc_tree_view_configure_columns(view);
+
+    gtk_widget_show(GTK_WIDGET(view));
+    return GTK_TREE_VIEW(view);
+}
+
+SchedXaction*
+gnc_tree_view_sx_list_get_sx_from_path(GncTreeViewSxList *view, GtkTreePath *path)
+{
+    GtkTreeIter iter;
+    GncTreeViewSxListPrivate *priv = GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(view);
+    gtk_tree_model_get_iter(GTK_TREE_MODEL(priv->tree_model), &iter, path);
+    return gnc_sx_list_tree_model_adapter_get_sx_instances(
+        GNC_SX_LIST_TREE_MODEL_ADAPTER(priv->tree_model), &iter)->sx;
+}

Added: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view-sx-list.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -0,0 +1,66 @@
+/**
+ * @addtogroup GUI
+ * @{
+ * @file gnc-tree-view-sx-list.h
+ * @brief GncTreeView implementation for Scheduled Transaction List.
+ * @author Copyright (C) 2007 Joshua Sled <jsled at asynchronous.org>
+ **/
+/********************************************************************
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of version 2 of the GNU General Public *
+ * License as published by the Free Software Foundation.            *
+ *                                                                  *
+ * 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       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+ *                                                                  *
+ *******************************************************************/
+
+
+#ifndef __GNC_TREE_VIEW_SX_LIST_H
+#define __GNC_TREE_VIEW_SX_LIST_H
+
+#include <gtk/gtktreemodel.h>
+#include <gtk/gtktreeview.h>
+#include "gnc-tree-view.h"
+
+#include "SchedXaction.h"
+#include "gnc-sx-instance-model.h"
+#include "gnc-ui-util.h"
+
+G_BEGIN_DECLS
+
+#define GNC_TYPE_TREE_VIEW_SX_LIST            (gnc_tree_view_sx_list_get_type ())
+#define GNC_TREE_VIEW_SX_LIST(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxList))
+#define GNC_TREE_VIEW_SX_LIST_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxListClass))
+#define GNC_IS_TREE_VIEW_SX_LIST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW_SX_LIST))
+#define GNC_IS_TREE_VIEW_SX_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW_SX_LIST))
+#define GNC_TREE_VIEW_SX_LIST_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_SX_LIST, GncTreeViewSxListClass))
+
+typedef struct
+{
+    GncTreeView gnc_tree_view;
+} GncTreeViewSxList;
+
+typedef struct
+{
+    GncTreeViewClass gnc_tree_view;
+} GncTreeViewSxListClass;
+
+GType gnc_tree_view_sx_list_get_type(void);
+
+GtkTreeView* gnc_tree_view_sx_list_new(GncSxInstanceModel *sx_instances);
+
+SchedXaction* gnc_tree_view_sx_list_get_sx_from_path(GncTreeViewSxList *view, GtkTreePath *path);
+
+G_END_DECLS
+
+#endif /* __GNC_TREE_VIEW_SX_LIST_H */

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -803,7 +803,7 @@
       return TRUE;
     }
     pref_name = (gchar *)g_object_get_data(G_OBJECT(column), PREF_NAME);
-    DEBUG("pref_name is %s", pref_name);
+    DEBUG("pref_name is %s", pref_name ? pref_name : "(null)");
   }
 
   if (!pref_name) {
@@ -1433,7 +1433,7 @@
       gtk_tree_view_column_set_visible(priv->column_menu_column, FALSE);
   }
   LEAVE("menu: show %d, section %s", priv->show_column_menu,
-	priv->gconf_section);
+	priv->gconf_section ? priv->gconf_section : "(null)");
 }
 
 /** This function is called to synchronize the checkbox on a menu item
@@ -1918,7 +1918,6 @@
   return column;
 }
 
-#if HAVE_GTK26
 GtkTreeViewColumn *
 gnc_tree_view_add_combo_column (GncTreeView *view,
                                 const gchar *column_title,
@@ -1976,7 +1975,6 @@
   gnc_tree_view_append_column (view, column);
   return column;
 }
-#endif
 
 GtkCellRenderer *
 gnc_tree_view_column_get_renderer(GtkTreeViewColumn *column)

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnc-tree-view.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -188,7 +188,7 @@
 			       gint model_data_column,
 			       gint model_visibility_column,
 			       GtkTreeIterCompareFunc column_sort_fn);
-#if HAVE_GTK26
+
 /** This function adds a new combobox column to a GncTreeView base
  *  view.  The parameters it takes in common with
  *  gnc_tree_view_add_text_column() behave the same as there.  In
@@ -206,7 +206,6 @@
                                 GtkTreeModel *combo_tree_model,
                                 gint combo_model_text_column,
                                 GtkTreeIterCompareFunc column_sort_fn);
-#endif
 
 /** This function adds a new numeric column to a GncTreeView base
  *  view.  It takes all the parameters necessary to hook a

Modified: gnucash/branches/gda-dev/src/gnome-utils/gncmod-gnome-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gncmod-gnome-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gncmod-gnome-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,14 +1,13 @@
 /*********************************************************************
  * gncmod-gnome-utils.c
- * module definition/initialization for the gnome utilities 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the gnome utilities
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
 
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -25,32 +24,26 @@
 #include "gnc-druid-provider-multifile-gnome.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_gnome_utils_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_gnome_utils_LTX_gnc_module_current  = 0;
-int libgncmod_gnome_utils_LTX_gnc_module_revision = 0;
-int libgncmod_gnome_utils_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_gnome_utils_LTX_gnc_module_path(void);
-char *libgncmod_gnome_utils_LTX_gnc_module_description(void);
-int libgncmod_gnome_utils_LTX_gnc_module_init(int refcount);
-int libgncmod_gnome_utils_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_gnome_utils_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/gnome-utils");
 }
 
-char * 
-libgncmod_gnome_utils_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Utilities for using Gnome/Gtk with GnuCash");
 }
 
 static void
-lmod(char * mn) 
+lmod(char * mn)
 {
   char * form = g_strdup_printf("(use-modules %s)\n", mn);
   scm_c_eval_string(form);
@@ -60,7 +53,7 @@
 extern SCM scm_init_sw_gnome_utils_module(void);
 
 int
-libgncmod_gnome_utils_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
     return FALSE;
@@ -71,12 +64,6 @@
     return FALSE;
   }
 
-  /* load the calculation module (we depend on it) */
-  if(!gnc_module_load("gnucash/network-utils", 0)) {
-    return FALSE;
-  }
-
-  /* load the calculation module (we depend on it) */
   if(!gnc_module_load("gnucash/app-utils", 0)) {
     return FALSE;
   }
@@ -84,7 +71,7 @@
   scm_init_sw_gnome_utils_module();
   lmod("(sw_gnome_utils)");
   lmod("(gnucash gnome-utils)");
-  
+
   /* Initialize the options-ui database */
   if (refcount == 0) {
     gnc_options_ui_initialize ();
@@ -101,7 +88,7 @@
 }
 
 int
-libgncmod_gnome_utils_LTX_gnc_module_end(int refcount)
+gnc_module_end(int refcount)
 {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnctreemodelsort.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnctreemodelsort.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnctreemodelsort.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -58,7 +58,6 @@
 #include "gtk/gtktreednd.h"      //CAS: path changed
 //#include "gtk/gtkalias.h"      //CAS: header commented
 #include <glib/gi18n.h> //CAS: header added
-#include "gtk-compat.h" //CAS: header added
 #define P_(x) _(x)      //CAS: macro added
 
 typedef struct _SortElt SortElt;

Modified: gnucash/branches/gda-dev/src/gnome-utils/gnome-utils.i
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/gnome-utils.i	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/gnome-utils.i	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,7 +17,6 @@
 #include <gnc-menu-extensions.h>
 #include <gnc-plugin-file-history.h>
 #include <gnc-ui.h>
-#include <print-session.h>
 #include <gnc-splash.h>
 
 SCM scm_init_sw_gnome_utils_module (void);
@@ -36,8 +35,6 @@
 void gnc_options_dialog_set_scm_callbacks (GNCOptionWin *win,
         SCM apply_cb, SCM close_cb);
 
-%include "print-session.h"
-
 gboolean
 gnc_verify_dialog(GtkWidget *parent, gboolean yes_is_default,
 		  const gchar *format, ...);

Modified: gnucash/branches/gda-dev/src/gnome-utils/print-session.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/print-session.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/print-session.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -80,20 +80,7 @@
   g_free(ps);
 }
 
-void 
-gnc_print_session_moveto(PrintSession * ps, double x, double y)
-{
-  gnome_print_moveto(ps->context, x, y);
-}
 
-
-void 
-gnc_print_session_text(PrintSession * ps, const char * text)
-{
-  gnome_print_show(ps->context, (guchar*)text);  
-}
-
-
 void
 gnc_print_session_done(PrintSession * ps)
 {
@@ -118,27 +105,3 @@
       break;
   }
 }
-
-void
-gnc_print_session_rotate(PrintSession *ps, double theta_in_degrees)
-{
-  gnome_print_rotate(ps->context, theta_in_degrees);
-}
-
-void
-gnc_print_session_translate(PrintSession *ps, double x, double y)
-{
-  gnome_print_translate(ps->context, x, y);
-}
-
-void
-gnc_print_session_gsave(PrintSession *ps)
-{
-  gnome_print_gsave(ps->context);
-}
-
-void
-gnc_print_session_grestore(PrintSession *ps)
-{
-  gnome_print_grestore(ps->context);
-}

Modified: gnucash/branches/gda-dev/src/gnome-utils/print-session.h
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/print-session.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/print-session.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -24,6 +24,8 @@
 #ifndef PRINT_SESSION_H
 #define PRINT_SESSION_H
 
+#ifndef GTKHTML_USES_GTKPRINT
+
 /** @addtogroup Printing
     @{ */
 /** @file print-session.h
@@ -83,18 +85,8 @@
 void gnc_print_session_done(PrintSession * ps);
 
 /** @} */
-
-/** @addtogroup Adding Output to a Page
-    @{ */
-void gnc_print_session_moveto(PrintSession * ps, double x, double y);
-void gnc_print_session_text(PrintSession * ps, const char * text);
-
-void gnc_print_session_rotate(PrintSession *ps, double theta_in_degrees);
-void gnc_print_session_translate(PrintSession *ps, double x, double y);
-
-void gnc_print_session_gsave(PrintSession *ps);
-void gnc_print_session_grestore(PrintSession *ps);
 /** @} */
-/** @} */
 
+#endif /* GTKHTML_USES_GTKPRINT */
+
 #endif

Modified: gnucash/branches/gda-dev/src/gnome-utils/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -9,56 +9,52 @@
 ##lib_LTLIBRARIES = libgncgnome.la
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/calculation \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
   --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/gnome \
-  --guile-load-dir ${top_srcdir}/src/engine \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome-utils \
-  --library-dir    ${top_srcdir}/src/gnome
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/lib/libqof/qof \
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/backend/file \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils \
+  --library-dir    ${top_builddir}/src/gnome-utils
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-link-module test-gnc-recurrence test-gnc-dialog
 
 INCLUDES= \
   -I${top_srcdir}/src \
   -I${top_srcdir}/src/engine \
+  -I${top_srcdir}/src/engine/test-core \
   -I${top_srcdir}/src/gnome-utils \
   -I${top_srcdir}/src/gnc-module \
   -I${top_srcdir}/src/app-utils \
+  -I${top_srcdir}/src/test-core \
   ${GLIB_CFLAGS} ${GUILE_INCS} ${GNOME_CFLAGS} ${GLADE_CFLAGS} ${QOF_CFLAGS}
 
-test_gnc_recurrence_SOURCES=test-gnc-recurrence.c
-test_gnc_recurrence_LDADD = ${GNOME_LIBS} \
+LDADD = \
+  ${GNOME_LIBS} \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
-  ${top_builddir}/src/engine/libgncmod-engine.la
+  ${top_builddir}/src/engine/libgncmod-engine.la \
+  ${top_builddir}/src/engine/test-core/libgncmod-test-engine.la \
+  ${top_builddir}/src/test-core/libgncmod-test.la
 
-test_gnc_dialog_LDADD = ${GNOME_LIBS} \
-  ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
-  ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
-  ${top_builddir}/src/engine/libgncmod-engine.la
+test_gnc_recurrence_SOURCES=test-gnc-recurrence.c
 
 test_link_module_SOURCES=test-link-module.c
-test_link_module_LDADD= \
+test_link_module_LDADD = \
   ${GUILE_LIBS} \
-  ${top_builddir}/src/gnc-module/libgncmodule.la 
+  ${top_builddir}/src/gnc-module/libgnc-module.la
 
 EXTRA_DIST = \
   test-load-module
 
 testit:
 	libtool --mode execute gdb test-link-module
-
-

Modified: gnucash/branches/gda-dev/src/gnome-utils/window-main-summarybar.c
===================================================================
--- gnucash/branches/gda-dev/src/gnome-utils/window-main-summarybar.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gnome-utils/window-main-summarybar.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,7 +29,6 @@
 #include <glib/gi18n.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "gnc-accounting-period.h"
 #include "gnc-component-manager.h"
 #include "gnc-euro.h"
@@ -120,14 +119,13 @@
  * @fixme Move this non-GUI code into the engine.
  **/
 static void
-gnc_ui_accounts_recurse (AccountGroup *group, GList **currency_list,
+gnc_ui_accounts_recurse (Account *parent, GList **currency_list,
                          GNCSummarybarOptions options)
 {
   gnc_numeric start_amount;
   gnc_numeric start_amount_default_currency;
   gnc_numeric end_amount;
   gnc_numeric end_amount_default_currency;
-  AccountGroup *children;
   GNCAccountType account_type;  
   gnc_commodity * account_currency;
   gnc_commodity * euro_commodity;
@@ -135,21 +133,20 @@
   GNCCurrencyAcc *euro_accum = NULL;
   GNCCurrencyAcc *grand_total_accum = NULL;
   GNCCurrencyAcc *non_curr_accum = NULL;
-  GList *list;
-  GList *node;
+  GList *children, *node;
   gboolean non_currency = FALSE;
   Timespec end_timespec;
   Timespec start_timespec;
 
+  if (parent == NULL) return;
 
-  list = xaccGroupGetAccountList (group);
-  for (node = list; node; node = node->next)
+  children = gnc_account_get_children(parent);
+  for (node = children; node; node = g_list_next(node))
   {
     Account *account = node->data;
 
     account_type = xaccAccountGetType(account);
     account_currency = xaccAccountGetCommodity(account);
-    children = xaccAccountGetChildren(account);
 
     if(options.grand_total)
       grand_total_accum = gnc_ui_get_currency_accumulator(currency_list,
@@ -226,8 +223,7 @@
                              GNC_RND_ROUND);
 	}
 
-	if (children != NULL)
-	  gnc_ui_accounts_recurse(children, currency_list, options);
+	gnc_ui_accounts_recurse(account, currency_list, options);
 	break;
       case ACCT_TYPE_INCOME:
       case ACCT_TYPE_EXPENSE:
@@ -292,8 +288,7 @@
                              GNC_RND_ROUND);
 	}
 
-	if (children != NULL)
-	  gnc_ui_accounts_recurse(children, currency_list, options);
+	gnc_ui_accounts_recurse(account, currency_list, options);
 	break;
       case ACCT_TYPE_EQUITY:
         /* no-op, see comments at top about summing assets */
@@ -303,6 +298,7 @@
 	break;
     }
   }
+  g_list_free(children);
 }
 
 static char*
@@ -313,13 +309,13 @@
   switch(total_mode)
   {
   case TOTAL_CURR_TOTAL:
-    label_str = g_strdup_printf( _("%s, total:"), mnemonic );
+    label_str = g_strdup_printf( _("%s, Total:"), mnemonic );
     break;
   case TOTAL_NON_CURR_TOTAL:
-    label_str = g_strdup_printf( _("%s, non currency commodities total:"), mnemonic );
+    label_str = g_strdup_printf( _("%s, Non Currency Commodities Total:"), mnemonic );
     break;
   case TOTAL_GRAND_TOTAL:
-    label_str = g_strdup_printf( _("%s, grand total:"), mnemonic );
+    label_str = g_strdup_printf( _("%s, Grand Total:"), mnemonic );
     break;
   case TOTAL_SINGLE:
   default:
@@ -358,7 +354,7 @@
 static void
 gnc_main_window_summary_refresh (GNCMainSummary * summary)
 {
-  AccountGroup *group;
+  Account *root;
   char asset_string[256];
   char profit_string[256];
   GNCCurrencyAcc *currency_accum;
@@ -387,8 +383,8 @@
   gnc_ui_get_currency_accumulator (&currency_list, options.default_currency,
 				   TOTAL_SINGLE);
 
-  group = gnc_get_current_group ();
-  gnc_ui_accounts_recurse(group, &currency_list, options);
+  root = gnc_get_current_root_account ();
+  gnc_ui_accounts_recurse(root, &currency_list, options);
 
   {
     GtkTreeIter iter;
@@ -438,6 +434,14 @@
 
     gtk_combo_box_set_active(GTK_COMBO_BOX(summary->totals_combo), 0);
   }
+
+  /* Free the list we created for this */
+  for (current = g_list_first(currency_list);
+       current;
+       current = g_list_next(current)) {
+    g_free(current->data);
+  }
+  g_list_free(currency_list);
 }
 
 static void

Deleted: gnucash/branches/gda-dev/src/gtk-compat.h
===================================================================
--- gnucash/branches/gda-dev/src/gtk-compat.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/gtk-compat.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,29 +0,0 @@
-/*
- * gtk-compat.h - GTK version compatability mappings
- * Copyright (C) 2006, David Hampton <hampton at employees.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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef HAVE_GTK26
-#define	gtk_action_set_sensitive(action, xxx) \
-    g_object_set((action), "sensitive", (xxx), NULL)
-#define	gtk_action_set_visible(action, xxx) \
-    g_object_set((action), "visible", (xxx), NULL)
-
-#define GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID -2
-#endif
-

Modified: gnucash/branches/gda-dev/src/import-export/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,12 +39,14 @@
   import-utilities.h \
   gnc-import-format-gnome.h
 
+libgncmod_generic_import_la_LDFLAGS = -avoid-version
+
 libgncmod_generic_import_la_LIBADD = \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GNOME_LIBS} \
   ${GLADE_LIBS} \
   ${QOF_LIBS} \
@@ -75,3 +77,5 @@
 EXTRA_DIST = \
   $(glade_DATA) \
   generic-import-design.txt
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.i-e\"

Modified: gnucash/branches/gda-dev/src/import-export/binary-import/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/binary-import/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/binary-import/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,4 @@
 SUBDIRS = . test
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-binary-import.la
 
@@ -29,7 +28,7 @@
   druid-commodity.h
 
 libgncmod_binary_import_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/calculation/libgncmod-calculation.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \

Modified: gnucash/branches/gda-dev/src/import-export/binary-import/binary-import.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/binary-import/binary-import.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/binary-import/binary-import.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="commodity_druid">

Modified: gnucash/branches/gda-dev/src/import-export/binary-import/druid-commodity.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/binary-import/druid-commodity.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/binary-import/druid-commodity.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -460,7 +460,7 @@
 				   comm);
 
   /* now replace all the accounts using old_comm with new_comm */
-  accts = xaccGroupGetSubAccounts(gnc_get_current_group ());
+  accts = gnc_account_get_descendants(gnc_get_current_root_account ());
 
   for(node = accts; node; node = node->next)
   {
@@ -493,10 +493,10 @@
   g_hash_table_foreach(cd->new_map, &finish_helper, (gpointer)cd);
 
   /* Fix account and transaction commodities */
-  xaccGroupScrubCommodities (gnc_get_current_group ());
+  xaccAccountTreeScrubCommodities (gnc_get_current_root_account ());
 
   /* Fix split amount/value */
-  xaccGroupScrubSplits (gnc_get_current_group ());
+  xaccAccountTreeScrubSplits (gnc_get_current_root_account ());
 
   /* destroy the dialog */
   gnc_ui_commodity_druid_destroy(cd);

Modified: gnucash/branches/gda-dev/src/import-export/binary-import/gncmod-binary-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/binary-import/gncmod-binary-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/binary-import/gncmod-binary-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,13 +1,12 @@
 /*********************************************************************
  * gncmod-binary-import.c
  * module definition/initialization for importing gnucash binary files
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-hooks.h"
@@ -16,32 +15,26 @@
 #include "druid-commodity.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_binary_import_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_binary_import_LTX_gnc_module_current  = 0;
-int libgncmod_binary_import_LTX_gnc_module_revision = 0;
-int libgncmod_binary_import_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_binary_import_LTX_gnc_module_path(void);
-char *libgncmod_binary_import_LTX_gnc_module_description(void);
-int libgncmod_binary_import_LTX_gnc_module_init(int refcount);
-int libgncmod_binary_import_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_binary_import_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/import-export/binary-import");
 }
 
-char * 
-libgncmod_binary_import_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Utilities importing GnuCash binary files");
 }
 
 int
-libgncmod_binary_import_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
     return FALSE;
@@ -64,6 +57,6 @@
 }
 
 int
-libgncmod_binary_import_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/import-export/csv/gnc-csv2glist.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/csv/gnc-csv2glist.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/csv/gnc-csv2glist.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,7 +23,7 @@
 //#include "config.h"
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <string.h>
 #include <sys/types.h>
 #include <fcntl.h>
@@ -175,7 +175,7 @@
 	  printf("usage:\n\tcsv2glist fname.csv\n");
      }
 
-     fp = fopen (argv[1], "r");
+     fp = g_fopen (argv[1], "r");
      if (fp == NULL) return 1;
 
      parsed_csv = gnc_csv_parse(fp);

Modified: gnucash/branches/gda-dev/src/import-export/generic-import.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/generic-import.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/generic-import.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -19,6 +19,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="map" handler="gnc_ui_generic_account_picker_map_cb"/>
 
@@ -93,6 +94,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -114,6 +119,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -159,6 +168,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="close" handler="on_matcher_cancel_clicked"/>
 
@@ -244,6 +254,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -269,6 +283,8 @@
 		  <property name="reorderable">True</property>
 		  <property name="enable_search">False</property>
 		  <property name="fixed_height_mode">False</property>
+		  <property name="hover_selection">False</property>
+		  <property name="hover_expand">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -308,6 +324,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="close" handler="on_matcher_cancel_clicked"/>
 
@@ -377,6 +394,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -417,6 +438,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 
@@ -432,6 +457,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 
@@ -447,6 +476,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 
@@ -462,6 +495,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 
@@ -477,6 +514,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 
@@ -492,6 +533,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 
@@ -507,6 +552,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -537,6 +586,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -569,6 +622,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -635,6 +689,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -660,6 +718,8 @@
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
 		  <property name="fixed_height_mode">False</property>
+		  <property name="hover_selection">False</property>
+		  <property name="hover_expand">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -683,6 +743,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -708,6 +772,8 @@
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
 		  <property name="fixed_height_mode">False</property>
+		  <property name="hover_selection">False</property>
+		  <property name="hover_expand">False</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -743,6 +809,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -803,6 +870,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -830,6 +901,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -877,6 +952,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">label_item</property>
@@ -906,6 +985,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkTable" id="matcher_prefs">
@@ -975,6 +1055,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -1092,6 +1176,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">gconf/dialogs/import/generic_matcher/atm_fee_threshold</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -1118,6 +1206,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">gconf/dialogs/import/generic_matcher/auto_clear_threshold</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -1144,6 +1236,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">gconf/dialogs/import/generic_matcher/auto_add_threshold</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -1170,6 +1266,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">gconf/dialogs/import/generic_matcher/match_threshold</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -1223,6 +1323,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="close" handler="on_matcher_help_close_clicked" last_modification_time="Tue, 22 Nov 2005 08:11:11 GMT"/>
 
@@ -1281,6 +1382,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1418,6 +1523,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1442,6 +1551,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1466,6 +1579,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">12</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1490,6 +1607,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">12</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1514,6 +1635,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1538,6 +1663,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1562,6 +1691,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -1586,6 +1719,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">12</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -1653,6 +1790,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">12</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -1685,6 +1826,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">12</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>
@@ -1717,6 +1862,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">12</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 	      </child>
 	    </widget>

Modified: gnucash/branches/gda-dev/src/import-export/gncmod-generic-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/gncmod-generic-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/gncmod-generic-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,7 +5,7 @@
  */
 
 #include "config.h"
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-import-format-gnome.h"
@@ -14,34 +14,29 @@
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 /* version of the gnc module system interface we require */
-int libgncmod_generic_import_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_generic_import_LTX_gnc_module_current  = 0;
-int libgncmod_generic_import_LTX_gnc_module_revision = 0;
-int libgncmod_generic_import_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
 /*static GNCModule engine; NOTUSED */
 
-/* forward references */
-char *libgncmod_generic_import_LTX_gnc_module_path(void);
-char *libgncmod_generic_import_LTX_gnc_module_description(void);
-int libgncmod_generic_import_LTX_gnc_module_init(int refcount);
-int libgncmod_generic_import_LTX_gnc_module_end(int refcount);
-
-
 char *
-libgncmod_generic_import_LTX_gnc_module_path(void)
+gnc_module_path(void)
 {
   return g_strdup("gnucash/import-export");
 }
+
 char *
-libgncmod_generic_import_LTX_gnc_module_description(void)
+gnc_module_description(void)
 {
   return g_strdup("Gnome GUI and C code for the generic import functions");
 }
+
 int
-libgncmod_generic_import_LTX_gnc_module_init(int refcount)
+gnc_module_init(int refcount)
 {
   if(!gnc_module_load("gnucash/engine", 0))
   {
@@ -67,7 +62,7 @@
 }
 
 int
-libgncmod_generic_import_LTX_gnc_module_end(int refcount)
+gnc_module_end(int refcount)
 {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/import-export/hbci/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -42,14 +42,16 @@
   hbci-interaction.h \
   hbci-interactionP.h
 
+libgncmod_hbci_la_LDFLAGS = -avoid-version
+
 libgncmod_hbci_la_LIBADD = \
   ${top_builddir}/src/import-export/libgncmod-generic-import.la \
-  ${top_builddir}/src/gnome/libgncgnome.la \
+  ${top_builddir}/src/gnome/libgnc-gnome.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GNOME_LIBS} \
   ${GLADE_LIBS} \
   ${QOF_LIBS} \
@@ -85,3 +87,5 @@
 	gnc-plugin-hbci-ui.xml
 
 EXTRA_DIST = ${gncscm_DATA} ${libgncmod_hbci_la_empty} ${ui_DATA}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.hbci\"

Modified: gnucash/branches/gda-dev/src/import-export/hbci/dialog-hbcitrans.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/dialog-hbcitrans.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/dialog-hbcitrans.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -43,7 +43,6 @@
 #endif
 #include <iconv.h>
 
-#include "gtk-compat.h"
 #include "dialog-utils.h"
 #include "gnc-glib-utils.h"
 #include "gnc-ui.h"
@@ -366,10 +365,13 @@
       break;
     case SINGLE_DEBITNOTE:
       gtk_label_set_text (GTK_LABEL (heading_label), 
-			  /* Translators: Strings from this file are really only
-			   * needed inside Germany (HBCI is not supported anywhere
-			   * else). You may safely ignore strings from the
-			   * import-export/hbci subdirectory in other countries. */
+      /* Translators: Strings from this file are needed only in
+       * countries that have one of aqbanking's Online Banking
+       * techniques available. This is 'OFX DirectConnect'
+       * (U.S. and others), 'HBCI' (in Germany), or 'YellowNet'
+       * (Switzerland). If none of these techniques are available
+       * in your country, you may safely ignore strings from the
+       * import-export/hbci subdirectory. */
 			  _("Enter an Online Direct Debit Note"));
 
       gtk_label_set_text (GTK_LABEL (recp_name_heading),
@@ -388,7 +390,7 @@
       break;
 
     default:
-      printf("dialog-hbcitrans: Oops, unknown GNC_HBCI_Transtype %d.\n",
+      g_critical("dialog-hbcitrans: Oops, unknown GNC_HBCI_Transtype %d.\n",
 	     trans_type);
     }
     
@@ -482,7 +484,7 @@
   {
     AB_JOB *job = AB_JobSingleTransfer_new((AB_ACCOUNT *)h_acc);
     if (AB_Job_CheckAvailability(job)) {
-      printf("gnc_hbci_trans_dialog_enqueue: Oops, job not available. Aborting.\n");
+      g_warning("gnc_hbci_trans_dialog_enqueue: Oops, job not available. Aborting.\n");
       return GTK_RESPONSE_CANCEL;
     }
 #if ((AQBANKING_VERSION_MAJOR > 1) || \
@@ -515,7 +517,7 @@
 
     /* Now run the dialog until it gets closed by a button press. */
     result = gtk_dialog_run (GTK_DIALOG (td->dialog));
-    /* printf("hbci_trans: result button was %d.\n", result); */
+    /* g_message("hbci_trans: result button was %d.\n", result); */
 
     /* The dialog gets hidden anyway as soon as any button is pressed. */
     gtk_widget_hide_all (td->dialog);
@@ -579,6 +581,29 @@
       } /* check Transaction_purpose */
     }
 
+    {
+      char *othername = gnc_hbci_getremotename (td->hbci_trans);
+      if (!othername || (strlen (othername) == 0)) {
+	gtk_widget_show_all (td->dialog); 
+	values_ok = !gnc_verify_dialog
+	  (GTK_WIDGET (td->dialog),
+	   TRUE,
+	   "%s",
+	   _("You did not enter a recipient name.  A recipient name is "
+	     "required for an online transfer.\n"
+	     "\n"
+	     "Do you want to enter the job again?"));
+	if (othername)
+	  g_free (othername);
+	if (values_ok) {
+	  AB_Transaction_free (td->hbci_trans);
+	  td->hbci_trans = NULL;
+	  return GTK_RESPONSE_CANCEL;
+	}
+	continue;
+      } /* check Recipient Name (in aqbanking: Remote Name) */
+    }
+
     /* FIXME: If this is a direct debit, set the textkey/ "Textschluessel"/
        transactionCode according to some GUI selection here!! */
     /*if (td->trans_type == SINGLE_DEBITNOTE)
@@ -621,11 +646,11 @@
 	
   AB_Transaction_SetRemoteBankCode
     (trans, gtk_entry_get_text (GTK_ENTRY (td->recp_bankcode_entry)));
-  /* printf("Got otherBankCode %s.\n",
+  /* g_message("Got otherBankCode %s.\n",
      AB_Transaction_otherBankCode (trans)); */
   AB_Transaction_SetRemoteAccountNumber
     (trans, gtk_entry_get_text (GTK_ENTRY (td->recp_account_entry)));
-  /* printf("Got otherAccountId %s.\n",
+  /* g_message("Got otherAccountId %s.\n",
      AB_Transaction_otherAccountId (trans)); */
   AB_Transaction_SetRemoteCountry (trans, "DE");
 
@@ -756,7 +781,7 @@
     job = AB_JobSingleTransfer_new(h_acc);
   };
   if (AB_Job_CheckAvailability(job)) {
-    printf("gnc_hbci_trans_dialog_enqueue: Oops, job not available. Aborting.\n");
+    g_warning("gnc_hbci_trans_dialog_enqueue: Oops, job not available. Aborting.\n");
     return NULL;
   }
 
@@ -893,7 +918,7 @@
 				      "UTF-8", ktoblzcheck_encoding,
 				      NULL, NULL, &error);
     if (error != NULL) {
-      printf ("Error converting bankname \"%s\" to UTF-8\n", bankname);
+      g_critical ("Error converting bankname \"%s\" to UTF-8\n", bankname);
       g_error_free (error);
       /* Conversion was erroneous, so don't use the string */
       utf8_bankname = g_strdup (_("(unknown)"));

Modified: gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-initial.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-initial.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-initial.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,9 +25,9 @@
 
 #include <gnome.h>
 #include <glib/gi18n.h>
+#include <glib/gstdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/wait.h>
 #include <fcntl.h>
 #include <unistd.h>
 
@@ -45,12 +45,14 @@
 #include "gnc-html.h"
 //#include "import-account-matcher.h"
 #include "gnc-component-manager.h"
+#include "gnc-session.h"
 
 #include <aqbanking/banking.h>
 #include <aqbanking/version.h>
 #include <gwenhywfar/stringlist.h>
 #include <gwenhywfar/version.h>
 
+#define DRUID_HBCI_IMPORT_CM_CLASS "druid-hbci-import"
 /* #define DEFAULT_HBCI_VERSION 201 */
 
 enum account_list_cols {
@@ -84,6 +86,11 @@
 
 };
 
+/* Is TRUE as long as the druid is opened and running. Is being
+   used to catch a window close event during waiting for a child
+   process. */
+static gboolean hbci_druid_is_active = FALSE;
+
 static void
 reset_initial_info (HBCIInitialInfo *info)
 {
@@ -104,6 +111,8 @@
 {
   if (info == NULL) return;
 
+  gnc_unregister_gui_component_by_data(DRUID_HBCI_IMPORT_CM_CLASS, info);
+
   reset_initial_info (info);
   
   /* if (info->interactor)
@@ -112,6 +121,7 @@
   if (info->window != NULL) 
     gtk_widget_destroy (info->window);
 
+  hbci_druid_is_active = FALSE;
   g_free (info);
 }
 
@@ -209,9 +219,9 @@
 			      update_accountlist_acc_cb,
 			      info);
   else
-    printf("update_accountlist: Oops, account list from AB_Banking is NULL.\n");
+    g_warning("update_accountlist: Oops, account list from AB_Banking is NULL.\n");
 
-  /* printf("update_accountlist: GNC hash has %d entries.\n", g_hash_table_size(info->gnc_hash)); */
+  /* g_message("update_accountlist: GNC hash has %d entries.\n", g_hash_table_size(info->gnc_hash)); */
 
   if (path) {
     gtk_tree_selection_select_path(selection, path);
@@ -270,8 +280,7 @@
 
 
 static void
-on_cancel (GnomeDruid *gnomedruid,
-	   gpointer user_data)
+cm_close_handler(gpointer user_data)
 {
   HBCIInitialInfo *info = user_data;
 
@@ -282,6 +291,13 @@
 }
 
 static void
+on_cancel (GnomeDruid *gnomedruid,
+	   gpointer user_data)
+{
+  cm_close_handler(user_data);
+}
+
+static void
 on_finish (GnomeDruidPage *gnomedruidpage,
 	   gpointer arg1,
 	   gpointer user_data)
@@ -357,9 +373,9 @@
   if (hbci_acc) {
     old_value = g_hash_table_lookup (info->gnc_hash, hbci_acc);
 
-    printf("on_accountlist_select_row: Selected hbci_acc id %s; old_value %p \n",
+    /* g_message("on_accountlist_select_row: Selected hbci_acc id %s; old_value %p \n",
 	   AB_Account_GetAccountNumber(hbci_acc),
-	   old_value);
+	   old_value); */
 
     longname = gnc_hbci_account_longname(hbci_acc);
     if (AB_Account_GetCurrency (hbci_acc) && 
@@ -393,10 +409,21 @@
 
 
 
+static void
+on_child_exit (GPid pid, gint status, gpointer data)
+{
+  gint *data_status = data;
+#ifdef G_OS_WIN32
+  *data_status = status;
+#else
+  *data_status = WEXITSTATUS (status);
+#endif
 
+  g_spawn_close_pid (pid);
+  gtk_main_quit ();
+}
 
 
-
 #if (AQBANKING_VERSION_MAJOR > 1) || \
   ((AQBANKING_VERSION_MAJOR == 1) && \
     (AQBANKING_VERSION_MINOR == 9) && \
@@ -420,10 +447,10 @@
 
   /* This is the point where we look for and start an external
      application shipped with aqhbci that contains the setup druid for
-     HBCI related stuff. It requires qt (but not kde). This
+     AqBanking related stuff. It requires qt (but not kde). This
      application contains the very verbose step-by-step setup wizard
-     for the HBCI account, and the application is shared with other
-     AqBanking-based financial managers that offer the HBCI features
+     for the AqBanking account, and the application is shared with other
+     AqBanking-based financial managers that offer the AqBanking features
      (e.g. KMyMoney). See gnucash-devel discussion here
      https://lists.gnucash.org/pipermail/gnucash-devel/2004-December/012351.html
   */
@@ -530,7 +557,7 @@
 
   if (wizard_exists) {
     /* Really check whether the file exists */
-    int fd = open( wizard_path, O_RDONLY );
+    int fd = g_open( wizard_path, O_RDONLY, 0 );
     if ( fd == -1)
       wizard_exists = FALSE;
     else
@@ -540,9 +567,6 @@
   druid_disable_next_button(info);
   /* AB_Banking_DeactivateProvider(banking, backend_name); */
   if (wizard_exists) {
-    int wait_status;
-    int wait_result = 0;
-
     /* Call the qt wizard. See the note above about why this approach
        is chosen. */
 
@@ -551,33 +575,36 @@
     if (info->gnc_hash != NULL)
       g_hash_table_destroy (info->gnc_hash);
     info->gnc_hash = NULL;
-    /* In gtk2, this would be g_spawn_async or similar. */
+
     {
-      pid_t pid;
-      pid = fork();
-      switch (pid) {
-      case -1:
-	printf("Fork call failed. Cannot start AqHBCI setup wizard.");
+      GPid pid;
+      GError *error = NULL;
+      gchar *argv[2];
+      gboolean spawned;
+
+      argv[0] = g_strdup (wizard_path);
+      argv[1] = NULL;
+      spawned = g_spawn_async (NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD,
+			       NULL, NULL, &pid, &error);
+      g_free (argv[0]);
+
+      if (!spawned) {
+	g_critical("Could not start AqBanking setup wizard: %s",
+		   error->message ? error->message : "(null)");
+	g_error_free (error);
 	res = -1;
-	AB_Banking_Init (info->api);
-	break;
-      case 0: /* child */
-	execl(wizard_path, wizard_path, NULL);
-	printf("Fork call failed. Cannot start AqHBCI setup wizard.");
-	_exit(0);
-      default: /* parent */
-	res = 0;
-	/* wait until child is finished */
-	while (wait_result == 0) {
-	  gtk_main_iteration();
-	  wait_result = waitpid(pid, &wait_status, WNOHANG);
-	  if ((wait_result == pid) && WIFEXITED(wait_status))
-	    res = WEXITSTATUS(wait_status);
-	  else
-	    res = -8;
+      } else {
+	g_child_watch_add (pid, on_child_exit, &res);
+	hbci_druid_is_active = TRUE;
+	gtk_main ();
+	if (!hbci_druid_is_active) {
+	  /* Just in case the druid has been canceled in the meantime. */
+	  g_free (backend_name);
+	  GWEN_Buffer_free(buf);
+	  return;
 	}
-	AB_Banking_Init (info->api);
       }
+      AB_Banking_Init (info->api);
     }
 
     if (res == 0) {
@@ -587,32 +614,31 @@
       if ((res == 0) || (res == AB_ERROR_FOUND))
 	druid_enable_next_button(info);
       else {
-	printf("on_aqhbci_button: Oops, after successful wizard the activation return nonzero value: %d. \n", res);
+	g_warning("on_aqhbci_button: Oops, after successful wizard the activation return nonzero value: %d. \n", res);
 	druid_disable_next_button(info);
       }
     }
     else {
-      printf("on_aqhbci_button: Oops, aqhbci wizard return nonzero value: %d. The called program was \"%s\".\n", res, wizard_path);
+      g_warning("on_aqhbci_button: Oops, aqhbci wizard return nonzero value: %d. The called program was \"%s\".\n", res, wizard_path);
       gnc_error_dialog
 	(info->window,
-       /* Each of the %s is the name of the backend, e.g. "aqhbci". */
-	 _("The external program \"%s Setup Wizard\" returned a nonzero "
-	   "exit code which means it has not been finished successfully. "
-	   "The further HBCI setup can only be finished if the %s "
-	   "Setup Wizard is run successfully. Please try to start and "
-	   "successfully finish the %s Setup Wizard program again."),
-	 backend_name, backend_name, backend_name);
+	 _("The external program \"AqBanking Setup Wizard\" failed "
+	   "to run successfully.  Online Banking can only be setup "
+	   "if this wizard has run successfully.  "
+	   "Please try running the \"AqBanking Setup Wizard\" again."));
       druid_disable_next_button(info);
     }
   } else {
-    printf("on_aqhbci_button: Oops, no aqhbci setup wizard found.");
+    g_warning("on_aqhbci_button: Oops, no aqhbci setup wizard found.");
     gnc_error_dialog
       (info->window,
        /* Each of the %s is the name of the backend, e.g. "aqhbci". */
-       _("The external program \"%s Setup Wizard\" has not been found. \n\n"
-	 "The package aqbanking is supposed to install the program "
-	 "\"%s-qt3-wizard\". Please check your installation of aqbanking."),
-       backend_name, backend_name);
+       _("The external program \"AqBanking Setup Wizard\" has not "
+	 "been found. \n\n"
+	 "The aqbanking package should include the "
+	 "program \"qt3-wizard\".  Please check your installation to "
+	 "ensure this program is present.  On some distributions this "
+	 "may require installing additional packages."));
     druid_disable_next_button(info);
   }
   g_free (backend_name);
@@ -631,6 +657,7 @@
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
   GtkTreeSelection *selection;
+  gint component_id;
   
   info = g_new0 (HBCIInitialInfo, 1);
 
@@ -672,14 +699,14 @@
     g_object_unref(info->accountstore);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes(_("HBCI account name"),
+    column = gtk_tree_view_column_new_with_attributes(_("Online Banking Account Name"),
 						      renderer,
 						      "text", ACCOUNT_LIST_COL_HBCI_NAME,
 						      NULL);
     gtk_tree_view_append_column(info->accountview, column);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes(_("GnuCash account name"),
+    column = gtk_tree_view_column_new_with_attributes(_("GnuCash Account Name"),
 						      renderer,
 						      "text", ACCOUNT_LIST_COL_GNC_NAME,
 						      NULL);
@@ -700,6 +727,10 @@
 		      G_CALLBACK (on_accountlist_prepare), info);
   }
 
+  component_id = gnc_register_gui_component(DRUID_HBCI_IMPORT_CM_CLASS,
+					    NULL, cm_close_handler,
+					    info);
+  gnc_gui_component_set_session(component_id, gnc_get_current_session());
 
   /*g_signal_connect (dialog, "destroy",*/
   /*                  G_CALLBACK(gnc_hierarchy_destroy_cb), NULL);*/

Modified: gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/druid-hbci-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -66,7 +66,7 @@
       (gnc_acc, AB_Account_GetBankCode(hbci_acc));
 }
 
-static gpointer accounts_clear_kvp (Account *gnc_acc, gpointer user_data)
+static void accounts_clear_kvp (Account *gnc_acc, gpointer user_data)
 {
   if (gnc_hbci_get_account_uid(gnc_acc))
     gnc_hbci_set_account_uid (gnc_acc, 0);
@@ -74,7 +74,6 @@
     gnc_hbci_set_account_accountid (gnc_acc, "");
   if (gnc_hbci_get_account_bankcode(gnc_acc))
     gnc_hbci_set_account_bankcode (gnc_acc, "");
-  return NULL;
 }
 
 /* hash is a DIRECT hash from each HBCI account to each gnucash
@@ -82,13 +81,11 @@
 void
 accounts_save_kvp (GHashTable *hash)
 {
-  AccountGroup *grp;
+  Account *root;
   g_assert(hash);
 
-  grp = gnc_book_get_group (gnc_get_current_book ());
-  xaccGroupForEachAccount (grp, 
-			   &accounts_clear_kvp,
-			   NULL, TRUE);
+  root = gnc_book_get_root_account (gnc_get_current_book ());
+  gnc_account_foreach_descendant (root, accounts_clear_kvp, NULL);
 
   g_hash_table_foreach (hash, &accounts_save_kvp_cb, NULL);
 }
@@ -112,7 +109,7 @@
   GHashTable *hash;
 };
 
-static gpointer 
+static void 
 gnc_hbci_new_hash_from_kvp_cb (Account *gnc_acc, gpointer user_data)
 {
   struct hbci_acc_cb_data *data = user_data;
@@ -122,7 +119,6 @@
   if (hbci_acc) {
     g_hash_table_insert (data->hash, hbci_acc, gnc_acc);
   }
-  return NULL;
 }
 
 GHashTable *
@@ -133,12 +129,10 @@
   hash = g_hash_table_new (&g_direct_hash, &g_direct_equal);
   if (api) {
     struct hbci_acc_cb_data data;
-    AccountGroup *grp = gnc_book_get_group (gnc_get_current_book ());
+    Account *root = gnc_book_get_root_account (gnc_get_current_book ());
     data.api = api;
     data.hash = hash;
-    xaccGroupForEachAccount (grp, 
-			     &gnc_hbci_new_hash_from_kvp_cb,
-			     &data, TRUE);
+    gnc_account_foreach_descendant(root, gnc_hbci_new_hash_from_kvp_cb, &data);
   }
   return hash;
 }

Modified: gnucash/branches/gda-dev/src/import-export/hbci/glade/hbci.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/glade/hbci.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/glade/hbci.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -6,7 +6,7 @@
 
 <widget class="GtkWindow" id="HBCI Init Druid">
   <property name="visible">True</property>
-  <property name="title" translatable="yes">Initial HBCI Setup</property>
+  <property name="title" translatable="yes">Initial Online Banking Setup</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
@@ -19,6 +19,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="hbci_init_druid">
@@ -31,21 +32,21 @@
 	<widget class="GnomeDruidPageEdge" id="druidpagestart1">
 	  <property name="visible">True</property>
 	  <property name="position">GNOME_EDGE_START</property>
-	  <property name="title" translatable="yes">Initial HBCI Setup</property>
-	  <property name="text" translatable="yes">This druid helps you setting up your HBCI connection with your bank.
+	  <property name="title" translatable="yes">Initial Online Banking Setup</property>
+	  <property name="text" translatable="yes">This druid helps you setting up your Online Banking connection with your bank.
 
-You first need to apply for HBCI access at your bank. If your bank  decides to grant you HBCI access, the bank will send you a letter,  containing 
+You first need to apply for Online Banking access at your bank. If your bank  decides to grant you electronic access, they will send you a letter containing 
 
 * The bank code of your bank
 * The user ID that identifies you to your bank
-* The Internet address of your bank's HBCI server
-* Information about the cryptographic public key of your bank (&quot;Ini-Letter&quot;).
+* The Internet address of your bank's Online Banking server
+* For HBCI Online Banking, information about the cryptographic public key of your bank (&quot;Ini-Letter&quot;).
 
 This information will be needed in the following. Press &quot;Forward&quot; now.
 
-NOTE: NO WARRANTIES FOR ANYTHING. Some banks are running a poorly implemented HBCI. You should not rely on time-critical transfers through HBCI, since sometimes your bank does not give you correct feedback when a transfer has been rejected.
+NOTE: NO WARRANTIES FOR ANYTHING. Some banks run a poorly implemented Online Banking server. You should not rely on time-critical transfers through Online Banking, because sometimes the bank does not give you correct feedback when a transfer is rejected.
 
-Press &quot;Cancel&quot; if you do not wish to setup any HBCI connection now.</property>
+Press &quot;Cancel&quot; if you do not wish to setup any Online Banking connection now.</property>
 	  <property name="title_color">#ffffffffffff</property>
 	  <property name="text_color">#000000000000</property>
 	  <property name="background_color">#9999bfbf9999</property>
@@ -57,7 +58,7 @@
       <child>
 	<widget class="GnomeDruidPageStandard" id="configfile_page">
 	  <property name="visible">True</property>
-	  <property name="title" translatable="yes">Start AqHBCI Wizard</property>
+	  <property name="title" translatable="yes">Start Online Banking Wizard</property>
 	  <property name="title_foreground">#ffffffffffff</property>
 	  <property name="background">#9999bfbf9999</property>
 	  <property name="logo_background">#ffffffffffff</property>
@@ -85,7 +86,7 @@
 		      <child>
 			<widget class="GtkLabel" id="label8877441">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">The Setup of your HBCI connection is handled by the external program &quot;AqHBCI Setup Wizard&quot;. Please press the button below to start this program.	</property>
+			  <property name="label" translatable="yes">The Setup of your Online Banking connection is handled by the external program &quot;AqBanking Setup Wizard&quot;. Please press the button below to start this program.	</property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -95,6 +96,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">10</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -114,7 +119,7 @@
 			    <widget class="GtkButton" id="aqhbci_button">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Start AqHBCI Wizard</property>
+			      <property name="label" translatable="yes">Start AqBanking Wizard</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
@@ -142,7 +147,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label1">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Start AqHBCI Setup Wizard</property>
+		      <property name="label" translatable="yes">Start AqBanking Setup Wizard</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -152,6 +157,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -172,7 +181,7 @@
       <child>
 	<widget class="GnomeDruidPageStandard" id="account_match_page">
 	  <property name="visible">True</property>
-	  <property name="title" translatable="yes">Match HBCI accounts with GnuCash accounts</property>
+	  <property name="title" translatable="yes">Match Online Banking accounts with GnuCash accounts</property>
 	  <property name="title_foreground">#ffffffffffff</property>
 	  <property name="background">#9999bfbf9999</property>
 	  <property name="logo_background">#ffffffffffff</property>
@@ -207,6 +216,8 @@
 			  <property name="reorderable">False</property>
 			  <property name="enable_search">True</property>
 			  <property name="fixed_height_mode">False</property>
+			  <property name="hover_selection">False</property>
+			  <property name="hover_expand">False</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -220,7 +231,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label828">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Click on the line of a HBCI account name if you want to match it to a GnuCash account. Click &quot;Forward&quot; when all desired accounts are matching.</property>
+		      <property name="label" translatable="yes">Click on the line of an Online Banking account name if you want to match it to a GnuCash account. Click &quot;Forward&quot; when all desired accounts are matching.</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -230,6 +241,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -253,10 +268,10 @@
 	<widget class="GnomeDruidPageEdge" id="initial_finish_page">
 	  <property name="visible">True</property>
 	  <property name="position">GNOME_EDGE_FINISH</property>
-	  <property name="title" translatable="yes">HBCI Setup Finished</property>
-	  <property name="text" translatable="yes">Now the setup for all HBCI accounts that are matching to a GnuCash account is finished. You can now invoke HBCI actions on those accounts.
+	  <property name="title" translatable="yes">Online Banking Setup Finished</property>
+	  <property name="text" translatable="yes">The setup for matching Online Banking accounts to GnuCash accounts is now finished.  You can now invoke Online Banking actions on those accounts.
 
-If you want to add another HBCI bank, user, or account, you can start this druid again anytime.
+If you want to add another bank, user, or account, you can start this druid again anytime.
 
 Press &quot;Apply&quot; now.</property>
 	  <property name="title_color">#ffffffffffff</property>
@@ -284,6 +299,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -382,6 +398,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -423,6 +443,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -485,6 +509,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -530,6 +558,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -575,6 +607,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -599,6 +635,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -623,6 +663,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -647,6 +691,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -684,6 +732,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -708,6 +760,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -732,6 +788,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -756,6 +816,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -780,6 +844,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -804,6 +872,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -828,6 +900,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -852,6 +928,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -876,6 +956,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -900,6 +984,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">2</property>
@@ -1013,6 +1101,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -1113,6 +1205,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -1169,6 +1265,8 @@
 			      <property name="reorderable">False</property>
 			      <property name="enable_search">True</property>
 			      <property name="fixed_height_mode">False</property>
+			      <property name="hover_selection">False</property>
+			      <property name="hover_expand">False</property>
 			      <signal name="select_child" handler="on_template_list_select_child"/>
 			      <signal name="selection_changed" handler="on_template_list_selection_changed"/>
 			      <signal name="unselect_child" handler="on_template_list_unselect_child"/>
@@ -1198,6 +1296,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -1347,7 +1449,7 @@
 <widget class="GtkDialog" id="HBCI_connection_dialog">
   <property name="border_width">6</property>
   <property name="visible">True</property>
-  <property name="title" translatable="yes">HBCI Connection Window</property>
+  <property name="title" translatable="yes">Online Banking Connection Window</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
@@ -1360,6 +1462,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1427,6 +1530,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1469,6 +1576,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -1493,6 +1604,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -1517,6 +1632,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -1534,6 +1653,7 @@
 		      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
 		      <property name="fraction">0</property>
 		      <property name="pulse_step">0.10000000149</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">1</property>
@@ -1609,6 +1729,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1630,6 +1754,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1729,6 +1857,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1795,6 +1924,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1816,6 +1949,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1846,6 +1983,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1889,6 +2030,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1913,6 +2058,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -2081,7 +2230,7 @@
 
 <widget class="GtkDialog" id="HBCI_version_dialog">
   <property name="visible">True</property>
-  <property name="title" translatable="yes">HBCI Version</property>
+  <property name="title" translatable="yes">Online Banking Version</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
@@ -2092,6 +2241,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -2148,7 +2298,7 @@
 	  <child>
 	    <widget class="GtkLabel" id="label8877436">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Choose a HBCI Version to use with the selected bank:</property>
+	      <property name="label" translatable="yes">Choose an Online Banking Version to use with the selected bank:</property>
 	      <property name="use_underline">False</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_CENTER</property>
@@ -2158,6 +2308,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -2196,6 +2350,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -2231,6 +2389,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -2298,6 +2457,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/import-export/hbci/glade/hbcipass.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/glade/hbcipass.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/glade/hbcipass.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -78,6 +79,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -106,6 +111,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -157,6 +166,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -218,6 +228,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -278,6 +292,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -323,6 +341,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/import-export/hbci/glade/hbciprefs.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/glade/hbciprefs.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/glade/hbciprefs.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkTable" id="hbci_prefs">
@@ -29,7 +30,7 @@
       <child>
 	<widget class="GtkLabel" id="label55">
 	  <property name="visible">True</property>
-	  <property name="label" translatable="yes">&lt;b&gt;HBCI&lt;/b&gt;</property>
+	  <property name="label" translatable="yes">&lt;b&gt;Online Banking&lt;/b&gt;</property>
 	  <property name="use_underline">False</property>
 	  <property name="use_markup">True</property>
 	  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -39,6 +40,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -53,7 +58,7 @@
       <child>
 	<widget class="GtkCheckButton" id="gconf/dialogs/import/hbci/remember_pin">
 	  <property name="visible">True</property>
-	  <property name="tooltip" translatable="yes">Remember the PIN for HBCI in memory during a session.</property>
+	  <property name="tooltip" translatable="yes">Remember the Online Banking PIN in memory during a session.</property>
 	  <property name="can_focus">True</property>
 	  <property name="label" translatable="yes">Remember _PIN</property>
 	  <property name="use_underline">True</property>
@@ -77,7 +82,7 @@
       <child>
 	<widget class="GtkCheckButton" id="gconf/dialogs/import/hbci/verbose_debug">
 	  <property name="visible">True</property>
-	  <property name="tooltip" translatable="yes">Activate verbose debug messages for HBCI Online Banking.</property>
+	  <property name="tooltip" translatable="yes">Activate verbose debug messages for Online Banking.</property>
 	  <property name="can_focus">True</property>
 	  <property name="label" translatable="yes">_Verbose debug messages</property>
 	  <property name="use_underline">True</property>

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,9 +25,10 @@
  */
 #include "config.h"
 
-#include <glib.h>
+#include "gnc-file-aqb-import.h"
+
 #include <glib/gi18n.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <string.h>
 #include <sys/time.h>
 #include <fcntl.h>
@@ -35,7 +36,6 @@
 #include <aqbanking/version.h>
 #include <aqbanking/banking.h>
 #include <aqbanking/imexporter.h>
-#include <aqbanking/jobsingledebitnote.h>
 
 #include "gnc-ui.h"
 #include "qof.h"
@@ -45,95 +45,15 @@
 #include "gnc-engine.h"
 #include "gnc-file.h"
 #include "gnc-ui-util.h"
-#include "gnc-gconf-utils.h"
 
 #include "gnc-hbci-utils.h"
 #include "gnc-hbci-gettrans.h"
 #include "hbci-interaction.h"
-#include "dialog-hbcitrans.h"
 
-#include "import-main-matcher.h"
-#include "import-account-matcher.h"
-#include "gnc-hbci-gettrans.h"
 
-#include "gnc-file-aqb-import.h"
-
 static QofLogModule log_module = GNC_MOD_IMPORT;
 
-/* Callback declarations */
-static const AB_TRANSACTION *
-translist_cb (const AB_TRANSACTION *element, void *user_data);
-static AB_IMEXPORTER_ACCOUNTINFO *
-accountinfolist_cb(AB_IMEXPORTER_ACCOUNTINFO *element, void *user_data);
-static gboolean 
-gnc_hbci_multijob_execute(GtkWidget *parent, AB_BANKING *api,
-			  GList *job_list,  GNCInteractor *interactor);
-static void multijob_cb (gpointer element, gpointer user_data);
-static void delpending_cb (gpointer element, gpointer user_data);
 
-struct import_data 
-{
-  Account *gnc_acc;
-  GNCImportMainMatcher *importer_generic;
-  AB_BANKING *ab;
-  AB_ACCOUNT *hbci_account;
-  GList *job_list;
-  gboolean execute_transactions;
-};
-
-
-/* If aqbanking is older than 1.9.7, use our own copies of these
-   foreach functions */
-#if ((AQBANKING_VERSION_MAJOR == 1) && \
-     ((AQBANKING_VERSION_MINOR < 9) || \
-      ((AQBANKING_VERSION_MINOR == 9) && \
-       ((AQBANKING_VERSION_PATCHLEVEL < 7)))))
-static AB_IMEXPORTER_ACCOUNTINFO *
-AB_ImExporterContext_AccountInfoForEach(AB_IMEXPORTER_CONTEXT *iec,
-					AB_IMEXPORTER_ACCOUNTINFO *
-					(* func)(AB_IMEXPORTER_ACCOUNTINFO *element,
-						 void *user_data),
-					void* user_data)
-{
-  AB_IMEXPORTER_ACCOUNTINFO *it;
-  AB_IMEXPORTER_ACCOUNTINFO *retval;
-  g_assert(iec);
-
-  it = AB_ImExporterContext_GetFirstAccountInfo (iec);
-  while (it) {
-    retval = func(it, user_data);
-    if (retval) {
-      return retval;
-    }
-    it = AB_ImExporterContext_GetNextAccountInfo (iec);
-  }
-  return 0;
-
-}
-static const AB_TRANSACTION *
-AB_ImExporterAccountInfo_TransactionsForEach(AB_IMEXPORTER_ACCOUNTINFO *iea,
-					     const AB_TRANSACTION *
-					     (* func)(const AB_TRANSACTION *element,
-						      void *user_data),
-					     void* user_data)
-{
-  const AB_TRANSACTION *it;
-  const AB_TRANSACTION *retval;
-  g_assert(iea);
-
-  it = AB_ImExporterAccountInfo_GetFirstTransaction (iea);
-  while (it) {
-    retval = func(it, user_data);
-    if (retval) {
-      return retval;
-    }
-    it = AB_ImExporterAccountInfo_GetNextTransaction (iea);
-  }
-  return 0;
-}
-#endif /* aqbanking < 1.9.7 */
-
-
 /* See aqbanking-1.6.0beta/src/tools/aqbanking-tool/import.c for hints
    on how to program aqbanking. */
 
@@ -150,13 +70,10 @@
   char *default_dir;
   int dtaus_fd;
 
-  /* qof_log_check(MOD_IMPORT, QOF_LOG_TRACE); */
   DEBUG("gnc_file_dtaus_import(): Begin...\n");
 
-  default_dir = gnc_gconf_get_string(GCONF_SECTION, KEY_LAST_PATH, NULL);
-  if (default_dir == NULL)
-    gnc_init_default_directory(&default_dir);
-  selected_filename = gnc_file_dialog(_("Select an DTAUS file to process"),
+  default_dir = gnc_get_default_directory(GCONF_SECTION);
+  selected_filename = gnc_file_dialog(_("Select a file to import"),
 				      NULL,
 				      default_dir,
 				      GNC_FILE_DIALOG_IMPORT);
@@ -165,18 +82,19 @@
   if(selected_filename!=NULL) {
     /* Remember the directory as the default. */
     default_dir = g_path_get_dirname(selected_filename);
-    gnc_gconf_set_string(GCONF_SECTION, KEY_LAST_PATH, default_dir, NULL);
+    gnc_set_default_directory(GCONF_SECTION, default_dir);
     g_free(default_dir);
 
     /*strncpy(file,selected_filename, 255);*/
     DEBUG("Filename found: %s",selected_filename);
 
     DEBUG("Opening selected file");
-    dtaus_fd = open(selected_filename, O_RDONLY);
+    dtaus_fd = g_open(selected_filename, O_RDONLY, 0);
     if (dtaus_fd == -1) {
       DEBUG("Could not open file %s", selected_filename);
       return;
     }
+    g_free(selected_filename);
 
     {
       int result;
@@ -193,7 +111,7 @@
       /* Get API */
       ab = gnc_AB_BANKING_new_currentbook (NULL, &interactor);
       if (ab == NULL) {
-	printf("gnc_file_dtaus_import: Couldn't get HBCI API. Nothing will happen.\n");
+	g_message("gnc_file_dtaus_import: Couldn't get HBCI API. Nothing will happen.\n");
 	return;
       }
       g_assert (interactor);
@@ -222,17 +140,15 @@
 	dbProfile=GWEN_DB_GetNextGroup(dbProfile);
       }
       if (!dbProfile) {
-	DEBUG("Profile \"%s\" for importer \"%s\" not found",
+	g_warning("Profile \"%s\" for importer \"%s\" not found\n",
 	      profileName, importerName);
-	printf("Profile \"%s\" for importer \"%s\" not found\n",
-	      profileName, importerName);
 	/* For debugging: Print those available names that have been found. */
 	dbProfile=GWEN_DB_GetFirstGroup(dbProfiles);
 	while(dbProfile) {
 	  const char *name;
 	  name=GWEN_DB_GetCharValue(dbProfile, "name", 0, 0);
 	  g_assert(name);
-	  printf("Only found profile \"%s\"\n", name);
+	  g_warning("Only found profile \"%s\"\n", name);
 	  dbProfile=GWEN_DB_GetNextGroup(dbProfile);
 	}
 	return;
@@ -261,45 +177,41 @@
 
       {
 	/* Now get all accountinfos */
-	struct import_data data;
 	GNCImportMainMatcher *importer_generic_gui;
 	GtkWidget *parent = NULL;
 	gboolean successful = FALSE;
+	GList *ab_job_list;
 
 	/* Create importer GUI */
 	importer_generic_gui = gnc_gen_trans_list_new(parent, NULL, TRUE, 14);
-	data.importer_generic = importer_generic_gui;
-	data.ab = ab;
-	data.job_list = NULL;
-	data.execute_transactions = execute_transactions;
 
-	/* Iterate through all accounts */
-	AB_ImExporterContext_AccountInfoForEach(ctx, accountinfolist_cb, &data);
-	/* all accounts finished. */
+	/* Import the transactions from the ctx into gnucash. */
+	ab_job_list = gnc_hbci_import_ctx(ab, ctx, importer_generic_gui,
+					  execute_transactions);
+	/* Finished importing. */
 
-	/* that's it */
-	g_free(selected_filename);
+	/* We clean up here. */
+	AB_ImExporterContext_free(ctx);
 
 	if (execute_transactions) {
-	  /* and run the gnucash importer. */
+	  /* Wait for the gnucash importer to be finished (it is being
+	     run anyway). */
 	  result = gnc_gen_trans_list_run (importer_generic_gui);
 
 	  if (result)
 	    /* Execute these jobs now. This function already delete()s the
 	       job. */
 	    /* no parent so far; otherwise add this: GNCInteractor_reparent (interactor, parent); */
-	    successful = gnc_hbci_multijob_execute (parent, ab, data.job_list, interactor);
+	    successful = gnc_hbci_multijob_execute (parent, ab, ab_job_list, interactor);
 	  /* else */
 	  
 	  /* Delete all jobs from queue in any case. */
-	  g_list_foreach (data.job_list, delpending_cb, ab);
+	  gnc_hbci_clearqueue (ab, ab_job_list);
 	}
 	else {
 	  successful = TRUE;
 	}
 
-	/* We clean up here. */
-	AB_ImExporterContext_free(ctx);
 	if (successful) {
 	  /* If execution was not successful, leave the log window
 	     still intact and open. */
@@ -311,177 +223,5 @@
   }
 }
 
-static AB_IMEXPORTER_ACCOUNTINFO *
-accountinfolist_cb(AB_IMEXPORTER_ACCOUNTINFO *accinfo, void *user_data) {
-  Account *gnc_acc;
-  struct import_data *data = user_data;
-  const char *bank_code =
-    AB_ImExporterAccountInfo_GetBankCode(accinfo);
-  const char *account_number = 
-    AB_ImExporterAccountInfo_GetAccountNumber(accinfo);
-  const char *account_name = 
-    AB_ImExporterAccountInfo_GetAccountName(accinfo);
-  gchar *online_id = g_strconcat (bank_code, account_number, NULL);
-  
-  gnc_acc = gnc_import_select_account(NULL, 
-				      online_id, 1, account_name, NULL, 
-				      ACCT_TYPE_NONE, NULL, NULL);
-  g_free(online_id);
-  if (gnc_acc) {
-    /* Store chosen gnucash account in callback data */
-    data->gnc_acc = gnc_acc;
 
-    if (data->execute_transactions) {
-      /* Retrieve the aqbanking account that belongs to this gnucash
-	 account */
-      data->hbci_account = gnc_hbci_get_hbci_acc (data->ab, gnc_acc);
-      if (data->hbci_account == NULL) {
-	gnc_error_dialog (NULL, _("No HBCI account found for this gnucash account. These transactions will not be executed by HBCI."));
-      }
-    }
-    else {
-      data->hbci_account = NULL;
-    }
-  
-    /* Iterate through all transactions.  */
-    AB_ImExporterAccountInfo_TransactionsForEach (accinfo, translist_cb, data);
-    /* all transactions finished. */
-  }
-  return NULL;
-}
-
-static const AB_TRANSACTION *
-translist_cb (const AB_TRANSACTION *element, void *user_data) {
-  AB_JOB *job;
-  AB_TRANSACTION *trans = (AB_TRANSACTION*)element;
-  GtkWidget *parent = NULL;
-  struct import_data *data = user_data;
-  struct trans_list_data hbci_userdata;
-
-  /* This callback in the hbci module will add the imported
-     transaction to gnucash's importer. */
-  hbci_userdata.gnc_acc = data->gnc_acc;
-  hbci_userdata.importer_generic = data->importer_generic;
-  /* The call will use "trans" only as const* */
-  gnc_hbci_trans_list_cb((AB_TRANSACTION*) trans, &hbci_userdata);
-
-  if (data->hbci_account) {
-    /* NEW: The imported transaction has been imported into
-       gnucash. Now also add it as a job to aqbanking. */
-    AB_Transaction_SetLocalBankCode (trans, 
-				     AB_Account_GetBankCode (data->hbci_account));
-    AB_Transaction_SetLocalAccountNumber (trans, AB_Account_GetAccountNumber (data->hbci_account));
-    AB_Transaction_SetLocalCountry (trans, "DE");
-
-    job = 
-      gnc_hbci_trans_dialog_enqueue(trans, data->ab,
-				    data->hbci_account, SINGLE_DEBITNOTE);
-
-    /* Check whether we really got a job */
-    if (!job) {
-      /* Oops, no job, probably not supported by bank. */
-      if (gnc_verify_dialog
-	  (parent, 
-	   FALSE,
-	   "%s",
-	   _("The backend found an error during the preparation "
-	     "of the job. It is not possible to execute this job. \n"
-	     "\n"
-	     "Most probable the bank does not support your chosen "
-	     "job or your HBCI account does not have the permission "
-	     "to execute this job. More error messages might be "
-	     "visible on your console log.\n"
-	     "\n"
-	     "Do you want to enter the job again?"))) {
-	gnc_error_dialog (parent, "Sorry, not implemented yet.");
-      }
-      /* else
-	 break; */
-    }
-    data->job_list = g_list_append(data->job_list, job);
-  }
-
-  return NULL;
-}
-
-gboolean 
-gnc_hbci_multijob_execute(GtkWidget *parent, AB_BANKING *api, 
-			  GList *job_list, GNCInteractor *interactor)
-{
-  gboolean successful;
-  g_assert(api);
-
-  successful = gnc_AB_BANKING_execute (parent, api, NULL, interactor);
-
-  /*printf("dialog-hbcitrans: Ok, result of api_execute was %d.\n", 
-    successful);*/
-	  
-  if (!successful) {
-    /* AB_BANKING_executeOutbox failed. */
-    gnc_error_dialog (GNCInteractor_dialog (interactor),
-		      "%s",
-		      _("Executing the HBCI outbox failed. Please check the log window."));
-    GNCInteractor_show_nodelete(interactor);
-
-    g_list_foreach (job_list, multijob_cb, GNCInteractor_dialog (interactor));
-  }
-  /* Watch out! The job *has* to be removed from the queue
-     here because otherwise it might be executed again. */
-  /* AB_Banking_DequeueJob(api, job); is done in the calling function. */
-  return successful;
-}
-
-void multijob_cb (gpointer element, gpointer user_data)
-{
-  AB_JOB *job = element;
-  GtkWidget *parent = user_data;
-
-  if ((AB_Job_GetStatus (job) == AB_Job_StatusPending) ||
-      (AB_Job_GetStatus (job) == AB_Job_StatusError)) {
-    /* There was some error in this job. */
-    if (AB_Job_GetType (job) == AB_Job_TypeDebitNote) {
-      const AB_TRANSACTION *h_trans =
-	AB_JobSingleDebitNote_GetTransaction (job);
-      gchar *descr_name = gnc_hbci_descr_tognc (h_trans);
-      gchar *value = 
-	gnc_AB_VALUE_toReadableString (AB_Transaction_GetValue (h_trans));
-      gchar *errortext;
-      errortext =
-	g_strdup_printf(_("A debit note has been refused by the bank. The refused debit note has the following data:\n"
-			  "Remote bank code: \"%s\"\n"
-			  "Remote account number: \"%s\"\n"
-			  "Description and remote name: \"%s\"\n"
-			  "Value: \"%s\"\n"),
-			AB_Transaction_GetRemoteBankCode (h_trans),
-			AB_Transaction_GetRemoteAccountNumber (h_trans),
-			descr_name,
-			value);
-      printf ("%s", errortext);
-      gnc_error_dialog (parent, "%s", errortext);
-      g_free (errortext);
-      g_free (descr_name);
-    } else {
-    gnc_error_dialog 
-      (parent, "%s",
-       _("One of the jobs was sent to the bank successfully, but the "
-	 "bank is refusing to execute the job. Please check "
-	 "the log window for the exact error message of the "
-	 "bank. The line with the error message contains a "
-	 "code number that is greater than 9000.\n"
-	 "\n"
-	 "The job has been removed from the queue."));
-    /* FIXME: Might make more useful user feedback here. */
-    }
-  }
-}
-
-void delpending_cb (gpointer element, gpointer user_data)
-{
-  AB_JOB *job = element;
-  AB_BANKING *ab = user_data;
-
-  if (AB_Job_GetStatus (job) == AB_Job_StatusPending)
-    AB_Banking_DelPendingJob(ab, job);
-}
-
 /** @} */

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.h
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-file-aqb-import.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,27 +25,32 @@
 #ifndef DTAUS_IMPORT_H
 #define DTAUS_IMPORT_H
 
-/** The gnc_file_dtaus_import() routine will pop up a standard file
- *     selection dialogue asking the user to pick an DTAUS file. If one
- *     is selected then the DTAUS file is opened and read. Its contents
- *     are merged into the existing session (if any). The current
- *     session continues to remain open for editing.
+#include <glib.h>
+
+/** This routine will pop up a standard file selection dialog asking
+ * the user to pick a file to import. This file will be opened and
+ * read. Its contents will be imported into the current book, using
+ * the import matcher from import-main-matcher.h.
  *
  * @param aqbanking_importername The aqbanking importer module that
- * should be used. Possible values: "dtaus", "csv", "swift".
+ * should be used. Possible values: "dtaus", "csv", "swift", or more.
  *
- * @param aqbanking_profilename In aqbanking, each importer has one or
- * more "profiles" that define the actual data fields that should be
- * used. Possible values for swift: "swift-mt940" or "swift-mt942",
+ * @param aqbanking_formatname In aqbanking, each importer has one or
+ * more data formats available which define the actual data
+ * fields that should be used. In aqbanking, such a different format
+ * is called a "profile". 
+ * Possible values for swift: "swift-mt940" or "swift-mt942", 
  * but for all others: "default", or more precisely: Look into
  * $datadir/aqbanking/imexporters and look into the "name" field of
  * the foo.conf files.
  *
- * @param execute_transactions If TRUE, import the transactions and
- * additionally send them as online jobs over aqbanking/HBCI. If
- * FALSE, simply import the transactions and that's it.
+ * @param exec_as_aqbanking_jobs If TRUE, additionally queue the
+ * imported transactions as online jobs over aqbanking/HBCI. If FALSE,
+ * just import the transactions and that's it.
  */
 void gnc_file_aqbanking_import (const gchar *aqbanking_importername,
-				const gchar *aqbanking_profilename,
-				gboolean execute_transactions);
+				const gchar *aqbanking_formatname,
+				gboolean exec_as_aqbanking_jobs);
+
+
 #endif

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-getbalance.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-getbalance.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-getbalance.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -49,7 +49,7 @@
 		const char *time_str)
 {
   char *str = gnc_AB_VALUE_toReadableString (val);
-  printf("GetBalance: %s%s %s at date %s %s",
+  g_message("GetBalance: %s%s %s at date %s %s",
 	 (negative ? "-" : ""), str, 
 	 name, date_str, time_str);
   free (str);
@@ -71,7 +71,7 @@
   /* Get API */
   api = gnc_AB_BANKING_new_currentbook (parent, &interactor);
   if (api == NULL) {
-    printf("gnc_hbci_getbalance: Couldn't get AB_BANKING API.\n");
+    g_message("gnc_hbci_getbalance: Couldn't get AB_BANKING API.\n");
     return;
   }
   g_assert (interactor);
@@ -79,11 +79,11 @@
   /* Get HBCI account */
   h_acc = gnc_hbci_get_hbci_acc (api, gnc_acc);
   if (h_acc == NULL) {
-    printf("gnc_hbci_getbalance: No HBCI account found.\n");
+    g_warning("gnc_hbci_getbalance: No HBCI account found.\n");
     /* FIXME: free unneeded data */
     return;
   }
-  /* printf("gnc_hbci_getbalance: HBCI account no. %s found.\n",
+  /* g_message("gnc_hbci_getbalance: HBCI account no. %s found.\n",
      AB_ACCOUNT_accountId (h_acc)); */
   
   {
@@ -92,7 +92,7 @@
 
     job = AB_JobGetBalance_new((AB_ACCOUNT*)h_acc);
     if (AB_Job_CheckAvailability(job)) {
-      printf("gnc_hbci_getbalance: JobGetBalance not avaiable for this account.\n");
+      g_message("gnc_hbci_getbalance: JobGetBalance not available for this account.\n");
       /* FIXME: free unneeded data */
       return;
     }
@@ -149,7 +149,7 @@
   noted_val = AB_VALUE_new(GWEN_DB_GetCharValue(noted_grp, "value", 0, "0"),
 			     GWEN_DB_GetCharValue(noted_grp, "currency", 0, "EUR"));
     
-  printf("GetBalance: Balances for account %s :\n",
+  g_message("GetBalance: Balances for account %s :\n",
 	 AB_ACCOUNT_accountId (h_acc));
   bal_print_debug("Booked balance",
 		  booked_val,
@@ -204,7 +204,7 @@
 
   response = AB_JobGetBalance_GetAccountStatus((AB_JOB*)job);
   if (!response) {
-    printf("gnc_hbci_getbalance_finish: Oops, response == NULL.\n");
+    g_critical("gnc_hbci_getbalance_finish: Oops, response == NULL.\n");
     return TRUE;
   }
 
@@ -217,15 +217,19 @@
     ti=AB_Balance_GetTime(booked_grp);
     if (ti)
       booked_tt = GWEN_Time_toTime_t (ti);
+    else
+      /* No time found? Use today because the HBCI query asked for
+	 today's balance. */
+      booked_tt = gnc_timet_get_day_start(time(NULL));
     booked_val = AB_Balance_GetValue(booked_grp);
     if (booked_val)
       booked_value = AB_Value_GetValue (booked_val);
     else {
-      printf("gnc_hbci_getbalance_finish: Warning: booked_val == NULL. Assuming 0.\n");
+      g_warning("gnc_hbci_getbalance_finish: Warning: booked_val == NULL. Assuming 0.\n");
       booked_value = 0.0;
     }
   } else {
-    printf("gnc_hbci_getbalance_finish: Warning: booked_grp == NULL. Assuming 0.\n");
+    g_warning("gnc_hbci_getbalance_finish: Warning: booked_grp == NULL. Assuming 0.\n");
     booked_value = 0.0;
     booked_val = NULL;
     booked_tt = 0;
@@ -237,11 +241,11 @@
     if (noted_val)
       noted_value = AB_Value_GetValue (noted_val);
     else {
-      printf("gnc_hbci_getbalance_finish: Warning: noted_val == NULL. Assuming 0.\n");
+      g_warning("gnc_hbci_getbalance_finish: Warning: noted_val == NULL. Assuming 0.\n");
       noted_value = 0.0;
     }
   } else {
-    printf("gnc_hbci_getbalance_finish: Warning: noted_grp == NULL. Assuming 0.\n");
+    g_warning("gnc_hbci_getbalance_finish: Warning: noted_grp == NULL. Assuming 0.\n");
     noted_value = 0.0;
     noted_val = NULL;
   }
@@ -257,16 +261,20 @@
 				      GTK_MESSAGE_INFO,
 				      GTK_BUTTONS_OK,
 				      "%s",
-	 /* Translators: Strings from this file are really only
-	  * needed inside Germany (HBCI is not supported anywhere
-	  * else). You may safely ignore strings from the
-	  * import-export/hbci subdirectory in other countries.
-	  */
-	 _("The downloaded HBCI Balance was zero.\n\n"
+      /* Translators: Strings from this file are needed only in
+       * countries that have one of aqbanking's Online Banking
+       * techniques available. This is 'OFX DirectConnect'
+       * (U.S. and others), 'HBCI' (in Germany), or 'YellowNet'
+       * (Switzerland). If none of these techniques are available
+       * in your country, you may safely ignore strings from the
+       * import-export/hbci subdirectory. */
+	 _("The downloaded Online Banking Balance was zero.\n\n"
 	   "Either this is the correct balance, or your bank does not "
-	   "support Balance download in this HBCI version. In the latter "
-	   "case you should choose a higher HBCI version number in the HBCI "
-	   "Setup. After that, try again to download the HBCI Balance."));
+	   "support Balance download in this Online Banking version. "
+	   "In the latter case you should choose a different "
+	   "Online Banking version number in the Online Banking "
+	   "(AqBanking or HBCI) Setup. After that, try again to "
+	   "download the Online Banking Balance."));
       gtk_dialog_run(GTK_DIALOG(dialog));
       gtk_widget_destroy(GTK_WIDGET(dialog));
       dialogres = FALSE;
@@ -278,7 +286,7 @@
       char *booked_str = gnc_AB_VALUE_toReadableString (booked_val);
       char *message1 = g_strdup_printf
 	(
-	 _("Result of HBCI job: \n"
+	 _("Result of Online Banking job: \n"
 	   "Account booked balance is %s"),
 	 booked_str);
       char *message2 = 

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-gettrans.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-gettrans.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-gettrans.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -63,7 +63,7 @@
   /* Get the api */
   api = gnc_AB_BANKING_new_currentbook (parent, &interactor);
   if (api == NULL) {
-    printf("gnc_hbci_gettrans: Couldn't get HBCI API.\n");
+    g_message("gnc_hbci_gettrans: Couldn't get HBCI API.\n");
     return;
   }
   g_assert (interactor);
@@ -71,7 +71,7 @@
   /* Get HBCI account */
   h_acc = gnc_hbci_get_hbci_acc (api, gnc_acc);
   if (h_acc == NULL) {
-    printf("gnc_hbci_getbalance: No HBCI account found.\n");
+    g_warning("gnc_hbci_getbalance: No HBCI account found.\n");
     /* FIXME: free unneeded data */
     return;
   }
@@ -91,7 +91,7 @@
     /* Create OutboxJob */
     job = AB_JobGetTransactions_new((AB_ACCOUNT*)h_acc);
     if (AB_Job_CheckAvailability(job)) {
-      printf("gnc_hbci_gettrans: Oops, job not available. Aborting.\n");
+      g_warning("gnc_hbci_gettrans: Oops, job not available. Aborting.\n");
       /* FIXME: free unneeded data */
       return;
     }
@@ -204,7 +204,7 @@
 				  GTK_MESSAGE_INFO,
 				  GTK_BUTTONS_OK,
 				  "%s",
-				  _("The HBCI import returned no transactions "
+				  _("The Online Banking import returned no transactions "
 				    "for the selected time period."));
   gtk_dialog_run(GTK_DIALOG(dialog));
   gtk_widget_destroy(GTK_WIDGET(dialog));
@@ -256,7 +256,7 @@
 
   gnc_acc = data->gnc_acc;
   g_assert(gnc_acc);
-  book = xaccAccountGetBook(gnc_acc);
+  book = gnc_account_get_book(gnc_acc);
 
   /* Create new gnucash transaction for the given hbci one */
   gnc_trans = xaccMallocTransaction(book);
@@ -281,7 +281,7 @@
     xaccTransSetDateSecs
       (gnc_trans, GWEN_Time_toTime_t (valutaDate));
   else
-    printf("trans_list_cb: Oops, date 'valutaDate' was NULL.\n");
+    g_warning("trans_list_cb: Oops, date 'valutaDate' was NULL.\n");
     
   current_time = time(NULL);
   xaccTransSetDateEnteredSecs(gnc_trans, mktime(localtime(&current_time)));
@@ -321,7 +321,7 @@
        xaccAccountGetCommoditySCU(gnc_acc),
        GNC_RND_ROUND);
     if (!h_value)
-      printf("trans_list_cb: Oops, value was NULL. Using 0.\n");
+      g_warning("trans_list_cb: Oops, value was NULL. Using 0.\n");
     xaccSplitSetBaseValue(split, gnc_amount, xaccAccountGetCommodity(gnc_acc));
   }
     

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-transfer.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-transfer.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-transfer.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -60,7 +60,7 @@
   /* Get API */
   api = gnc_AB_BANKING_new_currentbook (parent, &interactor);
   if (api == NULL) {
-    printf("gnc_hbci_maketrans: Couldn't get HBCI API. Nothing will happen.\n");
+    g_message("gnc_hbci_maketrans: Couldn't get HBCI API. Nothing will happen.\n");
     return;
   }
   g_assert (interactor);
@@ -68,7 +68,7 @@
   /* Get HBCI account */
   h_acc = gnc_hbci_get_hbci_acc (api, gnc_acc);
   if (h_acc == NULL) {
-    printf("gnc_hbci_maketrans: No HBCI account found. Nothing will happen.\n");
+    g_warning("gnc_hbci_maketrans: No HBCI account found. Nothing will happen.\n");
     return;
   }
   /*printf("gnc_hbci_maketrans: HBCI account no. %s found.\n",
@@ -78,7 +78,7 @@
     GList *template_list = 
       gnc_trans_templ_glist_from_kvp_glist
       ( gnc_hbci_get_book_template_list
-	( xaccAccountGetBook(gnc_acc)));
+	( gnc_account_get_book(gnc_acc)));
     int result;
     gboolean successful = FALSE;
     HBCITransDialog *td;
@@ -137,7 +137,7 @@
 		 "of the job. It is not possible to execute this job. \n"
 		 "\n"
 		 "Most probable the bank does not support your chosen "
-		 "job or your HBCI account does not have the permission "
+		 "job or your Online Banking account does not have the permission "
 		 "to execute this job. More error messages might be "
 		 "visible on your console log.\n"
 		 "\n"
@@ -193,7 +193,7 @@
     /* If we wanted to do something here with the gnc txn, we could. */
     /*if (result >= 0) {
       Transaction *gtrans = gnc_hbci_dialog_get_gtrans(td);
-      printf("gnc-hbci-transfer: Got gnc txn w/ description: %s\n",
+      g_message("gnc-hbci-transfer: Got gnc txn w/ description: %s\n",
       xaccTransGetDescription(gtrans));
       }*/
 
@@ -224,7 +224,7 @@
       g_list_length(template_list),
       kvp_value_glist_to_string(kvp_list));*/
     gnc_hbci_set_book_template_list
-      (xaccAccountGetBook(gnc_acc), kvp_list);
+      (gnc_account_get_book(gnc_acc), kvp_list);
   }
 }
 
@@ -247,12 +247,12 @@
   
   switch (trans_type) {
   case SINGLE_DEBITNOTE:
-    gnc_xfer_dialog_set_title (transdialog, _("Online HBCI Direct Debit Note"));
+    gnc_xfer_dialog_set_title (transdialog, _("Online Banking Direct Debit Note"));
   case SINGLE_INTERNAL_TRANSFER:
-    gnc_xfer_dialog_set_title (transdialog, _("Online HBCI Bank-Internal Transfer"));
+    gnc_xfer_dialog_set_title (transdialog, _("Online Banking Bank-Internal Transfer"));
   case SINGLE_TRANSFER:
   default:
-    gnc_xfer_dialog_set_title (transdialog, _("Online HBCI Transaction"));
+    gnc_xfer_dialog_set_title (transdialog, _("Online Banking Transaction"));
   }
       
   /* Amount */

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,7 +26,6 @@
 #include <glib/gi18n.h>
 #include <errno.h>
 #include <iconv.h>
-#include <langinfo.h>
 #include <gwenhywfar/directory.h>
 #include <gwenhywfar/logger.h>
 
@@ -37,12 +36,19 @@
 #include "qof.h" 
 #include "gnc-glib-utils.h"
 
+#include "import-main-matcher.h"
+#include "import-account-matcher.h"
+
 #define AQBANKING_NOWARN_DEPRECATED
 #include "gnc-hbci-utils.h"
 
 #include "hbci-interaction.h"
+#include "gnc-hbci-gettrans.h"
+#include "dialog-hbcitrans.h"
 #include <aqbanking/version.h>
+#include <aqbanking/jobsingledebitnote.h>
 
+
 /* static short module = MOD_IMPORT; */
 
 /* Globale variables for AB_BANKING caching. */
@@ -51,6 +57,59 @@
 static GNCInteractor *gnc_hbci_inter = NULL;
 
 
+/* If aqbanking is older than 1.9.7, use our own copies of these
+   foreach functions */
+#if ((AQBANKING_VERSION_MAJOR == 1) && \
+     ((AQBANKING_VERSION_MINOR < 9) || \
+      ((AQBANKING_VERSION_MINOR == 9) && \
+       ((AQBANKING_VERSION_PATCHLEVEL < 7)))))
+static AB_IMEXPORTER_ACCOUNTINFO *
+AB_ImExporterContext_AccountInfoForEach(AB_IMEXPORTER_CONTEXT *iec,
+					AB_IMEXPORTER_ACCOUNTINFO *
+					(* func)(AB_IMEXPORTER_ACCOUNTINFO *element,
+						 void *user_data),
+					void* user_data)
+{
+  AB_IMEXPORTER_ACCOUNTINFO *it;
+  AB_IMEXPORTER_ACCOUNTINFO *retval;
+  g_assert(iec);
+
+  it = AB_ImExporterContext_GetFirstAccountInfo (iec);
+  while (it) {
+    retval = func(it, user_data);
+    if (retval) {
+      return retval;
+    }
+    it = AB_ImExporterContext_GetNextAccountInfo (iec);
+  }
+  return 0;
+
+}
+static const AB_TRANSACTION *
+AB_ImExporterAccountInfo_TransactionsForEach(AB_IMEXPORTER_ACCOUNTINFO *iea,
+					     const AB_TRANSACTION *
+					     (* func)(const AB_TRANSACTION *element,
+						      void *user_data),
+					     void* user_data)
+{
+  const AB_TRANSACTION *it;
+  const AB_TRANSACTION *retval;
+  g_assert(iea);
+
+  it = AB_ImExporterAccountInfo_GetFirstTransaction (iea);
+  while (it) {
+    retval = func(it, user_data);
+    if (retval) {
+      return retval;
+    }
+    it = AB_ImExporterAccountInfo_GetNextTransaction (iea);
+  }
+  return 0;
+}
+#endif /* aqbanking < 1.9.7 */
+
+
+
 AB_BANKING * gnc_AB_BANKING_new_currentbook (GtkWidget *parent, 
 					     GNCInteractor **inter)
 {
@@ -63,7 +122,7 @@
     {
       int r = AB_Banking_Init(api);
       if (r != 0)
-	printf("gnc_AB_BANKING_new: Warning: Error %d on AB_Banking_init\n", r);
+	g_critical("gnc_AB_BANKING_new: Warning: Error %d on AB_Banking_init\n", r);
     }
     
     gnc_hbci_inter = gnc_AB_BANKING_interactors (api, parent);
@@ -141,10 +200,10 @@
 
     if (!hbci_acc && bankcode && (strlen(bankcode)>0) &&
 	accountid && (strlen(accountid) > 0)) {
-      /* printf("gnc_hbci_get_hbci_acc: No AB_ACCOUNT found for UID %d, trying bank code\n", account_uid); */
+      g_message("gnc_hbci_get_hbci_acc: No AB_ACCOUNT found for UID %d, trying bank code\n", account_uid);
       hbci_acc = AB_Banking_GetAccountByCodeAndNumber(api, bankcode, accountid);
     }
-    /*printf("gnc_hbci_get_hbci_acc: return HBCI_Account %p\n", hbci_acc);*/
+    /* g_message("gnc_hbci_get_hbci_acc: return HBCI_Account %p\n", hbci_acc); */
     return hbci_acc;
   } else if (bankcode && (strlen(bankcode)>0) && accountid && (strlen(accountid) > 0)) {
     hbci_acc = AB_Banking_GetAccountByCodeAndNumber(api, bankcode, accountid);
@@ -158,7 +217,7 @@
 static void *
 print_list_int_cb (int value, void *user_data)
 {
-  printf("%d, ", value);
+  g_warning("%d, ", value);
   return NULL;
 }
 static void 
@@ -166,7 +225,7 @@
 {
   g_assert(list);
   list_int_foreach (list, &print_list_int_cb, NULL);
-  printf ("\n");
+  g_warning ("\n");
 }
 static void *
 get_resultcode_error_cb (int value, void *user_data)
@@ -188,31 +247,38 @@
   return MAX(tmp_result, cause);
 }
 #endif
-int
-gnc_hbci_debug_outboxjob (AB_JOB *job, gboolean verbose)
+
+/** Return the HBCI return code of the given 'job', or zero if none was
+ * found. If 'verbose' is TRUE, make a lot of debugging messages about
+ * this outboxjob. */
+static int
+gnc_hbci_debug_outboxjob (GNCInteractor *inter, AB_JOB *job, gboolean verbose)
 {
-/*   list_int *list; */
-/*   const char *msg; */
   int cause = 0;
   AB_JOB_STATUS jobstatus;
   
   g_assert (job);
-/*   if (AB_JOB_status (job) != HBCI_JOB_STATUS_DONE) */
-/*     return; */
-/*   if (AB_JOB_result (job) != HBCI_JOB_RESULT_FAILED) */
-/*     return; */
 
   if (verbose) {
-    printf("gnc_hbci_debug_outboxjob: Job status: %s", AB_Job_Status2Char(AB_Job_GetStatus(job)));
+    g_warning("gnc_hbci_debug_outboxjob: Job status: %s", AB_Job_Status2Char(AB_Job_GetStatus(job)));
 
-    printf(", result: %s", AB_Job_GetResultText(job));
-    printf("\n");
+    g_warning(", result: %s", AB_Job_GetResultText(job));
+    g_warning("\n");
   }
 
   jobstatus = AB_Job_GetStatus (job);
   if (jobstatus == AB_Job_StatusError) {
+    if (AB_Job_GetResultText (job)) {
+      /* Add the "result text" to the log window */
+      char *logstring = g_strdup_printf("Job %s had an error: %s\n",
+					AB_Job_Type2Char(AB_Job_GetType(job)),
+					AB_Job_GetResultText(job));
+      GNCInteractor_add_log_text (inter, logstring);
+      g_free (logstring);
+    }
+
     if (!verbose)
-      printf("gnc_hbci_debug_outboxjob: Job %s had an error: %s\n",
+      g_warning("gnc_hbci_debug_outboxjob: Job %s had an error: %s\n",
 	     AB_Job_Type2Char(AB_Job_GetType(job)),
 	     AB_Job_GetResultText(job));
     cause = 9000;
@@ -229,7 +295,7 @@
     cause = get_resultcode_error (list);
 
     if (verbose) {
-      printf("OutboxJob resultcodes: ");
+      g_warning("OutboxJob resultcodes: ");
       print_list_int (list);
 
       switch (cause) {
@@ -248,11 +314,11 @@
       default:
 	msg = "Unknown";
       }
-      printf("Probable cause of error was: code %d, msg: %s\n", cause, msg);
+      g_warning("Probable cause of error was: code %d, msg: %s\n", cause, msg);
     }
   } else {
     if (verbose)
-      printf("OutboxJob's resultCodes list has zero length.\n");
+      g_warning("OutboxJob's resultCodes list has zero length.\n");
   }
   list_int_delete (list);
 #endif
@@ -305,7 +371,7 @@
 	 "Your chip card is therefore destroyed. Aborting."));
     return FALSE;
   case AB_ERROR_FILE_NOT_FOUND:
-    /*     printf("gnc_hbci_Error_feedback: File not found error.\n"); */
+    /*     g_warning("gnc_hbci_Error_feedback: File not found error.\n"); */
     return FALSE;
   case AB_ERROR_NO_CARD:
     return gnc_verify_dialog (parent,
@@ -316,7 +382,7 @@
     GNCInteractor_hide (inter);
     gnc_error_dialog 
       (parent,
-       _("Unfortunately this HBCI job is not supported "
+       _("Unfortunately this Online Banking job is not supported "
 	 "by your bank or for your account. Aborting."));
     return FALSE;
 #endif
@@ -324,7 +390,7 @@
     if (inter) GNCInteractor_hide (inter);
     gnc_error_dialog 
       (parent,
-       _("The server of your bank refused the HBCI connection. "
+       _("The server of your bank refused the Online Banking connection. "
 	 "Please try again later. Aborting."));
     return FALSE;
       
@@ -389,6 +455,8 @@
 }
 #endif
 
+/* ------------------------------------------------------- */
+
 static gboolean hbci_Error_isOk(int err) {
   switch (err) {
   case 0:
@@ -436,16 +504,9 @@
   } while (gnc_hbci_Error_retry (parent, err, inter));
   
   if (job)
-    resultcode = gnc_hbci_debug_outboxjob (job, be_verbose);
+    resultcode = gnc_hbci_debug_outboxjob (inter, job, be_verbose);
   if (!hbci_Error_isOk(err)) {
-/*     char *errstr =  */
-/*       g_strdup_printf("gnc_AB_BANKING_execute: Error at executeQueue: %s", */
-/* 		      hbci_Error_message (err)); */
-/*     printf("%s\n", errstr); */
-/*     HBCI_Interactor_msgStateResponse (HBCI_Hbci_interactor  */
-/* 				      (AB_BANKING_Hbci (api)), errstr); */
-/*     g_free (errstr); */
-    if (job) gnc_hbci_debug_outboxjob (job, TRUE);
+    if (job) gnc_hbci_debug_outboxjob (inter, job, TRUE);
     if (inter) GNCInteractor_show_nodelete (inter);
     return FALSE;
   }
@@ -455,14 +516,240 @@
     return TRUE;
   }
   else {
-/*     printf("gnc_AB_BANKING_execute: Some message at executeQueue: %s", */
-/* 	   hbci_Error_message (err)); */
+    g_message("gnc_AB_BANKING_execute: Some error at executeQueue (see gwen/aqbanking messages above); this does not necessarily mean that the results are unusable.");
     GNCInteractor_show_nodelete (inter);
     return TRUE; /* <- This used to be a FALSE but this was probably
-		  * as wrong as it could get. @§%$! */
+		  * as wrong as it could get. @%$! */
   }
 }
 
+static void multijob_cb (gpointer element, gpointer user_data);
+
+gboolean 
+gnc_hbci_multijob_execute(GtkWidget *parent, AB_BANKING *api, 
+			  GList *job_list, GNCInteractor *interactor)
+{
+  gboolean successful;
+  g_assert(api);
+
+  successful = gnc_AB_BANKING_execute (parent, api, NULL, interactor);
+
+  /*printf("dialog-hbcitrans: Ok, result of api_execute was %d.\n", 
+    successful);*/
+	  
+  if (!successful) {
+    /* AB_BANKING_executeOutbox failed. */
+    gnc_error_dialog (GNCInteractor_dialog (interactor),
+		      "%s",
+		      _("Executing the Online Banking outbox failed. Please check the log window."));
+    GNCInteractor_show_nodelete(interactor);
+
+    g_list_foreach (job_list, multijob_cb, GNCInteractor_dialog (interactor));
+  }
+  /* Watch out! The job *has* to be removed from the queue
+     here because otherwise it might be executed again. */
+  /* AB_Banking_DequeueJob(api, job); is done in the calling function. */
+  return successful;
+}
+
+
+void multijob_cb (gpointer element, gpointer user_data)
+{
+  AB_JOB *job = element;
+  GtkWidget *parent = user_data;
+
+  if ((AB_Job_GetStatus (job) == AB_Job_StatusPending) ||
+      (AB_Job_GetStatus (job) == AB_Job_StatusError)) {
+    /* There was some error in this job. */
+    if (AB_Job_GetType (job) == AB_Job_TypeDebitNote) {
+      const AB_TRANSACTION *h_trans =
+	AB_JobSingleDebitNote_GetTransaction (job);
+      gchar *descr_name = gnc_hbci_descr_tognc (h_trans);
+      gchar *value = 
+	gnc_AB_VALUE_toReadableString (AB_Transaction_GetValue (h_trans));
+      gchar *errortext;
+      errortext =
+	g_strdup_printf(_("A debit note has been refused by the bank. The refused debit note has the following data:\n"
+			  "Remote bank code: \"%s\"\n"
+			  "Remote account number: \"%s\"\n"
+			  "Description and remote name: \"%s\"\n"
+			  "Value: \"%s\"\n"),
+			AB_Transaction_GetRemoteBankCode (h_trans),
+			AB_Transaction_GetRemoteAccountNumber (h_trans),
+			descr_name,
+			value);
+      g_warning ("%s", errortext);
+      gnc_error_dialog (parent, "%s", errortext);
+      g_free (errortext);
+      g_free (descr_name);
+    } else {
+    gnc_error_dialog 
+      (parent, "%s",
+       _("One of the jobs was sent to the bank successfully, but the "
+	 "bank is refusing to execute the job. Please check "
+	 "the log window for the exact error message of the "
+	 "bank. The line with the error message contains a "
+	 "code number that is greater than 9000.\n"
+	 "\n"
+	 "The job has been removed from the queue."));
+    /* FIXME: Might make more useful user feedback here. */
+    }
+  }
+}
+
+
+/* ------------------------------------------------------- */
+
+/* Callback declarations */
+static const AB_TRANSACTION *
+translist_cb (const AB_TRANSACTION *element, void *user_data);
+static AB_IMEXPORTER_ACCOUNTINFO *
+accountinfolist_cb(AB_IMEXPORTER_ACCOUNTINFO *element, void *user_data);
+
+struct import_data 
+{
+  Account *gnc_acc;
+  GNCImportMainMatcher *importer_generic;
+  AB_BANKING *ab;
+  AB_ACCOUNT *hbci_account;
+  GList *job_list;
+  gboolean execute_transactions;
+};
+
+
+GList *
+gnc_hbci_import_ctx(AB_BANKING *ab, AB_IMEXPORTER_CONTEXT *ctx,
+		    GNCImportMainMatcher *importer_generic_gui,
+		    gboolean exec_as_aqbanking_jobs)
+{
+  struct import_data data;
+  data.importer_generic = importer_generic_gui;
+  data.ab = ab;
+  data.job_list = NULL;
+  data.execute_transactions = exec_as_aqbanking_jobs;
+  
+  /* Iterate through all accounts */
+  AB_ImExporterContext_AccountInfoForEach(ctx, accountinfolist_cb, &data);
+  /* All accounts finished. Finished importing. */
+  return data.job_list;
+}
+
+
+static AB_IMEXPORTER_ACCOUNTINFO *
+accountinfolist_cb(AB_IMEXPORTER_ACCOUNTINFO *accinfo, void *user_data) {
+  Account *gnc_acc;
+  struct import_data *data = user_data;
+  const char *bank_code =
+    AB_ImExporterAccountInfo_GetBankCode(accinfo);
+  const char *account_number = 
+    AB_ImExporterAccountInfo_GetAccountNumber(accinfo);
+  const char *account_name = 
+    AB_ImExporterAccountInfo_GetAccountName(accinfo);
+  gchar *online_id = g_strconcat (bank_code, account_number, NULL);
+  
+  gnc_acc = gnc_import_select_account(NULL, 
+				      online_id, 1, account_name, NULL, 
+				      ACCT_TYPE_NONE, NULL, NULL);
+  g_free(online_id);
+  if (gnc_acc) {
+    /* Store chosen gnucash account in callback data */
+    data->gnc_acc = gnc_acc;
+
+    if (data->execute_transactions) {
+      /* Retrieve the aqbanking account that belongs to this gnucash
+	 account */
+      data->hbci_account = gnc_hbci_get_hbci_acc (data->ab, gnc_acc);
+      if (data->hbci_account == NULL) {
+	gnc_error_dialog (NULL, _("No Online Banking account found for this gnucash account. These transactions will not be executed by Online Banking."));
+      }
+    }
+    else {
+      data->hbci_account = NULL;
+    }
+  
+    /* Iterate through all transactions.  */
+    AB_ImExporterAccountInfo_TransactionsForEach (accinfo, translist_cb, data);
+    /* all transactions finished. */
+  }
+  return NULL;
+}
+
+static const AB_TRANSACTION *
+translist_cb (const AB_TRANSACTION *element, void *user_data) {
+  AB_JOB *job;
+  AB_TRANSACTION *trans = (AB_TRANSACTION*)element;
+  GtkWidget *parent = NULL;
+  struct import_data *data = user_data;
+  struct trans_list_data hbci_userdata;
+
+  /* This callback in the hbci module will add the imported
+     transaction to gnucash's importer. */
+  hbci_userdata.gnc_acc = data->gnc_acc;
+  hbci_userdata.importer_generic = data->importer_generic;
+  /* The call will use "trans" only as const* */
+  gnc_hbci_trans_list_cb((AB_TRANSACTION*) trans, &hbci_userdata);
+
+  if (data->hbci_account) {
+    /* NEW: The imported transaction has been imported into
+       gnucash. Now also add it as a job to aqbanking. */
+    AB_Transaction_SetLocalBankCode (trans, 
+				     AB_Account_GetBankCode (data->hbci_account));
+    AB_Transaction_SetLocalAccountNumber (trans, AB_Account_GetAccountNumber (data->hbci_account));
+    AB_Transaction_SetLocalCountry (trans, "DE");
+
+    job = 
+      gnc_hbci_trans_dialog_enqueue(trans, data->ab,
+				    data->hbci_account, SINGLE_DEBITNOTE);
+
+    /* Check whether we really got a job */
+    if (!job) {
+      /* Oops, no job, probably not supported by bank. */
+      if (gnc_verify_dialog
+	  (parent, 
+	   FALSE,
+	   "%s",
+	   _("The backend found an error during the preparation "
+	     "of the job. It is not possible to execute this job. \n"
+	     "\n"
+	     "Most probable the bank does not support your chosen "
+	     "job or your Online Banking account does not have the permission "
+	     "to execute this job. More error messages might be "
+	     "visible on your console log.\n"
+	     "\n"
+	     "Do you want to enter the job again?"))) {
+	gnc_error_dialog (parent, "Sorry, not implemented yet.");
+      }
+      /* else
+	 break; */
+    }
+    data->job_list = g_list_append(data->job_list, job);
+  }
+
+  return NULL;
+}
+
+
+/* ------------------------------------------------------- */
+
+static void delpending_cb (gpointer element, gpointer user_data);
+
+void
+gnc_hbci_clearqueue(AB_BANKING *ab, GList *ab_job_list)
+{
+  g_list_foreach (ab_job_list, delpending_cb, ab);
+}
+
+void delpending_cb (gpointer element, gpointer user_data)
+{
+  AB_JOB *job = element;
+  AB_BANKING *ab = user_data;
+
+  if (AB_Job_GetStatus (job) == AB_Job_StatusPending)
+    AB_Banking_DelPendingJob(ab, job);
+}
+
+/* ------------------------------------------------------- */
+
 struct cb_struct {
   gchar **result;
   GIConv gnc_iconv_handler;
@@ -504,8 +791,35 @@
 {
   /* Description */
   char *h_descr = gnc_hbci_getpurpose (h_trans);
+  char *othername = gnc_hbci_getremotename (h_trans);
+  char *g_descr;
+
+  /* Get othername */
+  /*DEBUG("HBCI Description '%s'", h_descr);*/
+
+  if (othername && strlen (othername) > 0)
+    g_descr = 
+      ((strlen (h_descr) > 0) ?
+       g_strdup_printf ("%s; %s", 
+			h_descr,
+			othername) :
+       g_strdup (othername));
+  else
+    g_descr = 
+      ((strlen (h_descr) > 0) ?
+       g_strdup (h_descr) : 
+       g_strdup (_("Unspecified")));
+
+  g_free (h_descr);
+  if (othername) g_free (othername);
+  return g_descr;
+}
+
+char *gnc_hbci_getremotename (const AB_TRANSACTION *h_trans)
+{
+  /* Description */
   char *othername = NULL;
-  char *g_descr;
+  char *result;
   const GWEN_STRINGLIST *h_remotename = AB_Transaction_GetRemoteName (h_trans);
   struct cb_struct cb_object;
 
@@ -522,22 +836,13 @@
   /*DEBUG("HBCI Description '%s'", h_descr);*/
 
   if (othername && (strlen (othername) > 0))
-    g_descr = 
-      ((strlen (h_descr) > 0) ?
-       g_strdup_printf ("%s; %s", 
-			h_descr,
-			othername) :
-       g_strdup (othername));
+    result = g_strdup (othername);
   else
-    g_descr = 
-      ((strlen (h_descr) > 0) ?
-       g_strdup (h_descr) : 
-       g_strdup (_("Unspecified")));
+    result = NULL;
 
   g_iconv_close(cb_object.gnc_iconv_handler);
-  free (h_descr);
-  free (othername);
-  return g_descr;
+  g_free (othername);
+  return result;
 }
 
 char *gnc_hbci_getpurpose (const AB_TRANSACTION *h_trans)
@@ -561,7 +866,7 @@
   g_descr = g_strdup (h_descr ? h_descr : "");
 
   g_iconv_close(cb_object.gnc_iconv_handler);
-  free (h_descr);
+  g_free (h_descr);
   return g_descr;
 }
 

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.h
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-hbci-utils.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -27,11 +27,28 @@
 #include <aqbanking/banking.h>
 #include <aqbanking/transaction.h>
 #include <aqbanking/account.h>
+#include <aqbanking/imexporter.h>
+#include <aqbanking/version.h>
+#if AQBANKING_VERSION_MAJOR > 2
+# define AB_Value_GetValue AB_Value_GetValueAsDouble
+# define GWEN_TYPE_UINT32 uint32_t
+# define GWEN_LoggerLevelError GWEN_LoggerLevel_Error
+# define GWEN_LoggerLevelWarning  GWEN_LoggerLevel_Warning
+# define GWEN_LoggerLevelNotice  GWEN_LoggerLevel_Notice
+# define GWEN_LoggerLevelInfo  GWEN_LoggerLevel_Info
+# define GWEN_LoggerLevelDebug  GWEN_LoggerLevel_Debug
+# define AB_Banking_LogLevelVerbous GWEN_LoggerLevel_Verbous
+# define AB_Banking_LogLevelNotice GWEN_LoggerLevel_Notice
+# define AB_BANKING_LOGLEVEL GWEN_LOGGER_LEVEL
+# define AB_Banking_new(arg1, arg2) AB_Banking_new(arg1, arg2, 0)
+# define AB_ERROR_FOUND GWEN_ERROR_FOUND
+#endif
 
 #include "gnc-ui.h"
 #include "Account.h"
 #include "Transaction.h"
 #include "gnc-book.h"
+#include "import-main-matcher.h"
 
 #include "hbci-interaction.h"
 
@@ -68,12 +85,6 @@
 AB_ACCOUNT *
 gnc_hbci_get_hbci_acc (const AB_BANKING *api, Account *gnc_acc);
 
-/* Return the HBCI return code of the given 'job', or zero if none was
- * found. If 'verbose' is TRUE, make a lot of debugging messages about
- * this outboxjob. */
-int
-gnc_hbci_debug_outboxjob (AB_JOB *job, gboolean verbose);
-
 /** Clean up the queue after executing, i.e. delete the job as good as
     possible. */
 void
@@ -97,7 +108,50 @@
 gnc_AB_BANKING_execute (GtkWidget *parent, AB_BANKING *api,
 			AB_JOB *job, GNCInteractor *inter);
 
+/* Calls AB_Banking_executeQueue() with some supplementary stuff
+ * around it: set the debugLevel, show the GNCInteractor, and do some
+ * error checking afterwards by checking each AB_JOB in
+ * job_list. Returns TRUE upon success or FALSE if the calling dialog
+ * should abort. parent may be NULL, job_list (a GList of AB_JOBs) may
+ * be NULL (although in this case no HBCI result codes can be
+ * checked!), inter may be NULL; api must not be NULL.  */
+gboolean 
+gnc_hbci_multijob_execute(GtkWidget *parent, AB_BANKING *api, 
+			  GList *job_list, GNCInteractor *inter);
 
+/**
+ * Imports the account/transaction/balance data of an aqbanking
+ * "imexporter-context" into the matching gnucash accounts, using the
+ * given importer_generic_gui. 
+ *
+ * If exec_as_jobs is TRUE, additionally queue each transaction as a
+ * new aqbanking online banking job.
+ *
+ * @param ab The AB_BANKING api object.
+ *
+ * @param ctx The "context" object that holds the actual transactions.
+ *
+ * @param importer_generic_gui The dialog which should display the
+ * to-be-imported transactions.
+ *
+ * @param exec_as_aqbanking_jobs If TRUE, additionally queue the
+ * imported transactions as online jobs over aqbanking/HBCI. If FALSE,
+ * just import the transactions and that's it.
+ *
+ * @return If exec_as_aqbanking_jobs was FALSE, this always returns
+ * NULL. Otherwise it returns a GList of the AB_JOBs that have been
+ * queued into aqbanking.
+ */
+GList *
+gnc_hbci_import_ctx(AB_BANKING *ab, AB_IMEXPORTER_CONTEXT *ctx,
+		    GNCImportMainMatcher *importer_generic_gui,
+		    gboolean exec_as_aqbanking_jobs);
+
+/** Clear all the AB_JOBs of the ab_job_list from aqbanking's
+ * queue. */
+void
+gnc_hbci_clearqueue(AB_BANKING *ab, GList *ab_job_list);
+
 /* Create the appropriate description field for a Gnucash Transaction
  * by the information given in the AB_TRANSACTION h_trans. The
  * returned string must be g_free'd by the caller. */
@@ -112,6 +166,12 @@
  * returned string must be g_free'd by the caller. If there was no
  * purpose, an empty (but allocated) string is returned. */
 char *gnc_hbci_getpurpose (const AB_TRANSACTION *h_trans);
+
+/* Retrieve the merged "remote name"  fields from the transaction. The
+ * returned string must be g_free'd by the caller. If there was no
+ * "remote name" field, NULL (!) is returned. */
+char *gnc_hbci_getremotename (const AB_TRANSACTION *h_trans);
+
 /** Return the first customer that can act on the specified account,
     or NULL if none was found (and an error message is printed on
     stdout). */

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gnc-plugin-hbci.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gnc-plugin-hbci.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gnc-plugin-hbci.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,6 +39,10 @@
 #include "gnc-plugin-page-account-tree.h"
 #include "gnc-plugin-page-register.h"
 
+/* for gnc_gconf_ */
+#include "gnc-gconf-utils.h"
+#include "hbci-interaction.h"
+
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = "gnucash-hbci";
 
@@ -92,17 +96,17 @@
   { "OnlineActionsAction", NULL, N_("_Online Actions"), NULL, NULL, NULL },
 
   /* Menu Items */
-  { "HbciSetupAction", NULL, N_("_HBCI Setup..."), NULL,
-    N_("Initial setup of HBCI/AqBanking access"),
+  { "HbciSetupAction", NULL, N_("_Online Banking Setup..."), NULL,
+    N_("Initial setup of Online Banking access (HBCI, or OFX DirectConnect, using AqBanking)"),
     G_CALLBACK (gnc_plugin_hbci_cmd_setup) },
   { "HbciGetBalanceAction", NULL, N_("Get _Balance"), NULL,
-    N_("Get the account balance online through HBCI/AqBanking"),
+    N_("Get the account balance online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_get_balance) },
   { "HbciGetTransAction", NULL, N_("Get _Transactions..."), NULL,
-    N_("Get the transactions online through HBCI/AqBanking"),
+    N_("Get the transactions online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_get_transactions) },
   { "HbciIssueTransAction", NULL, N_("_Issue Transaction..."), NULL,
-    N_("Issue a new transaction online through HBCI"),
+    N_("Issue a new transaction online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_issue_transaction) },
 #if ((AQBANKING_VERSION_MAJOR > 1) || \
      ((AQBANKING_VERSION_MAJOR == 1) && \
@@ -111,11 +115,11 @@
         ((AQBANKING_VERSION_PATCHLEVEL > 0) || \
 	 (AQBANKING_VERSION_BUILD > 2))))))
   { "HbciIssueIntTransAction", NULL, N_("I_nternal Transaction..."), NULL,
-    N_("Issue a new bank-internal transaction online through HBCI/AqBanking"),
+    N_("Issue a new bank-internal transaction online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_issue_inttransaction) },
 #endif
   { "HbciIssueDirectDebitAction", NULL, N_("_Direct Debit..."), NULL,
-    N_("Issue a new direct debit note online through HBCI/AqBanking"),
+    N_("Issue a new direct debit note online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_issue_direct_debit) },
 
   /* File -> Import menu item */
@@ -132,10 +136,10 @@
     N_("Import a CSV file into GnuCash"),
     G_CALLBACK (gnc_plugin_hbci_cmd_csv_import) },
   { "DtausImportSendAction", GTK_STOCK_CONVERT, N_("Import DTAUS and _send..."), NULL,
-    N_("Import a DTAUS file into GnuCash and send the transfers online through HBCI/AqBanking"),
+    N_("Import a DTAUS file into GnuCash and send the transfers online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_dtaus_importsend) },
   { "CsvImportSendAction", GTK_STOCK_CONVERT, N_("Import CSV and s_end..."), NULL,
-    N_("Import a CSV file into GnuCash and send the transfers online through HBCI/AqBanking"),
+    N_("Import a CSV file into GnuCash and send the transfers online through Online Banking"),
     G_CALLBACK (gnc_plugin_hbci_cmd_csv_importsend) },
 
 };
@@ -323,26 +327,39 @@
   GncPluginPage  *page;
   const gchar    *page_name;
   Account        *account = NULL;
+  const gchar    *account_name;
 
   ENTER("main window %p", window);
-  g_return_val_if_fail (GNC_IS_MAIN_WINDOW(window), NULL);
+  if (!GNC_IS_MAIN_WINDOW(window)) {
+    LEAVE("no main_window");
+    return NULL;
+  }
 
   /* Ensure we are called from a register page. */
   page = gnc_main_window_get_current_page(window);
+  if (!GNC_IS_PLUGIN_PAGE(page)) {
+    LEAVE("no plugin_page");
+    return NULL;
+  }
   page_name = gnc_plugin_page_get_plugin_name(page);
+  if (!page_name) {
+    LEAVE("no page_name of plugin_page");
+    return NULL;
+  }
 
-  if (strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
+  if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
     DEBUG("register page");
     account =
       gnc_plugin_page_register_get_account (GNC_PLUGIN_PAGE_REGISTER(page));
-  } else if (strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
+  } else if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
     DEBUG("account tree page");
     account =
       gnc_plugin_page_account_tree_get_current_account (GNC_PLUGIN_PAGE_ACCOUNT_TREE(page));
   } else {
     account = NULL;
   }
-  LEAVE("account %s(%p)", xaccAccountGetName(account), account);
+  account_name = xaccAccountGetName (account);
+  LEAVE("account %s(%p)", account_name ? account_name : "(null)", account);
   return account;
 }
 
@@ -360,8 +377,11 @@
   GtkActionGroup *action_group;
   GncMainWindow  *window;
 
+  g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
   window = GNC_MAIN_WINDOW(plugin_page->window);
+  g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
   action_group = gnc_main_window_get_action_group(window, PLUGIN_ACTIONS_NAME);
+  g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
   gnc_plugin_update_actions(action_group, need_account_actions,
 			    "sensitive", account != NULL);
 }
@@ -375,8 +395,18 @@
   const gchar    *page_name;
 
   ENTER("main window %p, page %p", window, page);
+  if (!GNC_IS_PLUGIN_PAGE(page)) { 
+    LEAVE("no plugin_page");
+    return;
+  }
+
   page_name = gnc_plugin_page_get_plugin_name(page);
-  if (strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
+  if (!page_name) {
+    LEAVE("no page_name of plugin_page");
+    return;
+  }
+
+  if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
     DEBUG("account tree page, adding signal");
     g_signal_connect (G_OBJECT(page),
 		      "account_selected",
@@ -398,8 +428,16 @@
   Account        *account;
 
   ENTER("main window %p, page %p", window, page);
+  if (!GNC_IS_MAIN_WINDOW (window)) {
+    LEAVE("no main_window");
+    return;
+  }
+
   action_group = gnc_main_window_get_action_group(window,PLUGIN_ACTIONS_NAME);
-  g_return_if_fail(action_group != NULL);
+  if (!GTK_IS_ACTION_GROUP (action_group)) {
+    LEAVE("no action_group");
+    return;
+  }
 
   /* Reset everything to known state */
   gnc_plugin_update_actions(action_group, need_account_actions,
@@ -417,11 +455,12 @@
 
   /* Selectively make items visible */
   page_name = gnc_plugin_page_get_plugin_name(page);
-  if (strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
+  g_return_if_fail (page_name);
+  if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME) == 0) {
     DEBUG("account tree page");
     gnc_plugin_update_actions(action_group, account_tree_actions,
 			      "visible", TRUE);
-  } else if (strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
+  } else if (safe_strcmp(page_name, GNC_PLUGIN_PAGE_REGISTER_NAME) == 0) {
     DEBUG("register page");
     gnc_plugin_update_actions(action_group, register_actions,
 			      "visible", TRUE);
@@ -543,38 +582,50 @@
 gnc_plugin_hbci_cmd_dtaus_importsend (GtkAction *action,
 				  GncMainWindowActionData *data)
 {
-  gnc_file_aqbanking_import ("dtaus", "default", TRUE);
+  char *format = gnc_gconf_get_string(GCONF_SECTION, KEY_FORMAT_DTAUS, NULL);
+  gnc_file_aqbanking_import ("dtaus", format ? format : "default", TRUE);
+  g_free (format);
 }
 static void
 gnc_plugin_hbci_cmd_csv_importsend (GtkAction *action,
 				  GncMainWindowActionData *data)
 {
-  gnc_file_aqbanking_import ("csv", "default", TRUE);
+  char *format = gnc_gconf_get_string(GCONF_SECTION, KEY_FORMAT_CSV, NULL);
+  gnc_file_aqbanking_import ("csv", format ? format : "default", TRUE);
+  g_free (format);
 }
 
 static void
 gnc_plugin_hbci_cmd_mt940_import (GtkAction *action,
 				  GncMainWindowActionData *data)
 {
-  gnc_file_aqbanking_import ("swift", "swift-mt940", FALSE);
+  char *format = gnc_gconf_get_string(GCONF_SECTION, KEY_FORMAT_SWIFT940, NULL);
+  gnc_file_aqbanking_import ("swift", format ? format : "swift-mt940", FALSE);
+  g_free (format);
 }
 static void
 gnc_plugin_hbci_cmd_mt942_import (GtkAction *action,
 				  GncMainWindowActionData *data)
 {
-  gnc_file_aqbanking_import ("swift", "swift-mt942", FALSE);
+  char *format = gnc_gconf_get_string(GCONF_SECTION, KEY_FORMAT_SWIFT942, NULL);
+  gnc_file_aqbanking_import ("swift", format ? format : "swift-mt942", FALSE);
+  g_free (format);
 }
 static void
 gnc_plugin_hbci_cmd_dtaus_import (GtkAction *action,
 				  GncMainWindowActionData *data)
 {
-  gnc_file_aqbanking_import ("dtaus", "default", FALSE);
+  char *format = gnc_gconf_get_string(GCONF_SECTION, KEY_FORMAT_DTAUS, NULL);
+  gnc_file_aqbanking_import ("dtaus", format ? format : "default", FALSE);
+  g_free (format);
 }
 static void
 gnc_plugin_hbci_cmd_csv_import (GtkAction *action,
 				  GncMainWindowActionData *data)
 {
-  gnc_file_aqbanking_import ("csv", "default", FALSE);
+  char *format = gnc_gconf_get_string(GCONF_SECTION, KEY_FORMAT_CSV, NULL);
+  gnc_file_aqbanking_import ("csv", format ? format : "default", FALSE);
+  g_free (format);
 }
 /************************************************************
  *                    Plugin Bootstrapping                   *

Modified: gnucash/branches/gda-dev/src/import-export/hbci/gncmod-hbci.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/gncmod-hbci.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/gncmod-hbci.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,14 +1,13 @@
 /*********************************************************************
  * gncmod-hbci.c
  * module definition/initialization for HBCI support
- * 
+ *
  * Copyright (c) 2002 Christian <stimming at tuhh.de>
  *********************************************************************/
 
 #include "config.h"
 
-#include <gtk/gtk.h>
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -20,32 +19,27 @@
 #include "dialog-preferences.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_hbci_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_hbci_LTX_gnc_module_current  = 0;
-int libgncmod_hbci_LTX_gnc_module_revision = 0;
-int libgncmod_hbci_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_hbci_LTX_gnc_module_path(void);
-char *libgncmod_hbci_LTX_gnc_module_description(void);
-int libgncmod_hbci_LTX_gnc_module_init(int refcount);
-int libgncmod_hbci_LTX_gnc_module_end(int refcount);
 
 char *
-libgncmod_hbci_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/import-export/hbci");
 }
 
-char * 
-libgncmod_hbci_LTX_gnc_module_description(void) {
-  return g_strdup("Support for HBCI protocol");
+char *
+gnc_module_description(void) {
+  return g_strdup("Support for Online Banking protocols");
 }
 
 
 int
-libgncmod_hbci_LTX_gnc_module_init(int refcount) 
+gnc_module_init(int refcount)
 {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
@@ -66,7 +60,7 @@
 
   /* Add menu items with C callbacks */
   gnc_plugin_hbci_create_plugin();
-  
+
   gnc_preferences_add_to_page("hbciprefs.glade", "hbci_prefs",
 			      "Online Banking");
 
@@ -77,7 +71,7 @@
 }
 
 int
-libgncmod_hbci_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   gnc_AB_BANKING_delete(0);
 
   /* Finalize gwen library */

Modified: gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -40,18 +40,48 @@
 #include "gnc-ui-util.h"
 #include "gnc-ui.h"
 #include "gnc-gconf-utils.h"
+#include "gnc-component-manager.h"
+#include "gnc-session.h"
 
 #include "dialog-pass.h"
 #include "gnc-hbci-utils.h"
 
+#include <aqbanking/version.h>
+#if AQBANKING_VERSION_MAJOR > 2
+# include <gwenhywfar/gui.h>
+# define AB_Banking_SetMessageBoxFn GWEN_Gui_SetMessageBoxFn
+# define AB_Banking_SetInputBoxFn GWEN_Gui_SetInputBoxFn
+# define AB_Banking_SetShowBoxFn GWEN_Gui_SetShowBoxFn
+# define AB_Banking_SetHideBoxFn GWEN_Gui_SetHideBoxFn
+# define AB_Banking_SetProgressStartFn GWEN_Gui_SetProgressStartFn
+# define AB_Banking_SetProgressAdvanceFn GWEN_Gui_SetProgressAdvanceFn
+# define AB_Banking_SetProgressLogFn GWEN_Gui_SetProgressLogFn
+# define AB_Banking_SetProgressEndFn GWEN_Gui_SetProgressEndFn
+# define AB_Banking_SetGetTanFn GWEN_Gui_SetGetTanFn
+# define AB_BANKING_MSG_FLAGS_TYPE_ERROR GWEN_GUI_MSG_FLAGS_TYPE_ERROR
+# define AB_BANKING_INPUT_FLAGS_CONFIRM GWEN_GUI_INPUT_FLAGS_CONFIRM
+# define AB_BANKING_INPUT_FLAGS_SHOW GWEN_GUI_INPUT_FLAGS_SHOW
+# define AB_BANKING_PROGRESS_NONE GWEN_GUI_PROGRESS_NONE
+# define AB_Banking_GetUserData(arg) GWEN_INHERIT_GETDATA(GWEN_GUI, GNCInteractor, arg)
+# define AB_Banking_SetUserData(arg1, arg2)
+/* Note about other changes: Replace callback object AB_BANKING by
+   GWEN_GUI, to be created by GWEN_GUI_new; replace GetTan
+   callback by watching for INPUT_FLAGS_TAN in InputBox(). */
+#endif
+
+GWEN_INHERIT(AB_BANKING, GNCInteractor)
+
 #define GCONF_SECTION_CONNECTION GCONF_SECTION "/connection_dialog"
+#define DIALOG_HBCILOG_CM_CLASS "dialog-hbcilog"
 
 gchar *gnc__extractText(const char *text);
+static void cm_close_handler(gpointer user_data);
 
 /** Adds the interactor and progressmonitor classes to the api. */
 GNCInteractor *gnc_AB_BANKING_interactors (AB_BANKING *api, GtkWidget *parent)
 {
   GNCInteractor *data;
+  gint component_id;
   
   data = g_new0 (GNCInteractor, 1);
   data->parent = parent;
@@ -69,6 +99,11 @@
   data->showbox_hash = g_hash_table_new(NULL, NULL); 
   data->min_loglevel = AB_Banking_LogLevelVerbous;
 
+  component_id = gnc_register_gui_component(DIALOG_HBCILOG_CM_CLASS,
+					    NULL, cm_close_handler,
+					    data);
+  gnc_gui_component_set_session(component_id, gnc_get_current_session());
+
   /* set HBCI_Interactor */
   gnc_hbci_add_callbacks(api, data);
   return data;
@@ -88,6 +123,8 @@
     gtk_widget_destroy (data->dialog);
   }
   
+  gnc_unregister_gui_component_by_data(DIALOG_HBCILOG_CM_CLASS, data);
+
   data->dialog = NULL;
 
   g_hash_table_destroy(data->showbox_hash);
@@ -339,7 +376,7 @@
 
     if (newPin) {
       if (!hideInput)
-	printf("inputBoxCB: Oops, hideInput==false and newPin==true, i.e. the input is supposed to be readable -- not implemented (since I thought this does not make sense when entering a new PIN).\n");
+	g_warning("inputBoxCB: Oops, hideInput==false and newPin==true, i.e. the input is supposed to be readable -- not implemented (since I thought this does not make sense when entering a new PIN).\n");
       retval = gnc_hbci_get_initial_password (data->parent,
 					      title,
 					      text,
@@ -503,7 +540,12 @@
 }
 
 
-static void destr(void *bp, void *user_data)
+#ifndef GWENHYWFAR_CB
+/* Has been introduced in gwenhywfar>=2.4.1 for callback function
+   decoration on win32, but is empty everywhere else. */
+# define GWENHYWFAR_CB
+#endif
+static void GWENHYWFAR_CB destr(void *bp, void *user_data)
 {
   GNCInteractor *data = user_data;
   if (data == NULL)
@@ -621,7 +663,7 @@
   result = gtk_dialog_run (GTK_DIALOG (dialog));
   gtk_widget_destroy (dialog);
   if (result<1 || result>3) {
-    printf("messageBoxCB: Bad result %d", result);
+    g_warning("messageBoxCB: Bad result %d", result);
     result = 0;
   }
   g_free(title);
@@ -786,7 +828,7 @@
       /*GNCInteractor_hide (data);*/
     }
   } else {
-    printf("on_button_clicked: Oops, unknown button: %s\n",
+    g_critical("on_button_clicked: Oops, unknown button: %s\n",
 	   name);
   }
   /* Let the widgets be redrawn */
@@ -794,8 +836,38 @@
   while (g_main_context_iteration(context, FALSE));
 }
 
-GWEN_INHERIT(AB_BANKING, GNCInteractor)
+static void
+cm_close_handler(gpointer user_data)
+{
+  GNCInteractor *data = user_data;
 
+  GNCInteractor_setAborted(data);
+  /* Notes about correctly handling this ComponentManager close event:
+     We can't actually close the dialog here because AqBanking might
+     still be running and expecting the GNCInteractor object to exist
+     (and it doesn't offer any handlers for aborting from here). This
+     is not per se a problem with gnucash objects because as soon as
+     AqBanking received the SetAborted signal, it will abort and not
+     deliver any actual results, which means the gnc-hbci module will
+     not continue any operation. 
+
+     However, the dialog and the AB_BANKING object will still be
+     around. It is unclear whether this is 1. correct or 2. wrong:
+     1. It might be correct because a user might still want to see the
+     log messages in the window until he manually closes the
+     GNCInteractor. 2. It might be wrong because once we've received
+     the close event, nobody wants to see the GNCInteractor log
+     messages anyway. To implement the behaviour #2, we should add a
+     new flag in GNCInteractor that is being queried in
+     gnc_AB_BANKING_execute() right after AB_Banking_ExecuteQueue()
+     has finished, and if it is activated from the cm_close_handler,
+     gnc_AB_BANKING_execute should immediately delete the AB_BANKING
+     object (which will also delete the GNCInteractor object) and
+     abort.
+  */
+}
+
+
 /********************************************************
  * Constructor 
  */

Modified: gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.h
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/hbci-interaction.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -29,6 +29,10 @@
 #define KEY_CLOSE_ON_FINISH "close_on_finish"
 #define KEY_REMEMBER_PIN    "remember_pin"
 #define KEY_VERBOSE_DEBUG   "verbose_debug"
+#define KEY_FORMAT_DTAUS    "format_dtaus"
+#define KEY_FORMAT_CSV      "format_csv"
+#define KEY_FORMAT_SWIFT940 "format_swift_mt940"
+#define KEY_FORMAT_SWIFT942 "format_swift_mt942"
 
 typedef struct _inter_data GNCInteractor;
 

Modified: gnucash/branches/gda-dev/src/import-export/hbci/hbci-interactionP.h
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/hbci-interactionP.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/hbci-interactionP.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,6 +26,7 @@
 
 #include <aqbanking/banking.h>
 #include <iconv.h>
+#include "gnc-hbci-utils.h"
 
 
 typedef enum {

Modified: gnucash/branches/gda-dev/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -75,5 +75,69 @@
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/import/hbci/format_dtaus</key>
+      <applyto>/apps/gnucash/dialogs/import/hbci/format_dtaus</applyto>
+      <owner>gnucash</owner>
+      <type>string</type>
+      <default>default</default>
+      <locale name="C">
+        <short>DTAUS import data format</short>
+        <long>
+	  This setting specifies the data format when importing DTAUS
+	  files.  The AqBanking library offers various import formats
+	  (called "profiles") of which you can choose one here.
+	</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/import/hbci/format_csv</key>
+      <applyto>/apps/gnucash/dialogs/import/hbci/format_csv</applyto>
+      <owner>gnucash</owner>
+      <type>string</type>
+      <default>default</default>
+      <locale name="C">
+        <short>CSV import data format</short>
+        <long>
+	  This setting specifies the data format when importing CSV
+	  files.  The AqBanking library offers various import formats
+	  (called "profiles") of which you can choose one here.
+	</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/import/hbci/format_swift_mt940</key>
+      <applyto>/apps/gnucash/dialogs/import/hbci/format_swift_mt940</applyto>
+      <owner>gnucash</owner>
+      <type>string</type>
+      <default>swift-mt940</default>
+      <locale name="C">
+        <short>SWIFT MT940 import data format</short>
+        <long>
+	  This setting specifies the data format when importing SWIFT
+	  MT940 files.  The AqBanking library offers various import
+	  formats (called "profiles") of which you can choose one here.
+	</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnucash/dialogs/import/hbci/format_swift_mt942</key>
+      <applyto>/apps/gnucash/dialogs/import/hbci/format_swift_mt942</applyto>
+      <owner>gnucash</owner>
+      <type>string</type>
+      <default>swift-mt942</default>
+      <locale name="C">
+        <short>SWIFT MT942 import data format</short>
+        <long>
+	  This setting specifies the data format when importing SWIFT
+	  MT942 files.  The AqBanking library offers various import
+	  formats (called "profiles") of which you can choose one here.
+	</long>
+      </locale>
+    </schema>
+
   </schemalist>
 </gconfschemafile>

Modified: gnucash/branches/gda-dev/src/import-export/hbci/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/hbci/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/hbci/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 TESTS=test-link-module
 
-noinst_PROGRAMS=test-link-module
+check_PROGRAMS=test-link-module
 
 test_link_module_SOURCES=test-link-module.c
 test_link_module_LDADD=../libgncmod-hbci.la 

Modified: gnucash/branches/gda-dev/src/import-export/import-account-matcher.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/import-account-matcher.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/import-account-matcher.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -67,7 +67,7 @@
   GtkTreeViewColumn *col;
 
   /* Build a new account tree */
-  TRACE("Begin");
+  DEBUG("Begin");
   account_tree = gnc_tree_view_account_new(FALSE);
   picker->account_tree = GNC_TREE_VIEW_ACCOUNT(account_tree);
   gtk_tree_view_set_headers_visible (account_tree, TRUE);
@@ -113,6 +113,17 @@
   gnc_tree_view_account_set_selected_account(picker->account_tree, new_account);
 }
 
+/* When user double-clicks an account */
+static void
+account_tree_row_activated_cb(GtkTreeView *view, GtkTreePath *path,
+			      GtkTreeViewColumn *column,
+			      struct _accountpickerdialog *picker)
+{
+  g_return_if_fail(picker && picker->dialog);
+
+  gtk_dialog_response(GTK_DIALOG(picker->dialog), GTK_RESPONSE_OK);
+}
+
 static gpointer test_acct_online_id_match(Account *acct, gpointer param_online_id)
 {
   const gchar * current_online_id = gnc_import_get_acc_online_id(acct);
@@ -158,12 +169,12 @@
   /*DEBUG("Looking for account with online_id: %s", account_online_id_value);*/
   if(account_online_id_value!=NULL)
     {
-      retval = xaccGroupForEachAccount(gnc_get_current_group (),
+      retval =
+	gnc_account_foreach_descendant_until(gnc_get_current_root_account (),
 				       test_acct_online_id_match,
 				       /* This argument will only be
 					  used as a "const char*" */
-				       (void*)account_online_id_value,
-				       TRUE);
+				       (void*)account_online_id_value);
     }
   if(retval==NULL && auto_create != 0)
     {
@@ -207,6 +218,8 @@
       gnc_tree_view_account_set_selected_account(picker->account_tree, default_selection);
 
       gtk_window_set_modal(GTK_WINDOW(picker->dialog), TRUE);
+      g_signal_connect(picker->account_tree, "row-activated",
+		       G_CALLBACK(account_tree_row_activated_cb), picker);
       do {
 	response = gtk_dialog_run(GTK_DIALOG(picker->dialog));
 	switch (response) {

Modified: gnucash/branches/gda-dev/src/import-export/import-backend.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/import-backend.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/import-backend.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -33,6 +33,8 @@
 #include <stdlib.h> 
 #include <math.h>
 
+#include <errno.h>
+
 #include "gnc-gconf-utils.h"
 #include "import-backend.h"
 #include "import-utilities.h"
@@ -413,7 +415,7 @@
    */
   transtime = xaccTransGetDate(transaction);
   tm_struct = gmtime(&transtime);
-  if(!strftime(local_day_of_week, sizeof(local_day_of_week), "%A", tm_struct))
+  if(!qof_strftime(local_day_of_week, sizeof(local_day_of_week), "%A", tm_struct))
     {
       PERR("TransactionGetTokens: error, strftime failed\n");
     }
@@ -655,22 +657,41 @@
       
       /* Check number heuristics */  
       if(strlen(xaccTransGetNum(new_trans))!=0)
-	{     
-	  if((strcmp(xaccTransGetNum (new_trans),
-		     xaccTransGetNum(xaccSplitGetParent(split)))
-	      ==0))
-	    {	
-	      /*An exact match of the Check number gives a +4 */
-	      prob = prob+4;
-	      /*DEBUG("heuristics:  probability + 5 (Check number)");*/
-	    }
-	  else if(strlen(xaccTransGetNum(new_trans)) > 0 &&
-		  strlen(xaccTransGetNum(xaccSplitGetParent(split))) > 0)
-	    {
-	      /* If both number are not empty yet do not match, add a little extre penality */
-	      prob = prob-2;
-	    }
-	}
+        { 
+          long new_trans_number, split_number;
+          const gchar *new_trans_str, *split_str;
+          char *endptr;
+          gboolean conversion_ok = TRUE;
+          
+          new_trans_str = xaccTransGetNum (new_trans);
+          /* To distinguish success/failure after strtol call */
+          errno = 0;
+          new_trans_number = strtol(new_trans_str, &endptr, 10);
+          /* Possible addressed problems: over/underflow, only non
+	     numbers on string and string empty */
+          if (errno || endptr == new_trans_str) 
+	    conversion_ok = FALSE;
+            
+          split_str = xaccTransGetNum (xaccSplitGetParent (split));
+          errno = 0;
+          split_number = strtol(split_str, &endptr, 10);
+          if (errno || endptr == split_str) 
+	    conversion_ok = FALSE;
+            
+          if ( (conversion_ok && (split_number == new_trans_number)) || 
+	       (safe_strcmp(new_trans_str, split_str) == 0) )
+            {  
+              /*An exact match of the Check number gives a +4 */
+              prob += 4;
+              /*DEBUG("heuristics:  probability + 4 (Check number)");*/
+            }
+          else if(strlen(new_trans_str) > 0 && strlen(split_str) > 0)
+            {
+              /* If both number are not empty yet do not match, add a
+		 little extra penality */
+              prob -= 2;
+            }
+        }
       
       /* Memo heuristics */  
       if(strlen(xaccSplitGetMemo(gnc_import_TransInfo_get_fsplit (trans_info)))!=0)
@@ -845,7 +866,7 @@
 	    /* Create the 'other' split. */
 	    Split *split = 
 	      xaccMallocSplit
-	      (xaccAccountGetBook
+	      (gnc_account_get_book
 	       (gnc_import_TransInfo_get_destacc (trans_info)));
 	    xaccTransAppendSplit
 	      (gnc_import_TransInfo_get_trans (trans_info), split);

Modified: gnucash/branches/gda-dev/src/import-export/import-match-map.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/import-match-map.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/import-match-map.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,7 +31,6 @@
 #include <string.h>
 #include <glib.h>
 #include "import-match-map.h"
-#include "Group.h"
 #include "gnc-ui-util.h"
 #include "gnc-engine.h"
 
@@ -66,7 +65,7 @@
    * marking dirtiness
    */
   if (acc)
-    book = xaccAccountGetBook (acc);
+    book = gnc_account_get_book (acc);
   imap->acc = acc;
   imap->book = book;
   
@@ -442,8 +441,8 @@
     {
       PINFO("found match");
       LEAVE(" ");
-      return xaccGetAccountFromFullName(gnc_book_get_group(imap->book),
-					account_i.account_name);
+      return gnc_account_lookup_by_full_name(gnc_book_get_root_account(imap->book),
+                                             account_i.account_name);
     }
 
   PINFO("no match");
@@ -484,7 +483,7 @@
 	 string, which doesn't work in the kvp loopkup later. So we
 	 skip this case here. */
       if (!current_token->data || (*((char*)current_token->data) == '\0'))
-	continue;
+           continue;
 
       /* start off with no tokens for this account */
       token_count = 0;

Modified: gnucash/branches/gda-dev/src/import-export/import-match-picker.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/import-match-picker.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/import-match-picker.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -287,6 +287,17 @@
 }
 
 static void
+match_transaction_row_activated_cb (GtkTreeView *view, GtkTreePath *path,
+				    GtkTreeViewColumn *column,
+				    GNCImportMatchPicker *matcher)
+{
+  g_return_if_fail (matcher && matcher->transaction_matcher);
+
+  gtk_dialog_response (GTK_DIALOG (matcher->transaction_matcher),
+		       GTK_RESPONSE_OK);
+}
+
+static void
 add_column(GtkTreeView *view, const gchar *title, int col_num)
 {
   GtkCellRenderer *renderer;
@@ -367,6 +378,8 @@
   selection = gtk_tree_view_get_selection(view);
   g_signal_connect(selection, "changed",
 		   G_CALLBACK(match_transaction_changed_cb), matcher);
+  g_signal_connect(view, "row-activated",
+		   G_CALLBACK(match_transaction_row_activated_cb), matcher);
 }
 
 /********************************************************************\

Modified: gnucash/branches/gda-dev/src/import-export/import-provider-format.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/import-provider-format.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/import-provider-format.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,6 +17,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruidPageStandard" id="Format Provider Page">
@@ -49,6 +50,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -76,6 +81,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -97,6 +106,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -115,6 +128,7 @@
 	  <child>
 	    <widget class="GtkComboBox" id="import_format_combo">
 	      <property name="visible">True</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	    </widget>
 	    <packing>
@@ -137,6 +151,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>

Modified: gnucash/branches/gda-dev/src/import-export/log-replay/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/log-replay/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/log-replay/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,12 +11,14 @@
   gnc-log-replay.h \
   gnc-plugin-log-replay.h
 
+libgncmod_log_replay_la_LDFLAGS = -avoid-version
+
 libgncmod_log_replay_la_LIBADD = \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GTK_LIBS} \
   ${GLIB_LIBS} ${QOF_LIBS}
 
@@ -39,3 +41,5 @@
 uidir = $(GNC_UI_DIR)
 dist_ui_DATA = \
 	gnc-plugin-log-replay-ui.xml
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.log-replay\"

Modified: gnucash/branches/gda-dev/src/import-export/log-replay/gnc-log-replay.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/log-replay/gnc-log-replay.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/log-replay/gnc-log-replay.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -27,7 +27,7 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <string.h>
 #include <sys/time.h>
 #include <libguile.h>
@@ -43,7 +43,6 @@
 #include "qof.h"
 #include "gnc-book.h"
 #include "gnc-ui-util.h"
-#include "gnc-gconf-utils.h"
 #include "gnc-gui-query.h"
 
 #define GCONF_SECTION "dialogs/log_replay"
@@ -515,9 +514,7 @@
   qof_log_set_level(GNC_MOD_IMPORT, QOF_LOG_DEBUG);
   ENTER(" ");
 
-  default_dir = gnc_gconf_get_string(GCONF_SECTION, KEY_LAST_PATH, NULL);
-  if (default_dir == NULL)
-    gnc_init_default_directory(&default_dir);
+  default_dir = gnc_get_default_directory(GCONF_SECTION);
 
   filter = gtk_file_filter_new();
   gtk_file_filter_set_name(filter, "*.log");
@@ -526,12 +523,14 @@
 				      g_list_prepend(NULL, filter),
 				      default_dir,
 				      GNC_FILE_DIALOG_OPEN);
+  g_free(default_dir);
 
   if(selected_filename!=NULL)
     {
       /* Remember the directory as the default. */
-      gnc_extract_directory(&default_dir, selected_filename);
-      gnc_gconf_set_string(GCONF_SECTION, KEY_LAST_PATH, default_dir, NULL);
+      default_dir = g_path_get_dirname(selected_filename);
+      gnc_set_default_directory(GCONF_SECTION, default_dir);
+      g_free(default_dir);
 
       /*strncpy(file,selected_filename, 255);*/
       DEBUG("Filename found: %s",selected_filename);
@@ -543,7 +542,7 @@
 			 selected_filename);
       } else {
 	DEBUG("Opening selected file");
-	log_file = fopen(selected_filename, "r");
+	log_file = g_fopen(selected_filename, "r");
 	if(!log_file || ferror(log_file)!=0) {
 	  int err = errno;
 	  perror("File open failed");
@@ -582,7 +581,7 @@
       }
       g_free(selected_filename);
     }
-  g_free(default_dir);
+  LEAVE("");
 }
 
 

Modified: gnucash/branches/gda-dev/src/import-export/log-replay/gncmod-log-replay.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/log-replay/gncmod-log-replay.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/log-replay/gncmod-log-replay.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,7 @@
  */
 #include "config.h"
 
-#include <gtk/gtk.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-log-replay.h"
@@ -34,35 +34,31 @@
 #include "gnc-plugin-log-replay.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_log_replay_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_log_replay_LTX_gnc_module_current  = 0;
-int libgncmod_log_replay_LTX_gnc_module_revision = 0;
-int libgncmod_log_replay_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
 //static GNCModule bus_core;
 //static GNCModule file;
 
-/* forward references */
-char *libgncmod_log_replay_LTX_gnc_module_path(void);
-char *libgncmod_log_replay_LTX_gnc_module_description(void);
-int libgncmod_log_replay_LTX_gnc_module_init(int refcount);
-int libgncmod_log_replay_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_log_replay_LTX_gnc_module_path(void)
+gnc_module_path(void)
 {
   return g_strdup("gnucash/import-export/log-replay");
 }
+
 char *
-libgncmod_log_replay_LTX_gnc_module_description(void)
+gnc_module_description(void)
 {
   return g_strdup("C code for log file replay");
 }
+
 int
-libgncmod_log_replay_LTX_gnc_module_init(int refcount)
+gnc_module_init(int refcount)
 {
   if(!gnc_module_load("gnucash/engine", 0))
   {
@@ -88,7 +84,7 @@
 }
 
 int
-libgncmod_log_replay_LTX_gnc_module_end(int refcount)
+gnc_module_end(int refcount)
 {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/import-export/ofx/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/ofx/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/ofx/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,13 +11,15 @@
   gnc-ofx-import.h \
   gnc-plugin-ofx.h
 
+libgncmod_ofx_la_LDFLAGS = -avoid-version
+
 libgncmod_ofx_la_LIBADD = \
   ${top_builddir}/src/import-export/libgncmod-generic-import.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${QOF_LIBS} \
   ${GLIB_LIBS} \
   ${LIBOFX_LIBS}
@@ -44,3 +46,5 @@
 	gnc-plugin-ofx-ui.xml
 
 EXTRA_DIST = $(ui_DATA)
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.ofx\"

Modified: gnucash/branches/gda-dev/src/import-export/ofx/gnc-ofx-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/ofx/gnc-ofx-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/ofx/gnc-ofx-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -46,7 +46,6 @@
 #include "gnc-engine.h"
 #include "gnc-book.h"
 #include "gnc-ui-util.h"
-#include "gnc-gconf-utils.h"
 #include "gnc-glib-utils.h"
 
 #define GCONF_SECTION "dialogs/import/ofx"
@@ -132,7 +131,7 @@
 	  gnc_utf8_strip_invalid(data.memo);
 
 	/********** Create the transaction and setup transaction data ************/
-	book = xaccAccountGetBook(account);
+	book = gnc_account_get_book(account);
 	transaction = xaccMallocTransaction(book);
 	xaccTransBeginEdit(transaction);
 	
@@ -645,26 +644,21 @@
   ofx_INFO_msg = true;
   ofx_STATUS_msg = false;
 
-  qof_log_check(GNC_MOD_IMPORT, QOF_LOG_TRACE);
   DEBUG("gnc_file_ofx_import(): Begin...\n");
 
-  default_dir = gnc_gconf_get_string(GCONF_SECTION, KEY_LAST_PATH, NULL);
-  if (default_dir == NULL)
-    gnc_init_default_directory(&default_dir);
+  default_dir = gnc_get_default_directory(GCONF_SECTION);
   selected_filename = gnc_file_dialog(_("Select an OFX/QFX file to process"),
 				      NULL,
 				      default_dir,
 				      GNC_FILE_DIALOG_IMPORT);
   g_free(default_dir);
-  default_dir = NULL;
 
   if(selected_filename!=NULL)
     {
       /* Remember the directory as the default. */
-      gnc_extract_directory(&default_dir, selected_filename);
-      gnc_gconf_set_string(GCONF_SECTION, KEY_LAST_PATH, default_dir, NULL);
+      default_dir = g_path_get_dirname(selected_filename);
+      gnc_set_default_directory(GCONF_SECTION, default_dir);
       g_free(default_dir);
-      default_dir = NULL;
 
       /*strncpy(file,selected_filename, 255);*/
       DEBUG("Filename found: %s",selected_filename);

Modified: gnucash/branches/gda-dev/src/import-export/ofx/gncmod-ofx-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/ofx/gncmod-ofx-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/ofx/gncmod-ofx-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,7 @@
  */
 #include "config.h"
 
-#include <gtk/gtk.h>
+#include <gmodule.h>
 
 #include "gnc-ofx-import.h"
 #include "gnc-module.h"
@@ -33,35 +33,31 @@
 #include "gnc-plugin-ofx.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_ofx_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_ofx_LTX_gnc_module_current  = 0;
-int libgncmod_ofx_LTX_gnc_module_revision = 0;
-int libgncmod_ofx_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
 //static GNCModule bus_core;
 //static GNCModule file;
 
-/* forward references */
-char *libgncmod_ofx_LTX_gnc_module_path(void);
-char *libgncmod_ofx_LTX_gnc_module_description(void);
-int libgncmod_ofx_LTX_gnc_module_init(int refcount);
-int libgncmod_ofx_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_ofx_LTX_gnc_module_path(void)
+gnc_module_path(void)
 {
   return g_strdup("gnucash/import-export/ofx");
 }
+
 char *
-libgncmod_ofx_LTX_gnc_module_description(void)
+gnc_module_description(void)
 {
   return g_strdup("Gnome GUI and C code for OFX importer using libofx");
 }
+
 int
-libgncmod_ofx_LTX_gnc_module_init(int refcount)
+gnc_module_init(int refcount)
 {
   if(!gnc_module_load("gnucash/engine", 0))
   {
@@ -82,12 +78,12 @@
 
   /* Add menu items with C callbacks */
   gnc_plugin_ofx_create_plugin();
-  
+
   return TRUE;
 }
 
 int
-libgncmod_ofx_LTX_gnc_module_end(int refcount)
+gnc_module_end(int refcount)
 {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/import-export/ofx/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/ofx/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/ofx/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,7 +1,7 @@
 TESTS=test-link
 
 AM_CFLAGS=${LIBOFX_CFLAGS}
-noinst_PROGRAMS=test-link
+check_PROGRAMS=test-link
 
 test_link_SOURCES=test-link.c
 test_link_LDADD=../libgncmod-ofx.la 

Modified: gnucash/branches/gda-dev/src/import-export/qif/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -36,3 +36,5 @@
   ${GUILE_INCS} \
   ${QOF_CFLAGS}
 
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.qif\"

Modified: gnucash/branches/gda-dev/src/import-export/qif/qif-file.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif/qif-file.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif/qif-file.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,7 +28,7 @@
 #endif
 
 #include <glib.h>
-#include <stdio.h>
+#include <glib/gstdio.h>
 #include <string.h>
 
 #include "gnc-engine.h"
@@ -206,7 +206,7 @@
   g_return_val_if_fail(*filename, QIF_E_BADARGS);
 
   /* Open the file */
-  fp = fopen(filename, "r");
+  fp = g_fopen(filename, "r");
   if (fp == NULL)
     return QIF_E_NOFILE;
 

Modified: gnucash/branches/gda-dev/src/import-export/qif/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,7 +11,7 @@
   ${GLIB_CFLAGS} 
 
 LDADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/test-core/libgncmod-test.la \
   ../../libgncmod-generic-import.la \
   ../libgncmod-qif.la \
@@ -36,7 +36,6 @@
   --gnc-module-dir ${top_srcdir}/src/app-utils \
   --gnc-module-dir ${top_srcdir}/src/gnome-utils \
   --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
   --gnc-module-dir ${top_builddir}/src/gnome \
   --guile-load-dir ${top_srcdir}/src/scm \
   --guile-load-dir ${top_srcdir}/src/import-export \
@@ -46,7 +45,7 @@
   GNC_TEST_FILES=${srcdir}/test-files \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-link \
   test-qif
 

Modified: gnucash/branches/gda-dev/src/import-export/qif/test/test-qif.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif/test/test-qif.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif/test/test-qif.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -60,7 +60,7 @@
 {
   QifContext ctx, file;
   char *filename;
-  const char *location = getenv("GNC_TEST_FILES");
+  const char *location = g_getenv("GNC_TEST_FILES");
   int i;
 
   ctx = qif_context_new();

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,14 +15,16 @@
   gnc-druid-test.h \
   gnc-plugin-qif-import.h
 
+libgncmod_qif_import_la_LDFLAGS = -avoid-version
+
 libgncmod_qif_import_la_LIBADD = \
   ${top_builddir}/src/import-export/libgncmod-generic-import.la \
-  ${top_builddir}/src/gnome/libgncgnome.la \
+  ${top_builddir}/src/gnome/libgnc-gnome.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GUILE_LIBS} \
   ${GNOME_LIBS} \
   ${GLADE_LIBS} \
@@ -51,6 +53,7 @@
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/core-utils \
   -I${top_srcdir}/src/engine \
   -I${top_srcdir}/src/gnc-module \
@@ -61,7 +64,6 @@
   ${GUILE_INCS} \
   ${GLIB_CFLAGS} \
   ${GLADE_CFLAGS} \
-  ${GNOME_PRINT_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${GDK_PIXBUF_CFLAGS} \
   ${QOF_CFLAGS} \
@@ -104,3 +106,5 @@
 
 CLEANFILES += .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.qif.import\"

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/dialog-account-picker.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/dialog-account-picker.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/dialog-account-picker.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -211,7 +211,17 @@
   }
 }
 
+static void
+gnc_ui_qif_account_picker_row_activated_cb (GtkTreeView *view, GtkTreePath *path,
+					    GtkTreeViewColumn *column,
+					    gpointer user_data)
+{
+  QIFAccountPickerDialog *wind = user_data;
+  g_return_if_fail (wind);
 
+  gtk_dialog_response (GTK_DIALOG (wind->dialog), GTK_RESPONSE_OK);
+}
+
 static int
 gnc_ui_qif_account_picker_map_cb(GtkWidget * w, gpointer user_data)
 {
@@ -291,6 +301,9 @@
     selection = gtk_tree_view_get_selection(wind->treeview);
     g_signal_connect(selection, "changed",
 		     G_CALLBACK(gnc_ui_qif_account_picker_changed_cb), wind);
+    g_signal_connect(wind->treeview, "row-activated",
+		     G_CALLBACK(gnc_ui_qif_account_picker_row_activated_cb),
+		     wind);
   }
 
   g_signal_connect_after(wind->dialog, "map",

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/druid-qif-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/druid-qif-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/druid-qif-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,8 +26,11 @@
 
 #include <gnome.h>
 #include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#ifndef HAVE_GLIB_2_8
+#include <gstdio-2.8.h>
+#endif
 #include <libguile.h>
-#include <stdio.h>
 #include <sys/time.h>
 #include <unistd.h>
 
@@ -116,7 +119,7 @@
   SCM       new_stocks;
   SCM       ticker_map;
 
-  SCM       imported_account_group;
+  SCM       imported_account_tree;
   SCM       match_transactions;
   int       selected_transaction;
 };
@@ -189,7 +192,7 @@
   scm_gc_unprotect_object(window->stock_hash);
   scm_gc_unprotect_object(window->new_stocks);
   scm_gc_unprotect_object(window->ticker_map);
-  scm_gc_unprotect_object(window->imported_account_group);
+  scm_gc_unprotect_object(window->imported_account_tree);
   scm_gc_unprotect_object(window->match_transactions);
 
   g_free(window);
@@ -378,9 +381,7 @@
   char *file_name, *default_dir;
 
   /* Default to whatever's already present */
-  default_dir = gnc_gconf_get_string(GCONF_SECTION, KEY_LAST_PATH, NULL);
-  if (default_dir == NULL)
-    gnc_init_default_directory(&default_dir);
+  default_dir = gnc_get_default_directory(GCONF_SECTION);
 
   filter = gtk_file_filter_new ();
   gtk_file_filter_set_name (filter, "*.qif");
@@ -393,20 +394,20 @@
   /* Insure valid data, and something that can be freed. */
   if (new_file_name == NULL) {
     file_name = g_strdup(default_dir);
-  } else if (*new_file_name != '/') {
-    file_name = g_strdup_printf("%s%s", default_dir, new_file_name);
+  } else if (!g_path_is_absolute(new_file_name)) {
+    file_name = g_build_filename(default_dir, new_file_name, NULL);
     g_free(new_file_name);
   } else {
     file_name = new_file_name;
+    /* Update the working directory */
+    g_free(default_dir);
+    default_dir = g_path_get_dirname(file_name);
+    gnc_set_default_directory(GCONF_SECTION, default_dir);
   }
+  g_free(default_dir);
 
   /* set the filename entry for what was selected */
   gtk_entry_set_text(GTK_ENTRY(wind->filename_entry), file_name);
-
-  /* Update the working directory */
-  gnc_extract_directory(&default_dir, file_name);
-  gnc_gconf_set_string(GCONF_SECTION, KEY_LAST_PATH, default_dir, NULL);
-  g_free(default_dir);
   g_free(file_name);
 }
 
@@ -478,7 +479,7 @@
     gnc_error_dialog(wind->window, _("Please select a file to load."));
     return TRUE;
   }
-  else if ((strlen(path_to_load) > 0) && access(path_to_load, R_OK) < 0) {
+  else if (g_access(path_to_load, R_OK) < 0) {
     /* stay here if bad file */
     gnc_error_dialog(wind->window, 
 		     _("File not found or read permission denied. "
@@ -568,8 +569,15 @@
        */
       if(SCM_LISTP(parse_return) && 
          (SCM_CAR(parse_return) == SCM_BOOL_T)) {
+	gint n_items;
 
-	gtk_combo_box_remove_text(GTK_COMBO_BOX(wind->date_format_combo), 0);
+	/* clear the combo box */
+	gtk_combo_box_set_active(GTK_COMBO_BOX(wind->date_format_combo), -1);
+	n_items = gtk_tree_model_iter_n_children(
+	  gtk_combo_box_get_model(GTK_COMBO_BOX(wind->date_format_combo)), NULL);
+	while (n_items-- > 0)
+	  gtk_combo_box_remove_text(GTK_COMBO_BOX(wind->date_format_combo), 0);
+
 	if ((date_formats = scm_call_2(qif_file_parse_results,
 				       SCM_CDR(parse_return),
 				       scm_str2symbol("date"))) != SCM_BOOL_F) {
@@ -1022,7 +1030,6 @@
   GtkListStore *store;
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
-  GtkTreeSelection *selection;
 
   store = gtk_list_store_new(NUM_ACCOUNT_COLS, G_TYPE_INT, G_TYPE_STRING,
 			     G_TYPE_STRING, G_TYPE_BOOLEAN);
@@ -1051,8 +1058,7 @@
   gtk_tree_view_append_column(view, column);
 
   g_object_set_data(G_OBJECT(store), PREV_ROW, GINT_TO_POINTER(-1));
-  selection = gtk_tree_view_get_selection(view);
-  g_signal_connect(selection, "changed", callback, user_data);
+  g_signal_connect(view, "row-activated", G_CALLBACK(callback), user_data);
 }
 
 /********************************************************************
@@ -1072,14 +1078,11 @@
   SCM   selected_acct;
   GtkTreeModel *model;
   GtkTreeIter iter;
-  gint row, prev_row;
+  gint row;
 
   if (!gtk_tree_selection_get_selected (selection, &model, &iter))
     return;
   gtk_tree_model_get(model, &iter, ACCOUNT_COL_INDEX, &row, -1);
-  prev_row = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(model), PREV_ROW));
-  if (row == prev_row)
-    return;
   g_object_set_data(G_OBJECT(model), PREV_ROW, GINT_TO_POINTER(row));
   if (row == -1)
     return;
@@ -1103,10 +1106,16 @@
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_account_line_select_cb(GtkTreeSelection *selection,
-					 gpointer          user_data)   
+gnc_ui_qif_import_account_line_select_cb(GtkTreeView *view, GtkTreePath *path,
+					 GtkTreeViewColumn *column,
+					 gpointer user_data)
 {
-  QIFImportWindow * wind = user_data;
+  QIFImportWindow *wind = user_data;
+  GtkTreeSelection *selection;
+
+  g_return_if_fail (view && wind);
+  selection = gtk_tree_view_get_selection (view);
+
   select_line (wind, selection, wind->acct_display_info, wind->acct_map_info,
 	       update_accounts_page);
 }
@@ -1118,10 +1127,16 @@
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_category_line_select_cb(GtkTreeSelection *selection,
-					  gpointer          user_data)   
+gnc_ui_qif_import_category_line_select_cb(GtkTreeView *view, GtkTreePath *path,
+					 GtkTreeViewColumn *column,
+					 gpointer user_data)
 {
-  QIFImportWindow * wind = user_data;
+  QIFImportWindow *wind = user_data;
+  GtkTreeSelection *selection;
+
+  g_return_if_fail (view && wind);
+  selection = gtk_tree_view_get_selection (view);
+
   select_line (wind, selection, wind->acct_display_info, wind->acct_map_info,
 	       update_categories_page);
 }
@@ -1133,11 +1148,17 @@
  ********************************************************************/
 
 static void
-gnc_ui_qif_import_memo_line_select_cb(GtkTreeSelection *selection,
-				      gpointer          user_data)   
+gnc_ui_qif_import_memo_line_select_cb(GtkTreeView *view, GtkTreePath *path,
+					 GtkTreeViewColumn *column,
+					 gpointer user_data)
 {
-  QIFImportWindow * wind = user_data;
-  select_line (wind, selection, wind->acct_display_info, wind->acct_map_info,
+  QIFImportWindow *wind = user_data;
+  GtkTreeSelection *selection;
+
+  g_return_if_fail (view && wind);
+  selection = gtk_tree_view_get_selection (view);
+
+  select_line (wind, selection, wind->memo_display_info, wind->memo_map_info,
 	       update_memo_page);
 }
 
@@ -1203,7 +1224,7 @@
 {
 
   SCM   qif_to_gnc      = scm_c_eval_string("qif-import:qif-to-gnc");
-  SCM   find_duplicates = scm_c_eval_string("gnc:group-find-duplicates");
+  SCM   find_duplicates = scm_c_eval_string("gnc:account-tree-find-duplicates");
   SCM   retval;
   SCM   current_xtn;
   SCM   window;
@@ -1256,8 +1277,9 @@
     }
   }
 
-  /* call a scheme function to do the work.  The return value is an
-   * account group containing all the new accounts and transactions */
+  /* call a scheme function to do the work.  The return value is the
+   * root account of an account tree containing all the new accounts
+   * and transactions */
   window = SWIG_NewPointerObj(wind->window, SWIG_TypeQuery("_p_GtkWidget"), 0);
   retval = scm_apply(qif_to_gnc, 
 		     SCM_LIST7(wind->imported_files,
@@ -1276,20 +1298,20 @@
 		     _("An error occurred while importing "
 		       "QIF transactions into GnuCash. Your "
 		       "accounts are unchanged."));    
-    scm_gc_unprotect_object(wind->imported_account_group);
-    wind->imported_account_group = SCM_BOOL_F;
-    scm_gc_protect_object(wind->imported_account_group);
+    scm_gc_unprotect_object(wind->imported_account_tree);
+    wind->imported_account_tree = SCM_BOOL_F;
+    scm_gc_protect_object(wind->imported_account_tree);
   }
   else {
-    scm_gc_unprotect_object(wind->imported_account_group);
-    wind->imported_account_group = retval;
-    scm_gc_protect_object(wind->imported_account_group);
+    scm_gc_unprotect_object(wind->imported_account_tree);
+    wind->imported_account_tree = retval;
+    scm_gc_protect_object(wind->imported_account_tree);
 
     /* now detect duplicate transactions */ 
     gnc_set_busy_cursor(NULL, TRUE);
     retval = scm_call_3(find_duplicates, 
-			scm_c_eval_string("(gnc-get-current-group)"),
-			wind->imported_account_group, window);
+			scm_c_eval_string("(gnc-get-current-root-account)"),
+			wind->imported_account_tree, window);
     gnc_unset_busy_cursor(NULL);
     
     scm_gc_unprotect_object(wind->match_transactions);
@@ -1853,7 +1875,7 @@
 {
   
   SCM   save_map_prefs = scm_c_eval_string("qif-import:save-map-prefs");
-  SCM   cat_and_merge = scm_c_eval_string("gnc:group-catenate-and-merge");
+  SCM   cat_and_merge = scm_c_eval_string("gnc:account-tree-catenate-and-merge");
   SCM   prune_xtns = scm_c_eval_string("gnc:prune-matching-transactions");
   
   QIFImportWindow * wind = user_data;
@@ -1867,8 +1889,8 @@
 
   /* actually add in the new transactions. */
   scm_call_2(cat_and_merge, 
-	     scm_c_eval_string("(gnc-get-current-group)"),
-	     wind->imported_account_group);
+	     scm_c_eval_string("(gnc-get-current-root-account)"),
+	     wind->imported_account_tree);
   
   gnc_resume_gui_refresh();
   
@@ -2056,7 +2078,7 @@
   retval->stock_hash        =  SCM_BOOL_F;
   retval->new_stocks        =  SCM_BOOL_F;
   retval->ticker_map        =  SCM_BOOL_F;
-  retval->imported_account_group   = SCM_BOOL_F;
+  retval->imported_account_tree   = SCM_BOOL_F;
   retval->match_transactions = SCM_BOOL_F;
   retval->selected_transaction = 0;
   
@@ -2221,7 +2243,7 @@
   scm_gc_protect_object(retval->stock_hash);
   scm_gc_protect_object(retval->new_stocks);
   scm_gc_protect_object(retval->ticker_map);
-  scm_gc_protect_object(retval->imported_account_group);
+  scm_gc_protect_object(retval->imported_account_tree);
   scm_gc_protect_object(retval->match_transactions);
   
   /* set a default currency for new accounts */

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/gncmod-qif-import.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/gncmod-qif-import.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/gncmod-qif-import.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,12 +1,12 @@
 /*********************************************************************
  * gncmod-qif-import.c
  * module definition/initialization for old QIF importer (deprecated)
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -17,46 +17,40 @@
 #include "gnc-plugin-qif-import.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_qif_import_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_qif_import_LTX_gnc_module_current  = 0;
-int libgncmod_qif_import_LTX_gnc_module_revision = 0;
-int libgncmod_qif_import_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_qif_import_LTX_gnc_module_path(void);
-char *libgncmod_qif_import_LTX_gnc_module_description(void);
-int libgncmod_qif_import_LTX_gnc_module_init(int refcount);
-int libgncmod_qif_import_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_qif_import_LTX_gnc_module_path(void) 
+gnc_module_path(void)
 {
   return g_strdup("gnucash/import-export/qif-import");
 }
 
-char * 
-libgncmod_qif_import_LTX_gnc_module_description(void) 
+char *
+gnc_module_description(void)
 {
   return g_strdup("Gnome GUI and Scheme code for QIF importer");
 }
 
 int
-libgncmod_qif_import_LTX_gnc_module_init(int refcount) 
+gnc_module_init(int refcount)
 {
-  if(!gnc_module_load("gnucash/engine", 0)) 
+  if(!gnc_module_load("gnucash/engine", 0))
   {
     return FALSE;
   }
 
-  if(!gnc_module_load("gnucash/app-utils", 0)) 
+  if(!gnc_module_load("gnucash/app-utils", 0))
   {
     return FALSE;
   }
 
-  if(!gnc_module_load("gnucash/gnome-utils", 0)) 
+  if(!gnc_module_load("gnucash/gnome-utils", 0))
   {
     return FALSE;
   }
@@ -78,7 +72,7 @@
 }
 
 int
-libgncmod_qif_import_LTX_gnc_module_end(int refcount) 
+gnc_module_end(int refcount)
 {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-dialog-utils.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-dialog-utils.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-dialog-utils.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -606,10 +606,10 @@
               (not (hash-ref stock-hash stock-name)))
              (let* ((separator (string-ref (gnc-get-account-separator-string) 0))
                     (existing-gnc-acct 
-                     (xaccGetAccountFromFullName
-                      (gnc-get-current-group)
+                     (gnc-account-lookup-by-full-name 
+                      (gnc-get-current-root-account)
                       (qif-map-entry:gnc-name map-entry)))
-		    (book (xaccGroupGetBook (gnc-get-current-group)))
+		    (book (gnc-account-get-book (gnc-get-current-root-account)))
                     (existing-type 
                      (xaccAccountGetType existing-gnc-acct)))
                (if (and (not (null? existing-gnc-acct)) 
@@ -713,7 +713,7 @@
                      separator)
                     #f)
               accts)))
-     (xaccGroupGetSubAccountsSorted (gnc-get-current-group)))
+     (gnc-account-get-descendants-sorted (gnc-get-current-root-account)))
 
     ;; now build a tree structure 
     (for-each 

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-file.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-file.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-file.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -40,16 +40,13 @@
           (tag #f)
           (value #f)
           (heinous-error #f)
-          (start-time #f)
-          (end-time #f)
           (delimiters (string #\cr #\nl))
-          (progress-dialog #f)
+          (progress-dialog '())
           (file-stats (stat path))
           (file-size (stat:size file-stats))
           (bytes-read 0))
 
      (qif-file:set-path! self path)
-     (set! start-time (gettimeofday))
 
      (if (> file-size 10000)
          (begin

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-guess-map.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-guess-map.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-guess-map.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,6 +5,8 @@
 ;;;  Bill Gribble <grib at billgribble.com> 20 Feb 2000 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+(use-modules (srfi srfi-13))
+
 (define GNC-BANK-TYPE 0)
 (define GNC-CASH-TYPE 1)
 (define GNC-ASSET-TYPE 2)
@@ -25,10 +27,10 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define (qif-import:load-map-prefs)
-  (define (extract-all-account-info agroup root-name)
-    (if (null? agroup)
+  (define (extract-all-account-info an-account root-name)
+    (if (null? an-account)
         '()
-        (let ((children-list (xaccGroupGetAccountListSorted agroup))
+        (let ((children-list (gnc-account-get-children-sorted an-account))
               (names '()))
           
           ;; now descend the tree of child accounts.
@@ -43,9 +45,7 @@
                          name)))
                (set! names 
                      (append (cons (list name fullname child-acct)
-                                   (extract-all-account-info 
-                                    (xaccAccountGetChildren child-acct)
-                                    fullname))
+                                   (extract-all-account-info child-acct fullname))
                              names))))
            children-list)
           names)))
@@ -110,7 +110,7 @@
                               (make-hash-table 20)))))
     
     ;; now build the list of all known account names 
-    (let* ((all-accounts (gnc-get-current-group))
+    (let* ((all-accounts (gnc-get-current-root-account))
            (all-account-info (extract-all-account-info all-accounts #f)))
       (set! results (cons all-account-info results)))
     results))
@@ -315,10 +315,9 @@
    ;; this happens if you have the same tree but a different 
    ;; top-level structure. (i.e. expenses:tax vs. QIF tax)
    (and (> (string-length qif-acct-name) 0)
-        (string-match (string-downcase qif-acct-name) 
-                      (string-downcase (cadr gnc-acct))))))
+        (string-contains (string-downcase (cadr gnc-acct))
+			 (string-downcase qif-acct-name)))))
 
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  qif-import:find-new-acct
 ;;  Come up with a logical name for a new account based on 

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-import.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-import.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-import.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -9,7 +9,7 @@
 (use-modules (gnucash main)) ;; FIXME: delete after we finish modularizing.
 
 ;; We do this initialization here because src/gnome isn't a real module.
-(load-extension "libgncgnome" "scm_init_sw_gnome_module")
+(load-extension "libgnc-gnome" "scm_init_sw_gnome_module")
 (use-modules (sw_gnome))
 
 (use-modules (gnucash gnc-module))
@@ -65,6 +65,6 @@
 (export qif-dialog:make-category-display)
 (export qif-dialog:make-memo-display)
 
-(export gnc:group-find-duplicates)
-(export gnc:group-catenate-and-merge)
+(export gnc:account-tree-find-duplicates)
+(export gnc:account-tree-catenate-and-merge)
 (export gnc:prune-matching-transactions)

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-merge-groups.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-merge-groups.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-merge-groups.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,16 +5,16 @@
 ;;;  Copyright 2001 Bill Gribble <grib at billgribble.com> 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define (gnc:group-get-transactions group)
+(define (gnc:account-tree-get-transactions root)
   (let ((query (qof-query-create-for-splits))
         (xtns #f))
 
-    (qof-query-set-book query (xaccGroupGetBook group))
+    (qof-query-set-book query (gnc-account-get-book root))
 
     ;; we want to find all transactions with every split inside the
     ;; account group.
     (xaccQueryAddAccountMatch query
-                                 (xaccGroupGetSubAccountsSorted group)
+                                 (gnc-account-get-descendants-sorted root)
                                  QOF-GUID-MATCH-ANY QOF-QUERY-AND)
 
     (set! xtns (xaccQueryGetTransactions query QUERY-TXN-MATCH-ALL))
@@ -25,17 +25,17 @@
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;  gnc:group-find-duplicates 
+;;  gnc:account-tree-find-duplicates 
 ;;  detect redundant splits/xtns from 'new' and return 
 ;;  them in a list. 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define (gnc:group-find-duplicates old-group new-group window)
+(define (gnc:account-tree-find-duplicates old-root new-root window)
   ;; get all the transactions in the new group, then iterate over them
   ;; trying to find matches in the new group.  If there are matches, 
   ;; push the matches onto a list. 
-  (let* ((new-xtns (gnc:group-get-transactions new-group))
-	 (progress-dialog #f)
+  (let* ((new-xtns (gnc:account-tree-get-transactions new-root))
+	 (progress-dialog '())
 	 (work-to-do (length new-xtns))
 	 (work-done 0)
          (matches '()))    
@@ -47,7 +47,7 @@
 	  (gnc-progress-dialog-set-heading progress-dialog
 					   (_ "Finding duplicate transactions..."))))
 
-    ;; for each transaction in the new group, build a query that could
+    ;; for each transaction in the new account tree, build a query that could
     ;; match possibly similar transactions.
     (for-each
      (lambda (xtn) 
@@ -59,11 +59,11 @@
 		progress-dialog (/ work-done work-to-do))
 	       (gnc-progress-dialog-update progress-dialog)))
 
-	 (qof-query-set-book query (xaccGroupGetBook old-group))
+	 (qof-query-set-book query (gnc-account-get-book old-root))
 
 	 ;; first, we want to find only transactions from the old group.
 	 (xaccQueryAddAccountMatch query
-				      (xaccGroupGetSubAccountsSorted old-group)
+				      (gnc-account-get-descendants-sorted old-root)
 				      QOF-GUID-MATCH-ANY QOF-QUERY-AND)
          
          ;; the date should be close to the same.. +/- a week. 
@@ -78,22 +78,22 @@
            (for-each 
             (lambda (split)
               (let ((sq (qof-query-create-for-splits)))
-		(qof-query-set-book sq (xaccGroupGetBook old-group))
+		(qof-query-set-book sq (gnc-account-get-book old-root))
                 
-                ;; we want to match the account in the old group that
-                ;; has the same name as an account in the new group.  If
-                ;; there's not one (new account), the match will be NULL
-                ;; and we know the query won't find anything.  optimize
-                ;; this later.
+                ;; we want to match the account in the old account
+                ;; tree that has the same name as an account in the
+                ;; new account tree.  If there's not one (new
+                ;; account), the match will be NULL and we know the
+                ;; query won't find anything.  optimize this later.
                 (xaccQueryAddSingleAccountMatch
                  sq 
-                 (xaccGetAccountFromFullName
-                  old-group (gnc-account-get-full-name
+                 (gnc-account-lookup-by-full-name
+                  old-root (gnc-account-get-full-name
                              (xaccSplitGetAccount split)))
                  QOF-QUERY-AND)
                 
                 ;; we want the value for the split to match the value
-                ;; the old-group split.  We should really check for
+                ;; the old-root split.  We should really check for
                 ;; fuzziness.
                 (xaccQueryAddValueMatch
                  sq (xaccSplitGetValue split)
@@ -111,14 +111,14 @@
             (xaccTransGetSplitList xtn))
            
            ;; now q-splits will match any split that is the same as one
-           ;; split in the old-group xtn.  Merge it in.
+           ;; split in the old-root xtn.  Merge it in.
            (let ((q-new (qof-query-merge query q-splits QOF-QUERY-AND)))
              (qof-query-destroy query)
              (qof-query-destroy q-splits)
              (set! query q-new)))
          
          ;; now that we have built a query, get transactions in the old
-         ;; account group that matches it.
+         ;; account tree that matches it.
          (let ((old-xtns (xaccQueryGetTransactions query QUERY-TXN-MATCH-ALL)))
            (set! old-xtns (map 
                            (lambda (elt)
@@ -156,9 +156,9 @@
              (xaccTransCommitEdit new-xtn)))))
    match-list))
 
-(define (gnc:group-catenate-and-merge old-group new-group)
-  ;; stuff the new accounts into the old group and merge the accounts
-  (xaccGroupConcatGroup old-group new-group)
-  (xaccAccountGroupBeginEdit new-group)
-  (xaccAccountGroupDestroy new-group)
-  (xaccGroupMergeAccounts old-group))
+(define (gnc:account-tree-catenate-and-merge old-root new-root)
+  ;; stuff the new accounts into the old account tree and merge the accounts
+  (gnc-account-join-children old-root new-root)
+  (xaccAccountBeginEdit new-root)
+  (xaccAccountDestroy new-root)
+  (gnc-account-merge-children old-root))

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-parse.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-parse.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-parse.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -219,7 +219,7 @@
 ;           'expire)
 ;          ((grant)
 ;           'grant)
-          ((int intinc aktzu) ;; zinsen
+          ((int intinc) ;; zinsen
            'intinc)
           ((intx intincx)
            'intincx)
@@ -270,7 +270,7 @@
 ;          ((vest) 
 ;           'vest)
           (else
-           (gnc:warning-dialog '()
+           (gnc-warning-dialog '()
             (string-append
              (sprintf #f (_ "The file contains an unknown Action '%s'.")
                       read-value)

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif-to-gnc.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif-to-gnc.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif-to-gnc.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -14,12 +14,12 @@
 
 (define (qif-import:find-or-make-acct acct-info check-types? commodity
 				      check-commodity? default-currency
-                                      gnc-acct-hash old-group new-group)
+                                      gnc-acct-hash old-root new-root)
   (let* ((separator (string-ref (gnc-get-account-separator-string) 0))
          (gnc-name (qif-map-entry:gnc-name acct-info))
          (existing-account (hash-ref gnc-acct-hash gnc-name))
          (same-gnc-account 
-          (xaccGetAccountFromFullName old-group gnc-name))
+          (gnc-account-lookup-by-full-name old-root gnc-name))
          (allowed-types 
           (qif-map-entry:allowed-types acct-info))
          (make-new-acct #f)
@@ -38,12 +38,12 @@
 	     #t))))
     
     (define (make-unique-name-variant long-name short-name)
-      (if (not (null? (xaccGetAccountFromFullName old-group long-name)))
+      (if (not (null? (gnc-account-lookup-by-full-name old-root long-name)))
           (let loop ((count 2))
             (let* ((test-name 
                     (string-append long-name (sprintf #f " %a" count)))
                    (test-acct 
-                    (xaccGetAccountFromFullName old-group test-name)))
+                    (gnc-account-lookup-by-full-name old-root test-name)))
               (if (and (not (null? test-acct)) (not (compatible? test-acct)))
                   (loop (+ 1 count))
                   (string-append short-name (sprintf #f " %a" count)))))
@@ -156,10 +156,10 @@
                 
                 (set! parent-acct (qif-import:find-or-make-acct 
                                    pinfo #t default-currency #f default-currency
-                                   gnc-acct-hash old-group new-group))))
+                                   gnc-acct-hash old-root new-root))))
           (if (and parent-acct (not (null? parent-acct)))
-              (xaccAccountInsertSubAccount parent-acct new-acct)
-              (xaccGroupInsertAccount new-group new-acct))
+              (gnc-account-append-child parent-acct new-acct)
+              (gnc-account-append-child new-root new-acct))
           
           (hash-set! gnc-acct-hash gnc-name new-acct)
           new-acct))))
@@ -178,8 +178,8 @@
                                default-currency-name window)
   (gnc:backtrace-if-exception 
    (lambda ()
-     (let* ((old-group (gnc-get-current-group))
-            (new-group (xaccMallocAccountGroup (gnc-get-current-book)))
+     (let* ((old-root (gnc-get-current-root-account))
+	    (new-root (xaccMallocAccount (gnc-get-current-book)))
             (gnc-acct-hash (make-hash-table 20))
             (separator (string-ref (gnc-get-account-separator-string) 0))
             (default-currency 
@@ -193,7 +193,7 @@
                    (lambda (a b)
                      (> (length (qif-file:xtns a)) 
                         (length (qif-file:xtns b))))))
-            (progress-dialog #f)
+            (progress-dialog '())
             (work-to-do 0)
             (work-done 0))
        
@@ -266,16 +266,16 @@
                    (qif-import:find-or-make-acct acctinfo #f
                                                  security #t default-currency
                                                  gnc-acct-hash 
-                                                 old-group new-group))
+                                                 old-root new-root))
                   ((and security (or stock?
 				     (gnc-commodity-is-currency security)))
                    (qif-import:find-or-make-acct 
                     acctinfo #f security #t default-currency
-                    gnc-acct-hash old-group new-group))
+                    gnc-acct-hash old-root new-root))
                   (#t 
                    (qif-import:find-or-make-acct 
                     acctinfo #f default-currency #t default-currency
-                    gnc-acct-hash old-group new-group)))))
+                    gnc-acct-hash old-root new-root)))))
         sorted-accounts-list)
        
        ;; before trying to mark transactions, prune down the list of 
@@ -356,7 +356,7 @@
        (if (not (null? progress-dialog))
            (gnc-progress-dialog-destroy progress-dialog))
        
-       new-group))))
+       new-root))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; qif-import:qif-xtn-to-gnc-xtn

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/qif.glade
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/qif.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/qif.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -19,6 +19,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -110,6 +111,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -128,6 +131,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="type">label_item</property>
@@ -164,6 +171,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GnomeDruid" id="qif_import_druid">
@@ -217,6 +225,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">5</property>
@@ -311,6 +323,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -323,6 +339,7 @@
 		<widget class="GtkComboBox" id="date_format_combobox">
 		  <property name="visible">True</property>
 		  <property name="items">Dummy Date Entry</property>
+		  <property name="add_tearoffs">False</property>
 		  <property name="focus_on_click">True</property>
 		</widget>
 		<packing>
@@ -345,6 +362,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -389,6 +410,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">4</property>
@@ -416,6 +441,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">4</property>
@@ -463,6 +492,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -510,6 +543,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -535,6 +570,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">3</property>
@@ -602,7 +641,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label830">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">On the next page, the accounts in your QIF files and any stocks or mutual funds you own will be matched with GnuCash accounts. If a GnuCash account already exists with the same name, or a similar name and compatible type, that account will be used as a match; otherwise, GnuCash will create a new account with the same name and type as the QIF account. If you do not like the suggested GnuCash account, click to change it.
+		  <property name="label" translatable="yes">On the next page, the accounts in your QIF files and any stocks or mutual funds you own will be matched with GnuCash accounts. If a GnuCash account already exists with the same name, or a similar name and compatible type, that account will be used as a match; otherwise, GnuCash will create a new account with the same name and type as the QIF account. If you do not like the suggested GnuCash account, double-click to change it.
 
 Note that GnuCash will be creating many accounts that did not exist on your other personal finance program, including a separate account for each stock you own, separate accounts for the brokerage commissions, special &quot;Equity&quot; accounts (subaccounts of Retained Earnings, by default) which are the source of your opening balances, etc. All of these accounts will appear on the next page so you can change them if you want to, but it is safe to leave them alone.
 </property>
@@ -615,6 +654,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -661,6 +704,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -684,6 +729,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">3</property>
@@ -716,7 +765,7 @@
 		  <property name="visible">True</property>
 		  <property name="label" translatable="yes">GnuCash uses separate Income and Expense accounts rather than categories to classify your transactions. Each of the categories in your QIF file will be converted to a GnuCash account. 
 
-On the next page, you will have an opportunity to look at the suggested matches between QIF categories and GnuCash accounts. You may change matches that you do not like by clicking on the line containing the category name.
+On the next page, you will have an opportunity to look at the suggested matches between QIF categories and GnuCash accounts. You may change matches that you do not like by double-clicking on the line containing the category name.
 
 If you change your mind later, you can reorganize the account structure safely within GnuCash.</property>
 		  <property name="use_underline">False</property>
@@ -728,6 +777,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -773,6 +826,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -796,6 +851,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">3</property>
@@ -838,6 +897,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -883,6 +946,8 @@
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
 		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -928,6 +993,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -940,6 +1009,7 @@
 		<widget class="GtkComboBoxEntry" id="currency_comboboxentry">
 		  <property name="visible">True</property>
 		  <property name="items">Dummy currency entry</property>
+		  <property name="add_tearoffs">False</property>
 		  <property name="has_frame">True</property>
 		  <property name="focus_on_click">True</property>
 		</widget>
@@ -963,6 +1033,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1009,6 +1083,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1041,7 +1119,7 @@
 		  <property name="visible">True</property>
 		  <property name="label" translatable="yes">If you are importing a QIF file downloaded from a bank or other financial institution, some of the information in the QIF file may duplicate information already in your GnuCash accounts.  GnuCash will try to detect duplicates of existing transactions.  
 
-On the next page, you will be asked to confirm that an existing transaction matches an imported transaction.  Imported transactions are shown on the left side of the page, and possible  matches for the selected left-hand transaction are shown  to the right.  There may be several old transactions that could match an imported transaction; you will be able to select the correct one by clicking in the &quot;Dup?&quot; column of the correct transaction.
+On the next page, you will be asked to confirm that an existing transaction matches an imported transaction.  Imported transactions are shown on the left side of the page, and possible  matches for the selected left-hand transaction are shown  to the right.  There may be several old transactions that could match an imported transaction; you will be able to select the correct one by double-clicking in the &quot;Dup?&quot; column of the correct transaction.
 
 You can control the rules used by GnuCash to find duplicate transactions in the &quot;QIF Import&quot; section of the GnuCash Preferences dialog.
 
@@ -1055,6 +1133,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -1112,6 +1194,8 @@
 			      <property name="reorderable">False</property>
 			      <property name="enable_search">True</property>
 			      <property name="fixed_height_mode">False</property>
+			      <property name="hover_selection">False</property>
+			      <property name="hover_expand">False</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -1130,6 +1214,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="type">label_item</property>
@@ -1167,6 +1255,8 @@
 			      <property name="reorderable">False</property>
 			      <property name="enable_search">True</property>
 			      <property name="fixed_height_mode">False</property>
+			      <property name="hover_selection">False</property>
+			      <property name="hover_expand">False</property>
 			    </widget>
 			  </child>
 			</widget>
@@ -1185,6 +1275,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="type">label_item</property>
@@ -1240,6 +1334,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkTable" id="prefs_table">
@@ -1263,6 +1358,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>

Modified: gnucash/branches/gda-dev/src/import-export/qif-import/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-import/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-import/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,13 +1,13 @@
 TESTS=test-link
 
-noinst_PROGRAMS=test-link
+check_PROGRAMS=test-link
 
 test_link_SOURCES = \
   test-link.c
 
 test_link_LDADD=../libgncmod-qif-import.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnome/libgncgnome.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnome/libgnc-gnome.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \

Modified: gnucash/branches/gda-dev/src/import-export/qif-io-core/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-io-core/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-io-core/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -44,3 +44,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.import.qif.core\"

Modified: gnucash/branches/gda-dev/src/import-export/qif-io-core/gncmod-qifiocore.c
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-io-core/gncmod-qifiocore.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-io-core/gncmod-qifiocore.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,44 +1,37 @@
 /*********************************************************************
  * gnc-mod-qifiocore.c
  * module definition/initialization for the QIF i/o module
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
-#include <glib.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_qifiocore_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_qifiocore_LTX_gnc_module_current  = 0;
-int libgncmod_qifiocore_LTX_gnc_module_revision = 0;
-int libgncmod_qifiocore_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_qifiocore_LTX_gnc_module_path(void);
-char *libgncmod_qifiocore_LTX_gnc_module_description(void);
-int libgncmod_qifiocore_LTX_gnc_module_init(int refcount);
-int libgncmod_qifiocore_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_qifiocore_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/qif-io/core");
 }
 
-char * 
-libgncmod_qifiocore_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Core components of QIF import/export (non-GUI)");
 }
 
 int
-libgncmod_qifiocore_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
     return FALSE;
@@ -59,6 +52,6 @@
 }
 
 int
-libgncmod_qifiocore_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-acct-table.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-acct-table.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-acct-table.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -43,13 +43,13 @@
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
-;; qif-io:acct-table-make-gnc-group
+;; qif-io:acct-table-make-gnc-acct-tree
 ;; fill in information for the gnucash accounts and organize them
 ;; in a group tree 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define (qif-io:acct-table-make-gnc-group acct-table qif-file commodity)
-  (let ((group (xaccMallocAccountGroup (gnc-get-current-book))))
+(define (qif-io:acct-table-make-gnc-acct-tree acct-table qif-file commodity)
+  (let ((root (xaccMallocAccount (gnc-get-current-book))))
     ;; poke through the qif-file accounts to see if any of them
     ;; show up in the data 
     (let ((qif-acct-table (qif-io:acct-table-accounts acct-table)))
@@ -81,7 +81,7 @@
          (let ((type (xaccAccountGetType acct)))
            (if (= type -1)
                (xaccAccountSetType acct GNC-BANK-TYPE)))
-         (xaccGroupInsertAccount group acct)
+         (gnc-account-append-child root acct)
          #t) #t (qif-io:acct-table-accounts acct-table)))
 
     ;; now the categories 
@@ -116,11 +116,11 @@
          (let ((type (xaccAccountGetType acct)))
            (if (= type -1)
                (xaccAccountSetType acct GNC-EXPENSE-TYPE)))
-         (xaccGroupInsertAccount group acct)
+         (gnc-account-append-child root acct)
          #t) #t (qif-io:acct-table-categories acct-table)))
 
     ;; the securities 
 
     ;; the other brokerage-related accounts
 
-    group))
+    root))

Modified: gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-io-core.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-io-core.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-io-core/qif-io-core.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -85,7 +85,7 @@
 ;; acct-table.scm 
 (export qif-io:acct-table-lookup)
 (export qif-io:acct-table-insert!)
-(export qif-io:acct-table-make-gnc-group)
+(export qif-io:acct-table-make-gnc-acct-tree)
 
 ;; from main
 (export simple-format)

Modified: gnucash/branches/gda-dev/src/import-export/qif-io-core/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-io-core/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-io-core/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,4 +1,4 @@
-LDADD=${top_builddir}/src/gnc-module/libgncmodule.la ${GLIB_LIBS} -lltdl
+LDADD=${top_builddir}/src/gnc-module/libgnc-module.la ${GLIB_LIBS}
 
 AM_CFLAGS = -I${top_srcdir}/src/gnc-module ${GUILE_INCS} ${GLIB_CFLAGS} 
 

Modified: gnucash/branches/gda-dev/src/import-export/qif-io-core/test/test-import-phase-1.scm
===================================================================
--- gnucash/branches/gda-dev/src/import-export/qif-io-core/test/test-import-phase-1.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/qif-io-core/test/test-import-phase-1.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -56,14 +56,14 @@
          (qif-io:invst-xtn-import xtn qiffile acct-table commodity))
        (qif-io:file-invst-xtns qiffile))
 
-      ;; build a gnucash account group
-      (let ((group (qif-io:acct-table-make-gnc-group 
-                    acct-table qiffile commodity)))
+      ;; build a gnucash account tree
+      (let ((root (qif-io:acct-table-make-gnc-acct-tree 
+		   acct-table qiffile commodity)))
         ;; write the file
         (let* ((name (simple-format #f "file:~A.gnc" filename)))
           (simple-format #t "using book name='~A'\n" name)
-          (xaccGroupConcatGroup (xaccGetAccountGroup book) group)
-	  (xaccAccountGroupDestroy group)
+          (gnc-account-join-children (gnc-book-get-root book) root)
+	  (xaccAccountDestroy root)
           (gnc:session-begin session name #t #t)
           (gnc:session-save session)
           (gnc:session-end session)

Modified: gnucash/branches/gda-dev/src/import-export/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/import-export/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/import-export/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -7,10 +7,10 @@
   -I${top_srcdir}/src/import-export \
   ${GUILE_INCS} \
   ${QOF_CFLAGS} \
-  ${GLIB_CFLAGS} 
+  ${GLIB_CFLAGS}
 
 LDADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/test-core/libgncmod-test.la \
   ../libgncmod-generic-import.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
@@ -22,28 +22,22 @@
   test-import-parse
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
   --gnc-module-dir ${top_builddir}/src/import-export \
-  --gnc-module-dir ${top_builddir}/src/calculation \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --gnc-module-dir ${top_srcdir}/src/app-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_builddir}/src/gnome \
+  --guile-load-dir ${top_builddir}/src/engine \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --guile-load-dir ${top_builddir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/import-export
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/backend/file \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils \
+  --library-dir    ${top_builddir}/src/gnome-utils \
+  --library-dir    ${top_builddir}/src/import-export
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
   test-link \
   test-import-parse

Modified: gnucash/branches/gda-dev/src/pixmaps/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/pixmaps/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/pixmaps/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -28,6 +28,7 @@
   gnc-sx-new.png \
   gnc-transfer-16.png \
   gnc-transfer.png \
+  gnucash-icon.ico \
   gnucash-icon.png \
   gnucash_splash.png \
   stock_split_title.png \

Added: gnucash/branches/gda-dev/src/pixmaps/gnucash-icon.ico
===================================================================
(Binary files differ)


Property changes on: gnucash/branches/gda-dev/src/pixmaps/gnucash-icon.ico
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: gnucash/branches/gda-dev/src/quotes/gnc-fq-check.in
===================================================================
--- gnucash/branches/gda-dev/src/quotes/gnc-fq-check.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/quotes/gnc-fq-check.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,7 +41,7 @@
 # non-zero - failure
 
 sub check_modules {
-  my @modules = qw(Finance::Quote LWP HTML::Parser HTML::TableExtract Crypt::SSLeay);
+  my @modules = qw(Finance::Quote LWP HTML::Parser HTML::TableExtract Crypt::SSLeay Date::Manip);
   my @missing;
 
   foreach my $mod (@modules) {

Modified: gnucash/branches/gda-dev/src/quotes/gnc-fq-dump
===================================================================
--- gnucash/branches/gda-dev/src/quotes/gnc-fq-dump	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/quotes/gnc-fq-dump	2007-04-07 16:05:40 UTC (rev 15847)
@@ -21,7 +21,7 @@
 use strict;
 
 sub check_modules {
-  my @modules = qw(Finance::Quote LWP HTML::TableExtract Crypt::SSLeay);
+  my @modules = qw(Finance::Quote LWP HTML::Parser HTML::TableExtract Crypt::SSLeay Date::Manip);
   my @missing;
 
   foreach my $mod (@modules) {

Modified: gnucash/branches/gda-dev/src/quotes/gnc-fq-helper.in
===================================================================
--- gnucash/branches/gda-dev/src/quotes/gnc-fq-helper.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/quotes/gnc-fq-helper.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -361,12 +361,12 @@
     %quote_data = $quoter->fetch($quote_method_name, @$symbols);
   }
 
-  if(!%quote_data) {
+  if (%quote_data) {
+    print schemify_quotes($symbols, \%quote_data);
+  } else {
     print "#f\n";
-    exit 1;
   }
 
-  print schemify_quotes($symbols, \%quote_data);
   STDOUT->flush();
 }
 

Modified: gnucash/branches/gda-dev/src/quotes/gnc-fq-update.in
===================================================================
--- gnucash/branches/gda-dev/src/quotes/gnc-fq-update.in	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/quotes/gnc-fq-update.in	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,6 +39,7 @@
 }
 
 CPAN::Shell->install('LWP');
+CPAN::Shell->install('Date::Manip');
 CPAN::Shell->install('HTML::Parser');
 CPAN::Shell->install('HTML::TableExtract');
 CPAN::Shell->install('Crypt::SSLeay');

Modified: gnucash/branches/gda-dev/src/register/ledger-core/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,14 +23,16 @@
   split-register-model-save.h \
   split-register-p.h
 
+libgncmod_ledger_core_la_LDFLAGS = -avoid-version
+
 libgncmod_ledger_core_la_LIBADD = \
   ${top_builddir}/src/register/register-gnome/libgncmod-register-gnome.la \
   ${top_builddir}/src/register/register-core/libgncmod-register-core.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GLADE_LIBS} \
   ${GCONF_LIBS} \
   ${GUILE_LIBS} \
@@ -52,3 +54,6 @@
   ${GNOME_CFLAGS} \
   ${QOF_CFLAGS} \
   ${GLIB_CFLAGS}
+
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.register.ledger\"

Modified: gnucash/branches/gda-dev/src/register/ledger-core/gnc-ledger-display.c
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/gnc-ledger-display.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/gnc-ledger-display.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -26,7 +26,6 @@
 #include <time.h>
 
 #include "Account.h"
-#include "Group.h"
 #include "Query.h"
 #include "QueryCore.h"
 #include "QueryNew.h"
@@ -311,9 +310,7 @@
       gpointer ret;
       reg_type = GENERAL_LEDGER;
 
-      ret = xaccGroupForEachAccount (xaccAccountGetChildren (leader),
-                                    look_for_portfolio_cb,
-                                    NULL, TRUE);
+      ret = gnc_account_foreach_descendant_until(leader, look_for_portfolio_cb, NULL);
       if (ret) reg_type = PORTFOLIO_LEDGER;
       break;
     }
@@ -404,20 +401,20 @@
 
   /* In lieu of not "mis-using" some portion of the infrastructure by writing
    * a bunch of new code, we just filter out the accounts of the template
-   * transactions.  While these are in a seperate AccountGroup just for this
-   * reason, the query engine makes no distinction between AccountGroups.
+   * transactions.  While these are in a seperate Account trees just for this
+   * reason, the query engine makes no distinction between Account trees.
    * See Gnome Bug 86302.
    *         -- jsled */
   {
-    AccountGroup *tAG;
-    AccountList *al;
+    Account *tRoot;
+    GList *al;
     
-    tAG = gnc_book_get_template_group( gnc_get_current_book() );
-    al = xaccGroupGetSubAccounts( tAG );
+    tRoot = gnc_book_get_template_root( gnc_get_current_book() );
+    al = gnc_account_get_descendants( tRoot );
     xaccQueryAddAccountMatch( query, al, GUID_MATCH_NONE, QUERY_AND );
     g_list_free (al);
     al = NULL;
-    tAG = NULL;
+    tRoot = NULL;
   }
 
   gnc_tm_get_today_start(&tm);
@@ -448,8 +445,7 @@
   Query *q;
   GNCLedgerDisplay *ld;
   SplitRegister *sr;
-  AccountGroup *ag;
-  Account *acct;
+  Account *root, *acct;
   gboolean isTemplateModeTrue;
 
   acct = NULL;
@@ -461,8 +457,8 @@
   xaccQuerySetBook (q, book);
 
   if ( id != NULL ) {
-    ag = gnc_book_get_template_group (book);
-    acct = xaccGetAccountFromName (ag, id);
+    root = gnc_book_get_template_root (book);
+    acct = gnc_account_lookup_by_name(root, id);
     g_assert( acct );
     xaccQueryAddSingleAccountMatch (q, acct, QUERY_AND);
   }
@@ -630,7 +626,7 @@
   leader = gnc_ledger_display_leader (ld);
 
   if (ld->ld_type == LD_SUBACCOUNT)
-    accounts = xaccGroupGetSubAccounts (xaccAccountGetChildren (leader));
+    accounts = gnc_account_get_descendants (leader);
   else
     accounts = NULL;
 

Modified: gnucash/branches/gda-dev/src/register/ledger-core/gncmod-ledger-core.c
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/gncmod-ledger-core.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/gncmod-ledger-core.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,52 +1,47 @@
 /*********************************************************************
  * gncmod-ledgercore.c
  * module definition/initialization for core (gui-independent) ledger
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_ledger_core_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_ledger_core_LTX_gnc_module_current  = 0;
-int libgncmod_ledger_core_LTX_gnc_module_revision = 0;
-int libgncmod_ledger_core_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_ledger_core_LTX_gnc_module_path(void);
-char *libgncmod_ledger_core_LTX_gnc_module_description(void);
-int libgncmod_ledger_core_LTX_gnc_module_init(int refcount);
 
-
 char *
-libgncmod_ledger_core_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/register/ledger-core");
 }
 
-char * 
-libgncmod_ledger_core_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Toolkit-independent GUI for financial ledgers");
 }
 
 int
-libgncmod_ledger_core_LTX_gnc_module_init(int refcount) {
-  if(!gnc_module_load("gnucash/engine", 0)) 
+gnc_module_init(int refcount) {
+  if(!gnc_module_load("gnucash/engine", 0))
   {
     return FALSE;
   }
 
-  if(!gnc_module_load("gnucash/register/register-core", 0)) 
+  if(!gnc_module_load("gnucash/register/register-core", 0))
   {
     return FALSE;
   }
 
-  if(!gnc_module_load("gnucash/app-utils", 0)) 
+  if(!gnc_module_load("gnucash/app-utils", 0))
   {
     return FALSE;
   }

Modified: gnucash/branches/gda-dev/src/register/ledger-core/split-register-control.c
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/split-register-control.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/split-register-control.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
-#include "Group.h"
 #include "Scrub.h"
 #include "combocell.h"
 #include "gnc-component-manager.h"
@@ -53,6 +52,7 @@
     int default_value;
     Account *default_account;
     Account *other_account;
+    Account *root;
     GList *radio_list = NULL;
     const char *title   = _("Rebalance Transaction");
     const char *message = _("The current transaction is not balanced.");
@@ -133,6 +133,7 @@
 
     g_list_free (radio_list);
 
+    root = gnc_account_get_root(default_account);
     switch (choice)
     {
       default:
@@ -140,17 +141,15 @@
         break;
 
       case 1:
-        xaccTransScrubImbalance (trans, gnc_get_current_group (), NULL);
+        xaccTransScrubImbalance (trans, root, NULL);
         break;
 
       case 2:
-        xaccTransScrubImbalance (trans, gnc_get_current_group (),
-                                 default_account);
+        xaccTransScrubImbalance (trans, root, default_account);
         break;
 
       case 3:
-        xaccTransScrubImbalance (trans, gnc_get_current_group (),
-                                 other_account);
+        xaccTransScrubImbalance (trans, root, other_account);
         break;
     }
 

Modified: gnucash/branches/gda-dev/src/register/ledger-core/split-register-load.c
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/split-register-load.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/split-register-load.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -24,7 +24,6 @@
 
 #include "config.h"
 
-#include "Group.h"
 #include "account-quickfill.h"
 #include "combocell.h"
 #include "gnc-component-manager.h"
@@ -579,20 +578,19 @@
 static void
 gnc_split_register_load_xfer_cells (SplitRegister *reg, Account *base_account)
 {
-  AccountGroup *group;
+  Account *root;
   QuickFill *qf;
   ComboCell *cell;
   GtkListStore *store;
 
-  group = xaccAccountGetRoot(base_account);
-  if (group == NULL)
-    group = gnc_get_current_group();
-
-  if (group == NULL)
+  root = gnc_account_get_root(base_account);
+  if (root == NULL)
+    root = gnc_get_current_root_account();
+  if (root == NULL)
     return;
 
-  qf = gnc_get_shared_account_name_quickfill (group, QKEY, skip_cb, NULL);
-  store = gnc_get_shared_account_name_list_store (group, QKEY, skip_cb, NULL);
+  qf = gnc_get_shared_account_name_quickfill (root, QKEY, skip_cb, NULL);
+  store = gnc_get_shared_account_name_list_store (root, QKEY, skip_cb, NULL);
 
   cell = (ComboCell *)
     gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL);

Modified: gnucash/branches/gda-dev/src/register/ledger-core/split-register-model.c
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/split-register-model.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/split-register-model.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -25,7 +25,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
-#include "Group.h"
 #include "datecell.h"
 #include "dialog-utils.h"
 #include "gnc-engine.h"
@@ -83,7 +82,7 @@
     const char *name;
 
     name = gnc_table_layout_get_cell_value (reg->table->layout, XFRM_CELL);
-    account = xaccGetAccountFromFullName (gnc_get_current_group (), name);
+    account = gnc_account_lookup_by_full_name (gnc_get_current_root_account (), name);
   }
 
   if (!account)
@@ -790,7 +789,7 @@
 
   tm = localtime (&tt);
 
-  strftime (string, sizeof (string), "%A %d %B %Y", tm);
+  qof_strftime (string, sizeof (string), "%A %d %B %Y", tm);
 
   return g_strdup (string);
 }
@@ -1903,6 +1902,10 @@
   gnc_gconf_general_register_cb(KEY_NEGATIVE_IN_RED,
 				gnc_split_register_colorize_negative,
 				NULL);
+  /* Get the initial value */
+  use_red_for_negative = gnc_gconf_get_bool(GCONF_GENERAL, 
+                                            KEY_NEGATIVE_IN_RED, 
+                                            NULL);
   return NULL;
 }
 

Modified: gnucash/branches/gda-dev/src/register/ledger-core/split-register-p.h
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/split-register-p.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/split-register-p.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -23,7 +23,6 @@
 #ifndef SPLIT_REGISTER_P_H
 #define SPLIT_REGISTER_P_H
 
-#include "Group.h"
 #include "split-register.h"
 
 

Modified: gnucash/branches/gda-dev/src/register/ledger-core/split-register.c
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/split-register.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/split-register.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1375,7 +1375,7 @@
        // FIXME: For that matter, how could an open pending
        // transaction ever not be the current trans?
        if (xaccTransIsOpen (pending_trans)) {
-           g_message("Impossible? commiting pending %p", pending_trans);
+           g_warning("Impossible? commiting pending %p", pending_trans);
            xaccTransCommitEdit (pending_trans);
        } else if (pending_trans) 
            g_assert_not_reached();
@@ -1504,7 +1504,7 @@
     return NULL;
 
   /* Find the account */
-  account = xaccGetAccountFromFullName (gnc_get_current_group (), name);
+  account = gnc_account_lookup_by_full_name (gnc_get_current_root_account (), name);
 
   if (!account) {
     /* Ask if they want to create a new one. */

Modified: gnucash/branches/gda-dev/src/register/ledger-core/split-register.h
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/split-register.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/split-register.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -135,7 +135,6 @@
 
 #include <glib.h>
 
-#include "Group.h"
 #include "Transaction.h"
 #include "table-allgui.h"
 

Modified: gnucash/branches/gda-dev/src/register/ledger-core/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/register/ledger-core/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/ledger-core/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,6 +1,6 @@
 TESTS =  test-link-module
 
-noinst_PROGRAMS = test-link-module
+check_PROGRAMS = test-link-module
 
 test_link_module_SOURCES=test-link-module.c
 test_link_module_LDADD=../libgncmod-ledger-core.la

Modified: gnucash/branches/gda-dev/src/register/register-core/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/register/register-core/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-core/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,10 +1,11 @@
 SUBDIRS = . test
-PWD := $(shell pwd)
 
 pkglib_LTLIBRARIES = libgncmod-register-core.la
 
+libgncmod_register_core_la_LDFLAGS = -avoid-version
+
 libgncmod_register_core_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
@@ -63,3 +64,5 @@
   ${GLIB_CFLAGS}
 
 CLEANFILES = $(BUILT_SOURCES)
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.register.core\"

Modified: gnucash/branches/gda-dev/src/register/register-core/formulacell.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-core/formulacell.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-core/formulacell.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,7 +31,8 @@
 #include "basiccell.h"
 #include "formulacell.h"
 
-static QofLogModule log_module = GNC_MOD_SX;
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "gnc.register.core.formulacell"
 
 static void gnc_formula_cell_init( FormulaCell *fc );
 
@@ -82,7 +83,7 @@
 gnc_formula_cell_set_value( FormulaCell *fc,
                             const char *newVal )
 {
-  DEBUG( "Got value \"%s\"", newVal );
+  g_debug("got value [%s]", newVal);
   gnc_formula_cell_set_value_internal( &fc->cell, newVal );
 }
 
@@ -93,7 +94,7 @@
                         int *start_selection,
                         int *end_selection )
 {
-  DEBUG( "%d, %d, %d", *cursor_position, *start_selection, *end_selection );
+  g_debug("%d, %d, %d", *cursor_position, *start_selection, *end_selection);
   *cursor_position = -1;
   *start_selection = 0;
   *end_selection   = -1;
@@ -140,9 +141,9 @@
   const char *c;
   gunichar uc;
 
-  DEBUG( "%s, %d, %s, %d, %d, %d, %d",
-         (gchar *)change, change_len, (gchar *)newval, newval_len,
-         *cursor_position, *start_selection, *end_selection );
+  g_debug("%s, %d, %s, %d, %d, %d, %d",
+          (gchar *)change, change_len, (gchar *)newval, newval_len,
+          *cursor_position, *start_selection, *end_selection);
 
   /* accept the newval string if user action was delete */
   if (change == NULL)
@@ -184,6 +185,6 @@
                                      const char *str )
 {
   FormulaCell *fc = (FormulaCell*)_cell;
-  DEBUG( "internal string: %s", str );
+  g_debug("internal string: [%s]", str);
   gnc_basic_cell_set_value_internal( &fc->cell, str );
 }

Modified: gnucash/branches/gda-dev/src/register/register-core/gncmod-register-core.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-core/gncmod-register-core.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-core/gncmod-register-core.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,52 +1,47 @@
 /*********************************************************************
  * gncmod-registercore.c
  * module definition/initialization for core (gui-independent) register
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_register_core_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_register_core_LTX_gnc_module_current  = 0;
-int libgncmod_register_core_LTX_gnc_module_revision = 0;
-int libgncmod_register_core_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_register_core_LTX_gnc_module_path(void);
-char *libgncmod_register_core_LTX_gnc_module_description(void);
-int libgncmod_register_core_LTX_gnc_module_init(int refcount);
 
-
 char *
-libgncmod_register_core_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/register/register-core");
 }
 
-char * 
-libgncmod_register_core_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Toolkit-independent GUI for ledger-like table displays");
 }
 
 int
-libgncmod_register_core_LTX_gnc_module_init(int refcount)
+gnc_module_init(int refcount)
 {
-  if(!gnc_module_load("gnucash/engine", 0)) 
+  if(!gnc_module_load("gnucash/engine", 0))
   {
     return FALSE;
   }
 
   /* FIXME. We need this for the wide-character functions.
    * When fixing, get rid of gnome-utils includes, too. */
-  if(!gnc_module_load("gnucash/gnome-utils", 0)) 
+  if(!gnc_module_load("gnucash/gnome-utils", 0))
   {
     return FALSE;
   }

Modified: gnucash/branches/gda-dev/src/register/register-core/table-allgui.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-core/table-allgui.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-core/table-allgui.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -821,7 +821,6 @@
     }
 
     LEAVE("out of bounds\n");
-
     return;
   }
 
@@ -1091,11 +1090,17 @@
   /* OK, if there is a callback for this cell, call it */
   cell = gnc_cellblock_get_cell (cb, cell_row, cell_col);
   if (!cell)
-    return FALSE;
-
+  {
+       LEAVE("no cell");
+       return FALSE;
+  }
+    
   io_flags = gnc_table_get_io_flags (table, virt_loc);
   if (io_flags == XACC_CELL_ALLOW_READ_ONLY)
-    return FALSE;
+  {
+       LEAVE("read only cell");
+       return FALSE;
+  }
 
   enter = cell->enter_cell;
 
@@ -1127,7 +1132,6 @@
     table->gui_handlers.redraw_help (table);
 
   LEAVE("return %d\n", can_edit);
-
   return can_edit;
 }
 
@@ -1156,7 +1160,10 @@
   /* OK, if there is a callback for this cell, call it */
   cell = gnc_cellblock_get_cell (cb, cell_row, cell_col);
   if (!cell)
-    return;
+  {
+       LEAVE("no cell");
+       return;
+  }
 
   leave = cell->leave_cell;
 
@@ -1180,6 +1187,7 @@
 
     g_free (old_value);
   }
+  LEAVE("");
 }
 
 gboolean
@@ -1244,6 +1252,7 @@
     if (cancelled)
       *cancelled = TRUE;
 
+    LEAVE("change cancelled");
     return NULL;
   }
 
@@ -1253,15 +1262,20 @@
   /* OK, if there is a callback for this cell, call it */
   cell = gnc_cellblock_get_cell (cb, cell_row, cell_col);
   if (!cell)
-    return NULL;
+  {
+       LEAVE("no cell");
+       return NULL;
+  }
 
   mv = cell->modify_verify;
 
   old_value = g_strdup (cell->value);
 
   if (mv)
+  {
     mv (cell, change, change_len, newval, newval_len,
         cursor_position, start_selection, end_selection);
+  }
   else
   {
     gnc_basic_cell_set_value (cell, newval);
@@ -1327,7 +1341,10 @@
   ENTER ("\n");
 
   if (cell->direct_update == NULL)
+  {
+    LEAVE("no direct update");
     return FALSE;
+  }
 
   old_value = g_strdup (cell->value);
 
@@ -1356,6 +1373,7 @@
   if (table->gui_handlers.redraw_help)
     table->gui_handlers.redraw_help (table);
 
+  LEAVE("");
   return result;
 }
 
@@ -1704,6 +1722,7 @@
     PERR("destination (%d, %d) out of bounds (%d, %d)\n",
          dest_loc->vcell_loc.virt_row, dest_loc->vcell_loc.virt_col,
          table->num_virt_rows, table->num_virt_cols);
+    LEAVE("");
     return TRUE;
   }
 
@@ -1761,13 +1780,19 @@
       }
 
       if (!gnc_table_virtual_loc_valid(table, *dest_loc, FALSE))
-	return TRUE;
+      {
+           LEAVE("");
+           return TRUE;
+      }
 
       break;
 
     case GNC_TABLE_TRAVERSE_POINTER:
       if (!gnc_table_find_valid_cell_horiz(table, dest_loc, TRUE))
-        return TRUE;
+      {
+           LEAVE("");
+           return TRUE;
+      }
 
       break;
 

Modified: gnucash/branches/gda-dev/src/register/register-core/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/register/register-core/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-core/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,13 +2,13 @@
   test-link-module
 #  test-load-module
 
-TESTS_ENVIRONMENT= \
-   GNC_MODULE_PATH=../../engine:../../gnc-module:../../calculation:.. \
-   GUILE_LOAD_PATH=../../engine:..:../../gnc-module:${top_srcdir}/lib \
-   LTDL_LIBRARY_PATH=.. \
-   LD_LIBRARY_PATH=${top_builddir}/src/gnc-module:${top_builddir}/src/gnc-module/.libs:${top_builddir}/src/engine:${top_builddir}/src/engine/.libs:${top_builddir}/src/calculation:${top_builddir}/src/calculation/.libs:${top_builddir}/src/network-utils:${top_builddir}/src/network-utils/.libs
+#GNC_TEST_DEPS := \
+#
 
-noinst_PROGRAMS = \
+#TESTS_ENVIRONMENT := \
+#  $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+
+check_PROGRAMS = \
   test-link-module
 
 test_link_module_SOURCES=test-link-module.c

Modified: gnucash/branches/gda-dev/src/register/register-gnome/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,10 +2,12 @@
 
 pkglib_LTLIBRARIES = libgncmod-register-gnome.la
 
+libgncmod_register_gnome_la_LDFLAGS = -avoid-version
+
 libgncmod_register_gnome_la_LIBADD = \
   ${top_builddir}/src/register/register-core/libgncmod-register-core.la \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
@@ -63,3 +65,5 @@
   ${GTK_XIM_FLAGS} \
   ${QOF_CFLAGS} \
   ${GNOME_CFLAGS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.register.gnome\"

Modified: gnucash/branches/gda-dev/src/register/register-gnome/datecell-gnome.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/datecell-gnome.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/datecell-gnome.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -46,7 +46,7 @@
 #include "gnucash-sheet.h"
 
 
-#define DATE_BUF 30
+#define DATE_BUF (MAX_DATE_LENGTH+1)
 
 typedef struct _PopBox
 {

Modified: gnucash/branches/gda-dev/src/register/register-gnome/gncmod-register-gnome.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/gncmod-register-gnome.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/gncmod-register-gnome.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,13 +1,13 @@
 /*********************************************************************
  * gncmod-register-gnome.c
  * module definition/initialization for Gnome parts of register
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
 
-#include <glib.h>
+#include <gmodule.h>
 
 #include "combocell.h"
 #include "datecell.h"
@@ -20,31 +20,26 @@
 #include "table-gnome.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_register_gnome_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_register_gnome_LTX_gnc_module_current  = 0;
-int libgncmod_register_gnome_LTX_gnc_module_revision = 0;
-int libgncmod_register_gnome_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_register_gnome_LTX_gnc_module_path(void);
-char *libgncmod_register_gnome_LTX_gnc_module_description(void);
-int libgncmod_register_gnome_LTX_gnc_module_init(int refcount);
 
-
 char *
-libgncmod_register_gnome_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/register/register-gnome");
 }
 
-char * 
-libgncmod_register_gnome_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Gnome GUI for ledger-like table displays");
 }
 
 int
-libgncmod_register_gnome_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   if(!gnc_module_load("gnucash/register/register-core", 0)) {
     return FALSE;
   }
@@ -53,7 +48,7 @@
     return FALSE;
   }
 
-  if (refcount == 0) 
+  if (refcount == 0)
   {
     gnc_register_add_cell_type (COMBO_CELL_TYPE_NAME, gnc_combo_cell_new);
 

Modified: gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -160,10 +160,10 @@
   date_picker_class->key_press_event = NULL;
 }
 
-GtkType
+GType
 gnc_date_picker_get_type (void)
 {
-  static GtkType gnc_date_picker_type = 0;
+  static GType gnc_date_picker_type = 0;
 
   if (gnc_date_picker_type == 0)
   {

Modified: gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.h
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/gnucash-date-picker.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -38,7 +38,7 @@
 } GNCDatePicker;
 
 
-GtkType gnc_date_picker_get_type (void);
+GType gnc_date_picker_get_type (void);
 
 GnomeCanvasItem *gnc_date_picker_new (GnomeCanvasGroup *parent);
 

Modified: gnucash/branches/gda-dev/src/register/register-gnome/gnucash-item-list.c
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/gnucash-item-list.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/gnucash-item-list.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -35,7 +35,6 @@
 #include "gnc-engine.h"
 #include "gnucash-item-list.h"
 #include "gnucash-scrolled-window.h"
-#include "gtk-compat.h"
 
 /* Item list signals */
 enum {

Modified: gnucash/branches/gda-dev/src/register/register-gnome/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/register/register-gnome/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/register/register-gnome/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -2,22 +2,21 @@
   test-link-module
 #  test-load-module
 
-TESTS_ENVIRONMENT= \
-   GNC_MODULE_PATH=../../engine:../../gnc-module:../../calculation:.. \
-   GUILE_LOAD_PATH=../../engine:..:../../gnc-module:${top_srcdir}/lib \
-   LTDL_LIBRARY_PATH=.. \
-   LD_LIBRARY_PATH=${top_builddir}/src/gnc-module:${top_builddir}/src/gnc-module/.libs:${top_builddir}/src/engine:${top_builddir}/src/engine/.libs:${top_builddir}/src/calculation:${top_builddir}/src/calculation/.libs:${top_builddir}/src/network-utils:${top_builddir}/src/network-utils/.libs
+#GNC_TEST_DEPS := \
+#
 
-noinst_PROGRAMS = \
+#TESTS_ENVIRONMENT := \
+#  $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+
+check_PROGRAMS = \
   test-link-module
 
 test_link_module_SOURCES = test-link-module.c
 test_link_module_LDADD = \
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
-  ../libgncmod-register-gnome.la 
+  ../libgncmod-register-gnome.la
 
 #EXTRA_DIST = test-load-module
 
-AM_CFLAGS = -I${top_srcdir}/src/test-core -I.. ${GLIB_CFLAGS} 
-
+AM_CFLAGS = -I${top_srcdir}/src/test-core -I.. ${GLIB_CFLAGS}

Modified: gnucash/branches/gda-dev/src/report/locale-specific/us/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/locale-specific/us/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/locale-specific/us/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,8 +5,10 @@
 libgncmod_locale_reports_us_la_SOURCES = \
   gncmod-locale-reports-us.c 
 
+libgncmod_locale_reports_us_la_LDFLAGS = -avoid-version
+
 libgncmod_locale_reports_us_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GUILE_LIBS} \
   ${GLIB_LIBS} 
 
@@ -55,3 +57,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.report.locale.us\"

Modified: gnucash/branches/gda-dev/src/report/locale-specific/us/gncmod-locale-reports-us.c
===================================================================
--- gnucash/branches/gda-dev/src/report/locale-specific/us/gncmod-locale-reports-us.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/locale-specific/us/gncmod-locale-reports-us.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,37 +1,28 @@
 /*********************************************************************
  * gncmod-locale-reports-us.c
  * module definition/initialization for the US reports
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
-#include <glib.h>
-#include <locale.h>
-#include <string.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_locale_reports_us_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_locale_reports_us_LTX_gnc_module_current  = 0;
-int libgncmod_locale_reports_us_LTX_gnc_module_revision = 0;
-int libgncmod_locale_reports_us_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_locale_reports_us_LTX_gnc_module_path(void);
-char *libgncmod_locale_reports_us_LTX_gnc_module_description(void);
-int libgncmod_locale_reports_us_LTX_gnc_module_init(int refcount);
-int libgncmod_locale_reports_us_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_locale_reports_us_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   /* const char *thislocale = setlocale(LC_ALL, NULL);
   if (strncmp(thislocale, "de_DE", 5) == 0)
     return g_strdup("gnucash/report/locale-specific/de_DE");
@@ -39,13 +30,13 @@
   return g_strdup("gnucash/report/locale-specific/us");
 }
 
-char * 
-libgncmod_locale_reports_us_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("US income tax reports and related material");
 }
 
 int
-libgncmod_locale_reports_us_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the tax info */
 #ifdef LOCALE_SPECIFIC_TAX
   const char *thislocale = setlocale(LC_ALL, NULL);
@@ -56,10 +47,10 @@
 #else
   gboolean is_de_DE = FALSE;
 #endif /* LOCALE_SPECIFIC_TAX */
-  const char *tax_module = is_de_DE ? 
-    "gnucash/tax/de_DE" : 
+  const char *tax_module = is_de_DE ?
+    "gnucash/tax/de_DE" :
     "gnucash/tax/us";
-  const char *report_taxtxf = is_de_DE ? 
+  const char *report_taxtxf = is_de_DE ?
     "(use-modules (gnucash report taxtxf-de_DE))" :
     "(use-modules (gnucash report taxtxf))";
   const char *report_locale = is_de_DE ?
@@ -78,14 +69,14 @@
   }
 
   /* load the report generation scheme code */
-  if(scm_c_eval_string(report_taxtxf) 
+  if(scm_c_eval_string(report_taxtxf)
      == SCM_BOOL_F) {
-    printf("failed to load %s\n", report_taxtxf);
+    g_warning("failed to load %s\n", report_taxtxf);
     return FALSE;
   }
 
   /* Load the module scheme code */
-  if(scm_c_eval_string(report_locale) 
+  if(scm_c_eval_string(report_locale)
      == SCM_BOOL_F) {
     return FALSE;
   }
@@ -94,6 +85,6 @@
 }
 
 int
-libgncmod_locale_reports_us_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf-de_DE.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf-de_DE.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf-de_DE.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -315,8 +315,7 @@
 	       (payer-src (gnc:account-get-txf-payer-source account))
                (account-name (let* ((named-acct
 				    (if (eq? payer-src 'parent)
-					(xaccGroupGetParentAccount
-					 (xaccAccountGetParent account))
+					(gnc-account-get-parent account)
 					account))
 				    (name (xaccAccountGetName named-acct)))
 			       (if name
@@ -434,9 +433,7 @@
             (if (xaccAccountGetTaxRelated a)
                 #t
                 ;; check children
-                (if (null? (validate
-                            (xaccGroupGetSubAccountsSorted
-                             (xaccAccountGetChildren a))))
+                (if (null? (validate (gnc-account-get-descendants a)))
                     #f
                     #t)))
           accounts))
@@ -454,15 +451,14 @@
 
   ;; the number of account generations: children, grandchildren etc.
   (define (num-generations account gen)
-    (let ((children (xaccAccountGetChildren account)))
-      (if (eq? (xaccGroupGetNumAccounts children) 0)
-          (if (and (xaccAccountGetTaxRelated account)
-                   (txf-special-split? (gnc:account-get-txf-code account)))
-              (+ gen 1)		; Est Fed Tax has a extra generation
-              gen)	       		; no kids, return input
-          (apply max (gnc:group-map-accounts
-                      (lambda (x) (num-generations x (+ 1 gen)))
-                      children)))))
+    (if (eq? (gnc-account-n-children account) 0)
+	(if (and (xaccAccountGetTaxRelated account)
+		 (txf-special-split? (gnc:account-get-txf-code account)))
+	    (+ gen 1)		; Est Fed Tax has a extra generation
+	    gen)	       		; no kids, return input
+	(apply max (gnc:account-map-children
+		    (lambda (x) (num-generations x (+ 1 gen)))
+		    account))))
 
   (gnc:report-starting reportname)
   (let* ((from-value (gnc:date-option-absolute-time 
@@ -482,8 +478,8 @@
          (selected-accounts (if (not (null? user-sel-accnts))
                                 valid-user-sel-accnts
                                 (validate (reverse 
-                                           (xaccGroupGetAccountListSorted
-                                            (gnc-get-current-group))))))
+                                           (gnc-account-get-children-sorted
+                                            (gnc-get-current-root-account))))))
          (generations (if (pair? selected-accounts)
                           (apply max (map (lambda (x) (num-generations x 1))
                                           selected-accounts))
@@ -643,7 +639,7 @@
 	    (for-each (lambda (x)
 		   (if (gnc:account-is-inc-exp? x)
 		       (set! sum (+ sum (+ 1 (count-accounts (+ 1 level)
-							     (gnc:account-get-immediate-subaccounts x)))))
+							     (gnc-account-get-children x)))))
 		       0))
 		 accounts)
 	    sum)
@@ -656,7 +652,7 @@
 					    (/ work-done work-to-do)
 					    1)))
         (if (gnc:account-is-inc-exp? account)
-            (let* ((children (xaccAccountGetChildren account))
+            (let* ((children (gnc-account-get-children-sorted account))
                    (to-special #f)	; clear special-splits-period
                    (from-special #f)
                    (childrens-output 
@@ -679,8 +675,7 @@
                                (if (>= max-level (+ 1 level))
                                    (handle-level-x-account (+ 1 level) x)
                                    '()))
-                             (reverse 
-                              (xaccGroupGetAccountListSorted children)))))
+                             (reverse children))))
 
                    (account-balance 
                     (if (xaccAccountGetTaxRelated account)

Modified: gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/locale-specific/us/taxtxf.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -290,8 +290,7 @@
                (payer-src (gnc:account-get-txf-payer-source account))
                (account-name (let* ((named-acct
 				    (if (eq? payer-src 'parent)
-					(xaccGroupGetParentAccount
-					 (xaccAccountGetParent account))
+					(gnc-account-get-parent account)
 					account))
 				    (name (xaccAccountGetName named-acct)))
 			       (if name
@@ -411,9 +410,7 @@
             (if (xaccAccountGetTaxRelated a)
                 #t
                 ;; check children
-                (if (null? (validate
-                            (xaccGroupGetSubAccountsSorted
-                             (xaccAccountGetChildren a))))
+                (if (null? (validate (gnc-account-get-descendants a)))
                     #f
                     #t)))
           accounts))
@@ -431,15 +428,14 @@
 
   ;; the number of account generations: children, grandchildren etc.
   (define (num-generations account gen)
-    (let ((children (xaccAccountGetChildren account)))
-      (if (eq? (xaccGroupGetNumAccounts children) 0)
-          (if (and (xaccAccountGetTaxRelated account)
-                   (txf-special-split? (gnc:account-get-txf-code account)))
-              (+ gen 1)		; Est Fed Tax has a extra generation
-              gen)	       		; no kids, return input
-          (apply max (gnc:group-map-accounts
-                      (lambda (x) (num-generations x (+ 1 gen)))
-                      children)))))
+    (if (eq? (gnc-account-n-children account) 0)
+	(if (and (xaccAccountGetTaxRelated account)
+		 (txf-special-split? (gnc:account-get-txf-code account)))
+	    (+ gen 1)		; Est Fed Tax has a extra generation
+	    gen)	       		; no kids, return input
+	(apply max (gnc:account-map-children
+		    (lambda (x) (num-generations x (+ 1 gen)))
+		    account))))
 
   (gnc:report-starting reportname)
   (let* ((from-value (gnc:date-option-absolute-time 
@@ -459,8 +455,8 @@
          (selected-accounts (if (not (null? user-sel-accnts))
                                 valid-user-sel-accnts
                                 (validate (reverse 
-                                           (xaccGroupGetAccountListSorted
-                                            (gnc-get-current-group))))))
+                                           (gnc-account-get-children-sorted
+                                            (gnc-get-current-root-account))))))
          (generations (if (pair? selected-accounts)
                           (apply max (map (lambda (x) (num-generations x 1))
                                           selected-accounts))
@@ -620,7 +616,7 @@
 	    (for-each (lambda (x)
 		   (if (gnc:account-is-inc-exp? x)
 		       (set! sum (+ sum (+ 1 (count-accounts (+ 1 level)
-							     (gnc:account-get-immediate-subaccounts x)))))
+							     (gnc-account-get-children x)))))
 		       0))
 		 accounts)
 	    sum)
@@ -633,7 +629,7 @@
 					    (/ work-done work-to-do)
 					    1)))
         (if (gnc:account-is-inc-exp? account)
-            (let* ((children (xaccAccountGetChildren account))
+            (let* ((children (gnc-account-get-children-sorted account))
                    (to-special #f)	; clear special-splits-period
                    (from-special #f)
                    (childrens-output 
@@ -656,8 +652,7 @@
                                (if (>= max-level (+ 1 level))
                                    (handle-level-x-account (+ 1 level) x)
                                    '()))
-                             (reverse 
-                              (xaccGroupGetAccountListSorted children)))))
+                             (reverse children))))
 
                    (account-balance 
                     (if (xaccAccountGetTaxRelated account)

Modified: gnucash/branches/gda-dev/src/report/locale-specific/us/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/locale-specific/us/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/locale-specific/us/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,36 +1,26 @@
-TESTS = test-load-module test-link-module 
+TESTS = test-load-module test-link-module
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/calculation \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
   --gnc-module-dir ${top_builddir}/src/tax/us \
   --gnc-module-dir ${top_builddir}/src/report/report-system \
   --gnc-module-dir ${top_builddir}/src/report/locale-specific/us \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/scm \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/tax/us \
-  --guile-load-dir ${top_srcdir}/src/report/report-system \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome \
-  --library-dir    ${top_srcdir}/src/gnome-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
+  --guile-load-dir ${top_builddir}/src/tax/us \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --library-dir    ${top_srcdir}/src/gnome
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
 EXTRA_DIST = test-load-module
 
-noinst_PROGRAMS = test-link-module
+check_PROGRAMS = test-link-module
 
 testit:
 	${TESTS_ENVIRONMENT} gdb guile

Modified: gnucash/branches/gda-dev/src/report/report-gnome/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,12 +1,10 @@
-SUBDIRS = .
-# test -- removed 'test' from SUBDIRS by jsled 2004.05.02 .. I don't know how
-# to get the test-link-mumble to link correctly; plz assist.
-PWD := $(shell pwd)
+SUBDIRS = . test
 
 pkglib_LTLIBRARIES = libgncmod-report-gnome.la
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
+  -I${top_builddir}/src \
   -I${top_srcdir}/src/core-utils \
   -I${top_srcdir}/src/gnc-module \
   -I${top_srcdir}/src/engine \
@@ -17,7 +15,6 @@
   ${GLADE_CFLAGS} \
   ${GUILE_INCS} \
   ${GTKHTML_CFLAGS} \
-  ${GNOME_PRINT_CFLAGS} \
   ${GNOME_CFLAGS} \
   ${QOF_CFLAGS} \
   ${GLIB_CFLAGS}
@@ -37,21 +34,22 @@
   gnc-plugin-page-report.h \
   window-report.h
 
+libgncmod_report_gnome_la_LDFLAGS = -avoid-version
+
 libgncmod_report_gnome_la_LIBADD = \
-  ${top_builddir}/src/core-utils/libcore-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/core-utils/libgnc-core-utils.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/report/report-system/libgncmod-report-system.la \
   ${GLADE_LIBS} \
   ${GUILE_LIBS} \
-  ${GNOME_PRINT_LIBS} \
   ${GNOME_LIBS} \
   ${QOF_LIBS} \
   ${GLIB_LIBS}
 
 if BUILDING_FROM_SVN
-swig-report-gnome.c: report-gnome.i
+swig-report-gnome.c: report-gnome.i ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -95,3 +93,5 @@
 
 CLEANFILES = gnucash report .scm-links ${SCM_FILE_LINKS}
 MAINTAINERCLEANFILES = swig-report-gnome.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.report.gui\"

Modified: gnucash/branches/gda-dev/src/report/report-gnome/gnc-plugin-page-report.c
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/gnc-plugin-page-report.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/gnc-plugin-page-report.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -41,10 +41,7 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-#include "gtk-compat.h"
-#ifndef HAVE_GLIB26
-#include "gkeyfile.h"
-#endif
+#include <glib/gstdio.h>
 #include <libguile.h>
 #include <sys/stat.h>
 #include <errno.h>
@@ -319,6 +316,8 @@
         char * url_location = NULL;
         char * url_label = NULL;
 
+	ENTER("page %p", page);
+
         report = GNC_PLUGIN_PAGE_REPORT(page);
         priv = GNC_PLUGIN_PAGE_REPORT_GET_PRIVATE(report);
 
@@ -347,7 +346,9 @@
         child_name = gnc_build_url( URL_TYPE_REPORT, id_name, NULL );
         type = gnc_html_parse_url( priv->html, child_name, &url_location, &url_label);
         DEBUG( "passing id_name=[%s] child_name=[%s] type=[%s], location=[%s], label=[%s]",
-               id_name, child_name, type, url_location, url_label );
+               id_name, child_name ? child_name : "(null)",
+               type ? type : "(null)", url_location ? url_location : "(null)",
+               url_label ? url_label : "(null)" );
 
         gnc_window_set_progressbar_window( GNC_WINDOW(page->window) );
         gnc_html_show_url(priv->html, type, url_location, url_label, 0);
@@ -358,6 +359,8 @@
   
         gtk_widget_show_all( GTK_WIDGET(priv->container) );
 
+	LEAVE("container %p", priv->container);
+
         return GTK_WIDGET( priv->container );
 }
 
@@ -431,7 +434,8 @@
         SCM  inst_report;
 
         ENTER( "load_cb: type=[%s], location=[%s], label=[%s]",
-               type, location, label );
+               type ? type : "(null)", location ? location : "(null)",
+               label ? label : "(null)" );
 
         /* we get this callback if a new report is requested to be loaded OR
          * if any URL is clicked.  If an options URL is clicked, we want to
@@ -453,6 +457,7 @@
                 if (inst_report != SCM_BOOL_F) {
                         gnc_plugin_page_report_add_edited_report(priv, inst_report);
                 }
+                LEAVE("");
                 return;
         } else {
                 LEAVE( " unknown URL type [%s] location [%s]", type, location );
@@ -644,8 +649,8 @@
 
 /** The key name used it the state file for storing the report
  *  options. */
-#define SCHEME_OPTIONS   "Scheme Options"
-#define SCHEME_OPTIONS_N "Scheme Options %d"
+#define SCHEME_OPTIONS   "SchemeOptions"
+#define SCHEME_OPTIONS_N "SchemeOptions%d"
 
 
 /** Save enough information about this report page that it can be
@@ -834,7 +839,8 @@
   /* Is this a redundant call? */
   old_name = gnc_option_db_lookup_string_option(priv->cur_odb, "General",
 						"Report name", NULL);
-  DEBUG("Comparing old name '%s' to new name '%s'", old_name, name);
+  DEBUG("Comparing old name '%s' to new name '%s'",
+	old_name ? old_name : "(null)", name);
   if (old_name && (strcmp(old_name, name) == 0)) {
     LEAVE("no change");
     return;
@@ -1308,7 +1314,7 @@
         if (!filepath)
                 return NULL;
 
-        rc = stat (filepath, &statbuf);
+        rc = g_stat (filepath, &statbuf);
 
         /* Check for an error that isn't a non-existant file. */
         if (rc != 0 && errno != ENOENT)

Modified: gnucash/branches/gda-dev/src/report/report-gnome/gncmod-report-gnome.c
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/gncmod-report-gnome.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/gncmod-report-gnome.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,16 +1,16 @@
 /*********************************************************************
  * gncmod-report-gnome.c
- * module definition/initialization for the gnome report infrastructure 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the gnome report infrastructure
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 
+#include <gmodule.h>
 #include <gtk/gtk.h>
-#include <stdio.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -19,28 +19,22 @@
 #include "window-report.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_report_gnome_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_report_gnome_LTX_gnc_module_current  = 0;
-int libgncmod_report_gnome_LTX_gnc_module_revision = 0;
-int libgncmod_report_gnome_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_report_gnome_LTX_gnc_module_path(void);
-char *libgncmod_report_gnome_LTX_gnc_module_description(void);
-int libgncmod_report_gnome_LTX_gnc_module_init(int refcount);
-int libgncmod_report_gnome_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_report_gnome_LTX_gnc_module_path(void)
+gnc_module_path(void)
 {
   return g_strdup("gnucash/report/report-gnome");
 }
 
-char * 
-libgncmod_report_gnome_LTX_gnc_module_description(void)
+char *
+gnc_module_description(void)
 {
   return g_strdup("Gnome component of GnuCash report generation system");
 }
@@ -55,7 +49,7 @@
 extern SCM scm_init_sw_report_gnome_module(void);
 
 int
-libgncmod_report_gnome_LTX_gnc_module_init(int refcount)
+gnc_module_init(int refcount)
 {
   if(!gnc_module_load("gnucash/app-utils", 0)) {
     return FALSE;
@@ -80,7 +74,7 @@
 }
 
 int
-libgncmod_report_gnome_LTX_gnc_module_end(int refcount)
+gnc_module_end(int refcount)
 {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/report/report-gnome/report.glade
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/report.glade	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/report.glade	2007-04-07 16:05:40 UTC (rev 15847)
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -76,6 +77,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -107,6 +112,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">name_entry</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -132,6 +141,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">template_combobox</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -169,6 +182,7 @@
 	    <widget class="GtkComboBox" id="template_combobox">
 	      <property name="visible">True</property>
 	      <property name="items">Dummy Entry</property>
+	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
 	    </widget>
 	    <packing>
@@ -205,6 +219,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
 
   <child>
     <widget class="GtkTable" id="view_contents_table">
@@ -232,6 +247,8 @@
 	      <property name="reorderable">False</property>
 	      <property name="enable_search">True</property>
 	      <property name="fixed_height_mode">False</property>
+	      <property name="hover_selection">False</property>
+	      <property name="hover_expand">False</property>
 	    </widget>
 	  </child>
 	</widget>
@@ -257,6 +274,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">available_view</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">0</property>
@@ -282,6 +303,10 @@
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
 	  <property name="mnemonic_widget">contents_view</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="left_attach">2</property>
@@ -312,6 +337,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -367,6 +396,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -422,6 +455,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -460,6 +497,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -495,6 +536,8 @@
 	      <property name="reorderable">False</property>
 	      <property name="enable_search">True</property>
 	      <property name="fixed_height_mode">False</property>
+	      <property name="hover_selection">False</property>
+	      <property name="hover_expand">False</property>
 	    </widget>
 	  </child>
 	</widget>
@@ -524,6 +567,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -595,6 +639,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -664,6 +712,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">row_spin</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -689,6 +741,10 @@
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
 	      <property name="mnemonic_widget">col_spin</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -723,6 +779,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
   <signal name="response" handler="gnc_options_dialog_response_cb" last_modification_time="Sun, 17 Aug 2003 21:50:36 GMT"/>
 
@@ -782,6 +839,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -820,6 +881,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 		      </child>
 		    </widget>
@@ -892,6 +957,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -948,6 +1017,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -1018,6 +1088,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1097,6 +1171,8 @@
 	      <property name="reorderable">False</property>
 	      <property name="enable_search">False</property>
 	      <property name="fixed_height_mode">False</property>
+	      <property name="hover_selection">False</property>
+	      <property name="hover_expand">False</property>
 	    </widget>
 	  </child>
 	</widget>

Modified: gnucash/branches/gda-dev/src/report/report-gnome/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,33 +1,28 @@
 TESTS = \
   test-link-module \
-  test-load-module 
+  test-load-module
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_builddir}/src/scm \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/app-utils \
-  --gnc-module-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/report/report-system \
   --gnc-module-dir ${top_builddir}/src/report/report-gnome \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/report/report-system \
-  --guile-load-dir ${top_srcdir}/src/gnome-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome \
-  --library-dir    ${top_srcdir}/src/gnome-utils \
-  --library-dir    ${top_srcdir}/src/gnome
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/lib/libqof/qof \
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/backend/file \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils \
+  --library-dir    ${top_builddir}/src/gnome-utils \
+  --library-dir    ${top_builddir}/src/report/report-system
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-LDADD = ../libgncmod-report-gnome.la 
+LDADD = ../libgncmod-report-gnome.la
 
-noinst_PROGRAMS = test-link-module 
+check_PROGRAMS = test-link-module
 
 EXTRA_DIST = test-load-module

Modified: gnucash/branches/gda-dev/src/report/report-gnome/test/test-load-module
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/test/test-load-module	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/test/test-load-module	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,7 +5,7 @@
 (debug-enable 'debug)
 (debug-enable 'backtrace)
 
-(debug-set! stack 5000000)
+(debug-set! stack 500000)
 (debug-set! maxdepth 10000)
 
 (display "  testing report module load ... ")

Modified: gnucash/branches/gda-dev/src/report/report-gnome/window-report.c
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/window-report.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/window-report.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -61,26 +61,6 @@
   gnc_unset_busy_cursor (NULL);
 }
 
-void
-gnc_print_report (int report_id)
-{
-  gnc_html *html;
-  char * location;
-
-  html = gnc_html_new( GTK_WINDOW(gnc_ui_get_toplevel()) );
-
-  gnc_set_busy_cursor (NULL, TRUE);
-  location = g_strdup_printf("id=%d", report_id);  
-  gnc_html_show_url(html, URL_TYPE_REPORT, location, NULL, FALSE);
-  g_free(location);
-  gnc_unset_busy_cursor (NULL);
-
-  gnc_html_print (html);
-
-  gnc_html_destroy (html);
-}
-
-
 /********************************************************************
  * default parameters editor handling 
  ********************************************************************/
@@ -332,54 +312,3 @@
   gnc_html_register_url_handler (URL_TYPE_REPORT, gnc_html_report_url_cb);
   gnc_html_register_url_handler (URL_TYPE_HELP, gnc_html_help_url_cb);
 }
-
-
-void
-gnc_reports_show_all(QofSession *session)
-{
-  GKeyFile *keyfile;
-  const gchar *home, *url;
-  gchar *encoded_url, *mdi_file, *mdi_group, *value;
-  gchar **keys, **key;
-  gint report_id;
-
-  url = qof_session_get_url(session);
-  if (!url)
-    return;
-  encoded_url = gnc_html_encode_string(url);
-  if (!encoded_url)
-    return;
-
-  home = g_get_home_dir();
-  if (!home) {
-    g_free(encoded_url);
-    return;
-  }
-
-  mdi_file = g_build_filename(home, ".gnome", "GnuCash", (gchar *)NULL);
-  mdi_group = g_strdup_printf("MDI : %s", encoded_url);
-
-  keyfile = gnc_key_file_load_from_file (mdi_file, FALSE, FALSE);
-  if (keyfile) {
-    keys = g_key_file_get_keys(keyfile, mdi_group, NULL, NULL);
-    if (keys) {
-      for (key = keys; *key; key++) {
-	if (!strncmp(*key, MDI_CHILD_CONFIG, sizeof(MDI_CHILD_CONFIG)))
-	  continue;
-	value = g_key_file_get_string(keyfile, mdi_group, *key, NULL);
-	if (!value)
-	  continue;
-	if (sscanf(value, "gnc-report:id=%d", &report_id) == 1) {
-	  gnc_main_window_open_report(report_id, NULL);
-	}
-	g_free(value);
-      }
-      g_strfreev(keys);
-    }
-    g_key_file_free(keyfile);
-  }
-
-  g_free(mdi_file);
-  g_free(mdi_group);
-  g_free(encoded_url);
-}

Modified: gnucash/branches/gda-dev/src/report/report-gnome/window-report.h
===================================================================
--- gnucash/branches/gda-dev/src/report/report-gnome/window-report.h	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-gnome/window-report.h	2007-04-07 16:05:40 UTC (rev 15847)
@@ -39,12 +39,9 @@
 // [business-gnome/dialog-invoice.c;gnome/window-register.c]; and
 // scm-exposed; 3-liner which calls gnc_main_window_open_report after handling busy-cursor.
 void       reportWindow(int id);
-// window-register; scm-exposed
-void       gnc_print_report (int report_id);
 // scm-exposed; ~priv
 void       gnc_report_raise_editor(SCM report);
 // module[/plugin]-init
 void       gnc_report_init (void);
 
-void       gnc_reports_show_all (QofSession *session);
 #endif

Modified: gnucash/branches/gda-dev/src/report/report-system/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -11,14 +11,16 @@
 gncinclude_HEADERS = \
   gnc-report.h
 
+libgncmod_report_system_la_LDFLAGS = -avoid-version
+
 libgncmod_report_system_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   ${GUILE_LIBS} \
   ${GLIB_LIBS}
 
 if BUILDING_FROM_SVN
-swig-report-system.c: report-system.i
+swig-report-system.c: report-system.i ${top_srcdir}/src/base-typemaps.i
 	$(SWIG) -guile $(SWIG_ARGS) -Linkage module \
 	-I${top_srcdir}/src -o $@ $<
 endif
@@ -77,3 +79,5 @@
 
 CLEANFILES = gnucash report .scm-links ${SCM_FILE_LINKS}
 MAINTAINERCLEANFILES = swig-report-system.c
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.report.core\"

Modified: gnucash/branches/gda-dev/src/report/report-system/commodity-utilities.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/commodity-utilities.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/commodity-utilities.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -210,7 +210,7 @@
   (let ((currency-accounts 
 	 ;;(filter gnc:account-has-shares?  
 	 ;; -- use all accounts, not only share accounts, since gnucash-1.7
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group)))
+	 (gnc-account-get-descendants-sorted (gnc-get-current-root-account)))
 	(work-to-do (length commodity-list))
 	(work-done 0))
     (map
@@ -311,7 +311,7 @@
   (let ((currency-accounts 
 	 ;;(filter gnc:account-has-shares? 
 	 ;; -- use all accounts, not only share accounts, since gnucash-1.7
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group)))
+	 (gnc-account-get-descendants-sorted (gnc-get-current-root-account)))
 	(work-to-do (length commodity-list))
 	(work-done 0))
     (map
@@ -530,7 +530,7 @@
   (let ((curr-accounts 
 	 ;;(filter gnc:account-has-shares? ))
 	 ;; -- use all accounts, not only share accounts, since gnucash-1.7
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group)))
+	 (gnc-account-get-descendants-sorted (gnc-get-current-root-account)))
 	;; sumlist: a multilevel alist. Each element has a commodity
 	;; as key, and another alist as a value. The value-alist's
 	;; elements consist of a commodity as a key, and a pair of two

Modified: gnucash/branches/gda-dev/src/report/report-system/gncmod-report-system.c
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/gncmod-report-system.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/gncmod-report-system.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,47 +1,40 @@
 /*********************************************************************
  * gncmod-report-system.c
- * module definition/initialization for the report infrastructure 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the report infrastructure
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_report_system_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_report_system_LTX_gnc_module_current  = 0;
-int libgncmod_report_system_LTX_gnc_module_revision = 0;
-int libgncmod_report_system_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_report_system_LTX_gnc_module_path(void);
-char *libgncmod_report_system_LTX_gnc_module_description(void);
-int libgncmod_report_system_LTX_gnc_module_init(int refcount);
-int libgncmod_report_system_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_report_system_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/report/report-system");
 }
 
-char * 
-libgncmod_report_system_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Core components of GnuCash report generation system");
 }
 
 extern SCM scm_init_sw_report_system_module(void);
 
 int
-libgncmod_report_system_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the engine (we depend on it) */
   if(!gnc_module_load("gnucash/engine", 0)) {
     return FALSE;
@@ -51,7 +44,7 @@
     return FALSE;
   }
   scm_init_sw_report_system_module();
-  
+
   scm_c_eval_string("(use-modules (gnucash report report-system))");
 
   /* if this is the first time the module's being loaded, initialize
@@ -64,6 +57,6 @@
 }
 
 int
-libgncmod_report_system_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/report/report-system/html-acct-table.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/html-acct-table.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/html-acct-table.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -625,7 +625,8 @@
 				 )
 				))
 	 ;; local variables
-	 (toplvl-accts (xaccGroupGetAccountListSorted (gnc-get-current-group)))
+	 (toplvl-accts
+	  (gnc-account-get-children-sorted (gnc-get-current-root-account)))
 	 (acct-depth-reached 0)
 	 (logi-depth-reached (if depth-limit (- depth-limit 1) 0))
 	 (disp-depth-reached 0)
@@ -691,13 +692,13 @@
 	       (my-get-balance-nosub account start-date end-date)))
 	  (for-each
 	   (lambda (x) (if x (gnc-commodity-collector-merge this-collector x)))
-	   (gnc:group-map-all-accounts
+	   (gnc:account-map-descendants
 	    (lambda (a)
 	      ;; Important: Calculate the balance if and only if the
 	      ;; account a is shown, i.e. (use-acct? a) == #t.
 	      (and (use-acct? a)
 		   (my-get-balance-nosub a start-date end-date)))
-	    (xaccAccountGetChildren account)))
+	    account))
 	  this-collector))
 
       
@@ -709,14 +710,14 @@
 	
 	(for-each
 	 (lambda (acct)
-	   (let* ((subaccts (gnc:account-get-immediate-subaccounts acct))
+	   (let* ((subaccts (gnc-account-get-children acct))
 		  ;; assign output parameters
 		  (account acct)
 		  (account-name (xaccAccountGetName acct))
 		  (account-code (xaccAccountGetCode acct))
 		  (account-path (gnc-account-get-full-name acct))
 		  (account-anchor (gnc:html-account-anchor acct))
-		  (account-parent (xaccAccountGetParentAccount acct))
+		  (account-parent (gnc-account-get-parent acct))
 		  (account-children subaccts)
 		  (account-depth acct-depth)
 		  (logical-depth logi-depth)

Modified: gnucash/branches/gda-dev/src/report/report-system/html-utilities.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/html-utilities.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/html-utilities.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -428,8 +428,8 @@
   (let ((table (gnc:make-html-table))
 	(work-to-do 0)
 	(work-done 0)
-	(topl-accounts (xaccGroupGetAccountListSorted
-			(gnc-get-current-group))))
+	(topl-accounts (gnc-account-get-children-sorted
+			(gnc-get-current-root-account))))
 
     ;; The following functions are defined inside build-acct-table
     ;; to avoid passing tons of arguments which are constant anyway
@@ -458,13 +458,13 @@
 	 (lambda (x) (if x 
 			 (gnc-commodity-collector-merge
 			  this-collector x )))
-	 (gnc:group-map-all-accounts
+	 (gnc:account-map-descendants
 	  (lambda (a)
 	    ;; Important: Calculate the balance if and only if the
 	    ;; account a is shown, i.e. (use-acct? a) == #t.
 	    (and (use-acct? a)
 		 (my-get-balance-nosub a)))
-	  (xaccAccountGetChildren account)))
+	  account))
 	this-collector))
 
     ;; Use this account in the account hierarchy? Check against the
@@ -474,7 +474,7 @@
     (define (use-acct? a)
       (or (member a accounts)
 	  (and show-subaccts? 
-	       (let ((parent (xaccAccountGetParentAccount a)))
+	       (let ((parent (gnc-account-get-parent a)))
 		 (and parent
 		      (use-acct? parent))))))
 
@@ -580,7 +580,7 @@
 	     (lambda (acct)
 	       (let ((subaccts (filter 
 				use-acct?
-				(gnc:account-get-immediate-subaccounts acct))))
+				(gnc-account-get-children acct))))
 		 (set! sum (+ sum  1))
 		 (if (or (= current-depth tree-depth) (null? subaccts))
 		     sum
@@ -647,7 +647,7 @@
 	   (lambda (acct)
 	     (let ((subaccts (filter 
 			      use-acct?
-			      (gnc:account-get-immediate-subaccounts acct))))
+			      (gnc-account-get-children acct))))
 	       (set! work-done (+ 1 work-done))
 	       (if start-percent
 		   (gnc:report-percent-done

Modified: gnucash/branches/gda-dev/src/report/report-system/report-system.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/report-system.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/report-system.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -561,10 +561,8 @@
 (export gnc:decompose-accountlist)
 (export gnc:account-get-type-string-plural)
 (export gnc:accounts-get-commodities)
-(export gnc:get-current-group-depth)
+(export gnc:get-current-account-tree-depth)
 (export gnc:split-get-corr-account-full-name)
-(export gnc:account-get-immediate-subaccounts)
-(export gnc:account-get-all-subaccounts)
 (export gnc:acccounts-get-all-subaccounts)
 (export gnc:make-stats-collector)
 (export gnc:make-drcr-collector)
@@ -579,10 +577,8 @@
 (export gnc:accounts-get-comm-total-income)
 (export gnc:accounts-get-comm-total-expense)
 (export gnc:accounts-get-comm-total-assets)
-(export gnc:group-get-comm-balance-at-date)
 (export gnc:account-get-balance-interval)
 (export gnc:account-get-comm-balance-interval)
-(export gnc:group-get-comm-balance-interval)
 (export gnc:accountlist-get-comm-balance-interval)
 (export gnc:accountlist-get-comm-balance-at-date)
 (export gnc:query-set-match-non-voids-only!)

Modified: gnucash/branches/gda-dev/src/report/report-system/report-utilities.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/report-utilities.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/report-utilities.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -133,57 +133,20 @@
 
 
 ;; Returns the depth of the current account hierarchy, that is, the
-;; maximum level of subaccounts in the current-group.
-(define (gnc:get-current-group-depth)
-  ;; Given a list of accounts, this function determines the maximum
-  ;; sub-account level that there is.
-  (define (accounts-get-children-depth accounts)
-    (apply max
-	   (map (lambda (acct)
-		  (let ((children 
-			 (gnc:account-get-immediate-subaccounts acct)))
-		    (if (null? children)
-			1
-			(+ 1 (accounts-get-children-depth children)))))
-		accounts)))
-  (accounts-get-children-depth 
-   (xaccGroupGetAccountListSorted (gnc-get-current-group))))
+;; maximum level of subaccounts in the tree
+(define (gnc:get-current-account-tree-depth)
+  (let ((root (gnc-get-current-root-account)))
+    (gnc-account-get-tree-depth root)))
 
 (define (gnc:split-get-corr-account-full-name split)
   (xaccSplitGetCorrAccountFullName split))
 
 
-;; get children that are the direct descendant of this acct
-(define (gnc:account-get-immediate-subaccounts acct)
-  (define (acctptr-eq? a1 a2)
-    (let ((a1-str 
-           (with-output-to-string (lambda () (write a1))))
-          (a2-str 
-           (with-output-to-string (lambda () (write a2)))))
-      (string=? a1-str a2-str)))
-  
-  (let* ((group (xaccAccountGetChildren acct))
-         (children (xaccGroupGetSubAccountsSorted group))
-         (retval '()))
-    (for-each 
-     (lambda (child)
-       (if (acctptr-eq? acct (xaccAccountGetParentAccount child))
-           (begin 
-             (set! retval (cons child retval)))))
-     children)
-    (reverse retval)))
-
-;; get all children of this account 
-(define (gnc:account-get-all-subaccounts acct)
-  (let ((group (xaccAccountGetChildren acct)))
-    (xaccGroupGetSubAccountsSorted group)))
-
 ;; Get all children of this list of accounts.
 (define (gnc:acccounts-get-all-subaccounts accountlist)
   (append-map 
    (lambda (a)
-     (xaccGroupGetSubAccountsSorted
-      (xaccAccountGetChildren a)))
+     (gnc-account-get-descendants-sorted a))
    accountlist))
 
 ;;; Here's a statistics collector...  Collects max, min, total, and makes
@@ -493,14 +456,19 @@
 ;; values rather than double values.
 (define (gnc:account-get-comm-balance-at-date account 
 					      date include-children?)
-  (let ((balance-collector
-         (if include-children?
-             (gnc:group-get-comm-balance-at-date
-              (xaccAccountGetChildren account) date)
-             (gnc:make-commodity-collector)))
-	  (query (qof-query-create-for-splits))
-	  (splits #f))
-      
+  (let ((balance-collector (gnc:make-commodity-collector))
+	(query (qof-query-create-for-splits))
+	(splits #f))
+
+      (if include-children?
+	  (for-each 
+	   (lambda (x) 
+	     (gnc-commodity-collector-merge balance-collector x))
+	   (gnc:account-map-descendants
+	    (lambda (child)
+	      (gnc:account-get-comm-balance-at-date child date #f))
+	    account)))
+
       (qof-query-set-book query (gnc-get-current-book))
       (xaccQueryAddSingleAccountMatch query account QOF-QUERY-AND)
       (xaccQueryAddDateMatchTS query #f date #t date QOF-QUERY-AND)
@@ -580,19 +548,6 @@
    get-balance-fn
    (lambda(x) #f)))
 
-;; returns a commodity-collector
-(define (gnc:group-get-comm-balance-at-date group date)
-  (let ((this-collector (gnc:make-commodity-collector)))
-    (for-each 
-     (lambda (x) 
-       (gnc-commodity-collector-merge this-collector x))
-     (gnc:group-map-all-accounts
-      (lambda (account)
-	(gnc:account-get-comm-balance-at-date 
-	 account date #f)) 
-      group))
-    this-collector))
-
 ;; get the change in balance from the 'from' date to the 'to' date.
 ;; this isn't quite as efficient as it could be, but it's a whole lot
 ;; simpler :)
@@ -618,17 +573,6 @@
       include-children?))
     this-collector))
 
-;; the version which returns a commodity-collector
-(define (gnc:group-get-comm-balance-interval group from to)
-  (let ((this-collector (gnc:make-commodity-collector)))
-    (for-each (lambda (x) 
-		(gnc-commodity-collector-merge this-collector x))
-	      (gnc:group-map-all-accounts
-	       (lambda (account)
-		 (gnc:account-get-comm-balance-interval 
-		  account from to #t)) group))
-    this-collector))
-
 ;; This calculates the increase in the balance(s) of all accounts in
 ;; <accountlist> over the period from <from-date> to <to-date>.
 ;; Returns a commodity collector.
@@ -708,10 +652,10 @@
 	 (gnc:accounts-count-splits (cdr accounts)))
       0))
 
-;; Sums up any splits of a certain type affecting a group of accounts.
+;; Sums up any splits of a certain type affecting a set of accounts.
 ;; the type is an alist '((str "match me") (cased #f) (regexp #f))
 (define (gnc:account-get-trans-type-balance-interval
-	 group type start-date-tp end-date-tp)
+	 account-list type start-date-tp end-date-tp)
   (let* ((query (qof-query-create-for-splits))
 	 (splits #f)
 	 (get-val (lambda (alist key)
@@ -724,7 +668,7 @@
 	 )
     (qof-query-set-book query (gnc-get-current-book))
     (gnc:query-set-match-non-voids-only! query (gnc-get-current-book))
-    (xaccQueryAddAccountMatch query group QOF-GUID-MATCH-ANY QOF-QUERY-AND)
+    (xaccQueryAddAccountMatch query account-list QOF-GUID-MATCH-ANY QOF-QUERY-AND)
     (xaccQueryAddDateMatchTS
      query
      (and start-date-tp #t) start-date-tp
@@ -751,7 +695,7 @@
 ;; similar, but only counts transactions with non-negative shares and
 ;; *ignores* any closing entries
 (define (gnc:account-get-pos-trans-total-interval
-	 group type start-date-tp end-date-tp)
+	 account-list type start-date-tp end-date-tp)
   (let* ((str-query (qof-query-create-for-splits))
 	 (sign-query (qof-query-create-for-splits))
 	 (total-query #f)
@@ -769,8 +713,8 @@
     (qof-query-set-book sign-query (gnc-get-current-book))
     (gnc:query-set-match-non-voids-only! str-query (gnc-get-current-book))
     (gnc:query-set-match-non-voids-only! sign-query (gnc-get-current-book))
-    (xaccQueryAddAccountMatch str-query group QOF-GUID-MATCH-ANY QOF-QUERY-AND)
-    (xaccQueryAddAccountMatch sign-query group QOF-GUID-MATCH-ANY QOF-QUERY-AND)
+    (xaccQueryAddAccountMatch str-query account-list QOF-GUID-MATCH-ANY QOF-QUERY-AND)
+    (xaccQueryAddAccountMatch sign-query account-list QOF-GUID-MATCH-ANY QOF-QUERY-AND)
     (xaccQueryAddDateMatchTS
      str-query
      (and start-date-tp #t) start-date-tp

Modified: gnucash/branches/gda-dev/src/report/report-system/report.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/report.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/report.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -395,11 +395,18 @@
   (gnc-build-dotgnucash-path "saved-reports-2.0"))
 
 (define (gnc:report-save-to-savefile report)
-  (let ((conf-file-name gnc:current-saved-reports))
-    ;;(display conf-file-name)
-    (display (gnc:report-generate-saved-forms report)
-	     (open-file conf-file-name "a"))
-    (force-output)))
+  (let* ((conf-file-name gnc:current-saved-reports)
+         (saved-form (gnc:report-generate-saved-forms report))
+         ;; Immediate evaluate the saved form to both load it into the
+         ;; runtime, but also so we can check if it's "allowed" to actually
+         ;; be written to the saved reports file by inspecting the result.
+         ;; #Bug#342206.
+         (save-result (eval-string saved-form)))
+    (if (record? save-result)
+        (begin
+          (display saved-form
+                   (open-file conf-file-name "a"))
+          (force-output)))))
 
 ;; gets the renderer from the report template;
 ;; gets the stylesheet from the report;
@@ -434,19 +441,13 @@
 ;; marks the cursor busy during rendering; returns the html
 (define (gnc:report-run id)
   (let ((report (gnc-report-find id))
-	(start-time (gettimeofday))
 	(html #f))
     (gnc-set-busy-cursor '() #t)
     (gnc:backtrace-if-exception 
      (lambda ()
        (if report
 	   (begin 
-	     (set! html (gnc:report-render-html report #t))
-;;	     (display "total time to run report: ")
-;;	     (display (gnc:time-elapsed start-time (gettimeofday)))
-;;	     (newline)
-;;	     (display html) (newline)
-	     ))))
+	     (set! html (gnc:report-render-html report #t))))))
     (gnc-unset-busy-cursor '())
     html))
 

Modified: gnucash/branches/gda-dev/src/report/report-system/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,34 +1,23 @@
 TESTS = \
   test-link-module \
-  test-load-module 
+  test-load-module
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/scm \
-  --gnc-module-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/calculation \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
   --gnc-module-dir ${top_builddir}/src/report/report-system \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/gnome-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/report/report-system \
-  --library-dir    ${top_srcdir}/src/gnome-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --library-dir    ${top_srcdir}/src/gnome
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
-LDADD = ../libgncmod-report-system.la 
 
-noinst_PROGRAMS = test-link-module 
+check_PROGRAMS = test-link-module
 
 EXTRA_DIST = test-load-module

Modified: gnucash/branches/gda-dev/src/report/report-system/test/test-load-module
===================================================================
--- gnucash/branches/gda-dev/src/report/report-system/test/test-load-module	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/report-system/test/test-load-module	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,7 +5,7 @@
 (debug-enable 'debug)
 (debug-enable 'backtrace)
 
-(debug-set! stack 5000000)
+(debug-set! stack 500000)
 (debug-set! maxdepth 10000)
 
 (display "  testing report module load ... ")

Modified: gnucash/branches/gda-dev/src/report/standard-reports/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,9 +3,12 @@
 pkglib_LTLIBRARIES = libgncmod-standard-reports.la
 
 libgncmod_standard_reports_la_SOURCES = \
-  gncmod-standard-reports.c 
+  gncmod-standard-reports.c
+
+libgncmod_standard_reports_la_LDFLAGS = -avoid-version
+
 libgncmod_standard_reports_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GUILE_LIBS} \
   ${GLIB_LIBS}
 
@@ -63,3 +66,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.report.standard\"

Modified: gnucash/branches/gda-dev/src/report/standard-reports/account-piecharts.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/account-piecharts.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/account-piecharts.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -110,7 +110,7 @@
       (lambda ()
         (gnc:filter-accountlist-type 
          account-types
-         (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+         (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       (lambda (accounts)
         (list #t
               (gnc:filter-accountlist-type
@@ -201,8 +201,8 @@
         (chart (gnc:make-html-piechart))
         (topl-accounts (gnc:filter-accountlist-type 
                         account-types
-                        (xaccGroupGetAccountListSorted
-                         (gnc-get-current-group)))))
+                        (gnc-account-get-children-sorted
+                         (gnc-get-current-root-account)))))
 
     ;; Returns true if the account a was selected in the account
     ;; selection option.
@@ -224,7 +224,7 @@
     (let* ((exchange-fn (gnc:case-exchange-fn 
                          price-source report-currency to-date-tp))
            (tree-depth (if (equal? account-levels 'all)
-                           (gnc:get-current-group-depth)
+                           (gnc:get-current-account-tree-depth)
                            account-levels))
            (combined '())
            (other-anchor "")
@@ -252,7 +252,7 @@
 	      (for-each
 	       (lambda (a)
 		 (set! sum (+ sum (+ 1 (count-accounts (+ 1 current-depth)
-						       (gnc:account-get-immediate-subaccounts a))))))
+						       (gnc-account-get-children a))))))
 	       accts)
 	      sum)
 	    (length (filter show-acct? accts))))
@@ -282,7 +282,7 @@
                    (set! res (append
                               (traverse-accounts
                                (+ 1 current-depth)
-                               (gnc:account-get-immediate-subaccounts a))
+                               (gnc-account-get-children a))
                               res))))
                accts)
               res)
@@ -357,8 +357,7 @@
                      (if (string? (cadr pair))
                          other-anchor
                          (let* ((acct (cadr pair))
-                                (subaccts 
-                                 (gnc:account-get-immediate-subaccounts acct)))
+                                (subaccts (gnc-account-get-children acct)))
                            (if (null? subaccts)
                                ;; if leaf-account, make this an anchor
                                ;; to the register.

Modified: gnucash/branches/gda-dev/src/report/standard-reports/account-summary.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/account-summary.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/account-summary.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -158,7 +158,7 @@
                ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL ACCT-TYPE-CURRENCY
                ACCT-TYPE-PAYABLE ACCT-TYPE-RECEIVABLE
                ACCT-TYPE-EQUITY ACCT-TYPE-INCOME ACCT-TYPE-EXPENSE)
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+	 (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       #f #t))
     (gnc:options-add-account-levels!
      options gnc:pagename-accounts optname-depth-limit
@@ -315,7 +315,7 @@
          (doc (gnc:make-html-document))
 	 ;; just in case we need this information...
          (tree-depth (if (equal? depth-limit 'all)
-                         (gnc:get-current-group-depth) 
+                         (gnc:get-current-account-tree-depth) 
 			 depth-limit))
          ;; exchange rates calculation parameters
 	 (exchange-fn
@@ -492,8 +492,7 @@
                 report-commodity exchange-fn 
                 (append-map
                  (lambda (a)
-                   (xaccGroupGetSubAccountsSorted
-                    (xaccAccountGetChildren a)))
+		   (gnc-account-get-descendants-sorted a))
                  accounts))))
 	  )
 	)

Modified: gnucash/branches/gda-dev/src/report/standard-reports/advanced-portfolio.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/advanced-portfolio.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/advanced-portfolio.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -151,8 +151,8 @@
       "b"
       (N_ "Stock Accounts to report on")
       (lambda () (filter gnc:account-is-stock?
-                         (xaccGroupGetSubAccountsSorted
-                          (gnc-get-current-group))))
+                         (gnc-account-get-descendants-sorted
+                          (gnc-get-current-root-account))))
       (lambda (accounts) (list  #t 
                                 (filter gnc:account-is-stock? accounts)))
       #t))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/average-balance.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/average-balance.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/average-balance.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -77,7 +77,7 @@
                   ;; or: (list ACCT-TYPE-BANK ACCT-TYPE-CASH
                   ;; ACCT-TYPE-CHECKING ACCT-TYPE-SAVINGS ACCT-TYPE-STOCK
                   ;; ACCT-TYPE-MUTUAL ACCT-TYPE-MONEYMRKT)
-                  (xaccGroupGetAccountListSorted (gnc-get-current-group)))))))
+                  (gnc-account-get-children-sorted (gnc-get-current-root-account)))))))
       #f #t))
 
     ;; Display tab
@@ -353,7 +353,7 @@
                 (for-each 
                  (lambda (acct)
                    (let ((this-acct-subs 
-                          (gnc:account-get-all-subaccounts acct)))
+                          (gnc-account-get-descendants-sorted acct)))
                      (if (list? this-acct-subs)
                          (set! subaccts 
                                (append subaccts this-acct-subs)))))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/balance-sheet.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/balance-sheet.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/balance-sheet.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -182,7 +182,7 @@
                ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL ACCT-TYPE-CURRENCY
                ACCT-TYPE-PAYABLE ACCT-TYPE-RECEIVABLE
                ACCT-TYPE-EQUITY ACCT-TYPE-INCOME ACCT-TYPE-EXPENSE)
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+	 (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       #f #t))
     (gnc:options-add-account-levels!
      options gnc:pagename-accounts optname-depth-limit
@@ -356,7 +356,7 @@
 	 ;; is the only simple way to ensure that all three tables
 	 ;; (asset, liability, equity) have the same width.
          (tree-depth (if (equal? depth-limit 'all)
-                         (gnc:get-current-group-depth) 
+                         (gnc:get-current-account-tree-depth) 
 			 depth-limit))
          ;; exchange rates calculation parameters
 	 (exchange-fn
@@ -423,7 +423,7 @@
          (gnc:html-make-no-account-warning 
 	  reportname (gnc:report-id report-obj)))
 	
-        ;; Get all the balances for each account group.
+        ;; Get all the balances for each of the account types.
         (let* ((asset-balance #f)
                (neg-liability-balance #f) ;; credit balances are < 0
                (liability-balance #f)

Modified: gnucash/branches/gda-dev/src/report/standard-reports/budget.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/budget.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/budget.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -31,7 +31,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'printf)
-(require 'sort)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 (gnc:module-load "gnucash/gnome-utils" 0) ;for gnc-build-url
@@ -92,7 +91,7 @@
        (gnc:filter-accountlist-type
         (list ACCT-TYPE-ASSET ACCT-TYPE-LIABILITY ACCT-TYPE-INCOME
                           ACCT-TYPE-EXPENSE)
-        (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+        (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
      #f)
 
     ;; Set the general page as default option tab
@@ -282,19 +281,10 @@
       (string<? (gnc-account-get-full-name a) (gnc-account-get-full-name b)))
 
     ;; helper for account depth
-    (define (account-get-depth account)
-      (define (account-get-depth-internal account-internal depth)
-        (let ((parent (xaccAccountGetParentAccount account-internal)))
-          (if (not (null? parent))
-            (account-get-depth-internal parent (+ depth 1))
-            depth)))
-      (account-get-depth-internal account 1))
-
     (define (accounts-get-children-depth accounts)
       (apply max
 	     (map (lambda (acct)
-		    (let ((children
-			   (gnc:account-get-immediate-subaccounts acct)))
+		    (let ((children (gnc-account-get-children acct)))
 		      (if (null? children)
 			  1
 			  (+ 1 (accounts-get-children-depth children)))))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/cash-flow.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/cash-flow.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/cash-flow.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -33,7 +33,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'printf)
-(require 'sort)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 (gnc:module-load "gnucash/gnome-utils" 0) ;for gnc-build-url
@@ -93,7 +92,7 @@
        (gnc:filter-accountlist-type 
         (list ACCT-TYPE-BANK ACCT-TYPE-CASH ACCT-TYPE-ASSET
               ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL)
-        (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+        (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
      #f)
     
     ;; Set the general page as default option tab
@@ -182,19 +181,10 @@
       (string<? (gnc-account-get-full-name a) (gnc-account-get-full-name b)))
 
     ;; helper for account depth
-    (define (account-get-depth account)
-      (define (account-get-depth-internal account-internal depth)
-        (let ((parent (xaccAccountGetParentAccount account-internal)))
-          (if (not (null? parent))
-            (account-get-depth-internal parent (+ depth 1))
-            depth)))
-      (account-get-depth-internal account 1))
-
     (define (accounts-get-children-depth accounts)
       (apply max
 	     (map (lambda (acct)
-		    (let ((children 
-			   (gnc:account-get-immediate-subaccounts acct)))
+		    (let ((children (gnc-account-get-children acct)))
 		      (if (null? children)
 			  1
 			  (+ 1 (accounts-get-children-depth children)))))
@@ -379,10 +369,10 @@
             (lambda (account)
               (set! work-done (+ 1 work-done))
               (gnc:report-percent-done (+ 85 (* 5 (/ work-done work-to-do))))
-              (if (<= (account-get-depth account) tree-depth)
+              (if (<= (gnc-account-get-current-depth account) tree-depth)
                 (let* ((anchor (gnc:html-markup/format
-                                 (if (and (= (account-get-depth account) tree-depth)
-                                          (not (eq? (gnc:account-get-immediate-subaccounts account) '())))
+                                 (if (and (= (gnc-account-get-current-depth account) tree-depth)
+                                          (not (eq? (gnc-account-get-children account) '())))
                                    (if show-subaccts?
                                      (_ "%s and subaccounts")
                                      (_ "%s and selected subaccounts"))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/category-barchart.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/category-barchart.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/category-barchart.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -116,7 +116,7 @@
       (lambda ()
         (gnc:filter-accountlist-type 
          account-types
-         (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+         (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       (lambda (accounts)
         (list #t
               (gnc:filter-accountlist-type account-types accounts)))
@@ -213,8 +213,8 @@
         (chart (gnc:make-html-barchart))
         (topl-accounts (gnc:filter-accountlist-type 
                         account-types
-                        (xaccGroupGetAccountListSorted
-                         (gnc-get-current-group)))))
+                        (gnc-account-get-children-sorted
+                         (gnc-get-current-root-account)))))
     
     ;; Returns true if the account a was selected in the account
     ;; selection option.
@@ -228,7 +228,7 @@
         (let* ((commodity-list #f)
                (exchange-fn #f)
                (tree-depth (if (equal? account-levels 'all)
-                               (gnc:get-current-group-depth)
+                               (gnc:get-current-account-tree-depth)
                                account-levels))
                ;; This is the list of date intervals to calculate.
                (dates-list (if do-intervals?
@@ -298,7 +298,7 @@
 		  (for-each
 		   (lambda (a)
 		     (set! sum (+ sum (+ 1 (count-accounts (+ 1 current-depth)
-							   (gnc:account-get-immediate-subaccounts a))))))
+							   (gnc-account-get-children a))))))
 		   accts)
 		  sum)
 		(length (filter show-acct? accts))))
@@ -332,7 +332,7 @@
                        (set! res (append
                                   (traverse-accounts
                                    (+ 1 current-depth)
-                                   (gnc:account-get-immediate-subaccounts a))
+                                   (gnc-account-get-children a))
                                   res))))
                    accts)
                   res)
@@ -488,7 +488,7 @@
                        other-anchor
                        (let* ((acct (car pair))
                               (subaccts 
-                               (gnc:account-get-immediate-subaccounts acct)))
+                               (gnc-account-get-children acct)))
                          (if (null? subaccts)
                              ;; if leaf-account, make this an anchor
                              ;; to the register.

Modified: gnucash/branches/gda-dev/src/report/standard-reports/daily-reports.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/daily-reports.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/daily-reports.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -102,7 +102,7 @@
       (lambda ()
         (gnc:filter-accountlist-type 
          account-types
-         (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+         (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       (lambda (accounts)
         (list #t
               (gnc:filter-accountlist-type
@@ -314,8 +314,8 @@
          (chart (gnc:make-html-piechart))
          (topl-accounts (gnc:filter-accountlist-type 
                          account-types
-                         (xaccGroupGetAccountListSorted
-                          (gnc-get-current-group)))))
+                         (gnc-account-get-children-sorted
+                          (gnc-get-current-root-account)))))
     
     (define (monetary->double foreign-monetary date)
       (gnc-numeric-to-double
@@ -391,7 +391,7 @@
                 (for-each 
                  (lambda (acct)
                    (let ((this-acct-subs 
-                          (gnc:account-get-all-subaccounts acct)))
+                          (gnc-account-get-descendants-sorted acct)))
                      (if (list? this-acct-subs)
                          (set! subaccts 
                                (append subaccts this-acct-subs)))))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/equity-statement.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/equity-statement.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/equity-statement.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -134,7 +134,7 @@
                ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL ACCT-TYPE-CURRENCY
                ACCT-TYPE-PAYABLE ACCT-TYPE-RECEIVABLE
                ACCT-TYPE-EQUITY ACCT-TYPE-INCOME ACCT-TYPE-EXPENSE)
-         (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+         (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       #f #t))
     
     ;; all about currencies

Modified: gnucash/branches/gda-dev/src/report/standard-reports/general-journal.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/general-journal.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/general-journal.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -70,7 +70,8 @@
 
     (xaccQueryAddAccountMatch
      query
-     (xaccGroupGetSubAccountsSorted (gnc-book-get-template-group (gnc-get-current-book)))
+     (gnc-account-get-descendants-sorted
+      (gnc-book-get-template-root (gnc-get-current-book)))
      QOF-GUID-MATCH-NONE
      QOF-QUERY-AND)
 

Modified: gnucash/branches/gda-dev/src/report/standard-reports/gncmod-standard-reports.c
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/gncmod-standard-reports.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/gncmod-standard-reports.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,45 +1,38 @@
 /*********************************************************************
  * gncmod-standard-reports.c
- * module definition/initialization for the standard reports 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the standard reports
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_standard_reports_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_standard_reports_LTX_gnc_module_current  = 0;
-int libgncmod_standard_reports_LTX_gnc_module_revision = 0;
-int libgncmod_standard_reports_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_standard_reports_LTX_gnc_module_path(void);
-char *libgncmod_standard_reports_LTX_gnc_module_description(void);
-int libgncmod_standard_reports_LTX_gnc_module_init(int refcount);
-int libgncmod_standard_reports_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_standard_reports_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/report/standard-reports");
 }
 
-char * 
-libgncmod_standard_reports_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Standard income, asset, balance sheet, etc. reports");
 }
 
 int
-libgncmod_standard_reports_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the report system */
   if(!gnc_module_load("gnucash/report/report-system", 0)) {
     return FALSE;
@@ -49,12 +42,11 @@
   if(scm_c_eval_string("(use-modules (gnucash report standard-reports))") ==
      SCM_BOOL_F) {
     return FALSE;
-  }  
+  }
   return TRUE;
 }
 
 int
-libgncmod_standard_reports_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }
-

Modified: gnucash/branches/gda-dev/src/report/standard-reports/income-statement.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/income-statement.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/income-statement.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -158,7 +158,7 @@
 	(gnc:filter-accountlist-type
 	 ;; select, by default, only income and expense accounts
 	 (list ACCT-TYPE-INCOME ACCT-TYPE-EXPENSE)
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+	 (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       #f #t))
     (gnc:options-add-account-levels!
      options gnc:pagename-accounts optname-depth-limit
@@ -347,7 +347,7 @@
 	 ;; is the only simple way to ensure that both tables
 	 ;; (revenue, expense) have the same width.
          (tree-depth (if (equal? depth-limit 'all)
-                         (gnc:get-current-group-depth) 
+                         (gnc:get-current-account-tree-depth) 
 			 depth-limit))
          ;; exchange rates calculation parameters
 	 (exchange-fn
@@ -411,7 +411,7 @@
          (gnc:html-make-no-account-warning 
 	  reportname (gnc:report-id report-obj)))
 	
-        ;; Get all the balances for each account group.
+        ;; Get all the balances for each of the account types.
         (let* ((revenue-closing #f)
 	       (expense-closing #f)
 	       (neg-revenue-total #f)

Modified: gnucash/branches/gda-dev/src/report/standard-reports/net-barchart.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/net-barchart.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/net-barchart.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -88,7 +88,7 @@
          (if inc-exp?
              gnc:account-is-inc-exp?
              (lambda (account) (not (gnc:account-is-inc-exp? account))))
-         (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+         (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       (lambda (accounts)
         (list #t
               (filter 

Modified: gnucash/branches/gda-dev/src/report/standard-reports/portfolio.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/portfolio.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/portfolio.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -72,8 +72,8 @@
       "b"
       (N_ "Stock Accounts to report on")
       (lambda () (filter gnc:account-is-stock?
-                         (xaccGroupGetSubAccountsSorted
-                          (gnc-get-current-group))))
+                         (gnc-account-get-descendants-sorted
+                          (gnc-get-current-root-account))))
       (lambda (accounts) (list  #t 
                                 (filter gnc:account-is-stock? accounts)))
       #t))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/price-scatter.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/price-scatter.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/price-scatter.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -166,8 +166,8 @@
          (document (gnc:make-html-document))
          (chart (gnc:make-html-scatter))
          (currency-accounts 
-          (filter gnc:account-has-shares? (xaccGroupGetSubAccountsSorted
-                                           (gnc-get-current-group))))
+          (filter gnc:account-has-shares? (gnc-account-get-descendants-sorted
+                                           (gnc-get-current-root-account))))
          (data '()))
 
     ;; Short helper for all the warnings below

Modified: gnucash/branches/gda-dev/src/report/standard-reports/register.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/register.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/register.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -8,8 +8,6 @@
 (use-modules (ice-9 slib))
 (use-modules (gnucash gnc-module))
 
-(require 'record)
-
 (gnc:module-load "gnucash/report/report-system" 0)
 
 (define-macro (addto! alist element)

Modified: gnucash/branches/gda-dev/src/report/standard-reports/standard-reports.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/standard-reports.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/standard-reports.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -13,7 +13,6 @@
 (export gnc:register-report-hook)
 
 (require 'hash-table)
-(require 'record)
 
 (define gnc:*register-report-hash* (make-hash-table 23))
 

Modified: gnucash/branches/gda-dev/src/report/standard-reports/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,28 +1,17 @@
-TESTS=test-load-module 
+TESTS=test-load-module
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/scm \
-  --gnc-module-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/report/report-system \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
-  --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/report/standard-reports \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome \
-  --guile-load-dir ${top_srcdir}/src/report/report-system \
-  --library-dir    ${top_builddir}/src/gnome-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --library-dir    ${top_builddir}/src/gnome
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})

Modified: gnucash/branches/gda-dev/src/report/standard-reports/transaction.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/transaction.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/transaction.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -37,7 +37,6 @@
 (use-modules (gnucash gnc-module))
 
 (require 'printf)
-(require 'record)
 
 (gnc:module-load "gnucash/report/report-system" 0)
 
@@ -577,7 +576,7 @@
              ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL ACCT-TYPE-CURRENCY
              ACCT-TYPE-PAYABLE ACCT-TYPE-RECEIVABLE
              ACCT-TYPE-EQUITY ACCT-TYPE-INCOME ACCT-TYPE-EXPENSE)
-       (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+       (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
     #f #t))
 
   (gnc:register-trep-option
@@ -586,11 +585,10 @@
     "b" (N_ "Filter on these accounts")
     (lambda ()
       ;; FIXME : gnc:get-current-accounts disappeared.
-      (let ((current-accounts '())
-	    (num-accounts (xaccGroupGetNumAccounts
-			   (gnc-get-current-group)))
-	    (first-account (xaccGroupGetAccount
-			    (gnc-get-current-group) 0)))
+      (let* ((current-accounts '())
+	     (root (gnc-get-current-root-account))
+	     (num-accounts (gnc-account-n-children root))
+	     (first-account (gnc-account-nth-child root 0)))
 	(cond ((not (null? current-accounts))
 	       (list (car current-accounts)))
 	      ((> num-accounts 0) (list first-account))

Modified: gnucash/branches/gda-dev/src/report/standard-reports/trial-balance.scm
===================================================================
--- gnucash/branches/gda-dev/src/report/standard-reports/trial-balance.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/standard-reports/trial-balance.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -185,7 +185,7 @@
                ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL ACCT-TYPE-CURRENCY
                ACCT-TYPE-PAYABLE ACCT-TYPE-RECEIVABLE
                ACCT-TYPE-EQUITY ACCT-TYPE-INCOME ACCT-TYPE-EXPENSE)
-	 (xaccGroupGetSubAccountsSorted (gnc-get-current-group))))
+         (gnc-account-get-descendants-sorted (gnc-get-current-root-account))))
       #f #t))
     (gnc:options-add-account-levels!
      options gnc:pagename-accounts optname-depth-limit

Modified: gnucash/branches/gda-dev/src/report/stylesheets/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/stylesheets/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/stylesheets/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -9,13 +9,13 @@
 noinst_HEADERS = \
   gnc-plugin-stylesheets.h
 
-libgncmod_stylesheets_la_LDFLAGS=-module
+libgncmod_stylesheets_la_LDFLAGS = -module -avoid-version
 
 libgncmod_stylesheets_la_LIBADD = \
   ${top_builddir}/src/report/report-gnome/libgncmod-report-gnome.la \
   ${top_builddir}/src/report/report-system/libgncmod-report-system.la \
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${QOF_LIBS} \
   ${GUILE_LIBS} \
   ${GLIB_LIBS}
@@ -69,3 +69,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.report.core\"

Modified: gnucash/branches/gda-dev/src/report/stylesheets/gncmod-stylesheets.c
===================================================================
--- gnucash/branches/gda-dev/src/report/stylesheets/gncmod-stylesheets.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/stylesheets/gncmod-stylesheets.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,14 +1,13 @@
 /*********************************************************************
  * gncmod-stylesheets.c
- * module definition/initialization for the standard reports 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the standard reports
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
 
-#include <gtk/gtk.h>
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
 
 #include "gnc-module.h"
@@ -16,32 +15,26 @@
 #include "gnc-plugin-stylesheets.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_stylesheets_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_stylesheets_LTX_gnc_module_current  = 0;
-int libgncmod_stylesheets_LTX_gnc_module_revision = 0;
-int libgncmod_stylesheets_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_stylesheets_LTX_gnc_module_path(void);
-char *libgncmod_stylesheets_LTX_gnc_module_description(void);
-int libgncmod_stylesheets_LTX_gnc_module_init(int refcount);
-int libgncmod_stylesheets_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_stylesheets_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/report/stylesheets");
 }
 
-char * 
-libgncmod_stylesheets_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Standard report stylesheet definitions");
 }
 
 int
-libgncmod_stylesheets_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the report system */
   if(!gnc_module_load("gnucash/report/report-system", 0)) {
     return FALSE;
@@ -52,14 +45,14 @@
      SCM_BOOL_F) {
     return FALSE;
   }
-  
+
   /* Add menu items with C callbacks */
   gnc_plugin_stylesheets_create_plugin();
-  
+
   return TRUE;
 }
 
 int
-libgncmod_stylesheets_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/report/stylesheets/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/stylesheets/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/stylesheets/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,29 +1,21 @@
-TESTS=test-load-module 
+TESTS=test-load-module
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
-  --gnc-module-dir ${top_builddir}/src/scm \
   --gnc-module-dir ${top_builddir}/src/engine \
   --gnc-module-dir ${top_builddir}/src/report/report-system \
-  --gnc-module-dir ${top_builddir}/src/report/utility-reports \
   --gnc-module-dir ${top_builddir}/src/report/stylesheets \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
-  --gnc-module-dir ${top_builddir}/src/calculation \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnome-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/report/report-system \
-  --guile-load-dir ${top_srcdir}/src/report/stylesheets \
-  --guile-load-dir ${top_builddir}/src/gnome-utils \
-  --guile-load-dir ${top_builddir}/src/gnome \
-  --library-dir    ${top_builddir}/src/gnome-utils \
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
   --library-dir    ${top_builddir}/lib/libqof/qof \
-  --library-dir    ${top_builddir}/src/gnome
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/backend/file \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils \
+  --library-dir    ${top_builddir}/src/gnome-utils \
+  --library-dir    ${top_builddir}/src/report/report-system \
+  --library-dir    ${top_builddir}/src/report/report-gnome
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})

Modified: gnucash/branches/gda-dev/src/report/stylesheets/test/test-load-module
===================================================================
--- gnucash/branches/gda-dev/src/report/stylesheets/test/test-load-module	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/stylesheets/test/test-load-module	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,4 +1,4 @@
-#! /bin/bash 
+#! /bin/sh 
 exec guile -s "$0"
 !#
 

Modified: gnucash/branches/gda-dev/src/report/utility-reports/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/utility-reports/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/utility-reports/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,11 +5,11 @@
 libgncmod_utility_reports_la_SOURCES = \
   gncmod-utility-reports.c 
 libgncmod_utility_reports_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GUILE_LIBS} \
   ${GLIB_LIBS}
 
-libgncmod_utility_reports_la_LDFLAGS = -module
+libgncmod_utility_reports_la_LDFLAGS = -module -avoid-version
 
 AM_CFLAGS = \
   -I${top_srcdir}/src \
@@ -52,3 +52,5 @@
 
 CLEANFILES = .scm-links
 DISTCLEANFILES = ${SCM_FILE_LINKS}
+
+INCLUDES = -DG_LOG_DOMAIN=\"gnc.report.util\"

Modified: gnucash/branches/gda-dev/src/report/utility-reports/gncmod-utility-reports.c
===================================================================
--- gnucash/branches/gda-dev/src/report/utility-reports/gncmod-utility-reports.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/utility-reports/gncmod-utility-reports.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,45 +1,38 @@
 /*********************************************************************
  * gncmod-utility-reports.c
- * module definition/initialization for the utility reports 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the utility reports
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
+#include <gmodule.h>
 #include <libguile.h>
-#include <glib.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_utility_reports_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_utility_reports_LTX_gnc_module_current  = 0;
-int libgncmod_utility_reports_LTX_gnc_module_revision = 0;
-int libgncmod_utility_reports_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_utility_reports_LTX_gnc_module_path(void);
-char *libgncmod_utility_reports_LTX_gnc_module_description(void);
-int libgncmod_utility_reports_LTX_gnc_module_init(int refcount);
-int libgncmod_utility_reports_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_utility_reports_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/report/utility-reports");
 }
 
-char * 
-libgncmod_utility_reports_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Non-financial (utility) reports");
 }
 
 int
-libgncmod_utility_reports_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* load the report system */
   if(!gnc_module_load("gnucash/report/report-system", 0)) {
     return FALSE;
@@ -50,11 +43,11 @@
      SCM_BOOL_F) {
     return FALSE;
   }
-  
+
   return TRUE;
 }
 
 int
-libgncmod_utility_reports_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/report/utility-reports/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/report/utility-reports/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/report/utility-reports/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,28 +1,17 @@
-TESTS = test-load-module 
+TESTS = test-load-module
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
-  --gnc-module-dir ${top_builddir}/src/core-utils \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
   --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/scm \
-  --gnc-module-dir ${top_builddir}/src/gnome \
-  --gnc-module-dir ${top_builddir}/src/gnome-utils \
   --gnc-module-dir ${top_builddir}/src/report/report-system \
   --gnc-module-dir ${top_builddir}/src/report/utility-reports \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
-  --gnc-module-dir ${top_builddir}/src/calculation \
-  --gnc-module-dir ${top_builddir}/src/network-utils \
-  --gnc-module-dir ${top_srcdir}/src/gnc-module \
-  --gnc-module-dir ${top_srcdir}/src/engine \
-  --guile-load-dir ${top_srcdir}/src/scm \
-  --guile-load-dir ${top_srcdir}/src/app-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome-utils \
-  --guile-load-dir ${top_srcdir}/src/gnome \
-  --guile-load-dir ${top_srcdir}/src/report/report-system \
-  --guile-load-dir ${top_srcdir}/src/report/utility-reports \
-  --library-dir    ${top_builddir}/src/gnome-utils \
-  --library-dir    ${top_builddir}/src/gnome \
-  --library-dir    ${top_builddir}/lib/libqof/qof
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/lib/libqof/qof \
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module \
+  --library-dir    ${top_builddir}/src/engine \
+  --library-dir    ${top_builddir}/src/calculation \
+  --library-dir    ${top_builddir}/src/app-utils
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})

Modified: gnucash/branches/gda-dev/src/scm/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/scm/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/scm/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,5 +1,5 @@
 
-SUBDIRS = gnumeric printing
+SUBDIRS = gnumeric
 
 gncscmdir = ${GNC_SCM_INSTALL_DIR}
 gncscmmoddir = ${GNC_SHAREDIR}/guile-modules/gnucash

Modified: gnucash/branches/gda-dev/src/scm/fin.scm
===================================================================
--- gnucash/branches/gda-dev/src/scm/fin.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/scm/fin.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -17,9 +17,13 @@
 
 ;; Copyright 2002 Joshua Sled <jsled at asynchronous.org>
 ;;
+
+;; Simple function for testing:
+(define (gnc:foobar val) val)
+
 ;; pretty literal copies of similar code from gnumeric-1.0.8, except we want
-;; positive values to be returned [as gnucash will handle the credit/debit
-;; appropriately]
+;; positive values to be returned (as gnucash will handle the credit/debit
+;; appropriately)
 
 (define (gnc:ipmt rate per nper pv fv type)
   (* -1 (* rate
@@ -41,8 +45,6 @@
 (define (gnc:pmt rate nper pv fv type)
   (* -1 (calc-pmt rate nper pv fv type)))
 
-(define (gnc:foobar val) val)
-
 ;;;;;
 ;; below: not-exposed/"private" functions, used by the "public" functions
 ;; above.
@@ -72,3 +74,84 @@
                rate)))
 )
 
+
+;; This section added in 2005. Ludovic Nicolle
+;; Formula to get the rate for a given period if there are yper in the year
+;; And the official rate is compounded ycomp in the year.
+;; For example, a mortgage being monthly has yper = 12
+;; and if the posted rate is a plain annual rate, then ycomp = 1.
+;; but if the posted rate is compounded semi-annually, as is the case in Canada,
+;; then ycomp = 2. 
+;; this function can be used to enter the nominal rate in the formulas, without
+;; pre-calculating the power function below.
+
+(define (gnc:periodic_rate rate yper ycomp)
+  (-  (expt (+ 1.0 (/ rate ycomp)) (/ ycomp yper) )  1.0)
+)
+
+;; the three following functions with prefix gnc:cpd_ are more generic equivalents of 
+;; gnc:pmt, gnc:ipmt and gnc:ppmt above, with some differences. 
+;; First difference is that they take the annual nominal rate and two yearly frequencies:
+;; rate is annual, not per period (the functions calculate it themselves)
+;; yfreq determines the compounding frequency of the payed/charged interest
+;; ycomp determines the compounding frequency of the annual nominal rate
+
+;; Second difference is for rounding. My experience shows that all banks do not use
+;; the exact same rounding parameters. Moreover, on top of that situation, numerical calculations 
+;; in gnucash using the original gnc:pmt, gnc:ipmt and gnc:ppmt functions above can also 
+;; create another set of rounding issues. Both problems create the "odd-penny imbalance" problem.
+
+;; So the gnc:cpd_Zpmt functions do automatic rounding, the goal being to have PPMT = PMT - I 
+;; holding true for all calculated numbers. However, this won't fix the first problem if your bank
+;; can't do proper maths and manual fixing of transactions will still be required.
+
+;; One problem with the rounding procedure in these three functions is that it is always 
+;; rounding at the second decimal. This works great with dollars and euros and a lot of major 
+;; currencies but might well cause issues with other currencies not typically divided in 100. 
+;; I have not tested anything else than dollars.
+
+;; If the automatic rounding causes issues for a particular case, one can always use the
+;; equivalence of the cpd_ and non-cpd_ functions, by using periodic_rate() like this:
+;;                     gnc:cpd_pmt(              rate:yfreq:ycomp :nper:pv:fv:type) 
+;;   is equivalent to      gnc:pmt(periodic_rate(rate:yfreq:ycomp):nper:pv:fv:type)
+
+;; On the opposite side, if you want the automatic rounding but don't understand how to use
+;; the cpd_ functions, here is a quick example on how to convert original gnc:Zpmt
+;; function calls. The typical setup is to use 'rate/yfreq' as the first parameter, so the 
+;; slution is to simply use yfreq for both yfreq and ycomp in the gnc:cpd_Zpmt calls, like this:
+;;                         gnc:pmt( rate  /  yfreq   :nper:pv:fv:type)
+;; is equivalent to    gnc:cpd_pmt( rate:yfreq:yfreq :nper:pv:fv:type)
+
+(define (gnc:cpd_ipmt rate yfreq ycomp per nper pv fv type)
+  (* 0.01  
+    (round
+      (* -100 (* (gnc:periodic_rate rate yfreq ycomp)
+           (- 0 (calc-principal pv
+                                (calc-pmt (gnc:periodic_rate rate yfreq ycomp) nper pv fv type)
+                                (gnc:periodic_rate rate yfreq ycomp) (- per 1))))
+      )
+    )
+  )
+)
+
+(define (gnc:cpd_ppmt rate yfreq ycomp per nper pv fv type)
+  (let* (
+                (per_rate (gnc:periodic_rate rate yfreq ycomp))
+                (pmt (* -1 (gnc:cpd_pmt rate yfreq ycomp nper pv fv type)))
+                (ipmt (* per_rate (calc-principal pv pmt per_rate (- per 1))))
+        )
+        (
+                * -1  (+ pmt ipmt)
+        )
+  )
+)
+
+(define (gnc:cpd_pmt rate yfreq ycomp nper pv fv type)
+  (* 0.01  
+    (round
+      (* -100
+        (calc-pmt (gnc:periodic_rate rate yfreq ycomp) nper pv fv type)
+      )
+    )
+  )
+)

Modified: gnucash/branches/gda-dev/src/scm/main.scm
===================================================================
--- gnucash/branches/gda-dev/src/scm/main.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/scm/main.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -67,10 +67,6 @@
 ;; from main-window.scm
 (export gnc:main-window-properties-cb)
 
-;; from printing/print-check.scm
-(export make-print-check-format)
-(export gnc:print-check)
-
 ;; Get the Makefile.am/configure.in generated variables.
 (load-from-path "build-config.scm")
 
@@ -163,29 +159,21 @@
 
 ;;;; Status output functions.
 
+(define (strify items)
+  (string-join (map (lambda (x) (simple-format #f "~A" x)) items) ""))
+
 (define (gnc:warn . items)
-  (display "gnucash: [W] ")
-  (for-each (lambda (i) (write i)) items)
-  (newline))
+  (gnc-scm-log-warn (strify items)))
 
 (define (gnc:error . items)
-  (display "gnucash: [E] ")
-  (for-each (lambda (i) (write i)) items)
-  (newline))
+  (gnc-scm-log-error (strify items )))
 
 (define (gnc:msg . items)
-  (display "gnucash: [M] ")
-  (for-each (lambda (i) (write i)) items)
-  (newline))
+  (gnc-scm-log-msg (strify items)))
 
 (define (gnc:debug . items)
-  (if (gnc-is-debugging)
-      (begin
-        (display "gnucash: [D] ")
-        (for-each (lambda (i) (write i)) items)
-        (newline))))
+  (gnc-scm-log-debug (strify items)))
 
-
 ;; Set up timing functions
 
 (define gnc:*last-time* (gettimeofday))
@@ -228,7 +216,6 @@
 
   ;; Now we can load a bunch of files.
   (load-from-path "command-line.scm") ;; depends on app-utils (N_, etc.)...
-  (load-from-path "printing/print-check.scm") ;; depends on simple-obj...
 
   (gnc:initialize-config-vars) ;; in command-line.scm
   ;; handle unrecognized command line args

Modified: gnucash/branches/gda-dev/src/scm/price-quotes.scm
===================================================================
--- gnucash/branches/gda-dev/src/scm/price-quotes.scm	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/scm/price-quotes.scm	2007-04-07 16:05:40 UTC (rev 15847)
@@ -30,8 +30,8 @@
 (use-modules (gnucash main)) ;; FIXME: delete after we finish modularizing.
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash core-utils))
-(use-modules (sw_gnome_utils)) ;; for gnucash-ui-is-running
 
+(gnc:module-load "gnucash/gnome-utils" 0) ;; for gnucash-ui-is-running
 (gnc:module-load "gnucash/app-utils" 0)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -602,8 +602,7 @@
   ;; FIXME: uses of gnc:warn in here need to be cleaned up.  Right
   ;; now, they'll result in funny formatting.
 
-  (let* ((group (xaccGetAccountGroup book))
-         (fq-call-data (book->commodity->fq-call-data book))
+  (let* ((fq-call-data (book->commodity->fq-call-data book))
          (fq-calls (and fq-call-data
                         (apply append
                                (map fq-call-data->fq-calls fq-call-data))))
@@ -755,5 +754,7 @@
   (let ((sources (gnc:fq-check-sources)))
     (if (list? sources)
 	(begin
+      (simple-format #t "Found Finance::Quote version ~A" (car sources))
+      (newline)
 	  (gnc:msg "Found Finance::Quote version " (car sources))
 	  (gnc-quote-source-set-fq-installed (cdr sources))))))

Modified: gnucash/branches/gda-dev/src/tax/us/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/tax/us/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/tax/us/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -5,6 +5,8 @@
 libgncmod_tax_us_la_SOURCES = \
   gncmod-tax-us.c 
 
+libgncmod_tax_us_la_LDFLAGS = -avoid-version
+
 libgncmod_tax_us_la_LIBADD = \
  ${GUILE_LIBS} \
  ${GLIB_LIBS}

Modified: gnucash/branches/gda-dev/src/tax/us/gncmod-tax-us.c
===================================================================
--- gnucash/branches/gda-dev/src/tax/us/gncmod-tax-us.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/tax/us/gncmod-tax-us.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,37 +1,28 @@
 /*********************************************************************
  * gncmod-tax-us.c
- * module definition/initialization for us tax info 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for us tax info
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include "config.h"
-#include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 #include <libguile.h>
-#include <locale.h>
-#include <string.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_tax_us_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_tax_us_LTX_gnc_module_current  = 0;
-int libgncmod_tax_us_LTX_gnc_module_revision = 0;
-int libgncmod_tax_us_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_tax_us_LTX_gnc_module_path(void);
-char *libgncmod_tax_us_LTX_gnc_module_description(void);
-int libgncmod_tax_us_LTX_gnc_module_init(int refcount);
-int libgncmod_tax_us_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_tax_us_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
 #ifdef LOCALE_SPECIFIC_TAX
   const char *thislocale = setlocale(LC_ALL, NULL);
   if (strncmp(thislocale, "de_DE", 5) == 0)
@@ -41,13 +32,13 @@
     return g_strdup("gnucash/tax/us");
 }
 
-char * 
-libgncmod_tax_us_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("US income tax information");
 }
 
 static void
-lmod(char * mn) 
+lmod(char * mn)
 {
   char * form = g_strdup_printf("(use-modules %s)\n", mn);
   scm_c_eval_string(form);
@@ -55,7 +46,7 @@
 }
 
 int
-libgncmod_tax_us_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   /* This is a very simple hack that loads the (new, special) German
      tax definition file in a German locale, or (default) loads the
      previous US tax file. */
@@ -70,6 +61,6 @@
 }
 
 int
-libgncmod_tax_us_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/tax/us/test/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/tax/us/test/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/tax/us/test/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,28 +1,18 @@
-TESTS = test-link-module test-load-module 
+TESTS = test-link-module test-load-module
 
 # Some of these dirs may not be needed anymore.
 GNC_TEST_DEPS := \
-  --gnc-module-dir ${top_builddir}/src/gnc-module \
-  --gnc-module-dir ${top_builddir}/src/engine \
-  --gnc-module-dir ${top_builddir}/src/report/report-system \
-  --gnc-module-dir ${top_builddir}/src/report/utility-reports \
-  --gnc-module-dir ${top_builddir}/src/report/stylesheets \
-  --gnc-module-dir ${top_builddir}/src/app-utils \
-  --gnc-module-dir ${top_builddir}/src/calculation \
   --gnc-module-dir ${top_builddir}/src/tax/us \
-  --gnc-module-dir ${top_srcdir}/src/tax/us \
-  --guile-load-dir ${top_builddir}/src/scm \
-  --guile-load-dir ${top_builddir}/lib \
-  --guile-load-dir ${top_builddir}/src/gnome-utils \
-  --guile-load-dir ${top_builddir}/src/gnome \
-  --library-dir ${top_builddir}/src/gnome-utils \
-  --library-dir ${top_builddir}/src/gnome
+  --guile-load-dir ${top_builddir}/src/gnc-module \
+  --guile-load-dir ${top_builddir}/src/tax/us \
+  --library-dir    ${top_builddir}/src/core-utils \
+  --library-dir    ${top_builddir}/src/gnc-module
 
 TESTS_ENVIRONMENT := \
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
 EXTRA_DIST = test-load-module
 
-noinst_PROGRAMS=test-link-module 
+check_PROGRAMS=test-link-module
 test_link_module_SOURCES=test-link-module.c
 test_link_module_LDADD=../libgncmod-tax-us.la ${GUILE_LIBS} ${GLIB_LIBS}

Modified: gnucash/branches/gda-dev/src/test-core/Makefile.am
===================================================================
--- gnucash/branches/gda-dev/src/test-core/Makefile.am	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/test-core/Makefile.am	2007-04-07 16:05:40 UTC (rev 15847)
@@ -3,7 +3,7 @@
 libgncmod_test_la_SOURCES = gncmod-test.c test-stuff.c
 libgncmod_test_la_LDFLAGS = -module
 libgncmod_test_la_LIBADD = \
-  ${top_builddir}/src/gnc-module/libgncmodule.la \
+  ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${GLIB_LIBS}
 
 noinst_HEADERS=test-stuff.h

Modified: gnucash/branches/gda-dev/src/test-core/gncmod-test.c
===================================================================
--- gnucash/branches/gda-dev/src/test-core/gncmod-test.c	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/test-core/gncmod-test.c	2007-04-07 16:05:40 UTC (rev 15847)
@@ -1,47 +1,41 @@
 /*********************************************************************
  * gncmod-test.c
- * module definition/initialization for the test infrastructure 
- * 
- * Copyright (c) 2001 Linux Developers Group, Inc. 
+ * module definition/initialization for the test infrastructure
+ *
+ * Copyright (c) 2001 Linux Developers Group, Inc.
  *********************************************************************/
 
 #include <stdio.h>
-#include <glib.h>
+#include <gmodule.h>
 
 #include "gnc-module.h"
 #include "gnc-module-api.h"
 
 /* version of the gnc module system interface we require */
-int libgncmod_test_LTX_gnc_module_system_interface = 0;
+int gnc_module_system_interface = 0;
 
 /* module versioning uses libtool semantics. */
-int libgncmod_test_LTX_gnc_module_current  = 0;
-int libgncmod_test_LTX_gnc_module_revision = 0;
-int libgncmod_test_LTX_gnc_module_age      = 0;
+int gnc_module_current  = 0;
+int gnc_module_revision = 0;
+int gnc_module_age      = 0;
 
-/* forward references */
-char *libgncmod_test_LTX_gnc_module_path(void);
-char *libgncmod_test_LTX_gnc_module_description(void);
-int libgncmod_test_LTX_gnc_module_init(int refcount);
-int libgncmod_test_LTX_gnc_module_end(int refcount);
 
-
 char *
-libgncmod_test_LTX_gnc_module_path(void) {
+gnc_module_path(void) {
   return g_strdup("gnucash/test");
 }
 
-char * 
-libgncmod_test_LTX_gnc_module_description(void) {
+char *
+gnc_module_description(void) {
   return g_strdup("Basic GnuCash test infrastructure.");
 }
 
 int
-libgncmod_test_LTX_gnc_module_init(int refcount) {
+gnc_module_init(int refcount) {
   return TRUE;
 }
 
 int
-libgncmod_test_LTX_gnc_module_end(int refcount) {
+gnc_module_end(int refcount) {
   return TRUE;
 }

Modified: gnucash/branches/gda-dev/src/valgrind-gnucash.supp
===================================================================
--- gnucash/branches/gda-dev/src/valgrind-gnucash.supp	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/src/valgrind-gnucash.supp	2007-04-07 16:05:40 UTC (rev 15847)
@@ -49,12 +49,6 @@
 }
 
 {
-   libltdl.so.3(Value1)
-   Memcheck:Value1
-   obj:/usr/lib/libltdl.so.3
-}
-
-{
    libglib-1.2.so.0(Value4)
    Memcheck:Value4
    fun:g_hash_table_lookup

Modified: gnucash/branches/gda-dev/util/glade-fixup
===================================================================
--- gnucash/branches/gda-dev/util/glade-fixup	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/util/glade-fixup	2007-04-07 16:05:40 UTC (rev 15847)
@@ -15,12 +15,25 @@
 fi
 
 find ${SEARCHDIRS} -name \*.glade | xargs \
-  sed -i -e '/name="focus_on_map"/d' \
-         -e '/name="ellipsize"/d' \
-         -e '/name="width_chars"/d' \
-         -e '/name="single_line_mode"/d' \
-         -e '/name="urgency_hint"/d' \
-         -e '/name="hover_expand"/d' \
-         -e '/name="hover_selection"/d' \
-         -e '/name="add_tearoffs"/d' \
-         -e '/name="angle"/d'
+  sed -i -e '/name="urgency_hint"/d' \
+         -e '/name="pack_direction"/d' \
+         -e '/name="child_pack_direction"/d'
+
+# GTK 2.6 (now allowed)
+#	add_tearoffs
+#	angle
+#	ellipsize
+#	focus_on_map
+#	hover_expand
+#	hover_selection
+#	single_line_mode
+#	width_chars
+#
+# GTK 2.8
+#	child_pack_direction
+#	pack_direction
+#	urgency_hint
+#
+# GTK 2.10
+#	(none)
+#

Modified: gnucash/branches/gda-dev/util/gnc-svnversion
===================================================================
--- gnucash/branches/gda-dev/util/gnc-svnversion	2007-04-07 16:02:27 UTC (rev 15846)
+++ gnucash/branches/gda-dev/util/gnc-svnversion	2007-04-07 16:05:40 UTC (rev 15847)
@@ -4,7 +4,7 @@
 #   gnc-svnversion <srcdir>
 #
 # Prints the revision number to stdout and exits 0 on success
-# exits with errorcode 1 if we're not in an svn or svk checkout
+# exits with errorcode 1 if we're not in an svn, svk or git checkout
 #
 # Written By:  Derek Atkins <derek at ihtfp.com>
 #
@@ -40,8 +40,21 @@
   exit $?
 fi
 
-# If we get here then this is NOT an svn checkout.  Maybe it's
-# SVK?  First, check if we've got 'svk' in the path.  If not,
+# If we get here then this is NOT an svn checkout.
+
+# Maybe it's git?
+if test -d "${real_srcdir}"/.git
+then
+  githead=`git --git-dir "${real_srcdir}"/.git rev-parse HEAD 2>/dev/null`
+  if test $? = 0 ; then
+    echo $githead
+    exit 0
+  else
+    exit 1
+  fi
+fi
+
+# Maybe it's SVK?  First, check if we've got 'svk' in the path.  If not,
 # then exit with an error code of 1..
 which svk >/dev/null 2>&1
 if test $? != 0 ; then exit 1 ; fi



More information about the gnucash-changes mailing list