This got dropped when qof_instance_get replaced direct KVP access and it makes
it impossible to edit a scheduled transaction since splits can't have both a credit
and debit value.
When gnc-numeric.c was converted to C++, gnc_numeric_equal was changed so
that an invalid number is equal to anything. The SX since last run dialog
initializes unset variables to invalid numbers which means that whatever you
type is equal to what is already there and is ignored.
Instead have gnc:company-info and gnc:fancy-date-info use the book
parameter again (which got lost in the kvp refactoring).
This preserves some code for potentially being able to have two
books open at once.
Make sure the internal split function get_corr_account_split
behaves consistently on multi-split transactions. The transaction
report depends on this.
Add test case to catch potential regressions
Simplify filter test function in transaction report.
The backends were using qof_backend_get_error() to test for sync errors.
This function clears the error, so the tests resulted in the error being
cleared before the session could see it and so it thought that the sync
had succeeded.
Replace those uses of qof_backend_get_error() with a new function
qof_backend_check_error() that doesn't clear the error.
Rewrite get_quote_time() to use the modern OO interface to Date::Manip.
This requires perl-5.12 or later, so require that. schemify_date() isn't
used anywhere, so remove that.
Windows XP doesn't provide a default key, just the TZI returned by
GetDefaultTimeZone(), so use that instead of throwing if there's no
default key in the registry. If GetDefaultTimeZone() files, throw: We
can't safely read the database without a timezone.
Turns out that there are changes as well as compression, particularly
if the timezone is different from the one from the last commit of the
gml2 files. Since there's no real benefit to saving the files most of
the time, don't, but leave the save line in, commented out, to make it
easy to write new files if necessary.