External App connection to a GnuCash file

Christian Stimming stimming at tuhh.de
Sun Sep 2 16:14:45 EDT 2007


Am Mittwoch, 29. August 2007 21:52 schrieb Josh Sled:
> "Daniel Espinosa" <esodan at gmail.com> writes:
> > I found a macro in /macros/legacy_macros.m4 witch test for sscanf to
> > support %lld (long long decimal integer) if so defines HAVE_SCANF_LLD.
> > I think this is supported in recent gcc versions, then I can safetly
> > define it in configure.in or remove this test in
> > /lib/libqof/qof/qofutil.h.
>
> I'm not 100% sure about the provenance of that code, but I'm pretty sure it
> should not be removed.

Josh is correct. The macro from legacy_macros.m4 turned out to be not legacy 
at all, but it is in fact needed a lot. To be more precise, the gcc/libc 
environment on Windows/mingw needs a different scanf() format character for 
LLD than what gcc needs on Linux. The test in legacy_macros.m4 checks exactly 
that. Hence, you need to copy the respective macro into your own application 
as well.

On the other hand, the resulting format character itself is probably only 
needed inside the gnucash/gncqof implementation and doesn't have to be 
exposed to outside applications. Hence, in the long term this test probably 
should have to be done by your external application, and in gnucash this 
#ifdef check should be moved to an internal header file. Well, that's a 
long-term goal.

Christian


More information about the gnucash-devel mailing list