As you type a date into the calendar widget it tries to make a GDate
with the current year and month, if you are typing 31/ in February
you get a critical error in the trace file. This patch adds a test
for a valid date before proceeding.
In get_filter_times, the start_date_today was being tested instead of
the end_date_today, corrected. Also corrected the default option for
end date to match start date.
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.