Prior to gnucash 26.4 with kvps for address, entry, job and taxtable objects
were not handled properly (but not in use either).
This patch will prevent any older version of gnucash to open a data file if a newer
version has written any of the above kvps.
A follow up on bug 728841
* Morritz Lipp's libdbi-0.9.0 compatibility fix
* Morritz Lipp's realloc return value fix
* Re-enable save and enable loading of $GNC_DOT_DIR/accelerator-map on OSX
This patch fixes a common mistake where the return value of the function call
is set to the passed buffer and therefore previous allocated memory is lost if
the realloc call fails. Therefore a temporary variable is introduced and the
memory will be freed if the reallocation fails. In addition the return value of
the malloc allocation is checked.
Several functions of libdbi are now deprecated (e.g.: dbi_conn_new) and have
been replaced with _r functions (e.g.: dbi_conn_new_r) which now require a
dbi_instance passed as a parameter. This patch checks if the version of libdbi
is higher or equal than 0.9.0 and iff so, it uses the new _r functions instead
of the deprecated ones.
Per user request. Permits user to customize the accelerator map and have the result
survive upgrades. Loads gnucashdotdir/accelerator-home if it exists, otherwise loads
share/gnucash/ui/osx_accel_map.
Lower the random gnc_numeric clamp to 44 bits; got an overflow at 48.
Prevent random query strings from including '\'; The sequence '\ ' causes an
error when passed to Scheme. See http://savannah.gnu.org/bugs/?31680.
cc1.exe: warnings being treated as errors
In file included from c:/soft/aqbanking/include/aqbanking5/aqbanking/abgui.h:16:0,
from ../../../../repos/src/import-export/aqb/gnc-ab-utils.c:52:
c:/soft/gwenhywfar/include/gwenhywfar4/gwenhywfar/gui_be.h:60:10: error: 'libintl_printf' is an unrecognized format function type
make[5]: *** [gnc-ab-utils.lo] Error 1
Rather than asserting (and therefore crashing) on a bad split or transaction,
write an error description and raise an ERR_BACKEND_DATA_CORRUPT error.
Fix bad GUIDs in splits at write.
And reset_version_info. This is a better solution than setting it in load
after calling init_version_info because in load it would over-write the
values stored in the database.
Fill in the gnucash and gnucash-resave versions in an initial load so
that the version checks pass. Have python's Session.__init__() always
load the session so it's ready to handle other actions.