[Gnucash-changes] gnucash

Joshua Sled jsled at cvs.gnucash.org
Mon Mar 8 21:45:49 EST 2004


Update of /home/cvs/cvsroot/gnucash
In directory cvs.gnucash.org:/tmp/cvs-serv17359

Modified Files:
      Tag: gnucash-1-8-branch
	ChangeLog HACKING Makefile.am 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/lib
In directory cvs.gnucash.org:/tmp/cvs-serv17359/lib

Added Files:
      Tag: gnucash-1-8-branch
	gnucash_valgrind.supp 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/backend/file
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/backend/file

Modified Files:
      Tag: gnucash-1-8-branch
	gnc-freqspec-xml-v2.c 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/doc
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/doc

Modified Files:
      Tag: gnucash-1-8-branch
	TODO-schedxactions 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/engine
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/engine

Modified Files:
      Tag: gnucash-1-8-branch
	FreqSpec.c FreqSpec.h 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/gnome
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/gnome

Modified Files:
      Tag: gnucash-1-8-branch
	dialog-scheduledxaction.c dialog-sx-from-trans.c 
	dialog-sxsincelast.c 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/gnome/glade
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/gnome/glade

Modified Files:
      Tag: gnucash-1-8-branch
	sched-xact.glade 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/gnome-utils
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/gnome-utils

Modified Files:
      Tag: gnucash-1-8-branch
	gnc-dense-cal.c gnc-frequency.c 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].


Update of /home/cvs/cvsroot/gnucash/src/register/ledger-core
In directory cvs.gnucash.org:/tmp/cvs-serv17359/src/register/ledger-core

Modified Files:
      Tag: gnucash-1-8-branch
	gnc-ledger-display.c 
Log Message:
2004-03-07  Joshua Sled  <jsled at asynchronous.org>

	* HACKING: Added instructions about running under valgrind.

	* lib/gnucash_valgrind.supp: Added a large set of valgrind
	suppressions for both guile and gnucash.

	* src/register/ledger-core/gnc-ledger-display.c
	(gnc_ledger_display_template_gl): Change the reg_type to
	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.

	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
	widget. Bug#102269.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
	At least be consistent about the background coloring of the month
	labels, even if we're still not using GTK themeage correctly.

	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
	the transient window when the widget is destroyed. Bug#103910.

	* src/gnome/dialog-scheduledxaction.c
	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
	and remind spin-buttons editable [Bug#94963].

	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
	advance and remind spins to 365 [days], with a page-size of 30
	[days].

	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
	Disallow the Scheduling of being-editing transactions in the
	Register, preventing a class of unbalacned SX template
	transactions from being entered and propogated through the
	system. See Bug#130330.

	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
	memory-corruption issue; insufficent bounds checking on array
	index. Bug#125600.

	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
	Better handling of various error cases in
        transaction-creation. Bug#120311; Bug#130330.

2004-03-01  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
	Fix for part of Bug#121740 -- only allow auto-create SXes which
	have splits to be created.

2004-02-07  Joshua Sled  <jsled at asynchronous.org>

	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
	Adding "NONE" as an allowable FreqSpec [Bug#103968].



==================================================
Differences for ChangeLog (revision 1.1461.2.308 -> 1.1461.2.309)
==================================================
--- /home/cvs/cvsroot/gnucash/ChangeLog	2004/03/08 08:08:25	1.1461.2.308
+++ /home/cvs/cvsroot/gnucash/ChangeLog	2004/03/09 02:45:47	1.1461.2.309
@@ -1,3 +1,46 @@
+2004-03-07  Joshua Sled  <jsled at asynchronous.org>
+
+	* HACKING: Added instructions about running under valgrind.
+
+	* lib/gnucash_valgrind.supp: Added a large set of valgrind
+	suppressions for both guile and gnucash.
+
+	* src/register/ledger-core/gnc-ledger-display.c
+	(gnc_ledger_display_template_gl): Change the reg_type to
+	SEARCH_LEDGER so all the 'action' types appear. Bug#108833.
+
+	* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
+	widget. Bug#102269.
+
+	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
+	At least be consistent about the background coloring of the month
+	labels, even if we're still not using GTK themeage correctly.
+
+	* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
+	the transient window when the widget is destroyed. Bug#103910.
+
+	* src/gnome/dialog-scheduledxaction.c
+	(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
+	and remind spin-buttons editable [Bug#94963].
+
+	* src/gnome/glade/sched-xact.glade: Change the upper bound on the
+	advance and remind spins to 365 [days], with a page-size of 30
+	[days].
+
+	* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
+	Disallow the Scheduling of being-editing transactions in the
+	Register, preventing a class of unbalacned SX template
+	transactions from being entered and propogated through the
+	system. See Bug#130330.
+
+	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
+	memory-corruption issue; insufficent bounds checking on array
+	index. Bug#125600.
+
+	* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
+	Better handling of various error cases in
+        transaction-creation. Bug#120311; Bug#130330.
+
 2004-03-08  Christian Stimming  <stimming at tuhh.de>
 
 	* src/import-export/hbci/dialog-hbcitrans.c, dialog-hbcitrans.h,
@@ -17,6 +60,20 @@
 	  existing variable.  Unlikely to actually fix anything, but
 	  you never know what a compiler might do.
 
+2004-03-01  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
+	Fix for part of Bug#121740 -- only allow auto-create SXes which
+	have splits to be created.
+
+2004-02-07  Joshua Sled  <jsled at asynchronous.org>
+
+	* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked): 
+	* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state): 
+	* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler): 
+	* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
+	Adding "NONE" as an allowable FreqSpec [Bug#103968].
+
 2004-02-01  Christian Stimming  <stimming at tuhh.de>
 
 	* po/cs.po: Update Czech translation by Miloslav Trmac

==================================================
Differences for HACKING (revision 1.5 -> 1.5.2.1)
==================================================
--- /home/cvs/cvsroot/gnucash/HACKING	2002/11/04 07:46:44	1.5
+++ /home/cvs/cvsroot/gnucash/HACKING	2004/03/09 02:45:47	1.5.2.1
@@ -73,4 +73,15 @@
 
 % gnucash-env gdb /path/to/guile
 [gdb output]
-% gdb> run -e main -s /path/to/devel-gnucash/libexec/overrides/gnucash --g-fatal-warnings
+% gdb> run -e main -s /path/to/devel-gnucash/libexec/gnucash/overrides/gnucash --g-fatal-warnings
+
+--------------------------------------------------
+
+Running GnuCash under valgrind
+
+% gnucash-env valgrind /usr/bin/guile -e main -s /path/to/devel-gnucash/libexec/overrides/gnucash  # --g-fatal-warnings
+
+------------------------------------------------------------
+/opt/gnucash-unstable/libexec/gnucash/overrides/gnucash-env valgrind --gen-suppressions=yes --suppressions=lib/gnucash_valgrind.supp --leak-check=yes /usr/bin/guile -e main -s /opt/gnucash-unstable/libexec/gnucash/overrides/gnucash
+
+/opt/gnucash-unstable/libexec/gnucash/overrides/gnucash-env valgrind --gen-suppressions=yes --suppressions=lib/gnucash_valgrind.supp --leak-check=yes --error-limit=no --logfile=valgrind.out /usr/bin/guile -e main -s /opt/gnucash-unstable/libexec/gnucash/overrides/gnucash

==================================================
Differences for Makefile.am (revision 1.55.2.1 -> 1.55.2.2)
==================================================
--- /home/cvs/cvsroot/gnucash/Makefile.am	2003/09/27 06:26:10	1.55.2.1
+++ /home/cvs/cvsroot/gnucash/Makefile.am	2004/03/09 02:45:47	1.55.2.2
@@ -39,7 +39,7 @@
 # Don't list any directories or you'll get *everything*, including the
 # CVS dirs.
 
-EXTRA_DIST = config.rpath  \
+EXTRA_DIST = config.rpath  config.rpath  \
   .cvsignore \
   ChangeLog.1 \
   HACKING \

==================================================
Initial contents of new file gnucash_valgrind.supp
==================================================
--- /dev/null	2003-09-15 09:40:47.000000000 -0400
+++ gnucash_valgrind.supp	2004-03-08 21:45:23.000000000 -0500
@@ -0,0 +1,2575 @@
+{
+   Guile1
+   Memcheck:Cond
+   obj:/usr/lib/libguile.so.12.3.0
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+   fun:scm_igc
+}
+{
+   Guile2
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+   fun:scm_igc
+}
+{
+   Guile3
+   Memcheck:Value4
+   fun:scm_gc_mark
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+   fun:scm_igc
+}
+{
+   Guile4
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_mark_locations
+}
+{
+   Guile5
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+}
+{
+   Guile6
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   obj:/usr/lib/libguile.so.12.3.0
+   fun:scm_gc_mark
+}
+{
+   Guile7
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+}
+{
+   Guile8
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_igc
+   fun:scm_gc_for_newcell
+   fun:scm_cons
+}
+{
+   Guile9
+   Memcheck:Cond
+   fun:scm_gc_mark
+   obj:/usr/lib/libguile.so.12.3.0
+   fun:scm_gc_mark
+   fun:scm_threads_mark_stacks
+}
+{
+   Guile10
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_igc
+   fun:scm_gc_for_newcell
+}
+{
+   Guile11
+   Memcheck:Cond
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_gc_mark
+   fun:scm_igc
+}
+{
+   Guile-all
+   Memcheck:Cond
+   obj:/usr/lib/libguile.so.12.3.0
+}
+{
+   Foo0
+   Memcheck:Cond
+   fun:_dl_relocate_object
+   obj:/lib/libc-2.3.2.so
+   fun:_dl_catch_error
+   fun:_dl_open
+}
+{
+   Foo1
+   Memcheck:Value4
+   fun:scm_markstream
+   fun:scm_gc_mark
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+}
+{
+   Foo2
+   Memcheck:Value4
+   fun:scm_markcdr
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+   fun:scm_igc
+}
+{
+   Foo3
+   Memcheck:Value4
+   obj:/usr/lib/libguile.so.12.3.0
+   fun:scm_c_hook_run
+   fun:scm_igc
+   fun:scm_must_malloc
+}
+{
+   Foo4
+   Memcheck:Addr1
+   fun:memcpy
+   obj:/usr/lib/libltdl.so.3.1.0
+   fun:lt_dlopen
+   fun:gnc_module_get_info
+}
+{
+   Foo5
+   Memcheck:Value4
+   obj:/usr/lib/libguile.so.12.3.0
+   fun:scm_mark_locations
+   fun:scm_threads_mark_stacks
+   fun:scm_igc
+}
+{
+   Foo6
+   Memcheck:Addr1
+   fun:memcpy
+   obj:/usr/lib/libltdl.so.3.1.0
+   fun:lt_dlopen
+   fun:gnc_module_load_common
+}
+{
+   Foo7
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+   fun:xaccGUIDNewEntityTable
+   fun:xaccGUIDNew
+}
+{
+   Foo8
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_new
+}
+{
+   Foo9
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_new
+   fun:gnc_get_current_session
+}
+{
+   Foo10
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+}
+{
+   Foo11
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_new
+}
+{
+   Foo12
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_destroy
+}
+{
+   Foo13
+   Memcheck:Cond
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+}
+{
+   Foo14
+   Memcheck:Value4
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+}
+{
+   Foo15
+   Memcheck:Overlap
+   fun:memcpy
+   obj:/usr/lib/libltdl.so.3.1.0
+   fun:lt_dlopen
+   fun:gnc_module_get_info
+}
+{
+   Foo16
+   Memcheck:Param
+   writev(vector[...])
+   obj:/lib/libc-2.3.2.so
+   fun:_X11TransSocketWritev
+   fun:_X11TransWritev
+   fun:_XSend
+}
+{
+   Foo17
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_destroy
+}
+{
+   Foo18
+   Memcheck:Overlap
+   fun:memcpy
+   obj:/usr/lib/libltdl.so.3.1.0
+   fun:lt_dlopen
+   fun:gnc_module_load_common
+}
+{
+   Foo19
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_destroy
+}
+{
+   Foo20
+   Memcheck:Value4
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+}
+{
+   Foo21
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_new
+   fun:gnc_post_file_open
+}
+{
+   Foo22
+   Memcheck:Cond
+   fun:guid_equal
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+   fun:sixtp_sax_end_handler
+}
+{
+   Foo23
+   Memcheck:Cond
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+}
+{
+   Foo24
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_destroy
+}
+{
+   Foo25
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_load
+}
+{
+   Foo26
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_load
+   fun:gnc_post_file_open
+}
+{
+   Foo27
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gnc_book_new
+   fun:gnc_session_load
+}
+{
+   Foo28
+   Memcheck:Cond
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+   fun:sixtp_sax_end_handler
+   obj:/usr/lib/libxml.so.1.8.17
+}
+{
+   Foo29
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo30
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo31
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo32
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo33
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo34
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo35
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo36
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_set_guid
+   fun:gnc_book_id_end_handler
+}
+{
+   Foo37
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+}
+{
+   Foo38
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+   fun:dom_tree_to_account
+}
+{
+   Foo39
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+}
+{
+   Foo40
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+}
+{
+   Foo41
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccAccountSetGUID
+   fun:account_id_handler
+}
+{
+   Foo42
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccAccountSetGUID
+   fun:account_id_handler
+}
+{
+   Foo43
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccAccountSetGUID
+   fun:account_id_handler
+}
+{
+   Foo44
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccAccountSetGUID
+   fun:account_id_handler
+}
+{
+   Foo45
+   Memcheck:Cond
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+   fun:xaccGUIDNewEntityTable
+   fun:xaccGUIDNew
+}
+{
+   Foo46
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   Foo47
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   Foo48
+   Memcheck:Cond
+   fun:gnc_account_tree_insert_row
+   fun:gnc_account_tree_fill
+   fun:gnc_account_tree_fill
+   fun:gnc_account_tree_fill
+}
+{
+   Foo49
+   Memcheck:Cond
+   obj:/usr/lib/libgtk-1.2.so.0.9.1
+   obj:/usr/lib/libgtk-1.2.so.0.9.1
+   obj:/usr/lib/libgtk-1.2.so.0.9.1
+   obj:/usr/lib/libgtk-1.2.so.0.9.1
+}
+
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:isspace_str
+   fun:allow_and_ignore_only_whitespace
+   fun:sixtp_sax_characters_handler
+   obj:/usr/lib/libxml.so.1.8.17
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:gnc_price_create
+   fun:price_parse_xml_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gnc_price_create
+   fun:price_parse_xml_end_handler
+   fun:sixtp_sax_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gnc_price_create
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gnc_price_create
+   fun:price_parse_xml_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_price_set_guid
+   fun:price_parse_xml_sub_node
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccAccountSetGUID
+   fun:account_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+   fun:gnc_transaction_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccTransSetGUID
+   fun:trn_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+   fun:trn_splits_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+   fun:gnc_schedXaction_end_handler
+   fun:sixtp_sax_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:_IO_vfprintf
+   fun:_IO_vsprintf
+   fun:_IO_sprintf
+   fun:guid_to_string
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:_IO_vfprintf
+   fun:_IO_vsprintf
+   fun:_IO_sprintf
+   fun:guid_to_string
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncCustomerCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncCustomerCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncCustomerCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:gncCustomerSetGUID
+   fun:customer_guid_handler
+   fun:dom_tree_generic_parse
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gncCustomerSetGUID
+   fun:customer_guid_handler
+   fun:dom_tree_generic_parse
+   fun:gnc_customer_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncCustomerSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncCustomerSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:guid_g_hash_table_equal
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:guid_equal
+   fun:guid_g_hash_table_equal
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncCustomerSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncCustomerSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncCustomerSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:gncJobSetGUID
+   fun:job_guid_handler
+   fun:dom_tree_generic_parse
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gncJobSetGUID
+   fun:job_guid_handler
+   fun:dom_tree_generic_parse
+   fun:gnc_job_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:gncTaxTableSetGUID
+   fun:taxtable_guid_handler
+   fun:dom_tree_generic_parse
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gncTaxTableSetGUID
+   fun:taxtable_guid_handler
+   fun:dom_tree_generic_parse
+   fun:gnc_taxtable_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:gncInvoiceSetGUID
+   fun:invoice_guid_handler
+   fun:dom_tree_generic_parse
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gncInvoiceSetGUID
+   fun:invoice_guid_handler
+   fun:dom_tree_generic_parse
+   fun:gnc_invoice_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:gncEntrySetGUID
+   fun:entry_guid_handler
+   fun:dom_tree_generic_parse
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gncEntrySetGUID
+   fun:entry_guid_handler
+   fun:dom_tree_generic_parse
+   fun:gnc_entry_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gnc_account_tree_insert_row
+   fun:gnc_account_tree_fill
+   fun:gnc_account_tree_refresh
+   fun:gnc_acct_tree_window_new
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:add_event
+   fun:gnc_cm_event_handler
+   fun:gnc_engine_generate_event_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:add_event
+   fun:gnc_cm_event_handler
+   fun:gnc_engine_generate_event_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup
+   fun:add_event
+   fun:gnc_cm_event_handler
+   fun:gnc_engine_generate_event_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:add_event
+   fun:gnc_cm_event_handler
+   fun:gnc_engine_generate_event_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+   fun:xaccSplitLookup
+   fun:gnc_split_register_get_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+   fun:xaccSplitLookup
+   fun:gnc_split_register_get_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:add_event
+   fun:gnc_cm_event_handler
+   fun:gnc_engine_generate_event_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:add_event
+   fun:gnc_cm_event_handler
+   fun:gnc_engine_generate_event_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccRemoveEntity
+   fun:xaccSplitDestroy
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccRemoveEntity
+   fun:xaccSplitDestroy
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gtk_accelerator_name
+   obj:/usr/lib/libgtk-1.2.so.0.9.1
+   fun:g_hash_table_foreach
+   fun:gtk_item_factory_dump_items
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitSetGUID
+   fun:spl_id_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:dom_tree_to_split
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:dom_tree_to_transaction
+   fun:tt_trn_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+   fun:xaccSchedXactionMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+   fun:gnc_schedXaction_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+   fun:gnc_schedXaction_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+   fun:gnc_schedXaction_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+   fun:gnc_schedXaction_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccSchedXactionMalloc
+   fun:gnc_schedXaction_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccInitAccount
+   fun:xaccMallocAccount
+   fun:xaccSchedXactionMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreeAccount
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+   fun:dom_tree_to_freqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:xaccSchedXactionSetFreqSpec
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncJobCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncJobCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncJobCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gncBusinessRemoveObject
+   fun:remObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncJobSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncJobSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncJobSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncJobSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncJobSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncTaxTableCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncTaxTableCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncTaxTableSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncTaxTableSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncTaxTableSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncTaxTableSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncTaxTableSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncInvoiceCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncInvoiceCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncInvoiceCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncInvoiceSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncInvoiceSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncInvoiceSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncInvoiceSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncInvoiceSetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncEntryCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncEntryCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:gncBusinessAddObject
+   fun:addObj
+   fun:gncEntryCreate
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncEntrySetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncEntrySetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncEntrySetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncEntrySetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:gncBusinessRemoveObject
+   fun:remObj
+   fun:gncEntrySetGUID
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccSplitDestroy
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccSplitDestroy
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccRemoveEntity
+   fun:xaccTransCommitEdit
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   obj:/usr/lib/libglib-1.2.so.0.0.10
+   fun:xaccRemoveEntity
+   fun:xaccTransCommitEdit
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:gnc_book_destroy
+   fun:gnc_session_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gnc_account_tree_insert_row
+   fun:gnc_account_tree_fill
+   fun:gnc_account_tree_fill
+   fun:gnc_account_tree_refresh
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccTransCommitEdit
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccTransCommitEdit
+   fun:xaccAccountCommitEdit
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccStoreEntity
+   fun:gnc_price_create
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:gnc_price_create
+   fun:price_parse_xml_end_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:gnc_account_tree_insert_row
+   fun:gnc_account_tree_fill
+   fun:gnc_account_tree_refresh
+   fun:refresh_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:gnc_split_register_load
+   fun:gnc_ledger_display_refresh_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocTransaction
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+   fun:xaccGUIDType
+   fun:gnc_cm_event_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+   fun:xaccGUIDType
+   fun:gnc_cm_event_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+   fun:xaccGUIDType
+   fun:gnc_cm_event_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+   fun:xaccGUIDType
+   fun:gnc_cm_event_handler
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_lookup
+   fun:xaccGUIDTypeEntityTable
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:_IO_vfprintf
+   fun:_IO_vsprintf
+   fun:_IO_sprintf
+   fun:guid_to_string_buff
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:_IO_vfprintf
+   fun:_IO_vsprintf
+   fun:_IO_sprintf
+   fun:guid_to_string_buff
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:_IO_vfprintf
+   fun:_IO_vsprintf
+   fun:_IO_sprintf
+   fun:guid_to_string_buff
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:_IO_vfprintf
+   fun:_IO_vsprintf
+   fun:_IO_sprintf
+   fun:guid_to_string_buff
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:guid_g_hash_table_equal
+   fun:g_hash_table_lookup
+   fun:add_event
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:guid_equal
+   fun:guid_g_hash_table_equal
+   fun:g_hash_table_lookup
+   fun:add_event
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:gnc_split_register_load
+   fun:gnc_ledger_display_refresh_internal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_insert
+   fun:xaccStoreEntity
+   fun:xaccMallocSplit
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:guid_equal
+   fun:id_compare
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+   fun:xaccSplitLookup
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+   fun:xaccSplitLookup
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup
+   fun:xaccLookupEntity
+   fun:xaccSplitLookup
+   fun:gnc_split_register_load
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:xaccStoreEntity
+   fun:xaccFreqSpecInit
+   fun:xaccFreqSpecMalloc
+   fun:gnc_frequency_save_state
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:gnc_sxed_update_cal
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:subSpecsListMapDelete
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:subSpecsListMapDelete
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:subSpecsListMapDelete
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_lookup_extended
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:subSpecsListMapDelete
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:subSpecsListMapDelete
+}
+{
+   <insert a suppression name here>
+   Memcheck:Value4
+   fun:g_hash_table_remove
+   fun:xaccRemoveEntity
+   fun:xaccFreqSpecFree
+   fun:subSpecsListMapDelete
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:gnucash_sheet_style_destroy
+   fun:destroy_style_helper
+   fun:g_hash_table_foreach
+   fun:gnucash_sheet_clear_styles
+}

==================================================
Differences for gnc-freqspec-xml-v2.c (revision 1.6 -> 1.6.2.1)
==================================================
--- /home/cvs/cvsroot/gnucash/src/backend/file/gnc-freqspec-xml-v2.c	2001/12/06 09:30:12	1.6
+++ /home/cvs/cvsroot/gnucash/src/backend/file/gnc-freqspec-xml-v2.c	2004/03/09 02:45:48	1.6.2.1
@@ -86,6 +86,7 @@
 };
 
 struct freqTypeTuple freqTypeStrs[] = {
+    { "none",             INVALID },
     { "once",             ONCE },
     { "daily",            DAILY },
     { "weekly",           WEEKLY },
@@ -163,6 +164,11 @@
         xmlAddChild( ret, xmlSub );
 
         switch( fs->type ) {
+
+        case INVALID: {
+                xmlSub = xmlNewNode( NULL, "fs:none" );
+        } break;
+
         case ONCE: {
                 xmlSub = xmlNewNode( NULL, "fs:once" );
                 xmlAddChild( xmlSub, 
@@ -260,7 +266,6 @@
                 xmlAddChild( ret, xmlComposites );
         } break;
         
-        case INVALID:
         default:
                 g_return_val_if_fail( FALSE, NULL );
         }
@@ -414,6 +419,21 @@
 
 static
 gboolean
+fs_none_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	      = INVALID;
+        return TRUE;
+}
+
+static
+gboolean
 fs_once_handler( xmlNodePtr node, gpointer data )
 {
         fsParseData *fspd = data;
@@ -531,6 +551,7 @@
         { "gnc:freqspec",      gnc_fs_handler,            0, 0 },
         { "fs:ui_type",        fs_uift_handler,           1, 0 },
         { "fs:id",             fs_guid_handler,           1, 0 },
+        { "fs:none",           fs_none_handler,           0, 0 },
         { "fs:once",           fs_once_handler,           0, 0 },
         { "fs:daily",          fs_daily_handler,          0, 0 },
         { "fs:weekly",         fs_weekly_handler,         0, 0 },

==================================================
Differences for TODO-schedxactions (revision 1.19 -> 1.19.2.1)
==================================================
--- /home/cvs/cvsroot/gnucash/src/doc/TODO-schedxactions	2002/06/19 05:04:41	1.19
+++ /home/cvs/cvsroot/gnucash/src/doc/TODO-schedxactions	2004/03/09 02:45:48	1.19.2.1
@@ -3,6 +3,15 @@
 Main Scheduled Transaction todo list
 ------------------------------------
 
+. Bug#102311...
+
+  . As per comment 2004-01-05T16:31, there is an issue when other pieces of
+    the system change accounts that SXes depend on.  We have two options:
+    1: handle change at account-deletion time ["remove this acocunt will
+       affect this scheduled transaction ... what to do?"]
+    2: break out of SX since-last-run processing ["this account was removed;
+       {edit,delete} SX?"].
+
 ##################################################
 ### To-Do
 ###

==================================================
Differences for FreqSpec.c (revision 1.28 -> 1.28.2.1)
==================================================
--- /home/cvs/cvsroot/gnucash/src/engine/FreqSpec.c	2002/12/30 01:14:56	1.28
+++ /home/cvs/cvsroot/gnucash/src/engine/FreqSpec.c	2004/03/09 02:45:48	1.28.2.1
@@ -141,6 +141,7 @@
 {
   static gchar wday_name[WDAY_BUF_WIDTH];
   struct tm t;
+  memset( &t, 0, sizeof( t ) );
   t.tm_wday = day;
   strftime(wday_name, WDAY_NAME_WIDTH, "%A", &t);
   return wday_name;
@@ -163,6 +164,7 @@
 {
   static gchar month_name[WDAY_BUF_WIDTH];
   struct tm t;
+  memset( &t, 0, sizeof( t ) );
   t.tm_mon = month;
   strftime(month_name, WDAY_NAME_WIDTH, "%b", &t);
   return month_name;
@@ -245,7 +247,7 @@
 {
         g_return_val_if_fail( fs, INVALID );
         /* Is this really a fail? */
-        g_return_val_if_fail( fs->type != INVALID, INVALID );
+        //g_return_val_if_fail( fs->type != INVALID, INVALID );
         return fs->type;
 }
 
@@ -326,22 +328,26 @@
                 guint32 in_months_from_epoch, after_repeat_in_month_interval,
                         complete_intervals, next_repeat_months_from_epoch, month, year;
 
-                in_months_from_epoch = (g_date_year( CONST_HACK in_date )-1) * 12 +
-                        g_date_month( CONST_HACK in_date ) - 1;
+                in_months_from_epoch
+                  = (g_date_year( CONST_HACK in_date )-1)
+                  * 12
+                  + g_date_month( CONST_HACK in_date )
+                  - 1;
                 complete_intervals =
-                        (in_months_from_epoch - fs->s.monthly.offset_from_epoch) /
-                        fs->s.monthly.interval_months;
-                after_repeat_in_month_interval =
-                        (g_date_day( CONST_HACK in_date ) >= fs->s.monthly.day_of_month ||
-                         (in_months_from_epoch - fs->s.monthly.offset_from_epoch) %
-                         fs->s.monthly.interval_months > 0 ||
-                         g_date_day( CONST_HACK in_date ) >=
-                         g_date_days_in_month( g_date_month( CONST_HACK in_date ),
-                                               g_date_year( CONST_HACK in_date ) ) )  ? 1 : 0;
+                        (in_months_from_epoch - fs->s.monthly.offset_from_epoch)
+                  / fs->s.monthly.interval_months;
+                after_repeat_in_month_interval = 
+                        (g_date_day( CONST_HACK in_date ) >= fs->s.monthly.day_of_month
+                         || ( (in_months_from_epoch - fs->s.monthly.offset_from_epoch)
+                              % fs->s.monthly.interval_months > 0 )
+                         || ( g_date_day( CONST_HACK in_date )
+                              >= g_date_days_in_month( g_date_month( CONST_HACK in_date ),
+                                                       g_date_year( CONST_HACK in_date ) ) )
+                         ? 1 : 0;
                 next_repeat_months_from_epoch =
-                        fs->s.monthly.offset_from_epoch +
-                        (complete_intervals + after_repeat_in_month_interval) *
-                        fs->s.monthly.interval_months;
+                         fs->s.monthly.offset_from_epoch
+                         + (complete_intervals + after_repeat_in_month_interval)
+                         * fs->s.monthly.interval_months;
                 /* Hmmm... what happens if the day of the month is greater than the
                  * number of days in this month?
                  * Here I have constrained the day of the month by the number
@@ -455,6 +461,14 @@
 */
 
 void
+xaccFreqSpecSetNone( FreqSpec *fs )
+{
+        g_return_if_fail( fs );
+        xaccFreqSpecCleanUp( fs );
+        fs->type = INVALID;
+}
+
+void
 xaccFreqSpecSetOnceDate( FreqSpec *fs, const GDate* when )
 {
         g_return_if_fail( fs );
@@ -712,6 +726,10 @@
         memset( freqStrBuf, 0, MAX_FREQ_STR_SIZE + 1 );
 
         switch( xaccFreqSpecGetUIType( fs ) ) {
+        case UIFREQ_NONE:
+                snprintf( freqStrBuf, MAX_FREQ_STR_SIZE, _("None") );
+                break;
+
         case UIFREQ_ONCE:
                 tmpStr = g_new0( char, GDATE_STRING_BUF_SIZE );
                 /* this is now a GDate. */
@@ -781,6 +799,7 @@
                         if ( xaccFreqSpecGetType(tmpFS) != WEEKLY ) {
                                 snprintf( freqStrBuf, MAX_FREQ_STR_SIZE,
                                           "error: UIFREQ_WEEKLY doesn't contain weekly children" );
+                                g_free( tmpStr );
                                 return;
                         }
                         if ( tmpInt == -1 ) {
@@ -788,7 +807,7 @@
                         }
                         /* put the first letter of the weekday name in
                            the appropriate position. */
-                        dowIdx = tmpFS->s.weekly.offset_from_epoch;
+                        dowIdx = tmpFS->s.weekly.offset_from_epoch % 7;
                         tmpStr[dowIdx] = *(get_wday_name(dowIdx));
                 }
 

==================================================
Differences for FreqSpec.h (revision 1.10 -> 1.10.2.1)
==================================================
--- /home/cvs/cvsroot/gnucash/src/engine/FreqSpec.h	2002/08/09 16:38:19	1.10
+++ /home/cvs/cvsroot/gnucash/src/engine/FreqSpec.h	2004/03/09 02:45:48	1.10.2.1
@@ -117,6 +117,8 @@
 UIFreqType xaccFreqSpecGetUIType( FreqSpec *fs );
 void xaccFreqSpecSetUIType( FreqSpec *fs, UIFreqType newUIFreqType );
 
+void xaccFreqSpecSetNone( FreqSpec *fs );
+
 /**
  * Sets the type to once-off, and initialises the
  * date it occurs on.

==================================================
Differences for dialog-scheduledxaction.c (revision 1.70.2.3 -> 1.70.2.4)
==================================================
--- /home/cvs/cvsroot/gnucash/src/gnome/dialog-scheduledxaction.c	2003/06/15 23:05:33	1.70.2.3
+++ /home/cvs/cvsroot/gnucash/src/gnome/dialog-scheduledxaction.c	2004/03/09 02:45:48	1.70.2.4
@@ -101,6 +101,16 @@
         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;
@@ -211,6 +221,10 @@
 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 );
+
+
 /** Implementations *****************************************************/
 
 static
@@ -223,6 +237,15 @@
         gnome_dialog_close( GNOME_DIALOG( 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 )
 {
@@ -232,9 +255,13 @@
         /* 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 );
 }
 
@@ -342,9 +369,10 @@
                 sxList = gnc_book_get_schedxactions( book );
                 sxList = g_list_append( sxList, sxed->sx );
                 gnc_book_set_schedxactions( book, sxList );
-                sxed->sx = NULL;
                 sxed->newsxP = FALSE;
         }
+        // regardless, do this so the close handler won't complain.
+        sxed->sx = NULL;
 
         /* update lists */
         /* We now do this by getting the list of SX Lists and updating them
@@ -607,7 +635,7 @@
 gboolean
 gnc_sxed_check_consistent( SchedXactionEditorDialog *sxed )
 {
-        gint ttVarCount;
+        gint ttVarCount, splitCount;
         FreqSpec *fs;
 
         /* Do checks on validity and such, interrupting the user if
@@ -630,6 +658,7 @@
          */
 
         ttVarCount = 0;
+        splitCount = 0;
         {
                 static const int NUM_ITERS_WITH_VARS = 5;
                 static const int NUM_ITERS_NO_VARS = 1;
@@ -685,8 +714,11 @@
                                               (gpointer)vars );
                         g_hash_table_foreach( txns, set_sums_to_zero, NULL );
                         tmp = gnc_numeric_zero();
-                        for ( splitList = xaccSchedXactionGetSplits( sxed->sx );
-                              splitList; splitList = splitList->next )
+
+                        splitList = xaccSchedXactionGetSplits( sxed->sx );
+                        splitCount += g_list_length( splitList );
+
+                        for ( ; splitList; splitList = splitList->next )
                         {
                                 txnCreditDebitSums *tcds;
                                 s = (Split*)splitList->data;
@@ -836,6 +868,15 @@
                                                        "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_parented( sxed->dialog,
+                                                     _("Scheduled Transactions without a template\n"
+                                                       "transaction cannot be automatically created.") );
+                        return FALSE;
+                }
         }
 
         /* deal with time. */
@@ -1005,6 +1046,10 @@
                 fs = xaccSchedXactionGetFreqSpec( sxed->sx );
                 gnc_frequency_save_state( sxed->gncfreq, fs, &gdate );
 
+                GString *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 );
         }
@@ -1050,6 +1095,8 @@
         gnc_unregister_gui_component_by_data
                 (DIALOG_SCHEDXACTION_CM_CLASS, sxd);
 
+        // FIXME: um.  We should free memory and stuff, here.
+
         g_free( sxd );
 }
 
@@ -1145,6 +1192,8 @@
         gtk_signal_connect( GTK_OBJECT(w), "click-column",
                             GTK_SIGNAL_FUNC(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;
@@ -1397,10 +1446,14 @@
         /* 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->advanceSpin), TRUE );
         gtk_widget_set_sensitive( GTK_WIDGET(sxed->remindSpin), FALSE );
         gtk_widget_set_sensitive( GTK_WIDGET(sxed->endCountEntry), FALSE );
         gtk_widget_set_sensitive( GTK_WIDGET(sxed->endRemainEntry), FALSE );
+
+        gtk_editable_set_editable( GTK_EDITABLE(sxed->advanceSpin), TRUE );
+        gtk_editable_set_editable( GTK_EDITABLE(sxed->remindSpin), TRUE );
+
 	/* Allow grow, allow shrink, auto-shrink */
         gtk_window_set_policy (GTK_WINDOW(sxed->dialog), TRUE, TRUE, FALSE);
 
@@ -1796,18 +1849,19 @@
                 book = gnc_get_current_book ();
                 sxList = gnc_book_get_schedxactions( book );
                 for ( sel = cl->selection; sel; sel = sel->next ) {
-                        gint tag;
-                        gint *p_tag = &tag;
+                        SxRuntimeInfo *sxri;
+                        SxRuntimeInfo **p_sxri = &sxri;
                         gpointer unused;
                         gboolean foundP;
 
                         sx = (SchedXaction*)gtk_clist_get_row_data( cl, (int)sel->data );
                         sxList = g_list_remove( sxList, (gpointer)sx );
                         foundP = g_hash_table_lookup_extended( sxd->sxData, sx,
-                                                               &unused, (gpointer*)p_tag );
+                                                               &unused,
+                                                               (gpointer*)p_sxri );
                         g_assert( foundP );
-                        if ( tag != -1 ) {
-                                gnc_dense_cal_mark_remove( sxd->gdcal, tag );
+                        if ( sxri->markTag != -1 ) {
+                                gnc_dense_cal_mark_remove( sxd->gdcal, sxri->markTag );
                         }
                         g_hash_table_remove( sxd->sxData, sx );
                         xaccSchedXactionFree( sx );
@@ -1900,6 +1954,19 @@
 }
 
 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 )
 {
@@ -1909,14 +1976,17 @@
         char *text[3];
         GString *freqStr;
         GString *nextDate;
-        gint row;
         int i;
         GDate *nextInstDate = NULL, *calEndDate;
         int instArraySize;
         GDate **instArray;
         GList *instList;
-        gint gdcMarkTag, oldMarkTag;
-        gint *p_oldMarkTag = &oldMarkTag;
+        gpointer unused;
+        SxRuntimeInfo *sxri = NULL;
+        SxRuntimeInfo **p_sxri = &sxri;
+        gboolean foundP;
+        gint gdcMarkTag;
+        gint row;
 
         sx = (SchedXaction*)data;
         sxd = (SchedXactionDialog*)user_data;
@@ -1987,38 +2057,47 @@
                 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, sx );
-        if ( row != -1 ) {
-                gpointer unused;
-                gboolean foundP =
-                        g_hash_table_lookup_extended( sxd->sxData,
-                                                      (gpointer)sx,
-                                                      &unused,
-                                                      (gpointer*)p_oldMarkTag );
-                g_assert( foundP );
-        }
-        if ( row == -1 ) {
+
+        row = gtk_clist_find_row_from_data( clist, (gpointer)sx );
+        if ( sxri->row == -1 ) {
                 /* new item to be inserted */
-                row = gtk_clist_append( clist, text );
-                gtk_clist_set_row_data( clist, row, sx );
+                sxri->row = gtk_clist_append( clist, text );
+                gtk_clist_set_row_data( clist, sxri->row, sx );
         } else {
-                /* old item being replaced. */
-                if ( oldMarkTag != -1 ) {
-                        gnc_dense_cal_mark_remove( sxd->gdcal, oldMarkTag );
-                }
                 for ( i=0; i<3; i++ ) {
-                        gtk_clist_set_text( clist, row, i, text[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)gdcMarkTag );
+        g_hash_table_insert( sxd->sxData, (gpointer)sx, (gpointer)sxri );
+        sxri = NULL;
 
         g_string_free( freqStr,  TRUE );
         g_string_free( nextDate, TRUE );
@@ -2273,10 +2352,8 @@
         }
 
         i = 0;
-        gnc_dense_cal_set_month( sxed->example_cal,
-                                 g_date_month( &d ) );
-        gnc_dense_cal_set_year( sxed->example_cal,
-                                g_date_year( &d ) );
+        gnc_dense_cal_set_month( sxed->example_cal, g_date_month( &d ) );
+        gnc_dense_cal_set_year(  sxed->example_cal, g_date_year( &d ) );
         while ( (i < EX_CAL_NUM_MONTHS * 31)
                 && g_date_valid( &d )
                 /* Restrict based on end date */
@@ -2308,8 +2385,12 @@
                                                    sxed->cal_marks,
                                                    name, info->str );
                 gtk_widget_queue_draw( GTK_WIDGET( sxed->example_cal ) );
-                g_free( name );
+
                 g_string_free( info, TRUE );
+                if ( name != NULL )
+                {
+                        g_free( name );
+                }
         }
 
         xaccFreqSpecFree( fs );

==================================================
Differences for dialog-sx-from-trans.c (revision 1.26.2.1 -> 1.26.2.2)
==================================================
--- /home/cvs/cvsroot/gnucash/src/gnome/dialog-sx-from-trans.c	2003/04/12 17:03:14	1.26.2.1
+++ /home/cvs/cvsroot/gnucash/src/gnome/dialog-sx-from-trans.c	2004/03/09 02:45:48	1.26.2.2
@@ -37,6 +37,7 @@
 #include "gnc-book-p.h"
 #include "gnc-date-edit.h"
 #include "gnc-engine-util.h"
+#include "gnc-ui.h"
 #include "gnc-ui-util.h"
 #include "gnc-dense-cal.h"
 
@@ -59,6 +60,9 @@
 
 #define SX_OPT_STR "Scheduled Transactions"
 
+#define SXFTD_ERRNO_UNBALANCED_XACTION 3
+#define SXFTD_ERRNO_OPEN_XACTION -3
+
 #define SXFTD_EXCAL_NUM_MONTHS 4
 #define SXFTD_EXCAL_MONTHS_PER_COL 4
 
@@ -211,14 +215,17 @@
 {
   
   Transaction *tr = sxfti->trans;
-  GList *tt_list= NULL;
+  GList *tt_list = NULL;
   GList *splits, *template_splits = NULL;
   TTInfo *tti = gnc_ttinfo_malloc();
   TTSplitInfo *ttsi;
   Split *sp;
+  gnc_numeric runningBalance;
   gnc_numeric split_value;
   const char *tmpStr;
 
+  runningBalance = gnc_numeric_zero();
+
   gnc_ttinfo_set_description(tti, xaccTransGetDescription(tr));
   gnc_ttinfo_set_num(tti, xaccTransGetNum(tr));
   gnc_ttinfo_set_currency(tti, xaccTransGetCurrency(tr));
@@ -231,6 +238,9 @@
     split_value = xaccSplitGetValue(sp);
     gnc_ttsplitinfo_set_memo(ttsi, xaccSplitGetMemo(sp));
 
+    runningBalance = gnc_numeric_add( runningBalance, split_value,
+                                      100, (GNC_DENOM_AUTO | GNC_DENOM_LCD) );
+
     if(gnc_numeric_positive_p(split_value))
     {
             tmpStr = xaccPrintAmount( split_value,
@@ -251,6 +261,17 @@
     template_splits = g_list_append(template_splits, ttsi);
   }
 
+  if ( ! gnc_numeric_zero_p( runningBalance )
+          && !gnc_verify_dialog_parented( sxfti->dialog, FALSE,
+                                          "%s",
+                                          _("The Scheduled Transaction Editor "
+                                            "cannot automatically\nbalance "
+                                            "this transaction. "
+                                            "Should it still be "
+                                            "entered?") ) ) {
+        return SXFTD_ERRNO_UNBALANCED_XACTION;
+  }
+
   gnc_ttinfo_set_template_splits(tti, template_splits);
 
   tt_list = g_list_append(tt_list, tti);
@@ -337,7 +358,10 @@
   if ( ! sxfti->trans ) {
     return -2;
   }
-
+  if ( xaccTransIsOpen( sxfti->trans ) ) {
+          return SXFTD_ERRNO_OPEN_XACTION;
+  }
+          
   sxfti_attach_callbacks(sxfti);
 
   /* Setup the example calendar and related data structures. */
@@ -511,7 +535,10 @@
     xaccSchedXactionSetAdvanceReminder( sx, daysInAdvance );
   }
 
-  sxftd_add_template_trans( sxfti );
+  if ( sxftd_add_template_trans( sxfti ) != 0 )
+  {
+          sxftd_errno = SXFTD_ERRNO_UNBALANCED_XACTION;
+  }
 
   return sxftd_errno;
 }
@@ -539,13 +566,19 @@
   GList *sx_list;
   guint sx_error = sxftd_compute_sx(sxfti);
 
-  if (sx_error != 0)
+  if (sx_error != 0
+      && sx_error != SXFTD_ERRNO_UNBALANCED_XACTION)
   {
     PERR( "Error in sxftd_compute_sx after ok_clicked [%d]", sx_error );
   }
   else
   {
     SchedXactionDialog *sxd;
+
+    if ( sx_error == SXFTD_ERRNO_UNBALANCED_XACTION ) {
+            gnc_error_dialog( _( "The Scheduled Transaction is unbalanced.\n"
+                                 "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);
@@ -608,10 +641,13 @@
   SchedXactionDialog *adv_dlg;
   SchedXactionEditorDialog *adv_edit_dlg;
 
-  if (sx_error != 0)
+  if ( sx_error != 0
+       && sx_error != SXFTD_ERRNO_UNBALANCED_XACTION )
   {
-    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.
+          PWARN( "something bad happened in sxftd_compute_sx [%d]", sx_error );
+          return;
   }
   gtk_widget_hide( sxfti->dialog );
   /* force a gui update. */
@@ -644,7 +680,19 @@
   sxfti->sx = xaccSchedXactionMalloc(gnc_get_current_book ());
 
   if ( (errno = sxftd_init( sxfti )) < 0 ) {
-          PERR( "Error in sxftd_init: %d", errno );
+          if ( errno == SXFTD_ERRNO_OPEN_XACTION )
+          {
+                  gnc_error_dialog( _( "Cannot create a Scheduled Transaction "
+                                       "from a Transaction currently\n"
+                                       "being edited. Please Enter the "
+                                       "Transaction before Scheduling." ) );
+                  sxftd_close( sxfti, TRUE );
+                  return;
+          }
+          else
+          {
+                  PERR( "Error in sxftd_init: %d", errno );
+          }
   }
 
   gtk_widget_show_all(sxfti->dialog);

==================================================
Differences for dialog-sxsincelast.c (revision 1.65.2.2 -> 1.65.2.3)
==================================================
--- /home/cvs/cvsroot/gnucash/src/gnome/dialog-sxsincelast.c	2003/05/19 01:26:07	1.65.2.2
+++ /home/cvs/cvsroot/gnucash/src/gnome/dialog-sxsincelast.c	2004/03/09 02:45:48	1.65.2.3
@@ -404,6 +404,15 @@
 }
 
 /**
+ * we need to show the dialog if there's something for the user to interact
+ * with.
+ *
+ * we need to show the dialog if there are auto-created,
+ * notification-requested transactions.
+ *
+ * we don't want to show the dialog if there's nothing for the user to see.
+ *
+ * --------------------------------------------------
  * @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
@@ -626,7 +635,8 @@
 gboolean
 gnc_sxsld_autocreate_appr( sxSinceLastData *sxsld )
 {
-        return (sxsld->autoCreatedCount > 0);
+  return (sxsld->autoCreatedCount > 0);
+  //return ( g_list_length( sxsld->autoCreateList ) != 0 );
 }
 
 static
@@ -2373,10 +2383,13 @@
         gboolean errFlag;
         createData *createUD;
         toCreateInstance *tci;
-        gnc_commodity *commonCommodity = NULL;
+        gnc_commodity *commonCommodity;
         GHashTable *actualVars;
         gnc_numeric *varIValue;
+        gboolean toRetVal;
 
+        commonCommodity = NULL;
+        toRetVal = FALSE;
         errFlag = FALSE;
 
         /* FIXME: In general, this should [correctly] deal with errors such
@@ -2394,6 +2407,16 @@
         /* the action and description/memo are in the template */
         gnc_copy_trans_onto_trans( t, newT, FALSE, FALSE );
 
+        {
+                char *guidStr;
+                
+                guidStr = guid_to_string( xaccTransGetGUID( newT ) );
+                DEBUG( "SX [%s] -> newT:guid [%s]",
+                       xaccSchedXactionGetName( tci->parentTCT->sx ),
+                       guidStr );
+                g_free( guidStr );
+        }
+
         xaccTransSetDate( newT,
                           g_date_day( tci->date ),
                           g_date_month( tci->date ),
@@ -2407,6 +2430,8 @@
                 xaccTransDestroy( newT );
                 xaccTransCommitEdit( newT );
                 return FALSE;
+                // don't goto cleanup; here because we haven't created the
+                // stuff to cleanup yet.
         }
 
         /* Setup the predefined variables for credit/debit formula
@@ -2454,20 +2479,38 @@
                                       xaccSchedXactionGetName( createUD->tci->parentTCT->sx ) );
                                 /* Fix for bug#102311 -- skip the offending
                                  * transaction by skipping the split. */
-                                continue;
+                                
+                                /* No ... we reallly need to skip the entire
+                                   transaction, at this point. :( Bug#130330. */
+                                PERR( "err transaction %.8x", (int)newT );
+                                errFlag = TRUE;
+                                break;
                         }
                         acct_guid = kvp_value_get_guid( kvp_val );
-                        acct = xaccAccountLookup( acct_guid,
-                                                  gnc_get_current_book ());
+                        acct = xaccAccountLookup( acct_guid, gnc_get_current_book ());
+
+                        if ( acct == NULL )
+                        {
+                                char *guidStr;
+
+                                guidStr = guid_to_string( acct_guid );
+                                PERR( "No account for guid [%s], cancelling SX [%s] creation.",
+                                      guidStr, xaccSchedXactionGetName( createUD->tci->parentTCT->sx ) );
+                                g_free( guidStr );
+                                errFlag = TRUE;
+                                break;
+                        }
 #if 0 /* debug */
-                        DEBUG( "Got account with name \"%s\"",
-                                xaccAccountGetName( acct ) );
+                        DEBUG( "Got account [%.8x] with name [%s]",
+                               (int)acct, xaccAccountGetName( acct ) );
 #endif /* 0 -- debug */
                         if ( commonCommodity != NULL ) {
                                 if ( commonCommodity != xaccAccountGetCommodity( acct ) ) {
                                         PERR( "Common-commodity difference: old=%s, new=%s\n",
                                               gnc_commodity_get_mnemonic( commonCommodity ),
                                               gnc_commodity_get_mnemonic( xaccAccountGetCommodity( acct ) ) );
+                                        errFlag = TRUE;
+                                        break;
                                 }
                         }
                         commonCommodity = xaccAccountGetCommodity( acct );
@@ -2564,19 +2607,8 @@
         }
 
 
-        /* Cleanup actualVars table. */
-        {
-                g_hash_table_foreach( actualVars,
-                                      gnc_sxsl_del_vars_table_ea,
-                                      NULL );
-                g_hash_table_destroy( actualVars );
-                actualVars = NULL;
-        }
-
         /* set the balancing currency. */
-        if ( commonCommodity == NULL ) {
-                PERR( "Unable to find common currency/commodity." );
-        } else {
+        if ( commonCommodity != NULL ) {
                 xaccTransSetCurrency( newT, commonCommodity );
         }
 
@@ -2596,20 +2628,41 @@
         if ( errFlag ) {
                 PERR( "Some error in new transaction creation..." );
                 xaccTransRollbackEdit( newT );
+
+                xaccTransBeginEdit( newT );
                 xaccTransDestroy( newT );
                 xaccTransCommitEdit( newT );
-                return FALSE;
+
+                toRetVal = FALSE;
+                goto cleanup;
         }
+        else
+        {
+                xaccTransCommitEdit( newT );
 
-        xaccTransCommitEdit( newT );
+                if ( createUD->createdGUIDs != NULL ) {
+                        char *guidStr = guid_to_string( (gpointer)xaccTransGetGUID(newT) );
+                        DEBUG( "adding created GUID [%s]", guidStr );
+                        g_free( guidStr );
+                        *createUD->createdGUIDs =
+                                g_list_append( *(createUD->createdGUIDs),
+                                               (gpointer)xaccTransGetGUID(newT) );
+                }
 
-        if ( createUD->createdGUIDs != NULL ) {
-                *createUD->createdGUIDs =
-                        g_list_append( *(createUD->createdGUIDs),
-                                       (gpointer)xaccTransGetGUID(newT) );
+                toRetVal = TRUE;
         }
 
-        return TRUE;
+
+ cleanup:
+        /* Cleanup actualVars table. */
+        {
+                g_hash_table_foreach( actualVars,
+                                      gnc_sxsl_del_vars_table_ea,
+                                      NULL );
+                g_hash_table_destroy( actualVars );
+                actualVars = NULL;
+        }
+        return toRetVal;
 }
 
 /**

==================================================
Differences for sched-xact.glade (revision 1.41.2.2 -> 1.41.2.3)
==================================================
--- /home/cvs/cvsroot/gnucash/src/gnome/glade/sched-xact.glade	2003/05/30 18:55:03	1.41.2.2
+++ /home/cvs/cvsroot/gnucash/src/gnome/glade/sched-xact.glade	2004/03/09 02:45:48	1.41.2.3
@@ -313,10 +313,10 @@
 		    <wrap>False</wrap>
 		    <value>0</value>
 		    <lower>0</lower>
-		    <upper>100</upper>
+		    <upper>365</upper>
 		    <step>1</step>
-		    <page>10</page>
-		    <page_size>10</page_size>
+		    <page>30</page>
+		    <page_size>30</page_size>
 		    <child>
 		      <padding>0</padding>
 		      <expand>False</expand>
@@ -390,10 +390,10 @@
 		    <wrap>False</wrap>
 		    <value>0</value>
 		    <lower>0</lower>
-		    <upper>100</upper>
+		    <upper>365</upper>
 		    <step>1</step>
-		    <page>10</page>
-		    <page_size>10</page_size>
+		    <page>30</page>
+		    <page_size>30</page_size>
 		    <child>
 		      <padding>0</padding>
 		      <expand>False</expand>
@@ -695,16 +695,6 @@
 	    </widget>
 	  </widget>
 	</widget>
-
-	<widget>
-	  <class>GtkStatusbar</class>
-	  <name>ledger_status</name>
-	  <child>
-	    <padding>0</padding>
-	    <expand>False</expand>
-	    <fill>False</fill>
-	  </child>
-	</widget>
       </widget>
     </widget>
   </widget>

==================================================
Differences for gnc-dense-cal.c (revision 1.11.2.1 -> 1.11.2.2)
==================================================
--- /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-dense-cal.c	2003/04/12 17:03:27	1.11.2.1
+++ /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-dense-cal.c	2004/03/09 02:45:48	1.11.2.2
@@ -171,6 +171,8 @@
     struct tm my_tm;
     int i;
 
+    memset( buf, 0, MONTH_NAME_BUFSIZE );
+    memset( &my_tm, 0, sizeof( struct tm ) );
     my_tm.tm_mon = mon;
     i = strftime (buf, MONTH_NAME_BUFSIZE-1, "%b", &my_tm);
     return buf;
@@ -187,6 +189,8 @@
     struct tm my_tm;
     int i;
     
+    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);
     /* Wild hack to use only the first two letters */
@@ -467,6 +471,13 @@
         g_return_if_fail (GNC_IS_DENSE_CAL (object));
 
         dcal = GNC_DENSE_CAL(object);
+
+        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 )
                 gdk_pixmap_unref( dcal->drawbuf );
 
@@ -762,13 +773,13 @@
                                                 dcal->label_width,
                                                 dcal->label_height, -1 );
                         gdk_draw_rectangle( dcal->monthLabels[i],
-                                            widget->style->bg_gc[widget->state],
+                                            widget->style->white_gc,
                                             TRUE, 0, 0,
                                             dcal->label_width,
                                             dcal->label_height );
 
                         gdk_draw_rectangle( tmpPix,
-                                            widget->style->bg_gc[widget->state],
+                                            widget->style->white_gc,
                                             TRUE, 0, 0,
                                             dcal->label_height,
                                             dcal->label_width );
@@ -783,7 +794,7 @@
                                                 dcal->label_width );
 
                         /* now, (transpose the pixel matrix)==(do a 90-degree
-                         * counter-clocwise rotation) */
+                         * 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 )
@@ -955,7 +966,7 @@
                       g_date_add_days( &d, 1 ), doc++ ) {
                         doc_coords( dcal, doc, &x1, &y1, &x2, &y2 );
                         memset( dayNumBuf, 0, 3 );
-                        sprintf( dayNumBuf, "%d", g_date_day( &d ) );
+                        snprintf( dayNumBuf, 3, "%d", g_date_day( &d ) );
                         numW = gdk_string_width( dcal->dayLabelFont, dayNumBuf );
                         numH = gdk_string_height( dcal->dayLabelFont, dayNumBuf );
                         w = (x2 - x1)+1;
@@ -1018,6 +1029,8 @@
                         rowText[1] = gdcmd->info;
                         gtk_clist_insert( cl, row++, rowText );
                 }
+
+                // FIXME: free 'date'?
         }
 }
 
@@ -1221,6 +1234,7 @@
 
         startD = g_date_new();
         endD = g_date_new();
+        // FIXME: clean these up?
 
         /* Calculate the number of weeks in the column before the month we're
          * interested in. */
@@ -1549,6 +1563,7 @@
 
         /* Ignore non-realistic marks */
         if ( (gint)markToRemove == -1 ) {
+                DEBUG( "markToRemove = -1" );
                 return;
         }
 
@@ -1560,6 +1575,7 @@
         }
         g_assert( l != NULL );
         if ( l == NULL ) {
+                DEBUG( "l == null" );
                 return;
         }
         g_assert( gdcmd != NULL );

==================================================
Differences for gnc-frequency.c (revision 1.14.2.2 -> 1.14.2.3)
==================================================
--- /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-frequency.c	2003/07/26 02:57:40	1.14.2.2
+++ /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-frequency.c	2004/03/09 02:45:49	1.14.2.3
@@ -595,7 +595,9 @@
         /* based on value, parse widget values into FreqSpec */
         switch ( uift ) {
         case UIFREQ_NONE:
-                /* hmmm... shouldn't really be allowed. */
+                xaccFreqSpecSetNone( fs );
+                xaccFreqSpecSetUIType( fs, uift );
+                g_date_free( gd );
                 break;
         case UIFREQ_ONCE:
                 xaccFreqSpecSetOnceDate( fs, gd );

==================================================
Differences for gnc-ledger-display.c (revision 1.24 -> 1.24.2.1)
==================================================
--- /home/cvs/cvsroot/gnucash/src/register/ledger-core/gnc-ledger-display.c	2003/01/03 03:06:28	1.24
+++ /home/cvs/cvsroot/gnucash/src/register/ledger-core/gnc-ledger-display.c	2004/03/09 02:45:49	1.24.2.1
@@ -489,7 +489,7 @@
   }
 
   ld = gnc_ledger_display_internal (NULL, q, LD_GL,
-                                    GENERAL_LEDGER,
+                                    SEARCH_LEDGER,
                                     REG_STYLE_JOURNAL,
                                     FALSE, TRUE); /* TRUE : template mode */
 


More information about the Gnucash-changes mailing list