Replace the autogen-sh time configuration which doesn't really work
correctly by making a local interpreter which links whichever library
pkg-config finds.
Also makes Guile-2.0 the default by looking for it first.
Due a copy and paste the German tax report was still using the
US quarters. This wrong as the latter are not real quarters as in
Germany. To fix this we simply set tax-qtr-real-qtr-year to 0 to
force real quarters. Thus changes to taxtxf.scm can be easily ported
to taxtxf-de_DE.scm
Part 2: GDate can represent a wider range that GDateTime, so make
sure that GDates outside of the range are clamped. The GDateTime
range is 1 - 9999 CE, more than wide enough for most purposes. GDate
can represent out to 65535CE, but the significant difference is that
a freshly-cleared GDate is 0CE, which GDateTime won't accept. That we
set to the Unix Epoch 0, 1970-Jan-1.
gnc_sx_incr_temporal_state can invalidate the gdate, so make sure that a
valid date is stored.
Adding the inst->temporal_state ptr to the sx->deferredList is wrong, it's
freed shortly after adding, causing later access to the freed ptr.
Add a clone instead.
Part 2: GDate can represent a wider range that GDateTime, so make
sure that GDates outside of the range are clamped. The GDateTime
range is 1 - 9999 CE, more than wide enough for most purposes. GDate
can represent out to 65535CE, but the significant difference is that
a freshly-cleared GDate is 0CE, which GDateTime won't accept. That we
set to the Unix Epoch 0, 1970-Jan-1.
Use the temp dir as base dir for .gnucash
in all cases where the home dir fails. This
is more than just if the home directory doesn't exist.
Also don't attempt to create the home directory.
Without this Guile can't find libgncmod-engine and GnuCash won't start.
I don't know how this worked before, perhaps because the correct path
was in src/bin/overrides/gnucash-env.in
This works only with Apple clang; the regular clang is at version 3, but
hasn't been tested for what versions emit what sort of function signatures
to logs.
Compiled files go to prefix/lib/guile/2.0/ccache, which isn't the same as
where the source files are stored (prefix/share/guile/2.0), so provide a
separate variable for it. Also don't throw away the user's value of
GUILE_LOAD_COMPILED_PATH in favor of GUILE_LOAD_PATH.
When adding splits to such a lot the code was supposed to
reduce splits in the same transaction and the same lot to
one single split. This is to avoid infinite fragmentation
over time.
That reduction wasn't working for business lots and should
be fixed with this commit.
This is also a potential fix for bug https://bugzilla.gnome.org/show_bug.cgi?id=741418
which could very well be a report of such infinite fragmentation.